Hey,
mein Skript für den Befehl "SetSkin" sieht so aus:
Code
ocmd:setskin(playerid,params[])
{
if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"FEHLER: Dieser Befehl steht nur einem Teammitglied zur verfügung.");
new pID,SkinID;
if(sscanf(params,"uI",pID,SkinID))return SendClientMessage(playerid,COLOR_RED,"[SETSKIN]: /setskin [Playerid] [SkinID].");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"[SETSKIN]: Dieser Spieler ist nicht Online.");
//if(isAdmin(pID,sInfo[playerid][alevel]<sInfo[pID][alevel]))return SendClientMessage(playerid,COLOR_RED,"[SETSKIN]: Du kannst höherrängige Admins nicht die Armour setzen."); //Kindersicherung
new pName[MAX_PLAYER_NAME],aName[MAX_PLAYER_NAME],string[64],string2[64],string3[64];
SetPlayerSkin(pID,SkinID);
GetPlayerName(playerid,aName,sizeof(aName));
GetPlayerName(pID,pName,sizeof(pName));
format(string,sizeof(string),"%s hat dir deinen Skin auf %s gesetzt.",aName,SkinID);
format(string2,sizeof(string2),"[SETSKIN] %s hat den Skin von %s auf %s gesetzt.",aName,pName,SkinID);
format(string3,sizeof(string3),"[SETSKIN] Du hast den Skin von %s in %s geändert.",pName,SkinID);
SendClientMessage(pID,COLOR_RED,string);
SendClientMessage(playerid,COLOR_YELLOW,string3);
savePlayer(pID);
Log("AdminLog",string2);
return 1;
}
Alles anzeigen
Wenn ich allerdings einem Spieler einen Skin gebe(was funktioniert) ist die Meldung des formatierten Strings1 falsch.
Das schaut dann so aus:
Was mache ich falsch? Muss ich bei der Sscanfabfrage ob alle Parameter angegeben sind noch einen Platzhalter hinzufügen, da wenn ich einen Dreistelligen Wert eingebe einfach ein Strich eingefügt wird, statt der Zahl.
mfg,
Schönen Abend