04.04.2014, 17:14
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.
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;
}
- 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.
- Insira a include depois da include "a_samp".
- 0.1 Versгo inicial.
- v0.1 | Mr.Hardy - Criador.
- v0.1 | Split - Autor desconhecido < https://sampwiki.blast.hk/wiki/Code_Snippets#Split >
Atenзгo:
Nгo dou permissгo para qualquer suposta postagem em outro forum ou parte deste forum.
Nгo dou permissгo para qualquer suposta postagem em outro forum ou parte deste forum.