Ab Zeile 19 nutzt du bei "format" die Variable "query", konkatenierst aber "squery".
Ändere bei den format's immer das "query" zu "squery".
Beiträge von Jeffry
-
-
Eventuell liegt es daran, dass deine Dialog ID zu groß ist. Setze die mal herunter.
ZitatMax dialogid is 32767.
-
ja er sagt das der fehler wo ganz anders is
Sind die Fehler auch vorhanden, wenn du Zeile 3 bis 22 in obigem Code entfernst?
Falls nein, wie ist "ERROR" definiert?Es kommt immer noch das:
Wie sieht dein Code jetzt aus?
-
Das ist mir klar, aber welches ist die 63263?
-
Ja das:
Entferne in Zeile 7 und 13 das
UPDATE accounts SETwas is der fehler es muss doch gehen oder nich
Welches ist die Zeile mit den Errors?
-
Versuche anstatt "localhost" in den Verbindungsdaten "127.0.0.1" zu nutzen, oder andersherum.
-
Wird der Code überhaupt aufgerufen?
Setze mal prints vor/nach die jeweiligen if-Abfragen und prüfe ob die im Server Log stehen.mysql_format(handle,name321, sizeof(name321), "%s", tmp);
Die Zeile kannst du komplett löschen, ebenfalls das "name321[25]" in der "new" Deklaration.
-
Mahlzeit, habe wieder einen Denkfehler... in 3 Zeilen kommt folgendes.
Wieso nutzt du denn immer mysql_query_file? Das ist zum auslesen von Daten aus Dateien.
So ist es korrekt:
mysql_format(handle, tmpdas, sizeof(tmpdas), "SELECT usr_name FROM `som_timeban` WHERE `usr_name` = '%e' AND status = 0", tmp);
mysql_pquery(handle, tmpdas, "checktimeban_execute", "is", playerid,tmp); -
Das kommt dabei raus...
Das lag dann daran, dass du das new item[64]; gelöscht gehabt hast.
Nur die sscanf Zeile musste angepasst werden.
-
i wurde in der for-Schleife definiert.
Wie sieht dein Code aus, und der genaue Error dazu? -
Versuche
if(sscanf(params,"s[64]",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");
zu:
if(sscanf(params,"s",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");Wenn du die sscanf Funktion anstatt dem Plugin nutzt, darfst du die Längenangabe nicht dabei haben.
-
Die Funktion cache_num_rows gibt es da nicht mehr.
for(new i=0; i<cache_num_rows(); i++)
zu:
new rows;
cache_get_row_count(rows);
for(new i=0; i<rows; i++)Außerdem kannst du die Funktion so schreiben:
LoadFrakCars()
{
mysql_pquery(handle,"SELECT * FROM fautos","OnFrakCarsLoad"); //Hier musste das "i" weg
return 1;
} -
Welche MySQL Version nutzt du?
Ist es außerdem korrekt, dass du einmal das LoadFrakCars mit großem L geschrieben hast, und einmal mit kleinem L? Prüfe das mal im Code. Das muss nämlich gleich sein, also beides mal LoadFrakCars oder beides mal loadFrakCars.
-
format(squery,sizeof(squery),...
Poste bitte das gesamte UPDATE Query, da geht es ja noch weiter mit mainquery.
-
OCMD statt DCMD davor war es halt DCMD und nun kriege ich keine Warnings/Errors beim Compilen aber Ingame
Das liegt daran, dass die Befehle vom Compiler ignoriert werden, da du wahrscheinlich die ocmd Include nicht oder nicht richtig inkludiert hast.
Daher sind auch die Warnungen weg, da der Code für den Compiler nicht existiert, und damit auch ingame nicht existiert.Den richtigen Code habe ich dir im vorherigen Thread gepostet: Problem mit /invite Befehl | DCMD
-
Auf ocmd parallel umzustellen macht keinen Sinn und behebt das Problem auch nicht.
So sehen die Befehle korrekt aus:
dcmd_invite(playerid, params[])
{
if(IstSpielerInFraktion(playerid, 0)) return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion.");
if(sSpieler[playerid][Rang] < 6) return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig.");
new pID, fID;
fID = sSpieler[playerid][Fraktion];
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"INFO: /invite [ID]");
if(!IstSpielerInFraktion(pID, 0))return SendClientMessage(playerid,ROT,"Spieler ist bereits in einer Fraktion!");
new string[128];
format(string,sizeof(string),"%s hat dich in die Fraktion %s eingeladen.", PlayerName(playerid), fInfo[fID][f_name]);
SendClientMessage(pID,GELB, string);
SendClientMessage(pID,GELB,"Um die einladung anzunehmen /accept invite eingeben.");
SetPVarInt(pID, "inv_fraktid", fID);
SetPVarInt(pID, "inv_inviter", playerid);
return 1;
}
dcmd_accept(playerid, params[])
{
new item[64];
if(sscanf(params,"s[64]",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");
if(!strcmp(item, "invite", false))
{
if(GetPVarInt(playerid, "inv_fraktid") == 0) return SendClientMessage(playerid,ROT," Du wurdest in keine Fraktion eingeladen!");
new fID = GetPVarInt(playerid, "inv_fraktid");
sSpieler[playerid][Fraktion] = fID;
sSpieler[playerid][Rang] = 1;
new string[128];
format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.", fInfo[fID][f_name]);
SendClientMessage(playerid,GELB, string);
format(string,sizeof(string), "%s ist der Fraktion beigetreten!", PlayerName(playerid));
SendClientMessage(GetPVarInt(playerid, "inv_inviter"),ROT,string);
return 1;
}
return 1;
}Und füge diesen stock ganz unten in deinem Gamemode ein:
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}Du hast nämlich immer GetPlayerName direkt im format verwendet, das geht aber nicht.
Nutze jetzt stattdessen "PlayerName", damit kannst du es direkt nutzen (siehe Code). -
Wie sieht deine Funktion zum Laden der Stats aus?
Werden die anderen Stats korrekt geladen und gespeichert? -
Das kannst du mit format machen:
if(strcmp("/clearchat", cmdtext, true) == 0)
{
for(new i = 0; i < 100; i++) SendClientMessageToAll(HELLBLAU," ");
new string[128];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Der Spieler %s (ID: %d) hat den Chat gecleart.", string, playerid);
SendClientMessageToAll(ROT,string);
return 1;
} -
ich werds gleich mal ins script rein machen
Ich habe meinen Post nochmal editiert, habe das "Moving" am Anfang muss weg, die Funktionen gibt es im Standard nicht.
-
Dafür habe ich dir diese Meldung hinzugefügt:
SendClientMessage(playerid, 0xFF0000FF, "Dieses Fahrzeug gehört nicht dir.");
Die kannst du bearbeiten, auf den Text den du willst.Entferne Zeile 109 und 110 (SendClientMessage und return 1) in obigem Code, sonst wird die Schleife immer nach dem ersten Fahrzeug beendet.