Poste bitte nochmal den Code vom Laden und Speichern so wie du ihn jetzt hast.
Wenn du keine Änderung vergessen hast, dann müssen wir es mal debuggen, vielleicht findet sich dann der Fehler.
Beiträge von Jeffry
-
-
new pAdminOnduty;
zu:
new pAdminOnduty[MAX_PLAYERS];Falls du pAdminOnduty anders deklariert hast, poste bitte wie du es deklariert hast.
-
Das bedeutet, dass dir eine Zahl zwischen 1 und 999999 generiert wird.
-
Ich hab den Code oben mal gelöscht. Irgendwie hab ich da nicht das geschrieben was ich schreiben wollte.
new query[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
mysql_real_escape_string(name, name);
format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')", name);
mysql_query(query);Jetzt passt es aber.
-
Ok, dann nimm mal die gesagten Änderungen vom Post drüber vor und schaue dann ob es geht.
-
Sorry, hab ein "," vergessen. Ohne es zu kompilieren kommt das leider hin und wieder vor.
format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')" name);
zu:
format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')", name); -
Wie kann ich Zahlen Regenerieren für z.B einen Gutschein Code?!
new code = random(999998)+1; -
Lade dir die neusten Includes herunter und füge sie ein:
http://files.sa-mp.com/samp03z_svr_R4_win32.zipAnschließend öffne deinen Code über /pawno/pawno.exe => Öffnen.
-
if(strcmp("/items",cmdtext, true) == 0)
{
ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_LIST, "Items Help", "Bloodbag\nMedkit\nBandage", "Explain", "Back");
return 1;
}OnDialogResponse:
if(dialogid == DIALOG_ITEMS)
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
case 1: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
case 2: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
}
}
return 1;
} -
Wenn du die Maus anzeigen willst, damit es selektierbar wird, dann musst du
http://wiki.sa-mp.com/wiki/SelectTextDraw
nutzen.Außerdem fehlt bei deinen Textdraws
http://wiki.sa-mp.com/wiki/TextDrawTextSize_DEDas musst du verwenden, sonst kannst du es nicht andrücken. Am besten du erstellst dir eine TextDrawUseBox mit TextDrawBoxColor 0x000000FF (oder einfach 0), damit du die andrückbare Fläche siehst (beachte: die Höhe musst du abschätzen (Y Wert)).
-
Kannst du einfach so machen:
ocmd:usegutschein(playerid, params[])
{
new gutscheinid, string[256];
if(sscanf(params, "d", gutscheinid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /usegutschein [GutscheinCode]");
for(new g = 0; g <MAX_GUTSCHEINE; g++)
{
if(gutscheinid != Gutschein[g][gCode]) continue;
if(Gutschein[g][gUsed] == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code wurde bereits aktiviert.");
Gutschein[g][gUsed] = 1;
format(string, sizeof(string), "Gutschein Aktiviert - von %s", SpielerName(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s'", SpielerName(playerid));
self_mysql_query(string);
return 1;
}
return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code existiert nicht!");
} -
Erstelle es unter OnGameModeInit.
Ganz oben unter die Includes:
new Text:Textdraw0;
new Text:Textdraw1;Bei OnGameModeInit die Textdraws erstellen.
Bei mir tut es:
-
format(fstring,100,"%i %i %i %i %i %i",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);
zu:
format(fstring,100,"%i %i %0.2f %0.2f %0.2f %0.2f",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);sscanf(fstring,"iiiiii",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);
zu:
sscanf(fstring,"iiffff",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);Wenn es dann immer noch nicht geht: Steht denn was in der Datei? Wenn ja, was? Wird die Datei erstellt, oder sind die schon erstellt?
-
Wo erstellst du die Textdraws, also unter welchem Callback?
-
format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s'", SpielerName(playerid));
zu:
format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid),Gutschein[g][gCode]); -
Ersetze ab Zeile 298 in der sscanf2.inc alle "string" mit "strx" (oder was auch immer dir gefällt), dann sind die Warnungen weg.
-
Ja, du brauchst natürlich die Zeile in der der Name "Paco" ist, in der Tabelle der Datenbank. Sonst weiß die Datenbank ja nicht, wo die Daten hinkommen.
Da solltest du anlegen, sonst klappt es natürlich nicht. -
http://wiki.sa-mp.com/wiki/TextDrawShowForPlayer
Oder was meinst du? -
Auch beim Laden muss der
break;
raus, sonst lädt es dir nur das erste Fahrzeug. -
Ja was willst du denn?
Wenn Welt 100 voll ist (also 10 Spieler), soll der 11te dann in Welt 101 kommen, oder eine Nachricht, dass der Wettkampf voll ist?