[Include] bCMD - Processador de comandos
#1

bCMD
"Novo processador de comandos"
Depois de ter desenvolvido o bcmd eu deparei-me com vбrios problemas no cуdigo e com bugs crнticos, prometi resolver esses bugs, mas com alguma preguiзa minha nгo resolvi os bugs, depois veio a escola e ainda pior, mas agora chegou as fйrias e jб algum tempo estava a editar ele, estava a desenvolver a versгo 2.0, mas antes disso necessitei de fazer um upgrade para a versгo 1.8, acho que seria mais importante, do que criar outras coisas nгo tгo importantes, mas bem, o bcmd й um processador de comandos, processado por via CallLocalFunction, o comando cria callbacks o que torna mais rбpido a sua execuзгo.

Syntaxs

pawn Код:
bCMD[nome_do_comando]>(playerid:params[]:help) return 1;
CMD::nome_do_comando(playerid,params[],help) return 1;
cmd(nome_do_comando:playerid,params[],help) return 1;
Reformulei a syntax do bcmd, lembrando que й necessбrio colocar todos os parametros (playerid,params[],help), caso nгo coloque um erro ocorrerб no bcmd o que pode prejudicar o seu funcionamento.

[pawn]

Help

Este sistema й idкntico ao YCMD, alguns membros pediram-me para adicionar e eu adicionei em umas versхes anteriores.

exemplo de uso:
pawn Код:
bCMD[grana]>(playerid:params[]:help) {
    if(help)
        return SendClientMessage(playerid,-1,"Este comando й usado para dar dinheiro, ex: /grana 100");
    if(isnull(params)
        return SendClientMessage(playerid,-1,"USE: /grana [valor]");
    GivePlayerMoney(playerid,strval(params));
    return 1;
}
Quando voce executar o comando, ao digitar /grana help ou /grana ajuda ele irб processar a condiзгo if(help){...}

AVISO: Lembre-se que й necessбrio colocar a condiзгo if(help) primeiro que if(isnull) ou if(sscanf(...))

CallBacks

Quando o comando й chamando tambйm й chamada a funзгo OnPlayerCallCommand, vocк pode usa-lo e verificar se o comando existe ou nгo, exemplo:

pawn Код:
public OnPlayerCallCommand(playerid,cmdtext[],sucess){
    if(!sucess) {
        new result[128];
        format(result,sizeof(result),"O comando %s nгo existe",cmdtext);
        SendClientMessage(playerid,-1,result);
    }
    return 1;
}

BenchMarks

Todas as benchmarks anteriores foram consideradas com nulas, apуs eu ter descoberto que benchmark do slice mostra quantas vezes uma funзгo pode ser executada em um ms(milissegundo)

Код:
Bench for bcmd2: executes, by average, 236.99 times/ms.
Bench for bcmd: executes, by average, 98.40 times/ms.
Esta benchmark й uma comparaзгo entre a versгo antiga (bcmd) e a versгo recente (bcmd2)

ChangeLog
  • 18/07/2012 - v1.0
    • Lanзameto
  • 19/07/2012 - v1.1 (BETA)
    • Optimizaзгo do cуdigo.
    • Perda de velocidade, nгo era essa minha intenзгo, logo depois estarei reparando isso.
    • Nova forma de usar comandos, agora em vez de usarmos /meucommando podemos usar !meucommando ou @meucommando (mais informaзхes veja no topo)
  • 20/07/2012 - v1.2
    • Optimizaзгo
    • Mais velocidade.
  • 21/07/2012 - v1.3
    • Reparaзгo de bugs, agradecimentos ao paulor por ter reportado!
    • Optimizaзгo
    • Mais um pouco de velocidade, nгo muita.
  • 27/07/2012 - v1.4
    • Reparaзгo de bugs crнticos.
    • Adicionado o parвmetro help. (veja como funciona no topo do tуpico)
  • 30/07/2012 - v1.5
    • Reparaзгo de bugs crнticos. Obrigado Paulo!
    • Optimizaзгo, agradecimentos ao bruno por me falar sobre o funcidx.
    • Agora tambйm detectamos a palavra "ajuda" (ver na parte do help)
  • 30/07/2012 - v1.6
    • Optimizaзгo do cуdigo.
    • Agora tambйm й chamada a OnPlayerCallCommand caso o comando exista
  • 22/08/2012 - v1.7
    • Resoluзгo de bugs.
  • 17/12/2012 - v1.8
    • Reparaзгo de um bug critico.
    • Optimizaзгo do cуdigo.
    • Reajuste no cуdigo.
    • Nova syntax.
Download

Download-Pastebin v1.8

Pastebin v1.7

Pastebin v1.6

Pastebin v1.5

Pastebin v1.4

Pastebin v1.3

Pastebin v1.2

Pastebin v1.1

Download - Pastebin v1.0

Nota: Versгo 1.0 nгo estб para download por causa dos links corrompidos e nгo tenho o mesmo link, as outras versхes deixo apenas o pastebin

BUG'S

Testei muitas vezes para ver se existia qualquer bug, mas nгo detetei nenhum bug, porйm eu testei apenas por via console, pois nгo conseguia entrar InGame devido a problemas internos do meu bonito computador, enfim, penso que nгo existem bugs, mas caso encontre um bug reporte-me por PM ou aqui no tуpico.

Crйditos
  • ZeeX
    • Criador do ZCMD e deu-me a luz para o inicio da include.
  • BlueX
    • Criador da include.
  • ******
    • Criador do sscanf
  • [iPs]Team
    • Melhor equipe de programaзгo.
  • SA-MP Team
    • Team past, present and future - SA:MP.
  • Paulo_Terror
    • Tirou-me algumas duvidas.
  • Stewie`
    • Um grande amigo.
  • Wiki SA-MP
    • Tirou-me algumas duvidas.
  • DraKiNs ou Bruno
    • Ajudou-me em optimizaзгo.
Reply


Messages In This Thread
bCMD - Processador de comandos (v1.8) - by RebeloX - 18.07.2012, 20:17
Re: bCMD - Processador de comandos - by Don_Speed - 18.07.2012, 20:19
Re: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 20:20
Re: bCMD - Processador de comandos - by paulor - 18.07.2012, 20:20
Re: bCMD - Processador de comandos - by Bruno Alves - 18.07.2012, 20:23
Re: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 20:24
AW: bCMD - Processador de comandos - by billy the kid - 18.07.2012, 20:25
Re: AW: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 20:28
Re : bCMD - Processador de comandos - by ipsBruno - 18.07.2012, 20:28
Re: bCMD - Processador de comandos - by Kuddy - 18.07.2012, 20:30
AW: bCMD - Processador de comandos - by billy the kid - 18.07.2012, 20:30
Re: bCMD - Processador de comandos - by F_Cinco - 18.07.2012, 20:32
Re: AW: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 20:35
AW: bCMD - Processador de comandos - by billy the kid - 18.07.2012, 20:36
Re: bCMD - Processador de comandos - by _.MeT4L._ - 18.07.2012, 20:39
Re: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 20:46
Re: bCMD - Processador de comandos - by CidadeNovaRP - 18.07.2012, 21:31
Re: bCMD - Processador de comandos - by Ricop522 - 18.07.2012, 21:35
Re: bCMD - Processador de comandos - by sanalex - 18.07.2012, 21:36
Re: bCMD - Processador de comandos - by RebeloX - 18.07.2012, 21:37
Re : bCMD - Processador de comandos - by ipsBruno - 18.07.2012, 21:39
Re: bCMD - Processador de comandos - by [BCV]Dr.House_. - 18.07.2012, 21:46
Re : bCMD - Processador de comandos - by ipsBruno - 18.07.2012, 21:57
Re: Re : bCMD - Processador de comandos - by Bruno Pereira - 18.07.2012, 22:13
Re: bCMD - Processador de comandos - by humildadeforever - 18.07.2012, 22:17
Re : Re: Re : bCMD - Processador de comandos - by ipsBruno - 18.07.2012, 22:18
Re: Re : bCMD - Processador de comandos - by CidadeNovaRP - 18.07.2012, 23:20
Re : Re: Re : bCMD - Processador de comandos - by ipsBruno - 19.07.2012, 00:59
Re: Re : Re: Re : bCMD - Processador de comandos - by CidadeNovaRP - 19.07.2012, 01:13
Re : Re: Re : Re: Re : bCMD - Processador de comandos - by ipsBruno - 19.07.2012, 01:18
Re: bCMD - Processador de comandos - by RebeloX - 20.12.2012, 11:35
Re: bCMD - Processador de comandos - by ProKillerpa - 24.06.2013, 18:01
Re: bCMD - Processador de comandos - by Mteck - 24.06.2013, 18:09
Re: bCMD - Processador de comandos - by F_Cinco - 25.06.2013, 01:23
Re: bCMD - Processador de comandos - by RebeloX - 04.07.2013, 17:17

Forum Jump:


Users browsing this thread: 1 Guest(s)