Armyranks спира спектаторския чат, ако може да се направи да него

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от LoShIaA » 14 Ное 2017, 14:23

Здравейте. Самият плъгин прави така, че като си спектатор каквото и да напишеш то не се показва в чата, ако някой може да го оправи ще е хубаво. Също така забелязах, че чата става общ за живи и мъртви, ако може и това да коригирате. Ако може да ми кажете и кои редове сте коригирали.

Код за потвърждение: Избери целия код

#include             <amxmodx>
#include             <amxmisc>
#include             <cstrike>
#include             <fvault>
#include             <colorchat>
#include             <fakemeta>
#include             <fakemeta_util>
#include             <fun>
#include             <hamsandwich>

#define ADMIN_ONE        ADMIN_LEVEL_A      //Owner префикс "m"
#define ADMIN_TWO        ADMIN_LEVEL_B      //Head Admins префикс "n"
#define ADMIN_THREE      ADMIN_LEVEL_C      //Server Admins префикс "o"
#define ADMIN_FOUR       ADMIN_LEVEL_D      //Test Admins префикс "p"
#define ADMIN_FIVE       ADMIN_RESERVATION  //VIP префикс "b"
#define ADMIN_SIX        ADMIN_LEVEL_H      //SMS Admins "t"

#define MaxLevels         21
#define IsPlayer(%1)      (1 <= %1 <=  g_iMaxPlayers)

new MaxPlayers, syncObj, Lvl[33], XP[33], iPrefix
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, suicide_xp, killer_msg
new UseAdminPrefixes, UseRankSystem, UseBoth
new HUDR,HUDG,HUDB,HUDX,HUDY, HUDEFFECT
new sayText, teamInfo, szArgs[192], temp_flag[2]
new Vip, VipFlag

new const g_vault_name[] = "ranks";

new const Levels[MaxLevels] =
{
0,
500,
1000,
1500,
2000,
2500,
3000,
3500,
4000,
4500,
5000,
5500,
6000,
6500,
7000,
7500,
8000,
8500,
9000,
9500,
10000
}

new const Prefix[MaxLevels][] =
{
"NewBie",
"Advanced",
"Killer",
"Mega Killer",
"Ultra Killer", 
"Unstoppable",
"PRO",
"God Of War",
"Gamer",
"Chuck Norris",
"Machine",
"SuperNova",
"Ultimate",
"Hitman",
"Rambo",
"Terminator",
"Freak",
"UNDEAD",
"Monster",
"Grandmaster",
"Im The BOSS"
}

new const szTag[][] = {
	"",
	"Owner",
	"Head Admin",
	"Server Admin",
	"Test Admin",
	"VIP"
}

