RESOLVIDO: Para quem quer resolver, й sу nгo ser burro que nem eu. Adicione verificaзхes no seu comando, exemplo: Se o ID й vбlido, se o jogador nгo й um NPC, se o texto digitado no comando nгo excede os caracteres permitidos, etc.
Код:
COMMAND:pm(playerid, params[])
{
new text[128],targetid,string[255],sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
if(sscanf(params, "us[128]", targetid, text)) SendClientMessage(playerid, COLOR_GREY, "USO: /pm {FFFFFF}[playerid] [texto]");
else
{
if (GetPVarInt(playerid, "PlayerLogged") != 1) return SendClientMessage(playerid, COLOR_WHITE, "Vocк precisa estar logado para usar esse comando.");
if (playerid == targetid) return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode enviar PM para vocк mesmo.");
if(GetPVarInt(playerid, "Admin") == 0 && GetPVarInt(targetid, "TogPM") == 1) return SendClientMessage(playerid,COLOR_GREY,"Esse jogador bloqueou mensagens particulares.");
if(GetPVarInt(playerid, "Admin") == 0 && PlayerInfo[targetid][pBlockPM][playerid] == 1) return SendClientMessage(playerid,COLOR_GREY,"Esse jogador desabilitou mensagens particulares suas.");
if(GetPVarInt(playerid, "Admin") == 0 && PlayerInfo[playerid][pBlockPM][targetid] == 1) return SendClientMessage(playerid,COLOR_GREY,"Vocк desabilitou as mensagens particulares com esse jogador.");
if(GetPVarInt(playerid, "TogPM") == 1 && GetPVarInt(playerid, "Admin") == 0) return error(playerid, "As suas mensagens particulares estгo bloqueadas.");
if(GetPVarInt(playerid, "Mute") == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Vocк estб silenciado (mute)!");
if(IsPlayerConnected(targetid))
{
if(GetPVarInt(targetid, "Admin") > 0 && GetPVarInt(targetid, "Admin") <= 9 && GetPVarInt(targetid, "AdminDuty") == 1 && GetPVarInt(playerid, "APMWRN") == 0)
{
SetPVarString(playerid, "APMMSG", text);
SetPVarInt(playerid, "APMID", targetid);
ShowPlayerDialog(playerid, 206, DIALOG_STYLE_MSGBOX, "ALERTA", "IMPORTANTE: Administradores sгo muito ocupados e vocк nгo pode mandar spam ou mensagens inъteis para eles\nQuer enviar o PM mesmo assim?", "Sim", "Nгo");
}
else
{
format(sendername, sizeof(sendername), "%s", PlayerName(playerid));
format(giveplayer, sizeof(giveplayer), "%s", PlayerName(targetid));
GiveNameSpace(sendername);
GiveNameSpace(giveplayer);
format(string, sizeof(string), "(( PM de [%d] %s: %s ))", playerid, sendername, text);
SendClientMessageEx(targetid, 0xF9F900FF, string);
format(string, sizeof(string), "(( PM enviada para [%d] %s: %s ))", targetid, giveplayer, text);
SendClientMessageEx(playerid, 0xE5C43EAA, string);
PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
format(string, sizeof(string), "(( %s[%d] enviou %s[%d]: %s ))", sendername, playerid, giveplayer, targetid, text);
ShowPMs(string);
SeePM(playerid, string);
SeePM(targetid, string);
}
}
}
return 1;
}