Code: Select all
#include <amxmodx> #include <hamsandwich> #include <cstrike> #include <colorchat> #define VIP ADMIN_LEVEL_H #define ADMIN ADMIN_LEVEL_D #define SPECADMIN ADMIN_LEVEL_G new gszTag[33][15], gszName[33][15], gszTeam[33][20] new gFlags[33], gbAlive[33], Color:giColor[33] public plugin_init() { register_clcmd("say", "funcsay") register_clcmd("say_team", "funcsayteam") register_event("DeathMsg", "hook_Death", "a") register_event("TeamInfo", "team_change", "a") RegisterHam(Ham_Spawn, "player", "hook_PlayerSpawn", 1) } public funcsay(id) { if ((VIP | SPECADMIN | ADMIN) & gFlags[id]) { static szMessage[256] read_argv(1, szMessage, charsmax(szMessage)) if (szMessage[0] == '^0') return PLUGIN_HANDLED static players[32], num if (gbAlive[id]) { get_players(players, num, "ah") for (new i; i < num; i++) ColorChat(players[i], giColor[id], "^x04[%s] ^x03%s ^x01: %s", gszTag[id], gszName[id], szMessage) } else { get_players(players, num, "bh") for (new i; i < num; i++) ColorChat(players[i], giColor[id], "^x01*DEAD* ^x04[%s] ^x03%s ^x01: %s", gszTag[id], gszName[id], szMessage) } return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public funcsayteam(id) { if ((VIP | SPECADMIN | ADMIN) & gFlags[id]) { static szMessage[256] read_argv(1, szMessage, charsmax(szMessage)) if (szMessage[0] == '^0') return PLUGIN_HANDLED static players[32], num if (gbAlive[id]) { get_players(players, num, "ah") for (new i; i < num; i++) ColorChat(players[i], giColor[id], "^x01(%s) ^x04[%s] ^x03%s ^x01: %s", gszTeam[id], gszTag[id], gszName[id], szMessage) } else { get_players(players, num, "bh") for (new i; i < num; i++) ColorChat(players[i], giColor[id], "^x01*DEAD*(%s) ^x04[%s] ^x03%s ^x01: %s", gszTeam[id], gszTag[id], gszName[id], szMessage) } return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public hook_Death() { gbAlive[read_data(2)] = false } public hook_PlayerSpawn(id) { gbAlive[id] = true } public client_infochanged(id) { get_user_info(id, "name", gszName[id], charsmax(gszName)) tag_reload(id) } public client_putinserver(id) { gbAlive[id] = false get_user_name(id, gszName[id], charsmax(gszName)) tag_reload(id) } public tag_reload(id) { gFlags[id] = get_user_flags(id) if (gFlags[id] & SPECADMIN) formatex(gszTag[id], charsmax(gszTag), "Savininkas") else if (gFlags[id] & ADMIN) formatex(gszTag[id], charsmax(gszTag), "Priziuretojas") else if (gFlags[id] & VIP) formatex(gszTag[id], charsmax(gszTag), "VIP") } public team_change() { new id = read_data(1), szTeam[2] read_data(2, szTeam, charsmax(szTeam)) if(!is_user_connected(id)) return PLUGIN_HANDLED switch(szTeam[0]) { case 'C': { giColor[id] = BLUE formatex(gszTeam[id], charsmax(gszTeam), "Counter-Terrorist") } case 'T': { giColor[id] = RED formatex(gszTeam[id], charsmax(gszTeam), "Terrorist") } default: { giColor[id] = GREY formatex(gszTeam[id], charsmax(gszTeam), "Spectator") } } return PLUGIN_CONTINUE }