Passiert nichts wenn ich den ausführe, wenn das admlevel z.B 22 crasht das Spiel sonst einfach nix
AdminLevel wird nicht gesetzt
- Studs
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Die Erklärungen habe ich im Code als Kommentar beigefügt.
ocmd:setadmin(playerid,params[])
{
new number,level;
if(sscanf(params,"dd", number, level)) return GameTextForPlayer(playerid,"~g~/setadmin ~w~[AccountID] [Level]",2500,1);
if(level <0 || level>=10) return GameTextForPlayer(playerid,"~g~/setadmin ~w~ [AccountID] [Level]",2500,1); //Hier war ein ~ zu viel = Crash
new query[256];
mysql_format(handle, query, sizeof(query), "SELECT Name FROM user WHERE id = '%d'", number); //Du gibst die ID ein, dann nutze diese auch für die Abfrage
mysql_pquery(handle, query, "SetAdminLevelForPlayer", "ddd", playerid, level, number);
return 1;
}forward SetAdminLevelForPlayer(playerid, level, number);
public SetAdminLevelForPlayer(playerid, level, number)
{
new rows, string[145], name[MAX_PLAYER_NAME];
cache_get_row_count(rows);
if(rows == 0) return SendClientMessage(playerid,-1,"AccountID not found");
else
{
cache_get_value_name(0, "Name", name); //Wir lesen noch den Name aus.
format(string, sizeof(string), "ADMIN: %s has setted the Admin Level of %s <%d> to %d ", GetName(playerid),name,number,level);
ABroadCast(0xFFFFA333,string);
mysql_format(handle, string, sizeof(string), "UPDATE user SET Adminlevel = '%d' WHERE id = '%d'", level,number); //Auch hier, die eingegebene ID nutzen
mysql_pquery(handle, string);
return 1;
}
} -
Okay folgende Probleme:
Erstmal wird die Nachricht nicht gesendet, wenn ich nicht alles richtig gemacht habe
if(sscanf(params,"dd", number, level)) return GameTextForPlayer(playerid,"~g~/setadmin ~w~[AccountID] [Level]",2500,1);
(Könnte zur fehlerbehebung beitragen)
Und egal welche Acc id ich eingebe, es steht immer da "AccID nicht gefunden"
// Edit
Zum besseren Verständnis, möchte das Adminlevel eines Spielers ÜBER eine AccountID setzen
-
Und egal welche Acc id ich eingebe, es steht immer da "AccID nicht gefunden"
Dann ist etwas an der MySQL Abfrage falsch.
Zeig uns am besten mal wie deine Datenbank für die Spieler aussieht. -
// edit
Ok jetzt gehts habe zwei zeilen abgeändert, jetzt wird der name auch korrekt angezeigt, sowie die ID
und das adminlevel wird gesetzt
Nur das mit dem gametextforplayer geht noch nicht da gucke ich mal kurz
-
breadfish.de
Hat das Thema geschlossen.