Für Befehle kannst du das nicht ganz so übernehmen. Warum? Du fragst ab, ob der Befehl "/me" ist (strcmp). Wenn du jetzt aber "/me Hallo" eingibst, ist das ja nicht mehr das Selbe wie "/me". Daher musst du dir Größe des zu prüfenden Strings angeben, und dann noch auf das Leerzeichen dazwischen prüfen.
if(strcmp("/s",cmdtext,true,2) == 0)
{
if(!strlen(cmdtext[2])) return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /s [Text]");
if(cmdtext[2] == ' ')
{
if(!strlen(cmdtext[3])) return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /s [Text]");
new sendername[MAX_PLAYER_NAME],schreistring[145];
GetPlayerName(playerid,sendername,sizeof(sendername));
format(schreistring, sizeof(schreistring),"%s schreit: %s",sendername,cmdtext[3]);
SendMeSchrei(schreistring,playerid);
return 1;
}
}
if(strcmp("/me",cmdtext,true,3) == 0)
{
if(!strlen(cmdtext[3])) return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /me [Text]");
if(cmdtext[3] == ' ')
{
if(!strlen(cmdtext[4])) return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /me [Text]");
new sendername[MAX_PLAYER_NAME],mestring[145];
GetPlayerName(playerid,sendername,sizeof(sendername));
format(mestring, sizeof(mestring),"**%s %s",sendername,cmdtext[4]);
SendMeMe(mestring,playerid);
return 1;
}
}
Man könnte es natürlich auch mit einem Command Prozessor (dcmd, ocmd, ...) machen, das würde dann etwas schöner aussehen.