public plugin_init()
{
    register_plugin("Admin Prefixes & Rank System", "1.0", "ajw1337");
    
    register_clcmd ("say", "hook_say")
    register_clcmd ("say_team", "hook_teamsay")
    
    Vip = register_cvar("Vip_On/Off", "1")  //Вип настройката "1" включено "0" изключено.
    VipFlag = register_cvar("Vip_Flag", "b")  //Вип флага. (В момента е b) 
    
    register_event("DeathMsg","DeathMessage","a")
    
    register_clcmd("say /myrank", "cmdRank")
    register_clcmd("say_team /myrank", "cmdRank")
    register_clcmd("say /xp", "cmdRank")
    register_clcmd("say_team /xp", "cmdRank")

    UseAdminPrefixes = register_cvar("Admin_Prefixes_On/Off", "0")  //Админ префикса. 1 включено "0" изключено.
    UseRankSystem = register_cvar("Rank_Prefixes_On/Off", "0")  //Ранк системата "1" включено "0" изключено.
    UseBoth = register_cvar("Use_Both_AdminPrefix_Rank", "1")  //Ранк системата, и админ префикса. "1" включено "0" изключено
    
    ranks_hud = register_cvar("ranks_hud", "1")  //Ранк HUD съобщение.
    iPrefix = register_cvar("rank_prefix", "Rank System");  //Префикса на системата.
    knife_xp = register_cvar("knife_xp", "8")  //Колко XP да дава като го убиеш с ножа.
    he_xp = register_cvar("he_grenade_xp", "6") //Колко XP да дава като го убиеш с граната.
    hs_xp = register_cvar("headshot_xp", "4")  //Колко XP да дава като го убиеш с HeadShoot
    kill_xp = register_cvar("kill_xp", "2")  //Колко XP да дава като го убиеш.
    suicide_xp = register_cvar("suicide_xp", "2")  //Колко XP да вземе като се самоубиеш
    killer_msg = register_cvar("kill_message", "0")  //Да излиза ли съобщението когато го убиеш противник.
    
    
    HUDR = register_cvar("hud_color_red", "0")
    HUDG = register_cvar("hud_color_green", "255")
    HUDB = register_cvar("hud_color_blue", "0")
    HUDX = register_cvar("hud_position_X", "-1.0")
    HUDY = register_cvar("hud_position_Y", "0.01")
    HUDEFFECT = register_cvar("hud_effects", "0")
    
    sayText = get_user_msgid("SayText")
    teamInfo = get_user_msgid("TeamInfo")
    register_message(sayText, "avoid_duplicated")
    
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_B, "<nick | ct | t | @all> <xp>")
    register_concmd ("amx_take_xp", "CmdRemoveXP", ADMIN_LEVEL_B, "<nick | ct | t | @all> <xp>")
    
    register_forward( FM_ClientKill, "Fwd_Kill" );
    
    MaxPlayers = get_maxplayers()

    syncObj = CreateHudSyncObj()

    fvault_load(g_vault_name)
}
public getPrefix()
{
    new Prefix[33]
    get_pcvar_string(iPrefix, Prefix, 32)
    return Prefix
}
public ShowHud(id)
{
set_hudmessage(get_pcvar_num(HUDR), get_pcvar_num(HUDG), get_pcvar_num(HUDB), get_pcvar_float(HUDX), get_pcvar_float(HUDY), get_pcvar_num(HUDEFFECT), 0.1, 1.0, 0.1, 0.1, -1)
if(MaxLevels == Lvl[id]+1)
ShowSyncHudMsg(id, syncObj,"[Rank: %s XP: %d]", Prefix[Lvl[id]], XP[id])
else
ShowSyncHudMsg(id, syncObj,"[Rank: %s/%s | XP: %d/%d]",Prefix[Lvl[id]], Prefix[Lvl[id]+1], XP[id], Levels[Lvl[id]+1])
}
public cmdRank(id)
{
    if(MaxLevels == Lvl[id]+1)
        ColorChat(id, NORMAL, "^4[^3%s^4] My Rank: ^3%s ^4| ^3Level^4: ^3%d ^4| ^3XP^4: ^3%d^4.", getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, XP[id])
    else
        ColorChat(id, NORMAL, "^4[^3%s^4] My Rank: ^3%s ^4| ^3Level^4: ^3%d ^4/ ^3%d ^4| ^3XP^4: ^3%d ^4/ ^3%d ^4to Become ^3%s^4.",getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, MaxLevels, XP[id], Levels[Lvl[id]+1], Prefix[Lvl[id]+1])
}

public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")

new currentPlayerRank = 0;
while(currentPlayerRank < (MaxLevels - 1))
{       
    if(XP[id] >= Levels[currentPlayerRank + 1])
        ++currentPlayerRank;     
    else         
        break;
}
Lvl[id] = currentPlayerRank;
}
public Fwd_Kill(id)
{
    if(is_user_alive(id)) {
        XP[id] -= get_pcvar_num(suicide_xp)
        CheckLevel(id)
        Save(id)
        if(get_pcvar_num(killer_msg) == 1)
            ColorChat(id, RED, "^4[^3%s^4] You Committed ^3Suicide ^4And Lost ^3%d ^4XP.", getPrefix(),  get_pcvar_num(suicide_xp))

            
        return PLUGIN_CONTINUE
    }
    return PLUGIN_CONTINUE
}

