sscanf brauchst du hier gar nicht. Schreibe es einfach so, das ist effizienter:
ocmd:a(playerid,params[])
{
new string[145];
if(Spieler[playerid][pEingeloggt]!=1)return ErrorMsg(playerid,"Du bist noch nicht eingeloggt.");
if(Spieler[playerid][pAdminrang]<1)return ErrorMsg(playerid,"Du hast nicht das nötige Adminlevel.");
if(!params[0])return ErrorMsg(playerid,"/a(dmin Chat) [Text]");
if(strlen(params)>90)return ErrorMsg(playerid,"/a(dmin Chat) [Text darf maximal 90 Zeichen beinhalten]");
format(string,sizeof(string),"**(( %s %s: %s ))",Adminrang(playerid),Spieler[playerid][pName],params);
SendAdminMessage(0x00A5FFFF,string);
return 1;
}
ocmd:z(playerid,params[])
{
new string[145];
if(Spieler[playerid][pEingeloggt]==0)return ErrorMsg(playerid,"Du bist noch nicht eingeloggt.");
if(gTeam[playerid]!=TEAM_ZOMBIE)return ErrorMsg(playerid,"Du kannst diesen Befehl nicht benutzen.");
if(!params[0])return ErrorMsg(playerid,"/z(chat) [Text]");
if(strlen(params)>90)return ErrorMsg(playerid,"Der eingegebene Text ist zu lang.");
format(string,sizeof(string),"**(( Zombie %s: %s ))",Spieler[playerid][pName],params);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(Spieler_[pEingeloggt]==0)continue;
if(gTeam[i]!=TEAM_ZOMBIE)continue;
SendClientMessage(i,0xB40000FF,string);
}
return 1;
}
ocmd:h(playerid,params[])
{
new string[145];
if(Spieler[playerid][pEingeloggt]==0)return ErrorMsg(playerid,"Du bist noch nicht eingeloggt.");
if(gTeam[playerid]!=TEAM_HUMAN)return ErrorMsg(playerid,"Du kannst diesen Befehl nicht benutzen.");
if(!params[0])return ErrorMsg(playerid,"/h(chat) [Text]");
if(strlen(params)>90)return ErrorMsg(playerid,"Der eingegebene Text ist zu lang.");
format(string,sizeof(string),"**(( Human %s: %s ))",Spieler[playerid][pName],params);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(Spieler[i][pEingeloggt]==0)continue;
if(gTeam[i]!=TEAM_HUMAN)continue;
SendClientMessage(i,0x33AA33AA,string);
}
return 1;
}
Und wenn du unbedingt sscanf verwenden willst, aber die Funktion nutzt, dann musst du nur "s" schreiben, anstatt "s[XX]".