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.
Symtaxs
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.
help
Este sistema é idêntico ao YCMD, alguns membros pediram-me para adicionar e eu adicionei em umas versões anteriores.
exemplo de uso:
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:
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)
Esta benchmark é uma comparação entre a versão antiga (bcmd) e a versão recente (bcmd2)
ChangeLog
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
BlueX
Criador da include.
Y_Less
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.
"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.
Symtaxs
- Código:
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.
help
Este sistema é idêntico ao YCMD, alguns membros pediram-me para adicionar e eu adicionei em umas versões anteriores.
exemplo de uso:
- Código:
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:
- Código:
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); }
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)
- Código:
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
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.