Sind solche Arrays nicht möglich? (ENUM)
Mich würde an dieser Stelle mal interessieren, wozu du so ein riesen Array benötigst
Sind solche Arrays nicht möglich? (ENUM)
Mich würde an dieser Stelle mal interessieren, wozu du so ein riesen Array benötigst
muss in der Datenbank Standart auf "Ja" "NULL" setzen und windows nicht? kann man das ganze iwie ändern das man das nicht muss oder bleibt das standart bei der R41-4 MySQL Version?
Der MySQL Server sollte überall gleich sein, egal ob auf einem Windows oder Linux System.
Und dein anderes anliegen verstehe ich eher weniger.
Alles anzeigenMan kann bei der Datenbank einen Wert vergeben.
Heißt bei Standart gibts die wahl zwischen:
Bei Manchen Werten muss ich NULL angeben als Standart Wert sonst trägt der den Account nicht ein.
Dann wählst du entweder dort einen Standardmäßigen Wert aus (0 oder so, abhängig was das für eine Spalte ist) oder du fügst den Wert beim INSERT in deinem Script mit ein
Ist das im SQL Query oder setzt du einfach eine Variable auf den Spieler? Sonst zeig uns doch einmal genau was du meinst. Zeig uns dein INSERT beim Registrieren, und deine Tabellenstruktur
case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""#SERVER_FARBE""#SERVER_SLOGEN"", "{FFFFFF}Das Passwort muss mindestens eine Länge von 6 Zeichen haben.\n\nWillkommen auf "#SERVER_FARBE""#SERVER_SLOGEN"\n\n{FFFFFF}Dein Account wurde in der Datenbank gefunden.\nGib dein Passwort niemals weiter. Auch nicht an Admins oder Supporter!\nDu kannst dich nun einloggen. Bitte gib dein Passwort ein:","Erstellen","");
return 1;
}
new query[256];
new wHash[129];
WP_Hash(wHash, sizeof(wHash), inputtext);
mysql_format(MySqlConnection, query, sizeof(query), "INSERT INTO `server_accounts` (Name, NewPasswort) VALUES ('%s', '%e')", GetName(playerid), wHash);
mysql_tquery(MySqlConnection, query);
GotMD5[playerid] = 1;
PlayerPlaySound(playerid, 1188, 0.0, 0.0, 0.0);
SetPlayerScore(playerid, DEFAULT_LEVEL);
Spieler[playerid][pLevel] = DEFAULT_LEVEL;
Spieler[playerid][pSpawnHealth] = DEFAULT_SPAWNHEALTH;
Spieler[playerid][pHouseKey] = INVALID_HOUSE_KEY;
Spieler[playerid][pHandyGuthaben] = 5000;
SetMoney(playerid, DEFAULT_MONEY);
Spieler[playerid][pBank] = 15000;
Spieler[playerid][pLoggedIn] = true;
mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_accounts` SET `SpielerOnline`='1' WHERE `Name`='%s'", GetName(playerid));
mysql_tquery(MySqlConnection, query, "", "");
Spieler[playerid][pTutorial] = 1;
Spieler[playerid][pNumber] = random(10000) + random(45542);
SavePlayer(playerid);
SpawnPlayerEx(playerid);
}
if(!response)
{
Kick(playerid);
return 1;
}
}
Alles anzeigen
Wird auf die Spieler Variable gesetzt.
Der Wert wird ja aber auch natürlich nicht automatisch in der Datenbank gespeichert. Nur auf der Spielervariable speichern reicht nicht, du musst das dann auch noch mit in die SQL Query schreiben.
mysql_format(MySqlConnection, query, sizeof(query), "INSERT INTO `server_accounts` (Name, NewPasswort, GotMD5) VALUES ('%s', '%e', %d)", GetName(playerid), wHash, 1);
Aber da diese Variable wohl IMMER 1 beträgt, kannst du das Feld eigentlich auch komplett weglassen. Oder du setzt es standardmäßig in der Tabelle auf 1.
public LoadHouses()
{
new rows, count;
cache_get_row_count(rows);
for(new i=0;i<rows;i++)
{
new houseID = cache_get_value_name_int(i, "id", houseID);
printf("%d", houseID);
if(houseID < MAX_HOUSES)
{
Haus[houseID][hCreated] = 1;
cache_get_value_name_int(i, "id", Haus[houseID][hdbID]);
cache_get_value_name_float(i, "EnterX", Haus[houseID][EnterX]);
cache_get_value_name_float(i, "EnterY", Haus[houseID][EnterY]);
cache_get_value_name_float(i, "EnterZ", Haus[houseID][EnterZ]);
cache_get_value_name_float(i, "ExitX", Haus[houseID][ExitX]);
cache_get_value_name_float(i, "ExitY", Haus[houseID][ExitY]);
cache_get_value_name_float(i, "ExitZ", Haus[houseID][ExitZ]);
cache_get_value_name_int(i, "Interior", Haus[houseID][hInterior]);
cache_get_value_name(i, "Besitzer", Haus[houseID][hBesitzer], 32);
cache_get_value_name(i, "Name", Haus[houseID][hName], 32);
cache_get_value_name_int(i, "Preis", Haus[houseID][hPreis]);
cache_get_value_name_int(i, "Mieten", Haus[houseID][hMieten]);
cache_get_value_name_int(i, "Lock", Haus[houseID][hLock]);
cache_get_value_name_int(i, "MietPreis", Haus[houseID][hMietPreis]);
cache_get_value_name_int(i, "Kasse", Haus[houseID][hKasse]);
cache_get_value_name_int(i, "Owned", Haus[houseID][hOwned]);
cache_get_value_name_int(i, "HealthUpgrade", Haus[houseID][hHealthUpgrade]);
Haus[houseID][hText] = CreateDynamic3DTextLabel("Laedt ...", COLOR_WHITE, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 20.0);
if(Haus[houseID][hOwned] == 1)
{
Haus[houseID][hPickup] = CreatePickup(OWNER_PICKUP, 1, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 0);
}
else if(Haus[houseID][hOwned] == 0)
{
Haus[houseID][hPickup] = CreatePickup(NO_OWNER_PICKUP, 1, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 0);
}
UpdateHouseLabel(houseID, Haus[houseID][hOwned]);
count++;
}
}
printf("[LOAD] Häuser geladen: %d/%d", count, MAX_HOUSES);
return 1;
}
Alles anzeigen
Hey,
Kurze frage es ladet alles aber warum ist houseID immer 1?
Kurze frage es ladet alles aber warum ist houseID immer 1?
Dein Code: new houseID = cache_get_value_name_int(i, "id", houseID);
cache_get_... returnt 1 wenn es klappt, also 1
einfach das new houseID = weg lassen, du speicherst es ja bereits mit der Funktion in die Variable
public LSPDTorZu(type, playerid)
{
switch(type)
{
case 0: MoveDynamicObject(SERVER_GATE[0], 2404.5884, 2472.1074, 1569.3167, 3.0, 90.0000, 0.0000, 90.0000); MoveDynamicObject(SERVER_GATE[1], 2405.6794, 2472.1074, 1569.3167, 3.0, 90.0000, 0.0000, 90.0000);
}
return 1;
}
Warum kann ich nicht beide tore in ein packen?
C:\Users\PC\Desktop\Selfmade\gamemodes\Selfmade.pwn(11835) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\PC\Desktop\Selfmade\gamemodes\Selfmade.pwn(11835) : warning 215: expression has no effect
C:\Users\PC\Desktop\Selfmade\gamemodes\Selfmade.pwn(11837) : error 010: invalid function or declaration
Warum kann ich nicht beide tore in ein packen?
Verwende ein ,, anstatt einem ;.
Ergo:
Ich suche die Tastenbelegung für "Taste 2" das KEY_LOOK_BEHIND ist ja für Mausrad.
https://wiki.sa-mp.com/wiki/Keys
Num 2 = KEY_ANALOG_DOWN
2 = KEY_SUBMISSION || KEY_LOOK_BEHIND
Kurz eine frage wie kann man "Türen sanft öffnen lassen"
Extra für dich (und ein paar Andere): Objekte langsam rotieren lassen
Wie kann man zwei Schreibvarianten eines Befehl bei ocmd festlegen?
Also dass man z.b. /giverang & /giverank verwenden kann, um einen Spieler einen Rang zu setzen
ocmd@2:giverang,giverank(playerid,params[])
ocmd@2:giverang,giverank(playerid,params[])
Da kommen 2 Fehler: error 010: invalid function or declaration.