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] Usando processador de comandos PawnCMD + sscanf

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Usando processador de comandos PawnCMD + sscanf Empty [Tutorial] Usando processador de comandos PawnCMD + sscanf

    Mensagem por Weslley_Script Seg 20 Mar 2023 - 6:57

    • Introduзгo

    Ola pessoal do forum SAMP, estou trazendo um tutorial de como usar o processador de comandos PawnCMD
    para a Board PT/BR do forum pois vejo que poucos membros falar sobre e usar.
    Apesar de bem simples muitos nгo conhecem ainda ou tem receio de usб-la.
    Ja uso a algum tempo e recomendo, bem simples de usar e na minha opniгo bem mais rбpido e prбtico.

    Pawn.CMD - um novo processador de comando que funciona atravйs de um plugin.
    Este plugin й compatнvel com qualquer versгo do SA:MP.

    Seu uso e bastante parecido com ZCMD, porem nos testes do autor,
    a PawnCMD se destaca na velocidade de resposta comparada entre os outros processadores de comandos.
    Veja a imagem: (atraso entre RPC_ServerCommand receber e chamada cmd_test (1k comandos))

    [Tutorial] Usando processador de comandos PawnCMD + sscanf V43AinV



    • Instalaзгo

    Para comeзar, devemos baixar a versгo atualizada do Plugin/Include Download

    Код:

    Código:
    Pawn.CMD.inc


    Adicionar a include na pasta include do Pawno.

    Код:

    Código:
    pawncmd.dll


    Adicionar o plugin na pasta plugins na raiz do servidor. .dll se for windowns
    Код:

    Código:
    pawncmd.so


    .so se for Linux.

    Edite "server.cfg" e adicione pawncmd na linha plugins.



    • Exemplo de uso

    Exemplo de uso com comando simples sem uso de parametros:

    PHP код:

    Código:
    #include <Pawn.CMD>
    CMD:jetpack(playerid, params[]) // comando simples para criar uma jetpack
    {
        SetPlayerSpecialAction(playerid, 2);
        SendClientMessage(playerid, -1, "Jetpack criada com sucesso.");
        return 1;
    }
    CMD:colete(playerid, params[]) // comando simples para criar um colete
    {
        SetPlayerArmour(playerid, 100);
        SendClientMessage(playerid, -1, "Colete adicionado com sucesso.");
        return 1;



    Exemplo de uso com paramentros. Usaremos sscanf para exemplo:

    PHP код:

    Código:
    #include <Pawn.CMD>
    #include <sscanf2>
    CMD:kick(playerid, params[])
    {
        new ID;
        if(sscanf(params, "u", ID)) return SendClientMessage(playerid, -1, "Uso correto /kick [ID]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "Erro, id invalido.");
        SendClientMessage(playerid, -1, "Comando efetuado com sucesso.");
        SendClientMessage(ID, -1, "Vocк foi kickado por um admin.");
        SetTimerEx("Kickar", 100, false, "i", ID);
        return 1;
    }
    forward Kickar(playerid);
    public Kickar(playerid) return Kick(playerid); 

    Simples não é ?



    • Uso de comandos adicionais

    Para usar comandos adicionais com a mesma funзхes usaremos alias exemplos:


    PHP код:

    Código:
    CMD:jetpack(playerid, params[]) // comando simples para criar uma jetpack
    {
        SetPlayerSpecialAction(playerid, 2);
        SendClientMessage(playerid, -1, "Jetpack criada com sucesso.");
        return 1;
    }
    alias:jetpack("criarjetpack", "cjet"); // Ou seja, /criarjetpack ou /cjet tem a mesma funзгo que /jetpack 


    • Uso de restriзхes em comandos

    Para criar restriзгo nos comandos podemos usar a callback OnPlayerCommandReceived
    Veja exemplos:

    Código:
    #include <Pawn.CMD>
    #include <sscanf2>
    new CMD_ADMIN = 1;
    flags:jetpack(CMD_ADMIN); // Use flags:cmd(CMD_ADMIN) para restringir o comando, lembre se de criar a restriзгo em OnPlayerCommandReceived
    flags:kick(CMD_ADMIN);
    CMD:jetpack(playerid, params[])
    {
        SetPlayerSpecialAction(playerid, 2);
        SendClientMessage(playerid, -1, "Jetpack criada com sucesso.");
        return 1;
    }
    CMD:kick(playerid, params[])
    {
        new ID;
        if(sscanf(params, "u", ID)) return SendClientMessage(playerid, -1, "Uso correto /kick [ID]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "Erro, id invalido.");
        SendClientMessage(playerid, -1, "Comando efetuado com sucesso.");
        SendClientMessage(ID, -1, "Vocк foi kickado por um admin.");
        SetTimerEx("Kickar", 100, false, "i", ID);
        return 1;


    Código:
    public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
    {
        if((flags & CMD_ADMIN) && Admin[playerid] == 0) // Deve se trocar "Admin[playerid]" pela variavel de admin usada em seu GM.
        {
            SendClientMessage(playerid, -1, "Erro, comando restrito a administradores.");
             return 0;
        }
        return 1;



    • Inexistencia de comando digitado

    Use a callback OnPlayerCommandPerformed para o player receber a mensagem de inexistencia de comando:

    Código:
    public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
    {
        if(result == -1)
        {
            SendClientMessage(playerid, -1, "Erro, comando inexistente.");
            return 0;
        }
        return 1;



    • Forзar player a usar o comando

    Use callcmd para forзar player a usar um determinado comando:

    PHP код:

    Código:
    public OnPlayerSpawn(playerid)
    {
        callcmd::jetpack(playerid, ""); // exemplo forзaremos o player usar o comando /jetpack quando ele spawnar
        return 1;
    }
    CMD:jetpack(playerid, params[])
    {
        SetPlayerSpecialAction(playerid, 2);
        SendClientMessage(playerid, -1, "Jetpack criada com sucesso.");
        return 1;



    • Download & Creditos

    Download GitHub
    Criador da PawnCMD: YourShadow

    Qualquer dъvida e erros por favor me informar.



    [Tutorial] Usando processador de comandos PawnCMD + sscanf D07Xwqb
    [Tutorial] Usando processador de comandos PawnCMD + sscanf Yjab9HN

      Data/hora atual: Ter 7 maio 2024 - 18:45