Hallo!
COMMAND:slap(playerid, params[])
{
new PlayerWhoGetsSlapped,
Float:X,
Float:Y,
Float:Z,
string[128],
pName[MAX_PLAYER_NAME],
AdminWhoExecutesTheCommand[MAX_PLAYER_NAME];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist kein Admin!");
if(!IsPlayerConnected(PlayerWhoGetsSlapped)) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Dieser Spieler ist nicht online!");
if(sscanf(params, "u", PlayerWhoGetsSlapped)) return SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Gebrauch: /slap [ID]!");
GetPlayerPos(PlayerWhoGetsSlapped, X, Y, Z);
SetPlayerPos(PlayerWhoGetsSlapped, X, Y, Z+10.0);
GetPlayerName(playerid, pName, sizeof(pName));
GetPlayerName(playerid, AdminWhoExecutesTheCommand, sizeof(AdminWhoExecutesTheCommand));
format(string, sizeof(string), "[SPIELERINFO] %s wurde vom Admin %s geslappt!", pName, AdminWhoExecutesTheCommand);
SendClientMessageToAll(COLOR_TURQUOISE, string);
return 1;
}
Vorab: Ich bin Anfänger.
Also, ich schildere mal kurz, was ich mir beim Scripten gedacht habe:
1. Variable für den Spieler, der geslappt werden soll, für die X, Y und Z Koordinaten des Spielers, der geslappt werden soll, den String für die ClientMessage, den Spielernamen des Spielers, der geslappt wird, und den Spielernamen des Admins.
2. Überprüfen, ob der Spieler, der den Befehl ausführt, RCON Admin ist.
3. Überprüfen, ob der Spieler, der geslappt werden soll, online ist.
4. Parameter überprüfen.
5. Position des Spielers, der geslappt werden soll in X, Y, Z Variablen speichern.
6. Spieler um 10.0 nach oben setzen.
7. Spielernamen des Spielers, der geslappt wird, und des Admins, der den befehl ausführt fetchen.
8. Beides in den String formatieren.
9. ClientMessage an alle Spieler ausgeben.
Errors kriege ich bei der Geschichte keine.
Nun ist es aber so, dass ich eine x beliebige ID eingeben kann, die überhaupt nicht online ist, und trotzdem die Clientmessage "[ADMININFO] Manyula wurde vom Admin Manyula geslappt!" kommt.
Danke im Voraus!
/e: Einrückung.