Conversor : Strcmp para Zcmd.
Por rjjj ou Ken
Por rjjj ou Ken
Objetivo do programa:
Transformar comandos baseados na comparação com o que foi digitado pelo jogador por meio da função strcmp em comandos do sistema zcmd, que são mais rápidos

Informações:
Chamando comandos direitamente quando em formato de callback, zcmd é uma das mais populares bibliotecas focadas em comandos uma vez que com seu uso estes ficam mais rápidos, sobretudo os últimos do OnPlayerCommandText

Fiz este programa em HTML e VBScript capaz de converter muitos comandos em strcmp (padrão) para zcmd porque a transformação de um por um é um processo demorado e cansativo (principalmente quando há muitos deles)

Além disso, a ferramenta faz a identação automática dos comandos para que os mesmos fiquem organizados ao serem colocados fora da public OnPlayerCommandText

Testado com até 15000 linhas de comandos.
Notas importantes:
Como a variável cmdtext não é acessível de dentro dos comandos em zcmd como é nos em strcmp, esse símbolo, sempre que aparecer, será substituído por cmd. Por isso, antes de mais nada

pawn Code:
//Adicione ao Topo do GM: new cmd[128];
Para atribuir a esse elemento o valor que teria o cmdtext

pawn Code:
//Coloque no Final do GM: public OnPlayerCommandReceived(playerid, cmdtext[]) { cmd = #; strcat(cmd, cmdtext); return 1; }

pawn Code:
//Coloque no Topo do GM as variáveis que ficavam no início do OnPlayerCommandText, com exceção da "cmd" (se existisse): new string[256]; //Essas são as do GM lvdm, como exemplo. new playermoney; //Essas são as do GM lvdm, como exemplo. new sendername[MAX_PLAYER_NAME]; //Essas são as do GM lvdm, como exemplo. new giveplayer[MAX_PLAYER_NAME]; //Essas são as do GM lvdm, como exemplo. new giveplayerid, moneys, idx; //Essas são as do GM lvdm, como exemplo. //E depois, coloque no Final do GM: strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } public OnPlayerCommandReceived(playerid, cmdtext[]) { cmd = strtok(cmdtext, idx); cmd = #; strcat(cmd, cmdtext); return 1; } public OnPlayerCommandPerformed(playerid, cmdtext[], success) { idx = 0; return 1; }

Créditos:
rjjj ou Ken pela feitura do conversor,post.ToXi
Zeex pela criação do zcmd, com o qual o programa trabalha.
Atualizações:
Agora comandos com até 4 "atalhos" (como o atalho /an de /anuncio) são convertidos corretamente.
Download:
Clique Aqui
OBS: Não retire os créditos !!
OBS2: Tem dicas para possíveis futuras versões ou achou bugs ? Por favor comente-os aqui no tópico

Espero ter ajudado

0 comentários:
Postar um comentário