22.07.2013, 00:26
Fiz um exemplo simples com sscanf e ycdm,
pawn Код:
YCMD:setaradmin(playerid, params[], ajuda)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_VERMELHO, "|| ERRO || Somente Admnistradores logados modo rcon podem usar esse comando");// vai verificar se o player for admin vai prosseguir, se nao for vai retorna o erro
new IDdoPlayer, AdminLevel; //cria uma variavel para armazenar o id do player e o level admin
if(sscanf(params, "ii", IDdoPlayer, AdminLevel)) return SendClientMessage(playerid, COR_VERMELHO, "|| ERRO || Use: /setadmin [ID] [LEVEL]");// se ele digitou o id do player e level adm prosegue, se ele nao digitou vai retorna a mensagem de erro
PlayerInfo[IDdoPlayer][pAdmin] = AdminLevel;// aki no caso usei a enum do meu GM, vocк adapta com a sua enum
new PlayerNomeS[MAX_PLAYER_NAME], AdminNome[MAX_PLAYER_NAME], MensagemPlayer[92], MensagemAdmin[90], MensagemTodos[125];
GetPlayerName(playerid, AdminNome, sizeof(AdminNome)); // aki ele vai pegar o nome do admin
GetPlayerName(IDdoPlayer, PlayerNomeS, sizeof(PlayerNomeS));// aki ele vai pegar o nome do player a ser setado adm
format(MensagemPlayer, sizeof(MensagemPlayer), "|| ADMNISTRAЗГO || O Administrador %s te setou admin level %i", AdminNome, AdminLevel);//aqui vai formata mensagem para enviar ao player
format(MensagemAdmin, sizeof(MensagemAdmin), "|| ADMINISTRAЗГO || Vocк setou administrador level %i para o %s", AdminLevel, PlayerNomeS);//aqui vai formata mensagem para enviar ao admin
format(MensagemTodos, sizeof(MensagemTodos), "|| ADMINISTRAЗГO || O Administrador %s setou admin para %s level: %i", AdminNome, PlayerNomeS, AdminLevel); //aqui formata a mensagem para enviar atodos
SendClientMessage(playerid, COR_ADMIN, MensagemAdmin) && SendClientMessage(IDdoPlayer, COR_ADMIN, MensagemPlayer) && SendClientMessageToAll(C_ADMIN, MensagemTodos);//aqui manda todas mensagens formatadas
return 1;
}