Guten morgen ich habe ein problem seit tagen das die befehle mit sscanf nicht funktioniren ich habe schon mehrere gefragt aber keiner weiß eine antwort die befehle sind richtig denke ich
das ist so wen ich nur /kick ein gebe kommt dan SendClientMessage(playerid,GELB,"Verwendung: /kick [playerid] [Grund]");
und wen ich dan /kick 0 text eingebe kommmt dan new stringreturn[128];
format(stringreturn,sizeof(stringreturn),"Der Befehl %s ist uns unbekannt. Bitte verwende /cmd für Hilfe.",cmdtext);
return SendClientMessage(playerid,ROT,stringreturn);
hir mal die "Drei " befehle: if(strcmp(cmdtext, "/kick", true) == 0)
{
new pID;
new string[128];
new grund[128];
new spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME];
if(Admin[playerid] > 1338 || IsPlayerAdmin(playerid))
{
if(sscanf(cmdtext,"us",pID,grund)) return SendClientMessage(playerid,GELB,"Verwendung: /kick [playerid] [Grund]");
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,ROT,"Der Spieler ist offline");
}
GetPlayerName(playerid,spieler,sizeof spieler);
GetPlayerName(pID,spieler2,sizeof spieler2);
format(string,sizeof string,"SERVER: %s wurde von %s gekickt. Grund: %s.",spieler2,spieler,grund);
SendClientMessageToAll(ROT,string);
format(string,sizeof string,"SERVER: Du wurdest von %s gekickt. Grund: %s.",spieler,grund);
SendClientMessage(pID,ROT,string);
Kick(pID);
}
return 1;
}
if(strcmp(cmdtext, "/ban", true) == 0)
{
new pID, string[128], grund[128], spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME], Spielerdatei[64];
if(Admin[playerid] > 1338 || IsPlayerAdmin(playerid))
{
if(sscanf(cmdtext,"us",pID,grund)) return SendClientMessage(playerid,GELB,"Verwendung: /ban [playerid] [Grund]");
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,ROT,"Der Spieler ist offline");
}
GetPlayerName(playerid,spieler,sizeof spieler);
GetPlayerName(pID,spieler2,sizeof spieler2);
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",spieler2);
format(string,sizeof string,"SERVER: %s wurde von %s gebannt. Grund: %s.",spieler2,spieler,grund);
SendClientMessageToAll(ROT,string);
format(string,sizeof string,"SERVER: Du wurdest von %s gebannt. Grund: %s.",spieler,grund);
SendClientMessage(pID,ROT,string);
dini_IntSet(Spielerdatei,"Baned",1);
Ban(pID);
}
return 1;
}
if(strcmp(cmdtext, "/skin", true) == 0)
{
if(sscanf(cmdtext,"d",skinid))
{
return SendClientMessage(playerid,BLAU,"INFO: /skin[0 - 299]*");
}
if(skinid<0||skinid>299)return SendClientMessage(playerid,ROT,"Diese Skin ID gibt es nicht! nur von 0-299");
SetPlayerSkin(playerid,skinid);
new string[128];
format(string,sizeof(string),"Du hast dir den Skin %s angezogen.",skinid);
SendClientMessage(playerid,GRÜN,string);
return 1;
}
den stock habe ich auch
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
aber warum gehen die dan nicht ?:O
vill könnt ihr mir hoffentlich helfen