SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 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] Como fazer um sistema de administrador usando DOF2, iCMD 7 e SSCANF2!

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11380
    Moedas : 1031984
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Como fazer um sistema de administrador usando DOF2, iCMD 7 e SSCANF2! Empty [Tutorial] Como fazer um sistema de administrador usando DOF2, iCMD 7 e SSCANF2!

    Mensagem por Weslley_Script Qui 4 maio 2023 - 6:14

    Bom, sou iniciante em peão e ainda não aprendi muita coisa.. Mas estou sempre tentando adquirir conhecimento e repassar o mesmo..

    Então, eu vim hoje criar um tutorial simples de como começar a criar seu sistema de administração no SA:MP.

    Bom, para começar você precisa criar uma variável do tipo global para armazenar o nível de administrador do jogador.
    peão Код:

    Código:
    //No topo do script:
    new iAdmin [ MAX_PLAYERS ] ;
    /*
    Explicação:
    new = Cria a variável.
    iAdmin = Nome da variável.
    MAX_PLAYERS = Total de jogadores.
    ; = Encerra a linha.
    */


    Depois de ter feito isso, vamos na callback OnPlayerConnect.
    ( Procure por público OnPlayerConnect )

    Quando estiver nela, vamos verificar se o jogador está conectado ao administrador ou nгo.
    Para isso faz o seguinte:
    peão Код:

    Código:
    public OnPlayerConnect ( playerid )  {
        novo arquivo [ 70 ] , snd [ MAX_PLAYER_NAME ] ;
        GetPlayerName ( playerid, snd, sizeof snd ) ;
        formato ( arquivo, tamanho do arquivo, "Administradores/%s.ini" , snd ) ;
    /*
    Explicação do GetPlayerName:
    playerid = ID Único do jogador que se conectou.
    snd = variavel local que foi criada para armazenar o nome do jogador.
    */
        if ( DOF2_FileExists( arquivo ) )  {
             iAdmin [ playerid ]  = DOF2_GetInt ( arquivo, "Admin" ) ;
        }
    /*


    Explicação:

    Código:
    DOF2_FileExists = Checa se o arquivo existe.
    DOF2_GetInt = Geta o valor inteiro da linha Admin do arquivo definido pelo formato.
    */
        retorna verdadeiro;
    }


    Isso irá checar se na pasta Administradores hÁ o nome do jogador que se conectou.
    Se houver irá definir o valor na variável iAdmin.

    Mas aí você pergunta, como definir o administrador?
    Simples! Caso esteja usando o iCMD, obtenha um callback OnPlayerCommandText e siga os passos:
    peão Код:

    Código:
    public OnPlayerCommandText ( playerid, commandid, params [ ] )  {  // Cria um callback.
        switch ( commandid )  {
            case iscmd ( "s,e,t,a,d,m" ) :  {
                novo id; // Variavel que irá armazenar o id do jogador desejado!
                novo nível; // irá armazenar o nível de administrador.
                novo arquivo [ 70 ] , snd [ MAX_PLAYER_NAME ] ;
                if ( sscanf ( parametros, "ui",id,nivel ) )
                    return SendClientMessage ( playerid, 0xC0C0C0AA, "Use: /setadm [playerid] [nivel]" ) ;
                   
                GetPlayerName ( id, snd, sizeof snd ) ;
                formato ( arquivo, tamanho do arquivo, "Administradores/%s.ini" , snd ) ;
                   
                if ( ! DOF2_FileExists ( arquivo ) )  {
                     DOF2_CreateFile ( arquivo ) ; // caso o nome dele não esteja na pasta administradores.
                }
                 DOF2_SetInt ( arquivo, "Admin" , nível ) ; // irá setar na linha Admin o valor do nível desejado.
                DOF2_SalvarArquivo ( ) ; // salva e fecha o arquivo.
               
                iAdmin [ id ]  = nível; // irá definir o nível para ele!
                retornar verdadeiro;
            }
        }
        retorna falso;
    }


    A Base do seu sistema de administração já está criada!
    Nгo se esqueзa de criar a pasta Administradores na sua scriptfiles...

    Hб, nгo sou bom com explicaзхes mas espero que o tutorial seja legal!
    peão Код:

    Código:
    //----------------- COMANDOS QUE PODEM SER ÚTEIS -------------------------- ---//
    case iscmd ( "a,d,m,i,n,s" ) :  {
        new string [ 128 ] ,
            snd [ MAX_PLAYER_NAME ] ;
        SendClientMessage ( playerid, 0xC0C0C0AA, "[ Administradores Online ]" ) ;
        for ( new i =  0 ; i < GetMaxPlayers ( ) ; i ++ )  {
             GetPlayerName ( i, snd,sizeof snd ) ;
            if ( iAdmin [ i ]  >  0 )  {
                format ( string, sizeof string, "Administrador: %s Nivel: %d" , snd, iAdmin [ i ] ) ;
                SendClientMessage ( playerid, 0xFFFFFFAA, string ) ;
            }
        }
        retorna verdadeiro;
    }
    case iscmd ( "k,i,c,k" ) :  {
        nova string [ 128 ] ,
            snd [ MAX_PLAYER_NAME ] ,
            snd2 [ MAX_PLAYER_NAME ] ,
            id;
        if ( iAdmin [ playerid ]  ==  0 )  return SendClientMessage ( playerid, oxC0C0C0AA, "Apenas Administradores." ) ;
        if ( sscanf ( params, "u" , id ) )  return SendClientMessage ( playerid, 0xC0C0CAA, "Use: /kick [playerid]" ) ;
        GetPlayerName( playerid, snd, sizeof snd ) ;
        GetPlayerName ( id, snd2, sizeof snd2 ) ;
        SendClientMessage ( playerid, 0xC0C0C0AA, "[Aviso da Administração]" ) ;
        format ( string, sizeof string, "O Administrador %s acaba de kikar %s." , snd, snd2 ) ;
        SendClientMessageToAll ( 0xFFFFFFAA, string ) ;
        retornar verdadeiro;
    }


    Creditos: Imput



    [Tutorial] Como fazer um sistema de administrador usando DOF2, iCMD 7 e SSCANF2! D07Xwqb
    [Tutorial] Como fazer um sistema de administrador usando DOF2, iCMD 7 e SSCANF2! Yjab9HN

      Data/hora atual: Sáb 11 maio 2024 - 18:37