SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] » Sistema de Admin com DOF2 e ZCMD!

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11644
    Moedas : 1032955
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [Tutorial] » Sistema de Admin com DOF2 e ZCMD! Empty [Tutorial] » Sistema de Admin com DOF2 e ZCMD!

    Mensagem por Weslley_Script Qui 26 Ago 2021 - 16:28

    SISTEMA DE ADMIN
    Venho aqui tentar ensinar um sistema Admin básico para vocês usarem como base em sua GameMode!

    Primeiramente vamos declarar as nossas includes!
    Código PHP:
    Código:
    #include a_samp
    #include ZCMD
    #include DOF2
    #include sscanf2 


    1.1 - VARIÁVEIS

    Vamos começar pelas variáveis, primeiro iremos criar um enum para colocar os dados do jogador!


    Código PHP:
    Código:
    enum Player
    {
        Admin


    Explicação:

    Um Enum é uma enumeração para suas variáveis, isso facilita para você não precisar criar por exemplo 50 variáveis para os dados do seu Jogador!

    A Variável "Admin" que nós declaramos ela ira armazenar o Admin Level do seu Jogador!


    Depois de ter declarado o Enum vamos criar uma New para que podemos utilizar essa variável que nós colocamos no nosso Enum!


    Código PHP:
    Código:
    new pInfo[MAX_PLAYERS][Player]; 
     
    O código terá que ficar assim:


    Código PHP:
    Código:
    enum Player
    {
        Admin
    }

    new pInfo[MAX_PLAYERS][Player]; 

    Para que serve o "MAX_PLAYERS"?

    O MAX_PLAYERS Pega a quantidade se slots do seu servidor e verifica os Jogadores Online, e com isso nós podemos utilizar o "playerid".

    2 - COMANDO PARA SETAR O ADMIN!

    Agora iremos fazer o comando para dar Admin ao Jogador! Para nós fazermos isso iremos usar a Include "ZCMD" e a "DOF2" Para armazenamos os Dados!
    Obs: O ZCMD Pode ser substituído pelo Pawn.CMD!
    Vamos fazer a base do comando!
    Citar: escreveu:Código PHP:
    Código:
    CMD:daradmin(playerid, params[])
    {
        return 1;

    Está e a base de um comando usando a Include "ZCMD"! 
    CMD:daradmin é o nome do comando ou seja o /daradmin!
    o params são os parâmetros que serão usados junto do "sscanf2"!
    Com a nossa base do Comando feito iremos declarar algumas variáveis dentro do Comando!
    Código PHP:
    Código:
    CMD:daradmin(playerid, params[])
    {
        new id, level, strganhou[256], strdeu[256], nomedeu[MAX_PLAYER_NAME], nomeganhou[MAX_PLAYER_NAME];
        return 1;


    Agora com as variáveis declaradas vamos fazer uma verificação com o Admin-Rcon para poder usar este comando!
    Código PHP:
    Código:
    CMD:daradmin(playerid, params[])
    {
        new id, level, strganhou[256], strdeu[256], nomedeu[MAX_PLAYER_NAME], nomeganhou[MAX_PLAYER_NAME];
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Você não tem autorização para usar este comando!");

        return 1;


    Agora vamos usar o "sscanf2" para verificar se o Autor do comando está digitando os valores certos!
    Código PHP:
    Código:
    if(sscanf(params, "dd", id, level)) return SendClientMessage(playerid, 0xFF0000FF, "Use /daradmin [ID] [LEVEL]"); 

    O que é este "dd"?

    Este "dd" são os tipos dos valores!

    o "d" é um valor numérico!
    o "i" é um valor inteiro!
    o "f" é valor float, ou seja um número decimal!
    o "s" é uma String!

    Agora vamos fazer a função que da a tag de admin ao jogador!
    Código PHP:
    Código:
    CMD:daradmin(playerid, params[])
    {
        new id, level, strganhou[256], strdeu[256], nomedeu[MAX_PLAYER_NAME], nomeganhou[MAX_PLAYER_NAME];
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Você não tem autorização para usar este comando!");
        if(sscanf(params, "dd", id, level)) return SendClientMessage(playerid, 0xFF0000FF, "Use /daradmin [ID] [LEVEL]");
        
        //FUNÇÃO
        
        GetPlayerName(playerid, nomedeu, MAX_PLAYER_NAME);
        GetPlayerName(playerid, nomeganhou, MAX_PLAYER_NAME);
        
        format(strganhou, sizeof(strganhou), "O Admin %s te deu Admin Level %d!", nomedeu, level);
        format(strdeu, sizeof(strdeu), "Voce deu Admin Level %d para %s[%d]", level, nomeganhou, id);
        
        SendClientMessage(playerid, 0x00FF00FF, strdeu);
        SendClientMessage(id, 0x00FF00FF, strganhou);
        
        pInfo[id][Admin] = level;
        return 1;


    O GetPlayerName pega o Nick do Jogador e coloca em uma variável, no nosso caso e a nomeganhou e nomedeu!

    O %s e %d é a mesma premissa do "s" e "d" mas ali formata a mensagem com os dados: id do jogador e o level!

    Agora vamos fazer uma stock para Salvar os dados!
    Código PHP:
    Código:
    stock SalvarDados(playerid)
    {
         new arquivo[40], pnome[MAX_PLAYER_NAME];
         GetPlayerName(playerid, pnome, MAX_PLAYER_NAME);
         format(arquivo, sizeof(arquivo), "Contas/%s.ini", pnome); //Aqui nos formatamos o arquivo aonde será guardado a conta do nosso jogador!

        if(!DOF2_FileExists(arquivo)) DOF2_CreateFile(arquivo) // Aqui nos verificamos se a conta do jogador existe, se não cria uma!
        DOF2_SetInt(arquivo, "Admin", pInfo[playerid][Admin]);
        DOF2_SaveFile();
        return 1; // returna true


    Agora vamos Colocar a Função"DOF2_Exit();" e a SalvarDados no OnGameModeExit()
    Código PHP:
    Código:
    public OnGameModeExit()
    {
        DOF2_Exit();
        for(new i = 0; i < MAX_PLAYERS; i++) // Um loop para pegar todos os Jogador Onlines!
        {
            SalvarDados(i); // Salva os Dados de todos os Jogadores que estiverem Online!
        }
        return 1; 


    E vamos colocar o SalvarDados no Nosso Comando também!
    Código PHP:
    Código:
    CMD:daradmin(playerid, params[])
    {
        new id, level, strganhou[256], strdeu[256], nomedeu[MAX_PLAYER_NAME], nomeganhou[MAX_PLAYER_NAME];
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Você não tem autorização para usar este comando!");
        if(sscanf(params, "dd", id, level)) return SendClientMessage(playerid, 0xFF0000FF, "Use /daradmin [ID] [LEVEL]");
        
        //FUNÇÃO
        
        GetPlayerName(playerid, nomedeu, MAX_PLAYER_NAME);
        GetPlayerName(playerid, nomeganhou, MAX_PLAYER_NAME);
        
        format(strganhou, sizeof(strganhou), "O Admin %s te deu Admin Level %d!", nomedeu, level);
        format(strdeu, sizeof(strdeu), "Voce deu Admin Level %d para %s[%d]", level, nomeganhou, id);
        
        SendClientMessage(playerid, 0x00FF00FF, strdeu);
        SendClientMessage(id, 0x00FF00FF, strganhou);
        
        pInfo[id][Admin] = level;
        SalvarDados(id); //Salva os Dados do Jogador!
        return 1;



    Esse foi o tutorial, espero que vocês tenham gostado! Ainda estou me acostumando a esse novo fórum então foi bem simples esse tutorial [Tutorial] » Sistema de Admin com DOF2 e ZCMD! Biggrin

    Podem deixar críticas afinal ninguém e perfeito!

    Obs: Não consegui upar as includes aqui sorry :/
    Creditos: Rochazig



    [Tutorial] » Sistema de Admin com DOF2 e ZCMD! D07Xwqb
    [Tutorial] » Sistema de Admin com DOF2 e ZCMD! Yjab9HN

      Data/hora atual: Qua 27 Nov 2024 - 6:32