CMD:kick(playerid,params[])
{
if(!IstSpielerAdmin(playerid,2))return SCM(playerid,rot,"Du hast nicht den nötigen Adminrang");
new pID, reason[64],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,rot,"Benutze /kick [ID] [Grund]");
format(string,sizeof(string),"%s wurde von %s gekickt. Grund: %s",Spielername(pID),Spielername(playerid),reason);
SCMTA(rot,string);
Kick(pID);
return 1;
}
Erklärung kommt gleich
Oben kommt eben die Adminabfrage ich kenne sie ja aus deinem Script^^
1. Wenn der der den Command ausführt nicht das Adminlevel 2 oder höher hat wird der Command abgebrochen und ihm wird ne Nachricht ausgegeben, dass er nicht den benötigten Adminrang hat
2. Wir deklarieren 3 Variablen
pID reflektiert den Spieler den wir kicken möchten
reason(deutsch = Grund) steht für den Grund warum wie den Spieler kicken
und string ist eben die allgemeine Nachricht die dann an alle geschickt wird
3. Die sscanf Abfrage
"us" stehen für die Parameter der Abfrage
u = User heißt man muss eine UserID oder den Namen eines Users angeben und die
s = ist ein string in unserem Fall der string "reason" also der grund warum wie den Spieler kicken
und u und s wird durch die Variablen pID und reason angegeben
Wenn man die Parameter eben nicht ordentlich "ausfüllt" wird der command unterbrochen und man bekommt die nachricht wie man den Command benutzt
4. Wir formatieren den string mit 3 platzhaltern (3mal %s) diese stehen für den Namen vom Benutzer des Commands, der Name vom gekickten und der grund weßhalb er gekickt wird
5. Diese Nachricht schicken wir an alle
6. der Spieler wird gekickt
Ich hoffe ich habs halbwegs verständlich und richtig erklärt^^
Und ich weiß selbst nicht warum ich immer "wir" geschrieben hab
Die sscanf Abfrage ist bestimmt etwas falsch erklärt damit kenn ich mich nicht ganz so aus
Wenn ich etwas falsch/ungenau erklärt hab(und das hab ich sicherlich) dann berichtigt mich da lern ich auch noch etwas
Die stock Funktion Spielername hast du ja bereits im Script