Portal SAMP
[Tutorial] Sistema De admin - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Sistema De admin (/showthread.php?tid=1925)



Sistema De admin - LouzinDS - 13/12/2021

Ola me chamo Louzin_DS e hj eu vou fazer meu primeiro tutorial no forum 
espero q gostem
SISTEMA DE ADMIN

bom pra começar devemos colocar uma enum nas informaçoes do player ou seja


Código:
enum pInfo
{
     pAdmin
}
new PlayerInfo[MAX_PLAYERS][pInfo];



apos isso voce deve criar uma stock para armazenar o nivel admin do player
para isso crie


Código:
stock SAVEADMIN(playerid)
{
     return 1;
}

apos isso crie uma variavel para formatar ela para onde esta armazenada as informaçoes do player e salvar em DOF2


Código:
stock SAVEADMIN(playerid)
{
    new file[128];    
    format(file, sizeof(file), Pasta_Contas, PlayerName(playerid))
    return 1;
}

apos isso nos armazenaremos o nivel admin
Código:
stock SAVEADMIN(playerid) {     new file[128];         format(file, sizeof(file), Pasta_Contas, PlayerName(playerid))     DOF2_SetInt(file, "LevelAdmin", PlayerInfo[playerid][pAdmin]);     return 1; }


agora nos vamos criar uma stock para carregar essa informaçao qnd o player entrar
Código:
stock Carregaradmin(playerid)
{
    new file[128];   
    format(file, sizeof(file), Pasta_Contas, PlayerName(playerid))
    PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file, "LevelAdmin");
    return 1;
}

agora vamos para a parte de setar o admin no player


Código:
CMD:criaradmin(playerid, params[])
{

if(PlayerInfo[playerid][pAdmin] < 3002)
{
SendClientMessage(playerid, COLOR_GRAD1, "Voce nao pode usar esse comando!");
return 1;
}
new para1,level,funcao[21];
if(sscanf(params, "uds[21]", para1, level, funcao))
{
SendClientMessage(playerid, MSG_USER, "Modo Correto: /criaradmin [ID do Player] [Nivel] [Funcao]");
return 1;
}
if(PlayerInfo[playerid][pAdmin] == 3000 && level > 1337)
{
SendClientMessage(playerid, 0xFF0000FF, " voce nao pode criar admin Nivel acima de 1337!");
return true;
}
if(level > 5000)
{
SendClientMessage(playerid, [color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]0xFF0000FF[/font][/size][/color], " nao se pode criar um admin com Nivel maior que 5003");
return true;
}
new letras = strlen(funcao);
if(letras < 1 && letras > 20)
return SendClientMessage(playerid, COLOR_GRAD1, " Voce nao pode usar menos que 1 e nem mais que 20 letras na funcao.");
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(IsPlayerConnected(para1))
{


new string[MAX_STRING];
if(level == 0)
{
format(string, sizeof(string), "Voce retirou %s de admin.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Voce foi retirado de admin, pelo admin %s", sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
PlayerInfo[para1][pAdmin] = 0;
admtrampando[para1] = 0;
SetPlayerToTeamColor(para1);
SetPlayerHealth(para1, 100);
getdate(year, month, day);
gettime(hour,minute,second);
format(string, sizeof(string), "%s retirou o admin de %s", sendername, giveplayer);
return true;
}
format(string, sizeof(string), "Voce foi promovido a Nivel %d de admin,com a Funcao de %s, pelo admin %s", level, PlayerInfo[para1][pFuncao], sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "[Promocao]: [%s] Foi Promovido Para Nivel [%d] De Admin Por [%s].", giveplayer, level, sendername);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
PlayerInfo[para1][pAvaliacoes] = 1;
PlayerInfo[para1][pAFinal] = 1;
SetPlayerToTeamColor(para1);
SetPlayerHealth(para1, 99999);
format(string, sizeof(string), "%s deu admin Nivel %s para %s,com a funcao de %s", sendername, level, giveplayer, PlayerInfo[para1][pFuncao]);
PlayerInfo[para1][pAdmin] = level;
}
return 1;
}

ae rapaziada agr e so fazer os comandos so pra admin ex:


pra pegar admin de inicio

Código:
CMD:pegaradm(playerid)
{
      PlayerInfo[playerid][pAdmin] = 5000;
       return 1;
}


agr e so ir verificando
EX:

Código:
CMD:dargrana(playerid)
{
      if(PlayerInfo[playerid][pAdmin] == 5000)
      {
          executar funçao tal
       }
       else 
       {
             executar tal funçao
        }



E FOI ESSE MEU TUTORIAL ESPERO Q GOSTEM


RE: Sistema De admin - geek - 13/12/2021

boa iniciativa , poderia ter colocado em código para facilitar a leitura dos usuários, e explicar melhor cada função com comentários.


RE: Sistema De admin - ipsLuan - 13/12/2021

Tá, mas cadê o tutorial?


RE: Sistema De admin - xbruno1000x - 13/12/2021

Sua intenção foi boa, mas um tutorial deveria explicar o porquê do uso de tais funções e códigos. Seu tutorial está apenas mostrando códigos úteis e também não formatou nenhum código com [code ] CÓDIGO AQUI [ /code]

Ele deveria ficar assim:
Código:
CÓDIGO AQUI



RE: Sistema De admin - Mist - 19/09/2023

Código:
teste