Ich war so frei und hab es einfach an deinem ursprünglichen Command gemacht:
if(!strcmp("/adminprison", cmd, true))
{
if(!IstSpielerAdmin(playerid, 1)) return SendClientMessage(playerid,COLOR_RED,"Zugriff verweigert! Du benötigst mindestens den Adminrang: {00A500}Supporter ");
new len; //Hier
tmp = strtok(cmdtext,idx); len = strlen(tmp); //Hier
if(!tmp[0]) return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Benutze: /adminprison [ID] [Zeit]");
new id = strval(tmp);
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"~> Spieler nicht gefunden.");
tmp = strtok(cmdtext,idx); len += strlen(tmp)+1; //Hier
new zeit = strval(tmp);
if(zeit < 0 || zeit > 300) return SendClientMessage(playerid,COLOR_WHITE," Zeit nur zwischen 0 und 300 Minuten!");
//gMessage = strrest(cmdtext,idx); //WAS DAS?!
sSpieler[id][Adminprison] = zeit; //Hier das was Gesetzt werden soll (Funktioniert nicht!)
SetPlayerPos(id,1218.4226,2552.8484,10.8203);
SetTimerEx("ajailtimer", 10, 1, "i", id); //Den Timer evtl überarbeiten
//SetTimer("ajailtimer", 10, 0);
new admin[MAX_PLAYER_NAME+1], string[120+MAX_PLAYER_NAME+1];
GetPlayerName(playerid, admin, sizeof(admin));
new adminprisontime = sSpieler[playerid][Adminprison];
if(!cmdtext[13+len]) format(string, sizeof(string), "*Du wurdest von %s für %d Minuten ins Adminprison teleportiert, Grund: (Kein Grund) ", admin,adminprisontime); //Hier
else format(string, sizeof(string), "*Du wurdest von %s für %d Minuten ins Adminprison teleportiert, Grund: (%s) ", admin,adminprisontime, cmdtext[13+len]); //Und hier
SendClientMessage(id, COLOR_RED, string);
SendClientMessage(playerid,COLOR_GREEN,"~> Spieler wurde ins Adminprison teleportiert!");
return 1;
}
Geänderte Zeilen wurden markiert. Wenn ich richtig gezählt habe, sollte es tun.
Somit hätten wir (mal wieder^^) vollständig auf sscanf verzichtet.