[Tutorial] Usando processador de comandos PawnCMD + sscanf
#1

• 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))





• Instalaзгo

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

Код:
Pawn.CMD.inc
Adicionar a include na pasta include do Pawno.

Код:
pawncmd.dll
Adicionar o plugin na pasta plugins na raiz do servidor. .dll se for windowns
Код:
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 код:
#include <Pawn.CMD>
CMD:jetpack(playeridparams[]) // comando simples para criar uma jetpack
{
    
SetPlayerSpecialAction(playerid2);
    
SendClientMessage(playerid, -1"Jetpack criada com sucesso.");
    return 
1;
}
CMD:colete(playeridparams[]) // comando simples para criar um colete
{
    
SetPlayerArmour(playerid100);
    
SendClientMessage(playerid, -1"Colete adicionado com sucesso.");
    return 
1;


Exemplo de uso com paramentros. Usaremos sscanf para exemplo:

PHP код:
#include <Pawn.CMD>
#include <sscanf2>
CMD:kick(playeridparams[])
{
    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"100false"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 код:
CMD:jetpack(playeridparams[]) // comando simples para criar uma jetpack
{
    
SetPlayerSpecialAction(playerid2);
    
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:

PHP код:
#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(playeridparams[])
{
    
SetPlayerSpecialAction(playerid2);
    
SendClientMessage(playerid, -1"Jetpack criada com sucesso.");
    return 
1;
}
CMD:kick(playeridparams[])
{
    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"100false"i"ID);
    return 
1;

PHP код:
public OnPlayerCommandReceived(playeridcmd[], 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:

PHP код:
public OnPlayerCommandPerformed(playeridcmd[], params[], resultflags)
{
    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 код:
public OnPlayerSpawn(playerid)
{
    
callcmd::jetpack(playerid""); // exemplo forзaremos o player usar o comando /jetpack quando ele spawnar
    
return 1;
}
CMD:jetpack(playeridparams[])
{
    
SetPlayerSpecialAction(playerid2);
    
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.
Reply


Messages In This Thread
Usando processador de comandos PawnCMD + sscanf - by Cleyson - 08.12.2017, 17:55
Re: Usando processador de comandos PawnCMD + sscanf - by Buda - 08.12.2017, 18:39
Re: Usando processador de comandos PawnCMD + sscanf - by C4rtm4n - 08.12.2017, 19:06
Re: Usando processador de comandos PawnCMD + sscanf - by Pool - 08.12.2017, 19:18
Re: Usando processador de comandos PawnCMD + sscanf - by Whoo - 08.12.2017, 19:27
Re: Usando processador de comandos PawnCMD + sscanf - by Locky_ - 08.12.2017, 19:35
Re: Usando processador de comandos PawnCMD + sscanf - by Cleyson - 08.12.2017, 21:05
Re: Usando processador de comandos PawnCMD + sscanf - by IlanZ - 08.12.2017, 23:38
Re: Usando processador de comandos PawnCMD + sscanf - by NathanT - 10.12.2017, 00:40
Re: Usando processador de comandos PawnCMD + sscanf - by ViDaLoKa1 - 10.12.2017, 01:36
Re: Usando processador de comandos PawnCMD + sscanf - by MediaCL - 13.12.2017, 00:39
Re: Usando processador de comandos PawnCMD + sscanf - by Locky_ - 13.12.2017, 00:48
Re: Usando processador de comandos PawnCMD + sscanf - by Marllun - 13.12.2017, 00:53
Re: Usando processador de comandos PawnCMD + sscanf - by GSFBart - 13.12.2017, 11:11
Re: Usando processador de comandos PawnCMD + sscanf - by Gguiz - 16.12.2017, 03:07
Re: Usando processador de comandos PawnCMD + sscanf - by Locky_ - 16.12.2017, 11:25
Re: Usando processador de comandos PawnCMD + sscanf - by Cleyson - 18.12.2017, 00:49
Re: Usando processador de comandos PawnCMD + sscanf - by Gguiz - 18.12.2017, 05:16
Re: Usando processador de comandos PawnCMD + sscanf - by Cleyson - 18.12.2017, 19:35
Re: Usando processador de comandos PawnCMD + sscanf - by Benner - 18.12.2017, 19:42
Re: Usando processador de comandos PawnCMD + sscanf - by Cleyson - 30.01.2018, 14:18
Re: Usando processador de comandos PawnCMD + sscanf - by Sky™ - 31.01.2018, 14:13
Re: Usando processador de comandos PawnCMD + sscanf - by Cycle - 31.01.2018, 14:24
Re: Usando processador de comandos PawnCMD + sscanf - by F1N4L - 31.01.2018, 15:39
Re: Usando processador de comandos PawnCMD + sscanf - by Sky™ - 31.01.2018, 15:49
Re: Usando processador de comandos PawnCMD + sscanf - by Marllun - 14.02.2018, 04:49
Re: Usando processador de comandos PawnCMD + sscanf - by Cleyson - 15.02.2018, 17:34
Re: Usando processador de comandos PawnCMD + sscanf - by Marllun - 16.02.2018, 02:34

Forum Jump:


Users browsing this thread: 1 Guest(s)