Как заставить команду amx_who выводить IP вместо ID? В файле admincmd.sma в указанном ниже месте
public cmdWho(id, level, cid)
{
//...
console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess)
for (new a = 0; a < inum; ++a)
{
get_user_authid(players[a], authid, 31)
//...
}
//...
}
замените:
console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess)
на:
console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "ip", "userid", lImm, lRes, lAccess)
а также:
get_user_authid(players[a], authid, 31)
на:
get_user_ip(players[a], authid, 31, 1)
Сохраните файл и перекомпилируйте плагин.
А как дать всем доступ к команде amx_who?
По умолчанию, команда доступна только игрокам с правами y (т.е. это признак админа). Чтобы разрешить пользоваться ею всем игрокам, надо открыть файл admincmd.sma, и в строке
register_concmd("amx_who", "cmdWho", ADMIN_ADMIN, "- displays who is on server")
заменить ADMIN_ADMIN на ADMIN_ALL и перекомпилировать плагин.
В AMX 1.8.X и выше доступны стандартные средства переопределения прав доступа к командам без исправления самих плагинов.