#include <zcmd>
#include <sscanf>
#include <DOF2>
#define Moderador 1
#define Guardiao 2
#define Admin 3
#define SubDono 4
#define Dono 5
enum PlayerAdmin
{
Level
}
new pAdmin[MAX_PLAYERS][PlayerAdmin];
enum PlayerAdmin // Isto o ( enum ) й chamado Enumeradores, serve pra armazenar valores, como o LEVEL que armazena o level do admin.
{
Level
}
new pAdmin[MAX_PLAYERS][PlayerAdmin]; // Isso ( new ) й uma Variбvel , й usada para utilizar o Enumerador PlayerAdmin .
DOF2_Exit();
DOF2_Exit(); // Isso й pra quando o samp-server.exe fechar,a include tambйm,e tambйm nunca se esqueзa de colocar isso! Pode dar alguns warnings ou nгo funcionar a include direito!
CMD:daradmin(playerid, params[])
{
new id, level, string[256], string2[256], ganhou[MAX_PLAYER_NAME], deu[MAX_PLAYER_NAME];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado.");
if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, 0xAD0000AA, "Use /daradmin [ID] [LEVEL]");
if (level < 0 || level > 5) return SendClientMessage(playerid, 0xFF0000FF, "Level invбlido. Use de 1 б 5 .");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
GetPlayerName(id, ganhou, sizeof(ganhou));
GetPlayerName(playerid, deu, sizeof(deu));
format(string, sizeof(string), "Vocк deu admin level %s para o %s", GetLevelAdmin(level), ganhou);
SendClientMessage(playerid, 0x00F6F6AA, string);
format(string2, sizeof(string2), "O admin %s deu admin level %s para vocк.", deu , GetLevelAdmin(level));
SendClientMessage(id, VERDE, string2);
pAdmin[id][Level] = level;
return 1;
}
CMD:daradmin(playerid, params[])
{
new id, level, string[256], string2[256], ganhou[MAX_PLAYER_NAME], deu[MAX_PLAYER_NAME]; // Variбveis que vamos usar no comando .
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado."); // Verifica se estб na logado na rcon, se nгo, vai manda a mensagem "Vocк nгo estб autorizado." .
if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, 0xAD0000AA, "Use /daradmin [ID] [LEVEL]"); // Estamos usando o sscanf, este comando do sscanf server para usar um parвmetro.
if (level < 1 || level > 5) return SendClientMessage(playerid, 0xFF0000FF, "Level invбlido. Use de 1 б 5 ."); // Isso verifica se vocк digitou o level na forma correta, se nгo manda a mensagem "Level invбlido. Use de 1 б 5 ."
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); // Verifica se o id estб online, se nгo, envia a mensagem "Este jogador nгo estб online."
GetPlayerName(id, ganhou, sizeof(ganhou)); // Isso serve para pegar o nome do player.
GetPlayerName(playerid, deu, sizeof(deu)); // Isso serve para pegar o nome do player.
format(string, sizeof(string), "Vocк deu admin level %s para o %s", GetLevelAdmin(level), ganhou); // Formata a mensagem para ser enviada .
SendClientMessage(playerid, 0x00F6F6AA, string); //Envia a mensagem formatada a cima .
format(string2, sizeof(string2), "O admin %s deu admin level %s para vocк.", deu , GetLevelAdmin(level)); // Formata a mensagem para ser enviada .
SendClientMessage(id, VERDE, string2); //Envia a mensagem a cima.
pAdmin[id][Level] = level; //Muda o level do player para o conforme digitado.
return 1;
}
new arquiva[34], playernome[MAX_PLAYER_NAME];
GetPlayerName(playerid, playernome, sizeof(playernome));
format(arquiva, sizeof(arquiva), "Admins/%s", playernome);
if(DOF2_FileExists(arquiva))
{
DOF2_SetInt(arquiva, "Level", pAdmin[playerid][Level]);
DOF2_SaveFile();
}
else
{
DOF2_CreateFile(arquiva);
DOF2_SetInt(arquiva, "Level", pAdmin[playerid][Level]);
DOF2_SaveFile();
}
new arquivi[34], nomeplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid, nomeplayer, sizeof(nomeplayer));
format(arquivi, sizeof(arquivi), "Admins/%s", nomeplayer);
pAdmin[playerid][Level] = DOF2_GetInt(arquivi, "Level");
new arquiva[34], playernome[MAX_PLAYER_NAME]; //Variбveis que vamos usar .
GetPlayerName(playerid, playernome, sizeof(playernome)); //Geta o nome do player .
format(arquiva, sizeof(arquiva), "Admins/%s", playernome); Formata o local da pasta que vai salvar as contas dos admins .
if(DOF2_FileExists(arquiva)) //Se existir
{
DOF2_SetInt(arquiva, "Level", pAdmin[playerid][Level]); //Criamos o valor de Level na Enum PlayerAdmin,e se a conta existir,atualiza o valor no aquivo da pasta Admin .
DOF2_SaveFile(); //Salva o arquivo .
}
else //Se a conta nгo existir
{
DOF2_CreateFile(arquiva); //Cria o arquivo
DOF2_SetInt(arquiva, "Level", pAdmin[playerid][Level]); //Criamos o valor de Level na Enum PlayerAdmin,e se a conta existir,atualiza o valor no aquivo da pasta Admin .
DOF2_SaveFile(); //Salva o arquivo .
}
new arquivi[34], nomeplayer[MAX_PLAYER_NAME]; //Variбveis que iremos usar .
GetPlayerName(playerid, nomeplayer, sizeof(nomeplayer)); Geta o nome do player
format(arquivi, sizeof(arquivi), "Admins/%s", nomeplayer); //Formata o local da pasta que vai salvar as contas dos admins .
pAdmin[playerid][Level] = DOF2_GetInt(arquivi, "Level"); //Isso vai carregar o valor Level na pasta Admins,no arquivo da conta do admin .
stock GetLevelAdmin(levelid)
{
new str[50];
if(levelid == 1)
{
str = "1";
}
else if (levelid == 2)
{
str = "2";
}
else if (levelid == 3)
{
str = "3";
}
else if (levelid == 4)
{
str = "4";
}
else if (levelid == 5)
{
str = "5";
}
return str;
}
stock GetLevelAdmin(levelid)
{
new str[50]; Variбvel para enviar os levels abaixo.
if(levelid == 1) //Verifica se o level й 1 .
{
str = "1"; //Vai mostrar a frase "O admin Nome deu admin level 1 para vocк."
}
else if (levelid == 2) //Verifica se o level й 2 .
{
str = "2"; //Vai mostrar a frase "O admin Nome deu admin level 2 para vocк."
}
else if (levelid == 3) //Verifica se o level й 3 .
{
str = "3"; //Vai mostrar a frase "O admin Nome deu admin level 3 para vocк."
}
else if (levelid == 4) //Verifica se o level й 4 .
{
str = "4"; //Vai mostrar a frase "O admin Nome deu admin level 4 para vocк."
}
else if (levelid == 5) //Verifica se o level й 5 .
{
str = "5"; //Vai mostrar a frase "O admin Nome deu admin level 5 para vocк."
}
return str;
}
CMD:tiraradmin(playerid, params[])
{
new id, player[MAX_PLAYER_NAME], tirou[MAX_PLAYER_NAME], string[256], string2[256];
if (pAdmin[playerid][Level] != 5) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб autorizado.");
if (sscanf(params, "u", id)) return SendClientMessage(playerid, 0xAD0000AA, "Use /tiraradmin [ID] ");
if (pAdmin[id][Level] < 1) return SendClientMessage(playerid, VERMELHO, "Este player nгo й admin ! ");
GetPlayerName(id, player, sizeof(player));
GetPlayerName(playerid, tirou, sizeof(tirou));
format(string, sizeof(string), "Vocк tirou o admin do %s", player);
SendClientMessage(playerid, 0x00F6F6AA, string);
format(string2, sizeof(string2), "O admin %s tirou seu admin.", tirou);
SendClientMessage(id, VERDE, string2);
pAdmin[playerid][Level] = 0;
return 1;
}
CMD:tiraradmin(playerid, params[])
{
new id, player[MAX_PLAYER_NAME], tirou[MAX_PLAYER_NAME], string[256], string2[256]; //Variбveis que iremos usar no comando .
if (pAdmin[playerid][Level] != 5) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб autorizado."); // Verifica se й admin level 5, se nгo, vai manda a mensagem "Vocк nгo estб autorizado." .
if (sscanf(params, "u", id)) return SendClientMessage(playerid, 0xAD0000AA, "Use /tiraradmin [ID] "); // Estamos usando o sscanf, este comando do sscanf server para usar um parвmetro.
if (pAdmin[id][Level] < 1) return SendClientMessage(playerid, VERMELHO, "Este player nгo й admin ! "); //Verifica se o player digitado no /tiraradmin й admin ou nгo .
GetPlayerName(id, player, sizeof(player)); //Geta o nome do player .
GetPlayerName(playerid, tirou, sizeof(tirou));//Geta o nome do player .
format(string, sizeof(string), "Vocк tirou o admin do %s", player); //Formata a mensagem que serб enviada .
SendClientMessage(playerid, 0x00F6F6AA, string); //Envia a mensagem a cima .
format(string2, sizeof(string2), "O admin %s tirou seu admin.", tirou); //Formata a mensagem que serб enviada .
SendClientMessage(id, VERDE, string2); //Envia a mensagem acima .
pAdmin[playerid][Level] = 0; Muda o valor Level do player para 0 .
return 1;
}
CMD:trazer(playerid, params[])
{
if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, VERMELHO,"Vocк nгo estб autorizado.");
new id, Float: x, Float: y, Float: z, string[256], string2[256], namep[MAX_PLAYER_NAME], namead[MAX_PLAYER_NAME];
if(sscanf(params, "u", id)) return SendClientMessage(playerid, VERMELHO,"Use /trazer [ID]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO,"Este jogador nгo estб online.");
GetPlayerName(playerid, namead, sizeof(namead));
GetPlayerName(id, namep, sizeof(namep));
format(string, sizeof(string), "Trouxe o player %s atй vocк.", namep);
format(string2, sizeof(string2), "O Administrador %s trouxe vocк atй ele.", namead);
SendClientMessage(playerid, Azul_C, string);
SendClientMessage(id, VERDE, string2);
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(id, x+1, y+1, z);
return 1;
}
CMD:trazer(playerid, params[])
{
if(pAdmin[playerid][Level] < 1) return SendClientMessage(playerid, VERMELHO,"Vocк nгo estб autorizado."); //Verifica se o player й admin se nгo for, manda a mensagem "Vocк nгo estб autorizado." .
new id, Float: x, Float: y, Float: z, string[256], string2[256], namep[MAX_PLAYER_NAME], namead[MAX_PLAYER_NAME]; //Variбveis que iremos usar no comando
if(sscanf(params, "u", id)) return SendClientMessage(playerid, VERMELHO,"Use /trazer [ID]"); //Estamos usando o sscanf, este comando do sscanf server para usar um parвmetro.
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO,"Este jogador nгo estб online."); //Verifica se o player estб online , se nгo envia a mensagem "Este jogador nгo estб online." .
GetPlayerName(playerid, namead, sizeof(namead)); //Pega o nome do player.
GetPlayerName(id, namep, sizeof(namep)); //Pega o nome do player .
format(string, sizeof(string), "Trouxe o player %s atй vocк.", namep); //Formata a mensagem que serб enviada .
format(string2, sizeof(string2), "O Administrador %s trouxe vocк atй ele.", namead); //Formata a mensagem que serб enviada .
SendClientMessage(playerid, Azul_C, string); //Envia a mensagem a cima.
SendClientMessage(id, VERDE, string2); //Envia a mensagem acima.
GetPlayerPos(playerid, x, y, z); //Pega a posiзгo do id digitado no comando .
SetPlayerPos(id, x+1, y+1, z); //Muda a posiзгo do player para o id digitado no comando .
return 1;
}
CMD:daradmin(playerid, params[])
{
new id, level, string[256], string2[256], ganhou[MAX_PLAYER_NAME], deu[MAX_PLAYER_NAME];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado.");
if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, 0xAD0000AA, "Use /daradmin [ID] [LEVEL]");
if (level < 0 || level > 5) return SendClientMessage(playerid, 0xFF0000FF, "Level invбlido. Use de 1 б 5 .");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
GetPlayerName(id, ganhou, sizeof(ganhou));
GetPlayerName(playerid, deu, sizeof(deu));
format(string, sizeof(string), "Vocк deu admin level %d para o %s", level, ganhou);
SendClientMessage(playerid, 0x00F6F6AA, string);
format(string2, sizeof(string2), "O admin %s deu admin level %d para vocк.", deu , level);
SendClientMessage(id, VERDE, string2);
pAdmin[id][Level] = level;
return 1;
}
Callback: OnPlayerConnect & OnPlayerDisconnect
format(arquiva, sizeof(arquiva), "Admins/%s.ini", playernome); //Formata o local da pasta que vai salvar as contas dos admins .
Pessoal eu tenho GM baixado da net q tento logar admin e nao da
tipo logo na /rcon login senha da certo porem nao consigo /setaradmin a mim msm vou em scriptfiles na pasta contas e altero o lvl admin la quando eu logo no gm some o q foi alterado. nao sei mais o q fazer. help |