[Include] h_Cmd | Processador de comandos
#1

h_Cmd


O h_Cmd tem o principal intuito de processar os comandos com facilidade e ainda excluir o famoso uso do sscanf em comandos. Ele й baseado em CallLocalFunction e uma funзгo de Split (divisгo por delimitadores).


Funзхes
pawn Код:
SPLIT<nъmero> //Utilizada para buscar uma string de um argumento do comando.
SPLIT_INT<nъmero> //Utilizada para buscar um nъmero de um argumento do comando.
SPLIT_FLOAT<nъmero> //Utilizada para buscar uma float  de um argumento do comando.
TOTAL_SPLIT<> //Retorna o total de argumentos colocados no comando.. Exemplo: "/x [arg1] [arg2] [arg3]" retornarб o valor 3.
forward OnPlayerExecuteCommand(playerid, cmdtext[], bool:sucess); //Callback destinada a bloquear ou detectar se o comando nгo existe.
Aprenda
pawn Код:
h_Cmd("/gta")
{
    SendClientMessage(playerid, -1, "Estou testando");
    return true;
}

h_Cmd("/telepos")
{
    if(TOTAL_SPLIT<> != 3) //TOTAL_SPLIT<> Retorna o valor total de argumentos no exemplo aqui й 3.
    {
        SendClientMessage(playerid, -1, "Uso: /telepos [X] [Y] [Z]");
        return true;
    }
    SetPlayerPos(playerid, SPLIT_FLOAT<1>, SPLIT_FLOAT<2>, SPLIT_FLOAT<3>); //SPLIT_FLOAT<numero> obtem o valor da posiзгo coloca em um nъmero decimal.
    return true;
}

h_Cmd("/anunciar")
{
    if(!TOTAL_SPLIT<>) //Se TOTAL_SPLIT<> retornar 0 significa que nгo foi digitado nada depois de /anunciar
    {
        SendClientMessage(playerid, -1, "Uso: /anunciar [Anuncio]");
        return true;
    }
    new string[144];
    format(string, 144, "ANЪNCIO GLOBAL: %s",SPLIT<1>); //SPLIT<nъmero> pega o argumento nъmero 1 utilizado no comando. Exemplo: /anunciar [Argumento 1].. Retorna em string.
    SendClientMessageToAll(-1, string);
    return true;
}

h_Cmd("/meunumero")
{
    if(!TOTAL_SPLIT<>) //Se TOTAL_SPLIT<> retornar 0 significa que nгo foi digitado nada depois de /anunciar
    {
        SendClientMessage(playerid, -1, "Uso: /meunumero [Nъmero]");
        return true;
    }
    new string[144];
    format(string, 144, "NЪMERO GLOBAL: %d",SPLIT_INT<1>); //SPLIT_INT<nъmero> pega o argumento nъmero 1 utilizado no comando. Exemplo: /meunumero [Argumento 1].. Retorna em nъmero.
    SendClientMessageToAll(-1, string);
    return true;
}

public OnPlayerExecuteCommand(playerid, cmdtext[], bool:sucess)
{
    if(sucess == false) return SendClientMessage(playerid, 0xFFFF00FF, "COMANDO INEXISTENTE"); //Exemplo de erro de comando inexistente.
    if(!strcmp(cmdtext, "/gta", true))//Exemplo de bloqueio de comando
    {
        SendClientMessage(playerid, -1, "COMANDO BLOQUEADO");
        return false;
    }
    return true;
}
Importante
  1. Como todos outros sistemas de processadores de comando o h_Cmd vai bloquear os comandos criados em OnPlayerCommandText(); no script que for utilizar esta include.
Instalaзгo
  1. Insira a include depois da include "a_samp".
Download da Include Changelog
  • 0.1 Versгo inicial.
Crйditos
Atenзгo:
Nгo dou permissгo para qualquer suposta postagem em outro forum ou parte deste forum.
Reply


Messages In This Thread
h_Cmd | Processador de comandos - by Mr.Hardy - 04.04.2014, 17:14
Re: h_Cmd | Processador de comandos - by shittt - 04.04.2014, 17:52
Re: h_Cmd | Processador de comandos - by Adejair - 04.04.2014, 19:16
Re: h_Cmd | Processador de comandos - by Mr.Hardy - 04.04.2014, 19:20
Re: h_Cmd | Processador de comandos - by WLSF - 04.04.2014, 19:43
Re: h_Cmd | Processador de comandos - by BieeelEvolution - 04.04.2014, 19:44
Re: h_Cmd | Processador de comandos - by Mr.Hardy - 04.04.2014, 20:37
Re: h_Cmd | Processador de comandos - by yiakin - 04.04.2014, 20:42
Re: h_Cmd | Processador de comandos - by WLSF - 04.04.2014, 20:50
Re: h_Cmd | Processador de comandos - by Mr.Hardy - 04.04.2014, 20:58

Forum Jump:


Users browsing this thread: 3 Guest(s)