Quote:
Originally Posted by humildadeforever
Tб ai, R$5  -brinks.
pawn Код:
#include <a_samp> #include <zcmd> #include <sscanf> #include <DOF2>
enum pInfo { Admin }; new PlayerInfo[MAX_PLAYERS][pInfo];
CMD:setadmin(playerid, params[]) { if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < 1000) return SendClientMessage(playerid,-1,"Voce precisa estar logado na rcon ou ser admin nivel 1000"); new giveplayerid, nivel; if(sscanf(params,"ud", giveplayerid, nivel)) return SendClientMessage(playerid,-1,"Use: /setadmin [ID] [Nivel]"); if(nivel > 1000) return SendClientMessage(playerid,-1,"o nivel tem que ser no maximo 1000"); if(nivel == 0) { new string[100]; format(string, sizeof(string),"%s tirou o cargo de admin de %s.", PlayerName(playerid), PlayerName(giveplayerid)); SendClientMessage(playerid,-1,string); SendClientMessage(giveplayerid,-1, string); PlayerInfo[playerid][Admin] = nivel; Salvar(giveplayerid); } else if(nivel > 0) { new string[100]; format(string, sizeof(string),"%s deu admin nivel %d pra %s.", PlayerName(playerid), nivel, PlayerName(giveplayerid)); SendClientMessage(playerid, -1 ,string); SendClientMessage(giveplayerid, -1, string); PlayerInfo[playerid][Admin] = nivel; Salvar(giveplayerid); } return 1; }
public OnGameModeExit() { DOF2_Exit(); return 1; }
stock Salvar(playerid) { new file[56]; format(file, sizeof(file),"Contas/%s.ini", PlayerName(playerid)); if(DOF2_FileExists(file)) { DOF2_SetInt(file, "Admin", PlayerInfo[playerid][Admin]); DOF2_SaveFile(); } return 1; }
stock PlayerName(playerid) { new n[MAX_PLAYER_NAME]; GetPlayerName(playerid, n, sizeof(n)); return n; }
|
Nгo vejo porque usar enum sendo que vai colocar apenas uma variбvel.
Alйm do mais seu cуdigo atribui um valor а variбvel relativa ao nнvel de administrador de quem executa o comando, e nгo do id especificado pelo mesmo.
pawn Код:
CMD:setadmin(playerid, params[])
{
if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1000) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando.");
new id, level;
if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "Use /setadmin <id/nome> <level>");
if(level > 1000) return SendClientMessage(playerid, -1, "O nнvel deve ser inferior a mil (1000).");
new cmdString[100],
name[2][MAX_PLAYER_NAME];
GetPlayerName(playerid, name[0], MAX_PLAYER_NAME);
GetPlayerName(id, name[1], MAX_PLAYER_NAME);
if(level < 1)
format(cmdString, sizeof cmdString, "O admin %s tirou o cargo de administrador de %s.", name[0], name[1]);
else
format(cmdString, sizeof cmdString, "O admin %s promoveu %s a nнvel %d de administrador.", name[0], name[1], level);
SendClientMessage(playerid, -1, cmdString);
SendClientMessage(id, -1, cmdString);
PlayerInfo[id][pAdmin] = level;
Salvar(id);
return 1;
}