[Tutorial] Usar ZCMD com SSCANF
#1

Introduзгo:
Olб,hoje vou ensinar como usar ZCMD com SSCANF,que й o melhor sistema de comandos que tem.

PRIMEIRO PASSOS:

Baixando SSCANF:

Clique aqui e baixe SSCANF PLUGIN

Apуs baixar mova o Plugin para pasta 'Plugins'.

No caso,eu nгo uso Include,simplesmente defino a funзгo nativa no Prуprio Game Mode..

Agora no Topo do GameMode:

pawn Код:
native sscanf(const data[], const format[], {Float,_}:...);
native unformat(const data[], const format[], {Float,_}:...) = sscanf;
Baixando ZCMD:
Apуs Toda isto vamos baixar o sistema de comandos

Clique Aqui para baixar Zeex Commands Include. (ZCMD)

Apуs baixar coloque a Include a coloque na pasta 'Pawno/Include'

e Coloque no Topo do Game Mode

pawn Код:
#include <zcmd>
Apуs isto vamos comeзar a criar o comando...

SEGUNDO PASSO:

Callback de ZCMD:

Vamos comeзar a usar ZCMD.

Primeiramente vamos modificar a CallBack

Delete a CallBack OnPlayerCommandText e todos seus Comandos e coloque:

pawn Код:
public
    OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    static Name[24];
    GetPlayerName(playerid,Name,24);
    printf("[COMANDOS]: Player %s Digitou | Comando: %s",Name,cmdtext);
    if (!success)
        return SendClientMessage(playerid,0xFFFFFF,"[ERRO] Comando nгo Reconhecido");
    return true;
}
sucess й a array referente a verificaзгo se o comando existe ou nгo e se foi executado corretamente.

Код:
!sucess = Nгo foi executado
sucess = Foi Executado
Alн vocкs podem mudar a vontade para bloquear comandos e outras coisas.

LEMBRANDO OS COMANDOS NГO FICAM ALI DENTRO DESTA CALLBACK

Comeзando a usar comando:

Para usar comando й como se fosse uma Stock,sempre com RETURN TRUE;

Vamos lб:

pawn Код:
cmd(renderse,playerid,params[])
{
        #pragma unused params
    SetPlayerSpecialAction(playerid, 10);
    SetPlayerSpecialAction(playerid, 10);
    return true;
}
Sempre que o comando nгo tiver /oi [id] ou /oi [texto] ou qualquer outro parametros devemos usar:

pawn Код:
#pragma unused params
Neste caso ele rende a pessoa com animaзгo

Comando com Parametros + SSCAN:

Para usar SSCANF devemos usar com uma condicional,pois ele automaticamente jб retorna se foi tudo corretamente certo:

Veja o Comando:

pawn Код:
cmd(dance,iPlayer,params[])
{
    if(sscanf(params, "d", id))
             return SendClientMessage(iPlayer, AMARELO, "Use: /dance <id>");


        if(id < 1 || id > 4)
        return SendClientMessage(iPlayer, VERMELHO, "[ERRO] Estilos sгo vбlidos apenas [1~4]");

    if(id == 1)
           SetPlayerSpecialAction(iPlayer,5);
        if(id == 2)
              SetPlayerSpecialAction(iPlayer,6);    
    if(id == 3)
        SetPlayerSpecialAction(iPlayer,7);
    if(id == 4)
        SetPlayerSpecialAction(iPlayer,8);
    return true;
}

Notem a Parte:

pawn Код:
if(sscanf(params, "d", id))
      return SendClientMessage(iPlayer, AMARELO, "Use: /dance <id>");
Assim devemos usar:

Para IDS / NOMES

pawn Код:
new id;
if(sscanf(params, "u", id))
A Letra "u" pega Nome de Players e converte em ID,tambйm pega a ID e deixa id assim podendo fazer

/comando [id/nome]


Para TEXTOS

pawn Код:
new id[128];
if(sscanf(params, "s[128]", id))
A Letra "s" formata a string,lembrando que deve ter "s[lenght]", LENGHT й equivalente ao nъmero de caracteres,no caso coloquei [128]

/comando [texto]


Para NUMEROS

pawn Код:
new id;
if(sscanf(params, "d",id))
A Letra "d" pega nъmero apenas,tambйm pode ser usada apenas como ID,mas й preferнvel "u"

/comando [numero]


Simples,Rбpido e Fбcil.

Apуs implementar as Includes/Plugins,basta sair fazendo comandos,bem fбcil,mais fбcil que qualquer outro sistema.

Obrigado a Todos.

Agradeзo a Dark por me Indicar/Ensinar a usar ZCMD
Reply
#2

legal , parabens drakins
Reply
#3

eu amo este cara!
Reply
#4

Bom tutorial
Reply
#5

nice drakon
eu tinha apenas uma pequena dъvida do zcmd agora tirei ela a limpo '-'
gracias muchacho D:
Reply
#6

Bom TutorialІ
Reply
#7

Drakon me chama la no msn to cramufradu
Reply
#8

eu estou assistindo crepъsculo,jб entro

Valeu por quem gosto do Tutorial
Reply
#9

Vocк realmente nгo precisa usar sscanf com um ъnico params ..

pawn Код:
cmd(dance,iPlayer,params[])
{
    //if(sscanf(params, "d", id))
    if(isnull(params))
             return SendClientMessage(iPlayer, AMARELO, "Use: /dance <id>");
    new id = strval(params);

        if(id < 1 || id > 4)
        return SendClientMessage(iPlayer, VERMELHO, "[ERRO] Estilos sгo vбlidos apenas [1~4]");

    if(id == 1)
           SetPlayerSpecialAction(iPlayer,5);
        if(id == 2)
              SetPlayerSpecialAction(iPlayer,6);    
    if(id == 3)
        SetPlayerSpecialAction(iPlayer,7);
    if(id == 4)
        SetPlayerSpecialAction(iPlayer,8);
    return true;
}
Mas boa sorte com tutoriais futuro: p
(Diga-me se o ****** Translator nгo: pp)
Reply
#10

Sim Lethal,й uma boa Dica.
Eu realmente me acostumei tanto com SSCANF
Mas mesmo assim obrigado.

if(!strval(params))

Teria que usar.


Anda vigiando meus posts й?

Valeu Cat.

OFF
E o sistema de ostras,LOL?


OFF2
O portuguкs do ****** ta melhorando irairia
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)