new msg[128];
format(msg,128,"* Vocк foi promovido para level %d de Admin - Por %s.",seu_nome, nome_do_admin);
SendClientMessage(nome_do_admin, COLOR_LIGHTBLUE, string);
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;
}
Fiz um exemplo simples com sscanf e ycdm,
pawn Код:
|
if(strcmp(cmdtext, "/padmin", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new IDdoPlayer, AdminLevel; //cria uma variavel para armazenar o id do player e o level admin
if(strcmp(cmdtext, "ii", IDdoPlayer, AdminLevel))
{
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /daradmin [id] [Nivel]");
}
if(PlayerInfo[playerid][pAdmin] == 5000)
{
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];
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), "* Vocк foi promovido para Admin level %d - Por: %s.", AdminLevel, AdminNome);//aqui vai formata mensagem para enviar ao player
format(MensagemAdmin, sizeof(MensagemAdmin), "* Vocк promoveu o jogador %s para Admin level %d.", PlayerNomeS, AdminLevel);//aqui vai formata mensagem para enviar ao admin
SendClientMessage(playerid, COLOR_LIGHTBLUE, MensagemAdmin) && SendClientMessage(IDdoPlayer, COLOR_LIGHTBLUE, MensagemPlayer);
}
else
{
SendClientMessage(playerid, Cyan, "Vocк nгo й um administrador ou nгo tem level de Admin suficiente");
}
return 1;
}
}
C:\Users\Vinicius\Videos\Projeto\gamemodes\Vini.pwn(375) : warning 213: tag mismatch Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Warning.
if(strcmp(cmdtext, "ii", IDdoPlayer, AdminLevel))
{
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /padmin [id] [Nivel]");
}
O que acontece й o seguinte o exemplo que fiz usei sscanf e ycmd, sscanf processador de parвmetros, e ycmd processador de comando acho que й isso kkk, no caso strcmp й comparador de strings, portanto pra fazer isso nele й necessбrio vocк usar strtok, й um pouco mais difнcil que sscanf, entгo, sscanf nao funfa em strcmp, portanto recomendo que vocк use algum processador de comando e sscanf. vocк vai ver que vai ficar bem mais facil, recomendo SSCANF e YCMD
|