Portal SAMP
[Tutorial] Pawn.CMD » Processador de comandos - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Pawn.CMD » Processador de comandos (/showthread.php?tid=108)



Pawn.CMD » Processador de comandos - Nyft - 30/09/2020

• Introdução

Bom, com a ida do fórum muitos códigos e tutoriais úteis foram "embora", e um deles foi o Pawn.CMD. Então estou aqui para reviver essa Include/Plugin criado por kartusis e trazer aqui para o Portal SA-MP.

Realmente vejo muitas pessoas usando o ZCMD e não conhecem ou não tem curiosidade de pesquisar sobre a Include/Plugin. É um plugin que é compatível com qualquer versão do SA-MP.


 Instalação


Para começar, acesse o link do GitHub para baixar a include e o plugin mais atualizado.

Download: Pawn.CMD Releases (GitHub)
  • Pawn.CMD.inc » Adicione a include na pasta "include" localizada na pasta "pawno" do seu servidor.
  • pawncmd.dll » Caso você utiliza Windows, adicione o plugin "pawncmd.dll" na pasta "plugins" do seu servidor.
  • pawncmd.so » Caso você utiliza Linux, adicione o plugin "pawncmd.so" na pasta "plugins" do seu servidor.
Com isso, você deve adicionar uma linha chamada "plugins" no arquivo "server.cfg" e na frente desta linha, dê um espaço e escreva: pawncmd

 Usando

Um exemplo simples sem usar parâmetros:


Código PHP:
#include Pawn.CMD


CMD:colete(playerid)
{
    SetPlayerArmour(playerid100.0);
    SendClientMessage(playerid, -1"[!] Colete concedido com sucesso.");
    return 1;



Um exemplo com parâmetros utilizando o sscanf:

Código PHP:
#include sscanf2
#include Pawn.CMD


CMD:kick(playeridparams[])
{
    if(
sscanf(params"u"id))
    
    return SendClientMessage(playerid, -1"[!] Use: /kick (id)");
    
    
    
if(!IsPlayerConnected(id))
    
    return SendClientMessage(playerid, -1"[!] ID não encontrado.");

    
Kick(id);
    
SendClientMessage(playerid, -1"[!] Comando efetuado com sucesso.");
    return 
1;


 Parâmetros adicionais

  • alias

Um método de usar comandos diferentes para um único comando:

Código PHP:
#include Pawn.CMD


CMD:colete(playerid)
{
    SetPlayerArmour(playerid100.0);
    SendClientMessage(playerid, -1"[!] Colete concedido com sucesso.");
    return 1;
}

alias:colete("armour""pegarcolete");

// "armour" e "pegarcolete" terá a mesma função que o "/colete". 

  • flags

Um método de criar restrições nos comandos para usar na public "OnPlayerCommandReceived".

Código PHP:
#include sscanf2
#include Pawn.CMD


new COMMAND_ADMIN 1;


flags:kick(COMMAND_ADMIN);
flags:colete(COMMAND_ADMIN);


CMD:kick(playeridparams[])
{
    if(
sscanf(params"u"id))
    
    return SendClientMessage(playerid, -1"[!] Use: /kick (id)");
    
    
    
if(!IsPlayerConnected(id))
    
    return SendClientMessage(playerid, -1"[!] ID não encontrado.");

    
Kick(id);
    
SendClientMessage(playerid, -1"[!] Comando efetuado com sucesso.");
    return 
1;
}

CMD:colete(playerid)
{
    SetPlayerArmour(playerid100.0);
    SendClientMessage(playerid, -1"[!] Colete concedido com sucesso.");
    return 1;


Código PHP:
public OnPlayerCommandReceived(playeridcmd[], params[], flags)
{
    if(!IsPlayerAdmin(playerid) && (flags COMMAND_ADMIN))
    {
        SendClientMessage(playerid, -1"[!] Você não tem permissão.");
        return 0;
    }
    return 1;


  • callcmd

Para forçar o player a usar algum comando basta usar callcmd, exemplo:

Código PHP:
#include Pawn.CMD


public OnPlayerSpawn(playerid)
{
    
callcmd::colete(playerid);
    return 
1;
}

CMD:colete(playerid)
{
    SetPlayerArmour(playerid100.0);
    SendClientMessage(playerid, -1"[!] Colete concedido com sucesso.");
    return 1;


Isso vai fazer com que o player seja "forçado" a nascer com 100.0 de colete.

• Inexistência do comando

Para mandar uma mensagem de erro se caso o comando não existir basta usar a public "OnPlayerCommandPerformed".

Código PHP:
public OnPlayerCommandPerformed(playeridcmd[], params[], resultflags)
{
    if(result == -1)
    {
        SendClientMessage(playerid, -1"[!] Comando inexistente.");
        return 0;
    }
    return 1;


• Download & Creditos

Deixando novamente o download aqui no final e total créditos do criador:

Criador: kartusis (GitHub)
Download: Pawn.CMD releases (GitHub)