Wie krieg ich das denn jetzt richtig hin ?
Ich habe dir den Code ausgebessert und mit Kommentaren versehen, damit du die Änderungen nachvollziehen kannst.
ocmd:unban(playerid,params[])
{
new pname[MAX_PLAYER_NAME], preason[64], query[128];
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid,COLOR_GRAD1,"Du bist nicht berechtigt, diesen Befehl auszuführen.");
//Bei sscanf "s" muss immer die Größe mitgegeben werden, beim neuen Plugin
if(sscanf(params, "s[24]s[64]", pname, preason)) return SendClientMessage(playerid,COLOR_GRAD1,"FEHLER: /unban [Exakter Spielername] [Grund]");
//Um Speicher zu sparen, nutzen wir "string" zwei mal, da es nach dem Query-Absenden nicht mehr benötigt wird.
mysql_format(handle, string, sizeof(string), "SELECT id, Username FROM user WHERE Username = '%e'", pname);
mysql_pquery(handle, string, "UnBanForPlayer", "ds", playerid, preason); //UnBanForPlayer mitgeben, sonst wird es nicht aufgerufen.
return 1;
}
forward UnBanForPlayer(playerid, preason[]);
public UnBanForPlayer(playerid, preason[])
{
new rows, string[145], id, pname[MAX_PLAYER_NAME]; //145 Zeichen = Maximum für SendClientMessage
cache_get_row_count(rows);
if(rows == 0) return SendClientMessage(playerid, COLOR_RED, "Der angegebene Name konnte in der Datenbank nicht gefunden werden!");
else
{
//Daten aus Ergebnis auslesen
id = cache_get_field_content_int(0, "id", handle);
cache_get_field_content(0, "Username", pname, handle);
//Die Nachricht geben wir erst hier aus:
format(string, sizeof(string), "Du hast %s entbannt, grund %s", pname, preason);
SendClientMessage(playerid, -1, string);
//string erhält einen neuen Text, der alte Text (Nachricht) wird verworfen, brauchen wir ja auch nicht mehr.
mysql_format(handle, string, sizeof(string), "UPDATE `user` SET `pBanned` = '0' WHERE `id` = '%d'", id);
mysql_pquery(handle, string);
}
return 1;
}