public DeathMessage()
{       
    new killer = read_data(1);
    new victim = read_data(2);
    new headshot = read_data(3);
    new Weapon[ 32 ];
    read_data( 4, Weapon, charsmax( Weapon ) );
    
    format( Weapon, charsmax( Weapon ), "weapon_%s", Weapon );
    
    if( contain( Weapon, "nade" ) >= 0 )
    Weapon = "weapon_hegrenade"
    
    
    new iWeapon = get_weaponid( Weapon );
    
    if(killer == victim)
        return PLUGIN_CONTINUE;
    if(!killer || killer > MaxPlayers)
        return PLUGIN_CONTINUE;
    
    new victim_name[32];
    get_user_name(victim, victim_name, 31);
    
    get_pcvar_string(VipFlag, temp_flag, charsmax(temp_flag));
    
    
    if(iWeapon == CSW_HEGRENADE)
    {
    
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(he_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, RED, "^4[^3%s^4] You Killed ^3%s ^4With ^3HE Grenade ^4And Get ^3%d ^4XP. [^3Vip Bonus: Yes^4]", getPrefix(),victim_name,  get_pcvar_num(he_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(he_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, RED, "^4[^3%s^4] You Killed ^3%s ^4With ^3HE Grenade ^4And Get ^3%d ^4XP. [^3Vip Bonus: No^4]", getPrefix(),victim_name,  get_pcvar_num(he_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    if(iWeapon == CSW_KNIFE)
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(knife_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, RED, "^4[^3%s^4] You Killed ^3%s ^4With ^3Knife ^4And Get ^3%d ^4XP. [^3Vip Bonus: Yes^4]", getPrefix(),victim_name,  get_pcvar_num(knife_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(knife_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, GREY, "^4[^3%s^4] You Killed ^3%s ^4With ^3Knife ^4And Get ^3%d ^4XP. [^3Vip Bonus: No^4]", getPrefix(),victim_name, get_pcvar_num(knife_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    
    
    if(headshot)
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(hs_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, BLUE, "^4[^3%s^4] You Killed ^3%s ^4With ^3Head Shot ^4And Get ^3%d ^4XP. [^3Vip Bonus: Yes^4]", getPrefix(),victim_name, get_pcvar_num(hs_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, BLUE, "^4[^3%s^4] You Killed ^3%s ^4With ^3Head Shot ^4And Get ^3%d ^4XP. [^3Vip Bonus: No^4]", getPrefix(),victim_name, get_pcvar_num(hs_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    else
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(kill_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, NORMAL, "^4[^3%s^4] You Killed ^3%s ^4And Get ^3%d ^4XP. [^3Vip Bonus: Yes^4]", getPrefix(),victim_name, get_pcvar_num(kill_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
        XP[killer] += get_pcvar_num(kill_xp)
        CheckLevel(killer)
        Save(killer)
        if(get_pcvar_num(killer_msg) == 1){
            ColorChat(killer, RED, "^4[^3%s^4] You Killed ^3%s ^4And Get ^3%d ^4XP. [^3Vip Bonus: No^4]", getPrefix(),victim_name, get_pcvar_num(kill_xp))
            return PLUGIN_CONTINUE
            }
        }
    }
    CheckLevel(killer)
    Save(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{        
    new currentPlayerRank = 0;
    while(currentPlayerRank < (MaxLevels - 1))
    {       
        if(XP[id] >= Levels[currentPlayerRank + 1])
            ++currentPlayerRank;     
        else         
            break;
    }
    Lvl[id] = currentPlayerRank;
}

public client_connect(id)
{
    Load(id)
}


public client_disconnected(id)
{
    Save(id)
    XP[id] = 0
    Lvl[id] = 0
    remove_task(id)
}

public CmdAddXP (index, level, cid)
{
    if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
    
    new arg [32]
    read_argv (1, arg, 31)
    
    new AddXP [32]
    read_argv (2, AddXP, charsmax (AddXP))
    
    new XPtoGive = str_to_num (AddXP)
    
    new AdminName [32]
    new TargetName [32]
    get_user_name (index, AdminName, charsmax (AdminName))
    
    if(arg[0]=='@')
    {
        if(equali(arg[1],"All") || equali(arg[1],"ALL"))
        {
            new players[32], totalplayers, All
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                All = players[i]
                
                XP[All] += XPtoGive
            }
            
            CheckLevel(All)
            ColorChat(0, NORMAL, "^4[^3%s^4] ADMIN: ^3%s ^4Gave ^3%i ^4XP To Everyone!", getPrefix(), AdminName, XPtoGive)
        }
        else if(equali(arg[1],"T") || equali(arg[1],"t"))
        {
            new players[32], totalplayers, T
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                if (get_user_team(players[i]) == 1)
                {
                    T = players[i]
                    
                    XP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            ColorChat(0, RED, "^4[^3%s^4] ADMIN: ^3%s ^4Gave ^3%i ^4XP To All ^3Terrorists^4.", getPrefix(), AdminName, XPtoGive)
        }
        else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
        {
            new players[32], totalplayers, CT
            get_players(players, totalplayers)
            
            for(new i = 0; i < totalplayers; i++)
            {
                if(get_user_team(players[i]) == 2)
                {
                    CT = players[i]
                    
                    XP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            ColorChat(0, BLUE, "^4[^3%s^4] ADMIN: ^3%s ^4Gave ^3%i ^4XP To All ^3Counter-Terrorists^4.", getPrefix(), AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(index, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            XP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            ColorChat(0, NORMAL, "^4[^3%s^4] ADMIN: ^3%s ^4Gave ^3%i ^4XP To ^3%s^4.", getPrefix(), AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}
public CmdRemoveXP (index, level, cid)
{
    if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
    
    new arg [32]
    read_argv (1, arg, 31)
    
    new RemoveXP [32]
    read_argv (2, RemoveXP, charsmax (RemoveXP))
    
    new XPtoTook = str_to_num (RemoveXP)
    
    new AdminName [32]
    new TargetName [32]
    get_user_name (index, AdminName, charsmax (AdminName))
    
    if(arg[0]=='@')
    {
        if(equali(arg[1],"All") || equali(arg[1],"ALL"))
        {
            new players[32], totalplayers, All
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                All = players[i]
                
                XP[All] -= XPtoTook
            }
            
            CheckLevel(All)
            ColorChat(0, NORMAL, "^4[^3%s^4] ADMIN: ^3%s ^4Took ^3%i ^4XP From Everyone!", getPrefix(), AdminName, XPtoTook)
        }
        else if(equali(arg[1],"T") || equali(arg[1],"t"))
        {
            new players[32], totalplayers, T
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                if (get_user_team(players[i]) == 1)
                {
                    T = players[i]
                    
                    XP[T] -= XPtoTook
                }
            }
            
            CheckLevel(T)
            ColorChat(0, RED, "^4[^3%s^4] ADMIN: ^3%s ^4Took ^3%i ^4XP From All ^3Terrorists^4.", getPrefix(), AdminName, XPtoTook)
        }
        else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
        {
            new players[32], totalplayers, CT
            get_players(players, totalplayers)
            
            for(new i = 0; i < totalplayers; i++)
            {
                if(get_user_team(players[i]) == 2)
                {
                    CT = players[i]
                    
                    XP[CT] -= XPtoTook
                }
            }
            
            CheckLevel(CT)
            ColorChat(0, BLUE, "^4[^3%s^4] ADMIN: ^3%s ^4Took ^3%i ^4XP From All ^3Counter-Terrorists^4.", getPrefix(), AdminName, XPtoTook)
        }
    }
    else
    {
        new iTarget = cmd_target(index, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            XP[iTarget] -= XPtoTook
            
            CheckLevel(iTarget)
            ColorChat(0, NORMAL, "^4[^3%s^4] ADMIN: ^3%s ^4Took ^3%i ^4XP From ^3%s^4.", getPrefix(), AdminName, XPtoTook, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

public avoid_duplicated(msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}

public hook_say(id)
{
if(!is_user_connected(id)) {
    return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
    
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
    return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[ 32 ], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
    "^1*DEAD* ",
    "^1*DEAD* ",
    "^1*DEAD* ",
    "^1*SPEC* "
},
{
    "",
    "",
    "",
    ""
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
    
new iFlags = get_user_flags(id)
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
    
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
}  else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
    if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
    }
    
}
return PLUGIN_HANDLED_MAIN
}

public hook_teamsay(id) {
if(!is_user_connected(id)) {
    return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
    
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
    return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[32], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
    "^3(Spectator) ",
    "^1*DEAD* ^3(Terrorist) ",
    "^1*DEAD* ^3(Counter-Terrorist) ",
    "^3(Spectator) "
},
{
"^3(Spectator) ",
"^3(Terrorist) ",
"^3(Counter-Terrorist) ",
"^3(Spectator) "
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
    
new iFlags = get_user_flags(id)
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
    
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^4[^3%s^4] ^4[^3%s^4] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^4[^3%s^4] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
    if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
    }
    
}
return PLUGIN_HANDLED_MAIN
}

public Save(id)
{
    new name[32];
    get_user_name(id,name,31);
    new vaultkey[64],vaultdata[256];
    
    format(vaultkey,63,"%s", name);
    format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public Load(id)
{
    new name[32];
    get_user_name(id,name,31);
    new vaultkey[64],vaultdata[256];
    
    format(vaultkey,63,"%s",name);
    format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
    fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
    
    replace_all(vaultdata, 255, "#", " ");
    new playerxp[32], playerlevel[32];
    parse(vaultdata, playerxp, 31, playerlevel, 31);
    
    XP[id] = str_to_num(playerxp);
    Lvl[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
public changeTeamInfo(player, team[])
{
    message_begin(MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
    write_byte(player)                // Write byte needed
    write_string(team)                // Changes player's team
    message_end()                    // Also Needed
}

public writeMessage(player, szArgs[])
{
    message_begin(MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
    write_byte(player)                    // Write byte needed
    write_string(szArgs)                    // Effectively write the message, finally, afterall
    message_end()                        // Needed as always
}

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от DaRk_StyLe » 14 Ное 2017, 15:43

Подобни конфликти се получават, когато ползваш повече от един плъгин, модифициращ чата.

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от LoShIaA » 14 Ное 2017, 16:21

По принцип е така, но сега е спряно всичко друго освен него.
Допълнително инфо, ако може.
Като използвам GagSystem, Advanced Mute и ArmyRanks как да ги подредя. То в темите пише и на gagsystem и на crx_advmute да стоят най-отгоре.

GagSystem [MySQL / nVault] 1.0
Важно:
За да работят всички наказания най-вече за чата, плъгина трябва да бъде над всички други плъгини които по някакъв начин модифицират чат системата.
Advanced Mute
Имайте предвид, че плъгинът трябва да стои най-отгоре в списъка с плъгини (plugins.ini), в случай, че ползвате други плъгини, подобни на admin prefix, color chat и прочие.
:huh: :surrender: :shok:

Код за потвърждение: Избери целия код

; AMX Mod X plugins
amxbans_core.amxx
amxbans_main.amxx
gagsystem.amxx
crx_advmute.amxx
armyranks.amxx

; Admin Base - Always one has to be activated
;admin.amxx		; admin base (required for any admin-related)
;admin_sql.amxx		; admin base - SQL version (comment admin.amxx)

; Basic
admincmd.amxx		; basic admin console commands
adminhelp.amxx		; help command for admin console commands
adminslots.amxx		; slot reservation
multilingual.amxx	; Multi-Lingual management

; Menus
menufront.amxx		; front-end for admin menus
cmdmenu.amxx		; command menu (speech, settings)
plmenu.amxx		; players menu (kick, ban, client cmds.)
;telemenu.amxx		; teleport menu (Fun Module required!)
mapsmenu.amxx		; maps menu (vote, changelevel)
pluginmenu.amxx		; Menus for commands/cvars organized by plugin

; Chat / Messages
adminchat.amxx		; console chat commands
antiflood.amxx		; prevent clients from chat-flooding the server
scrollmsg.amxx		; displays a scrolling message
imessage.amxx		; displays information messages
adminvote.amxx		; vote commands

; Map related
nextmap.amxx		; displays next map in mapcycle
mapchooser.amxx		; allows to vote for next map
timeleft.amxx		; displays time left on map

; Configuration
pausecfg.amxx		; allows to pause and unpause some plugins
statscfg.amxx		; allows to manage stats plugins via menu and commands

; Counter-Strike
restmenu.amxx		; restrict weapons menu
statsx.amxx		; stats on death or round end (CSX Module required!)
miscstats.amxx		; bunch of events announcement for Counter-Strike
;stats_logging.amxx	; weapons stats logging (CSX Module required!)

; Custom - Add 3rd party plugins here

От тук надолу всички други плъгини

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от DaRk_StyLe » 14 Ное 2017, 16:52

Тази подредба ми изглежда наред. Имаш ли проблеми с тези два плъгина?

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от LoShIaA » 14 Ное 2017, 17:19

Не с тях нямам. Пак да уточня, че съм пуснал само armyranks и проблема явно си е от него.
Списък на плъгините:
amx_plugins
Currently loaded plugins:
name version author file status
[ 1] Admin Prefixes & Rank 1.0 ajw1337 armyranks.amxx running
[ 2] Admin Base 1.8.3-dev+ AMXX Dev Team admin.amxx running
[ 3] Admin Commands 1.8.3-dev+ AMXX Dev Team admincmd.amxx running
[ 4] Admin Help 1.8.3-dev+ AMXX Dev Team adminhelp.amxx running
[ 5] Slots Reservation 1.8.3-dev+ AMXX Dev Team adminslots.amxx running
[ 6] Multi-Lingual System 1.8.3-dev+ AMXX Dev Team multilingual.am running
[ 7] Menus Front-End 1.8.3-dev+ AMXX Dev Team menufront.amxx running
[ 8] Commands Menu 1.8.3-dev+ AMXX Dev Team cmdmenu.amxx running
[ 9] Players Menu 1.8.3-dev+ AMXX Dev Team plmenu.amxx running
[ 10] Maps Menu 1.8.3-dev+ AMXX Dev Team mapsmenu.amxx running
[ 11] Plugin Menu 1.8.3-dev+ AMXX Dev Team pluginmenu.amxx running
[ 12] Admin Chat 1.8.3-dev+ AMXX Dev Team adminchat.amxx running
[ 13] Anti Flood 1.8.3-dev+ AMXX Dev Team antiflood.amxx running
[ 14] Scrolling Message 1.8.3-dev+ AMXX Dev Team scrollmsg.amxx running
[ 15] Info. Messages 1.8.3-dev+ AMXX Dev Team imessage.amxx running
[ 16] Admin Votes 1.8.3-dev+ AMXX Dev Team adminvote.amxx running
[ 17] NextMap 1.8.3-dev+ AMXX Dev Team nextmap.amxx running
[ 18] Nextmap Chooser 1.8.3-dev+ AMXX Dev Team mapchooser.amxx running
[ 19] TimeLeft 1.8.3-dev+ AMXX Dev Team timeleft.amxx running
[ 20] Pause Plugins 1.8.3-dev+ AMXX Dev Team pausecfg.amxx running
[ 21] Stats Configuration 1.8.3-dev+ AMXX Dev Team statscfg.amxx running
[ 22] Restrict Weapons 1.8.3-dev+ AMXX Dev Team restmenu.amxx running
[ 23] StatsX 1.8.3-dev+ AMXX Dev Team statsx.amxx running
[ 24] CS Misc. Stats 1.8.3-dev+ AMXX Dev Team miscstats.amxx running
24 plugins, 24 running

Аватар
Just
Извън линия
Потребител
Потребител
Мнения: 427
Регистриран на: 23 Дек 2016, 19:10
Местоположение: http://cs-ultragaming.info
Се отблагодари: 5 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от Just » 14 Ное 2017, 19:11

ultimate_chat Ползвай този пългин и няма да имаш проблем с чата

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>

/**
uc_adminmode & uc_playermode:
a = The dead can see the chat messages of their alive teammates non-teammessages.
b = The dead can see the chat messages of their alive non-teammates non-teammessages.
c = The alive can see the chat messages of their dead teammates non-teammessages.
d = The alive can see the chat messages of their dead non-teammates non-teammessages

e = The dead can see the chat messages of their alive teammates teammessages
f = The alive can see the chat messages of their dead teammates teammessages
g = The dead can see the chat messages of their dead non-teammates teammessages
h = The alive can see the chat messages of their alive non-teammates teammessages
i = The dead can see the chat messages of their alive non-teammates teammessages
j = The alive can see the chat messages of their dead non-teammates teammessages

Default cvar values:
uc_enabled "1"
uc_adminmode "abcdefghij"
uc_playermode "abe"
uc_adminflag "n"
**/

/**
 * Support for auto updating. If you want to enable, just download and install HTTP:X. Everything else is automatic.
 * https://forums.alliedmods.net/showthread.php?t=282949
**/
native HTTPX_Download(const URL[], const Filename[] = "", const CompleteHandler[] = "", const ProgressHandler[] = "", Port = 0, RequestType = 0, const Username[] = "", const Password[] = "", ... /* For possible future use */)
native HTTPX_GetData(data[], len)



new const VersionNum = 152;

new gSayText;

new gpcvarEnabled,
	gpcvarAdminMode,
	gpcvarPlayerMode,
	gpcvarAdminFlag;

new const gTextChannels[][] = {
	"#Cstrike_Chat_All",
	"#Cstrike_Chat_AllDead",
	"#Cstrike_Chat_T",
	"#Cstrike_Chat_T_Dead",
	"#Cstrike_Chat_CT",
	"#Cstrike_Chat_CT_Dead",
	"#Cstrike_Chat_Spec",
	"#Cstrike_Chat_AllSpec"
};

public plugin_init() {

	new temp[5];
	num_to_str(VersionNum, temp[1], charsmax(temp));
	temp[0] = temp[1];
	temp[1] = '.';
	
	register_plugin("Ultimate Chat", temp, "[ --{-@ ]");
	
	gpcvarEnabled = register_cvar("uc_enabled", "1");
	gpcvarAdminMode = register_cvar("uc_adminmode", "abcdefghij");
	gpcvarPlayerMode = register_cvar("uc_playermode", "abe");
	gpcvarAdminFlag = register_cvar("uc_adminflag", "n");
	
	gSayText = get_user_msgid("SayText");
	
	set_task(1.0, "PlaceUCLastInQue");

	UpdatePlugin();
}

public PlaceUCLastInQue() {
	register_clcmd("say", "HandleSay");
	register_clcmd("say_team", "HandleSay");
}

public HandleSay(id) {
	
	if ( ! get_pcvar_num(gpcvarEnabled) )
		return PLUGIN_CONTINUE;
	
	if ( ! is_user_connected(id) )
		return PLUGIN_CONTINUE;
	
	new bool:SenderAlive = is_user_alive(id) ? true : false;
	new ReceiverFlags, ReceiverAlive, bool:ReceiverAdmin;
	static Text[192];
	
	read_argv(0, Text, charsmax(Text));
	new TeamMsg = Text[3] == '_';
	
	get_pcvar_string(gpcvarPlayerMode, Text, charsmax(Text));
	new PlayerMode = read_flags(Text);
	
	get_pcvar_string(gpcvarAdminMode, Text, charsmax(Text));
	new AdminMode = read_flags(Text);
	
	get_pcvar_string(gpcvarAdminFlag, Text, charsmax(Text));
	new AdminFlags = read_flags(Text);
	
	new CsTeams:ReceiverTeam, CsTeams:SenderTeam = cs_get_user_team(id);
	
	read_args(Text, charsmax(Text));
	remove_quotes(Text);
	trim(Text);
	
	if ( ! Text[0] )
		return PLUGIN_HANDLED;
	
	new Players[32], PlayersNum, tempPlayer;
	get_players(Players, PlayersNum, "c");
	
	for ( new i ; i < PlayersNum ; i++ ) {
		
		tempPlayer = Players[i];
		
		ReceiverFlags = get_user_flags(tempPlayer);
		ReceiverAdmin = AdminFlags & ReceiverFlags || ( AdminFlags & ADMIN_ADMIN && ReceiverFlags ) || AdminFlags == ADMIN_USER;
		ReceiverAlive = is_user_alive(tempPlayer);
		ReceiverTeam = cs_get_user_team(tempPlayer);
		if (
		( ( ( AdminMode & (1<< 0) && ReceiverAdmin ) || PlayerMode & (1<< 0) ) && ! TeamMsg &&   SenderAlive && ! ReceiverAlive && SenderTeam == ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 1) && ReceiverAdmin ) || PlayerMode & (1<< 1) ) && ! TeamMsg &&   SenderAlive && ! ReceiverAlive && SenderTeam != ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 2) && ReceiverAdmin ) || PlayerMode & (1<< 2) ) && ! TeamMsg && ! SenderAlive &&   ReceiverAlive && SenderTeam == ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 3) && ReceiverAdmin ) || PlayerMode & (1<< 3) ) && ! TeamMsg && ! SenderAlive &&   ReceiverAlive && SenderTeam != ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 4) && ReceiverAdmin ) || PlayerMode & (1<< 4) ) &&   TeamMsg &&   SenderAlive && ! ReceiverAlive && SenderTeam == ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 5) && ReceiverAdmin ) || PlayerMode & (1<< 5) ) &&   TeamMsg && ! SenderAlive &&   ReceiverAlive && SenderTeam == ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 6) && ReceiverAdmin ) || PlayerMode & (1<< 6) ) &&   TeamMsg && ! SenderAlive && ! ReceiverAlive && SenderTeam != ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 7) && ReceiverAdmin ) || PlayerMode & (1<< 7) ) &&   TeamMsg &&   SenderAlive &&   ReceiverAlive && SenderTeam != ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 8) && ReceiverAdmin ) || PlayerMode & (1<< 8) ) &&   TeamMsg &&   SenderAlive && ! ReceiverAlive && SenderTeam != ReceiverTeam ) ||
		( ( ( AdminMode & (1<< 9) && ReceiverAdmin ) || PlayerMode & (1<< 9) ) &&   TeamMsg && ! SenderAlive &&   ReceiverAlive && SenderTeam != ReceiverTeam )
		) {
			emessage_begin(MSG_ONE_UNRELIABLE, gSayText, {0,0,0}, tempPlayer);
			ewrite_byte(id);
			ewrite_string(gTextChannels[get_user_text_channel(id, SenderTeam, TeamMsg)]);
			ewrite_string("");
			ewrite_string(Text);
			emessage_end();
		}
	}
	
	return PLUGIN_CONTINUE;
}

stock get_user_text_channel(id, CsTeams:SenderTeam, TeamMsg) {
	if ( TeamMsg ) {
		switch ( SenderTeam ) {
			case CS_TEAM_T : {
				if ( is_user_alive(id) )
					return 2;
				else
					return 3;
			}
			case CS_TEAM_CT : {
				if ( is_user_alive(id) )
					return 4;
				else
					return 5;
			}
			default :
				return 6;
		}
	}
	
	if ( is_user_alive(id) )
		return 0;
	else if ( SenderTeam == CS_TEAM_SPECTATOR )
		return 7;
	
	return 1;
}


/*
if ( callfunc_begin("AutoupdatePlugin", "httpx.amxx") == 1 ) {
		callfunc_push_int(get_plugin(-1));
		callfunc_push_str("131277", false);
		callfunc_push_int(0);
		callfunc_end();
	}
*/

new gHTTPX = true;

UpdatePlugin() {
	
	if ( ! gHTTPX )
		return;

	new Temp[3];
	get_cvar_string("httpx_autoupdate", Temp, charsmax(Temp));

	if ( ! ( read_flags(Temp) & 2 ) )
		return;

	HTTPX_Download("digitaldecay.eu/forums/AM/UltimateChat/uc_version.txt", "", "forwardVersionCheck", "", 80, 0, "", "", 0, -1);
}

public forwardVersionCheck(DownloadID, Error) {

	if ( Error )
		return;

	new Data[4];
	HTTPX_GetData(Data, charsmax(Data));
	
	if ( VersionNum >= str_to_num(Data) )
		return;

	new hHTTPX = is_plugin_loaded("HTTP:X");

	if ( ! hHTTPX )
		return;

	new Filename[16];
	get_plugin(hHTTPX, Filename, charsmax(Filename));

	if ( callfunc_begin("AutoupdatePlugin", Filename) == 1 ) {
		callfunc_push_int(get_plugin(-1));
		callfunc_push_str("131277", false);
		callfunc_push_int(0);
		callfunc_end();
	}
}

public plugin_natives()
	set_native_filter("forwardNativeFilter");

public forwardNativeFilter(const Native[], Index, Trap) {
	
	if ( Trap )
		return PLUGIN_CONTINUE;

	if ( equal(Native, "HTTPX_Download") || equal(Native, "HTTPX_GetData") ) {
		gHTTPX = false;
		return PLUGIN_HANDLED;
	}

	return PLUGIN_CONTINUE;
}
Изображение


NEW CS 1.6 SERVERS IP: 45.144.155.176:27015

Изображение

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от LoShIaA » 20 Ное 2017, 11:50

Мерси за плъгина, но аз искам да се коригира този, ако е възможно.

Аватар
Just
Извън линия
Потребител
Потребител
Мнения: 427
Регистриран на: 23 Дек 2016, 19:10
Местоположение: http://cs-ultragaming.info
Се отблагодари: 5 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от Just » 20 Ное 2017, 17:24

До сега не съм виждал коригиран нема и да го видя просто казано не им се занимава да го коригират за това съм ти дал пългина защото и аз го ползвам.
Изображение


NEW CS 1.6 SERVERS IP: 45.144.155.176:27015

Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от OciXCrom » 20 Ное 2017, 19:24

Кодът е толкова ужасен, че аз лично не мога да разбера къде започва, а къде завършва дадена функция. Не виждам никаква проверка за спектатор, която да те спира да пишеш като такъв, тъй че най-вероятно има бъг. За общия чат - от 1000 реда, трябва да се редактират 500 такива, и към тези 500 да се добавят още 500 с 500 проверки, за да се направи отделен чат. Затова никой не иска да пипа това чудо. Авторът е направил за всеки префикс отделна проверка + за всеки отбор + за ранк системата + за двете заедно, вместо всичко да стане в един ред. Просто забрави... Сигурно има някой по-качествен плъгин.

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Armyranks спира спектаторския чат, ако може да се направи да него

Мнение от LoShIaA » 20 Ное 2017, 19:54

Добре, заключете темата. Този отговор ми стига просто да знам, че си е голяма играчка.

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта