[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
#2

Zika Mano
Reply
#3

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
Zika Mano
Obrigado
Reply
#4

Vamos analizar!

@Edit

Bem legal, dava para melhorar em certos aspectos, mais estб de Parabйns!
Reply
#5

Muito bom parabйns +REP
Reply
#6

Quote:
Originally Posted by paulor
Посмотреть сообщение
Vamos analizar!
Esperando a analizaзгo do sr.paulor

Quote:
Originally Posted by Bruno Alves
Посмотреть сообщение
Muito bom parabйns +REP
Obrigado
Reply
#7

E COMPLETAMENTE PERFEITO PARABENS!!!! vou usar pra ver como e ! ficou massa memo!
+ rep por vc espor seus conhecimentos aki com a gente !
Reply
#8

Quote:
Originally Posted by billy the kid
Посмотреть сообщение
E COMPLETAMENTE PERFEITO PARABENS!!!! vou usar pra ver como e ! ficou massa memo!
+ rep por vc espor seus conhecimentos aki com a gente !
Obrigado!
Reply
#9

Usa CallLocalFunction, brother. Muito bom o sistema )


-> PaStEbIN?
Reply
#10

Parabйns, уtimo sistema
Reply
#11

bini e do drakins ?
Reply
#12

Parece ser уtimo, porйm, dificulta ao menos para mim estб diferenciando bCMD[]-() para colocar o nome do cmd. Se й q vc me entende. Mais com o tempo se acostuma.
Reply
#13

Quote:
Originally Posted by [FeK]DraKiNs
View Post
Usa CallLocalFunction, brother. Muito bom o sistema )


-> PaStEbIN?
Nгo sabia da CallLocalFunction sйrio, obrigado

Depois coloco no Pastebin

Quote:
Originally Posted by Kuddy
View Post
Parabйns, уtimo sistema
Obrigado Kuddy!

Quote:
Originally Posted by billy the kid
View Post
bini e do drakins ?
Desculpe, mas isto aqui nгo й discussхes sobre outras coisas...
Mas sim o bini й do drakins.

Quote:
Originally Posted by F_Cinco
View Post
Parece ser уtimo, porйm, dificulta ao menos para mim estб diferenciando bCMD[]-() para colocar o nome do cmd. Se й q vc me entende. Mais com o tempo se acostuma.
Sim, por isso que eu coloquei a outra forma, caso queira a forma basica й sу usar.

pawn Code:
bcmd:meucomando(playerid,params[]);
Reply
#14

Quote:

Desculpe, mas isto aqui nгo й discussхes sobre outras coisas...
Mas sim o bini й do drakins.

nao quis discutir sobre qual e melhor ou pior so queria saber se era dele pra mim tanto faz funcionando e o que importa!
Reply
#15

Mto bom Blue parabens.
Reply
#16

Quote:
Originally Posted by billy the kid
View Post
nao quis discutir sobre qual e melhor ou pior so queria saber se era dele pra mim tanto faz funcionando e o que importa!
Tudo bem...

Quote:
Originally Posted by _.MeT4L._
View Post
Mto bom Blue parabens.
Obrigado.
Reply
#17

Apenas mais um processador de comandos, prefiro o YCMD do que todos os outros, alias, o que muda em 50ms de diferenзa

Mesmo assim estб bom parabйns '-'
Reply
#18

Quote:
Originally Posted by CidadeNovaRP
View Post
Apenas mais um processador de comandos, prefiro o YCMD do que todos os outros, alias, o que muda em 50ms de diferenзa

Mesmo assim estб bom parabйns '-'
Sua opiniгo nй,

Bom gonзalo! ; )
Reply
#19

Posso nгo utilizб-lo agora, mas quem sabe futuramente, mesmo assim parabйns!
Reply
#20

Quote:
Originally Posted by CidadeNovaRP
View Post
Apenas mais um processador de comandos, prefiro o YCMD do que todos os outros, alias, o que muda em 50ms de diferenзa

Mesmo assim estб bom parabйns '-'
50 ms podem mudar muito, no inicio parece pouco, mas imagina que sгo 10 players que executam 1 comando, entгo ai jб sгo 500ms, agora faзa as contas, mas й sua opiniгo claro, eu ainda quero colocar o comando mais dinвmico

Mesmo assim obrigado!

Quote:
Originally Posted by Ricop522
View Post
Bom gonзalo! ; )
Obrigado Ricardo!

Quote:
Originally Posted by sanalex
View Post
Posso nгo utilizб-lo agora, mas quem sabe futuramente, mesmo assim parabйns!
Obrigado na mesma!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)