PHP код:
fcmd(p, str[]){
new f = 1, command[14 char]//(14-1) длина команды
command{0} = '_'
for( ; str[f] > 0x20; f++) command{f} = tolower(str[f])
if(funcidx(command) > 0){
if(str[f])CallLocalFunction(command, "is", p, str[f+1])
else CallLocalFunction(command, "is", p, "\1")
return true
}
return false
}
#define cmd::%0(%1,%2) forward _%0(%1,%2);public _%0(%1,%2)
#define noparams params[0] == 1
#define rus_cmd(%0,%1,%2) if(!strcmp(%0, %1, true)){strins(cmdtext, %2, 1, 128);return fcmd(p, cmdtext);}
public OnPlayerCommandText(p, cmdtext[]){
if(0xbf < cmdtext[1] < 0x100 || cmdtext[1] == 0xb8 || cmdtext[1] == 0xa8){
new command[14], f = 1;
for(; cmdtext[f] > 0x20; f++)command[f] = cmdtext[f];
strdel(cmdtext, 1, f);
//тут список команд на кириллице и их аналоги на латыне
rus_cmd(command, "статистика", "stats")
rus_cmd(command, "помощь", "help")
}
if(fcmd(p, cmdtext))return true
//если нет команды
return SendClientMessage(p, -1, "{d1d1d1}Команды не существует!");
}
cmd::stats(p, params[]){
if(noparams)return SendClientMessage(p, -1, "Статистика, нет параметров");
new p_to;
if(sscanf(params, "d", p_to))return SendClientMessage(p, -1, "syntax: /статистика(stats) [playerid]");
if(!IsPlayerConnected(p_to))return SendClientMessage(p, -1, "Нет такого игрока!");
return SendClientMessage(p, -1, "Статистика игрока из параметра");
}
Почти тоже самое с "поддержкой" кириллицы.