Он находит комманды не посредством сравнивания строк, а посредством хеш-таблицы.
Плюсы:
- СКОРОСТЬ ПРОСТО КЛАСС
Минусы:
- Не юзерфрендли интерфейс
Использование:
Чтобы добавить новую комманду, нужно проделать нехитрые операции, но это стоит того.
Для добавления комманды нужно получить ее Adler32 хеш, это можно сделать любым онлайн-хешером, например http://hash.online-convert.com/adler32-generator
НО, нужно хешировать комманду без слеша, тоесть если вы хотите добавить комманду /help, то хешировать нужно текст
Code
help
После получения хеша, добавлять комманды нужно по принципу:
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!InitCMD(playerid, cmdtext)) return SendClientMessage(playerid, -1, "Ошибка при вводе комманды");
switch(GetPVarInt(playerid, "cmd"))
{
case 0x/*ТУТ ХЕШ КОММАНДЫ*/:
{
//тело комманды
}
}
}
Так же, доступны другие полезные плюшки
Code
new cmd_len = GetPVarInt(playerid, "cmd_len"); // Узнает длину команды без параметров
Code
new params[128];
GetPVarString(playerid, "cmd_params", params, MAX_PARAMS_LEN);
// Параметры команды
Code
new params_len = GetPVarInt(playerid, "cmd_params_len"); // Узнает длину параметров без команды
Ссылка: http://bjiadokc.ru/htcmd.inc