Durch ZCMD werden die befehle ein eigenständiges Public ausserhalb aller normalen Publics. Also musst du es nicht innerhalb OnPlayerCommanText oder so machen.
OnPlayerCommandPerformed ist dafür da, um z.b zu Loggen wenn ein Spieler einen Befehl benutzt hat.
public OnPlayerCommandPerformed(playerid,cmdtext[],success)
{
if(success)
{
printf("ID %d hat den Befehl %s erfolgreich ausgeführt.",playerid, cmdtext);
}
else if(!success)
{
printf("ID %d hat einen nicht Existierenden Befehl (%s) ausgeführt.",playerid, cmdtext);
}
return true;
}
Den befehl selbst kann du einfach irgendwo ins script (aber ausserhalb eines Publics) packen.
CMD:changepass(playerid,params[])
{
new passwort[32],string[128];
if(sscanf(params, "s",passwort)) return SendClientMessage(playerid,COLOR_RED,"FEHLER: /changepass [Neues Passwort]");
format(string,sizeof(string),"Passwort erfolgreich geändert. Das Passwort lautet nun: '%s'",passwort);
SendClientMessage(playerid,COLOR_YELLOW,string);
SpielerInfo[playerid][pKey] = passwort;
SaveAcc(playerid);
return 1;
}