Hallo,
um Befehle mit Parametern zu erzeugen (Bsp.: /pn [ID] [NACHRICHT]) benutze ich OCMD. Ich habe bereits einige Befehle mit OCMD erstellt, alle funktionieren soweit einwandfrei, außer die Befehle /kick [ID] [GRUND] und /ban [ID] [GRUND]...
Nachfolgend zunächst die Definition des Befehls /kick [ID] [GRUND]:
ocmd:kick(playerid, params[1024])
{
if(Player[playerid][IsAdmin] == 1 || Player[playerid][IsAdmin] == 2)
{
new PlayerID;
new Reason[1024];
new string[2048];
if(sscanf(params, "us", PlayerID, Reason))
{
SendClientMessage(playerid, COLOR_WARNING, "/kick [ID] [GRUND]");
}
else
{
if(IsPlayerConnected(PlayerID))
{
format(string, sizeof(string), "[KICK] %s wurde von %s gekickt (Grund: %s)", Spielername(PlayerID), Spielername(playerid), Reason);
SendClientMessageToAll(COLOR_WARNING, string);
//SendClientMessage(PlayerID, COLOR_WARNING, string);
SavePlayerProfile(PlayerID);
Kick(PlayerID); // MARKIERT
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WARNING, "Der Spieler ist nicht mehr online!");
}
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WARNING, "Du besitzt nicht die erforderlichen Rechte um den Befehl auszuführen.");
return 1;
}
}
main()
{
...
Alles anzeigen
Spielername(playerid) ist hier eine von mir erstellte Funktion (stock), der einfach nur den Namen des Spielers mit der angegebenen ID zurückgibt.
Den Ban-Befehl (/ban [ID] [GRUND]) habe ich genau so erstellt, nur dass ich in der Zeile mit //MARKIERT statt Kick(playerid) Ban(playerid) geschrieben habe...
Nun habe ich folgendes Problem: Führe ich InGame einen der Befehle aus (/kick oder /ban), schreibt der Server in den Chat zunächst die Nachricht "[KICK] %s wurde von %s gekickt (Grund: %s)" (Dabei wird %s eben durch die Werte ersetzt), und nachfolgend "SERVER: Unknown Command". Warum?