
admin_check.sma
#include <amxmodx> #define ADMIN_HA ADMIN_RESERVATION // flaga "b" #define ADMIN_CHECK ADMIN_LEVEL_E // flaga "c" static const COLOR[] = "^x04" //green new maxplayers new gmsgSayText public plugin_init() { register_plugin("admincheck", "1.0", "faucolt") maxplayers = get_maxplayers() gmsgSayText = get_user_msgid("SayText") register_clcmd("say", "handle_say") } public handle_say(id) { new said[192] read_args(said,192) if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/admin") != -1 ) set_task(0.1,"print_adminlist",id) return PLUGIN_CONTINUE } public print_adminlist(user) { new headadminnames[33][32] new adminnames[33][32] new message[256] new id, acount, hacount, x, len, lenh for(id = 1 ; id <= maxplayers ; id++) if(is_user_connected(id)) if (get_user_flags(id) & ADMIN_CHECK) { if (get_user_flags(id) & ADMIN_HA) { get_user_name(id, headadminnames[hacount++], 31) } else { get_user_name(id, adminnames[acount++], 31) } } lenh = format(message, 255, "%s Headadmini obecni na serwerze: ",COLOR) if(hacount > 0) { for(x = 0 ; x < hacount ; x++) { lenh += format(message[lenh], 255-lenh, "%s%s ", headadminnames[x], x < (hacount-1) ? ", ":"") if(lenh > 96 ) { print_message(user, message) lenh = format(message, 255, "%s ",COLOR) } } print_message(user, message) } else { lenh += format(message[lenh], 255-lenh, "brak dostepnych headadminow.") print_message(user, message) } len = format(message, 255, "%s Admini obecni na serwerze: ",COLOR) if(acount > 0) { for(x = 0 ; x < acount ; x++) { len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (acount-1) ? ", ":"") if(len > 96 ) { print_message(user, message) len = format(message, 255, "%s ",COLOR) } } print_message(user, message) } else { len += format(message[len], 255-len, "brak dostepnych adminow.") print_message(user, message) } } print_message(id, msg[]) { message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id) write_byte(id) write_string(msg) message_end() }
Dorzucam jeszcze spis dostępnych flag:
#define ADMIN_ALL /* wszyscy */ #define ADMIN_IMMUNITY /* flag "a" */ #define ADMIN_RESERVATION /* flag "b" */ #define ADMIN_KICK /* flag "c" */ #define ADMIN_BAN /* flag "d" */ #define ADMIN_SLAY /* flag "e" */ #define ADMIN_MAP /* flag "f" */ #define ADMIN_CVAR /* flag "g" */ #define ADMIN_CFG /* flag "h" */ #define ADMIN_CHAT /* flag "i" */ #define ADMIN_VOTE /* flag "j" */ #define ADMIN_PASSWORD /* flag "k" */ #define ADMIN_RCON /* flag "l" */ #define ADMIN_LEVEL_A /* flag "m" */ #define ADMIN_LEVEL_B /* flag "n" */ #define ADMIN_LEVEL_C /* flag "o" */ #define ADMIN_LEVEL_D /* flag "p" */ #define ADMIN_LEVEL_E /* flag "q" */ #define ADMIN_LEVEL_F /* flag "r" */ #define ADMIN_LEVEL_G /* flag "s" */ #define ADMIN_LEVEL_H /* flag "t" */ #define ADMIN_MENU /* flag "u" */ #define ADMIN_ADMIN /* flag "y" */ #define ADMIN_USER /* flag "z" */
Modyfikacje w kodzie możecie robić dowolne. (dopisywać jakieś nr gadu, itp).
Zrobiłem to na szybko, więc w kodzie tylko niewielka zmiana.

Pozdrawiam,
faucolt