Mě osobně to nepadá. Ale druhý parametr (string) mi to vyhodnotí jako id, když je to kratší (Tohle není NPC). Když je delší, server: unknown command.
sscanf také píše do server logu.
sscanf warning: Strings without a length are deprecated, please add a destination size.
To znamená že musíš odesílat velikost - malá úprava
dcmd_p(playerid, params []) {
new id, text[128];
if(sscanf(params,"is[128]", id, text)) return SendClientMessage(playerid,COLOR_WARNING,"[ ! ] {FFFFFF}Použi: /p [ ID ] [TEXT ]");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_WARNING,"[ ! ] {FFFFFF}Hráč zo zadaným ID nieje na serveri !");
else if(IsPlayerNPC(id)) return SendClientMessage(playerid,COLOR_WARNING,"[ ! ]{ffffff} Tohle je NPC !");
else {
new Name[26];
new Name2[26];
GetPlayerName(playerid,Name,26);
GetPlayerName(id,Name2,26);
new string[128];
format(string,128,"{ACFF00}%s {FFFFFF}-> {00FFFF}%s {FFFFFF}%s", Name2, Name, text);
SendClientMessageToAll(COLOR_ADMIN,string);
for(new i=0; i<128; i++){
if(Player[playerid][AdminLevel] == 0) {
new string3[50];
format(string3, sizeof(string3),"%s cmdtext: /p %d %s", Name, id, text);
SCMTAdmins(i, 0xFF0000FF, string3);
}
}
}
return 1;
}
new id, text[128]; if(sscanf(params,"is[128]", id, text)) ...
Tím pádem funguje. Nebo také bude potřeba si pořídit originální a co nejnovější sscanf.
+ cyklus, nedává smysl + na jména je nejlepší si vytvořit funkci, která ti ty jména vrací a šupat to rovnou do formatu