--- adminchat.sma 2007/10/30 09:08:11 1 +++ adminchat.sma 2010/10/11 23:53:51 44 @@ -43,23 +43,38 @@ new g_Values[MAX_CLR][] = {{255, 255, 255}, {255, 0, 0}, {0, 255, 0}, {0, 0, 255}, {255, 255, 0}, {255, 0, 255}, {0, 255, 255}, {227, 96, 8}, {45, 89, 116}, {103, 44, 38}} new Float:g_Pos[4][] = {{0.0, 0.0}, {0.05, 0.55}, {-1.0, 0.2}, {-1.0, 0.7}} +new amx_show_activity; +new g_AdminChatFlag = ADMIN_CHAT; + public plugin_init() { + new admin_chat_id + register_plugin("Admin Chat", AMXX_VERSION_STR, "AMXX Dev Team") register_dictionary("adminchat.txt") register_dictionary("common.txt") register_clcmd("say", "cmdSayChat", ADMIN_CHAT, "@[@|@|@][w|r|g|b|y|m|c] - displays hud message") register_clcmd("say_team", "cmdSayAdmin", 0, "@ - displays message to admins") register_concmd("amx_say", "cmdSay", ADMIN_CHAT, " - sends message to all players") - register_concmd("amx_chat", "cmdChat", ADMIN_CHAT, " - sends message to admins") + admin_chat_id = register_concmd("amx_chat", "cmdChat", ADMIN_CHAT, " - sends message to admins") register_concmd("amx_psay", "cmdPsay", ADMIN_CHAT, " - sends private message") register_concmd("amx_tsay", "cmdTsay", ADMIN_CHAT, " - sends left side hud message to all players") register_concmd("amx_csay", "cmdTsay", ADMIN_CHAT, " - sends center hud message to all players") + + amx_show_activity = get_cvar_pointer("amx_show_activity"); + + if (amx_show_activity == 0) + { + amx_show_activity = register_cvar("amx_show_activity", "2"); + } + + new str[1] + get_concmd(admin_chat_id, str, 0, g_AdminChatFlag, str, 0, -1) } public cmdSayChat(id) { - if (!access(id, ADMIN_CHAT)) + if (!access(id, g_AdminChatFlag)) { return PLUGIN_CONTINUE } @@ -123,13 +138,38 @@ set_hudmessage(g_Values[a][0], g_Values[a][1], g_Values[a][2], g_Pos[i][0], verpos, 0, 6.0, 6.0, 0.5, 0.15, -1) - if (get_cvar_num("amx_show_activity") == 2) + switch ( get_pcvar_num(amx_show_activity) ) { - show_hudmessage(0, "%s : %s", name, message[i + n]) - client_print(0, print_notify, "%s : %s", name, message[i + n]) - } else { - show_hudmessage(0, "%s", message[i + n]) - client_print(0, print_notify, "%s", message[i + n]) + case 3, 4: + { + new maxpl = get_maxplayers(); + for (new pl = 1; pl <= maxpl; pl++) + { + if (is_user_connected(pl) && !is_user_bot(pl)) + { + if (is_user_admin(pl)) + { + show_hudmessage(pl, "%s : %s", name, message[i + n]) + client_print(pl, print_notify, "%s : %s", name, message[i + n]) + } + else + { + show_hudmessage(pl, "%s", message[i + n]) + client_print(pl, print_notify, "%s", message[i + n]) + } + } + } + } + case 2: + { + show_hudmessage(0, "%s : %s", name, message[i + n]) + client_print(0, print_notify, "%s : %s", name, message[i + n]) + } + default: + { + show_hudmessage(0, "%s", message[i + n]) + client_print(0, print_notify, "%s", message[i + n]) + } } return PLUGIN_HANDLED @@ -165,7 +205,7 @@ for (new i = 0; i < inum; ++i) { // dont print the message to the client that used the cmd if he has ADMIN_CHAT to avoid double printing - if (players[i] != id && get_user_flags(players[i]) & ADMIN_CHAT) + if (players[i] != id && get_user_flags(players[i]) & g_AdminChatFlag) client_print(players[i], print_chat, "%s", message) } @@ -196,7 +236,7 @@ for (new i = 0; i < inum; ++i) { - if (access(players[i], ADMIN_CHAT)) + if (access(players[i], g_AdminChatFlag)) client_print(players[i], print_chat, "%s", message) } @@ -236,9 +276,10 @@ if (!priv) return PLUGIN_HANDLED + new length = strlen(name) + 1 + get_user_name(priv, name, 31); - new length = strlen(name) + 1 new message[192], name2[32], authid[32], authid2[32], userid, userid2 get_user_authid(id, authid, 31) @@ -317,15 +358,41 @@ userid = get_user_userid(id) set_hudmessage(g_Values[a][0], g_Values[a][1], g_Values[a][2], tsay ? 0.05 : -1.0, verpos, 0, 6.0, 6.0, 0.5, 0.15, -1) - if (get_cvar_num("amx_show_activity") == 2) + switch ( get_pcvar_num(amx_show_activity) ) { - show_hudmessage(0, "%s : %s", name, message[length]) - client_print(0, print_notify, "%s : %s", name, message[length]) - console_print(id, "%s : %s", name, message[length]) - } else { - show_hudmessage(0, "%s", message[length]) - client_print(0, print_notify, "%s", message[length]) - console_print(id, "%s", message[length]) + case 3, 4: + { + new maxpl = get_maxplayers(); + for (new pl = 1; pl <= maxpl; pl++) + { + if (is_user_connected(pl) && !is_user_bot(pl)) + { + if (is_user_admin(pl)) + { + show_hudmessage(pl, "%s : %s", name, message[length]) + client_print(pl, print_notify, "%s : %s", name, message[length]) + } + else + { + show_hudmessage(pl, "%s", message[length]) + client_print(pl, print_notify, "%s", message[length]) + } + } + } + console_print(id, "%s : %s", name, message[length]) + } + case 2: + { + show_hudmessage(0, "%s : %s", name, message[length]) + client_print(0, print_notify, "%s : %s", name, message[length]) + console_print(id, "%s : %s", name, message[length]) + } + default: + { + show_hudmessage(0, "%s", message[length]) + client_print(0, print_notify, "%s", message[length]) + console_print(id, "%s", message[length]) + } } log_amx("Chat: ^"%s<%d><%s><>^" %s ^"%s^"", name, userid, authid, cmd[4], message[length])