Заявки за rank system-и

Ако искате да поръчате да ви намерим определено нещо, без да става дума за коментиране, пишете тук.
User avatar
HacksBG
V.I.P
V.I.P
Posts: 132
Joined: 29 Dec 2011, 14:17
Favorite version: other

Re: Заявки за rank system-и

Post by HacksBG »

sed1 wrote:Искам rank system ето и какви да са ранговете

"NEWBIE",
"BOT",
"KILLER",
"MEGA KILLER",
"ULTRA KILLER",
"OFFICER",
"COMANNDER",
"GENERAL",
"MEGAPRO PLAYER",
"NL GENERAL"

Ето и какви килове
25,
50,
100,
200,
300,
500,
750,
1000,
1250,
1500


Пример: [NEWBIE] Nick : hi
Префикса на ранка да е в зелено

Code: Select all

#include <amxmodx>
#include <amxmisc>  
#include <cstrike>
#include <chatcolor>
#include <fvault>

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

new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg

new const g_vault_name[] = "levelsz";

new const Levels[MaxLevels] = 
{
    0,
    50, 
    150, 
    250, 
    350, 
    450, 
    550, 
    650,
    750,
    850, 
    950,
    1150,
    1400,
	1700,
	2050,
	2450,
	2900,
	3400,
	3950,
	4550
}

new const Prefix[MaxLevels +1][] =
{
    "Newbie", 
    "Advanced",
    "Killer", 
    "Mega killer",
    "Ultra Killer", 
    "Unstoppable",
    "PRO",
    "God Of War", 
    "Gamer", 
    "Chuck Norris",
    "Machinie", 
    "SupoernNova",
    "Ultimate", 
    "Hitman",
	"Rambo",
	"Terminator",
	"Freak",
	"UNDEAD",
	"MONSTER",
    "General",   
	"MASTER"
	
	
}

public plugin_init() 
{
    register_plugin("Ranks & XP mod", "1.0", "alt.nick")
    
    register_event("DeathMsg","client_death","a") 
    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")
    
    register_clcmd("say /rank", "cmdRank")
    register_clcmd("say_team /rank", "cmdRank")
    
    register_clcmd("say /reset", "reset_xp")
    register_clcmd("say_team /reset", "reset_xp")
    
    ranks_hud = register_cvar("ranks_hud", "1")     // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
    knife_xp = register_cvar("knife_xp", "1")     // Колко ХР да дава за убийство с нож.
    he_xp = register_cvar("he_xp", "1")        // Колко ХР да дава за убийство с Granata (HE).
    hs_xp = register_cvar("hs_xp", "1")        // Колко ХР да дава за убийство с Headshot.
    kill_xp = register_cvar("kill_xp", "1")        // Колко ХР да дава за нормално убийство.    
    kill_msg = register_cvar("kill_msg", "1")    // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
    
    gMaxPlayers = get_maxplayers()
    gMsgSayText = get_user_msgid("SayText")

    syncObj     = CreateHudSyncObj()
    
    fvault_load(g_vault_name)
}

public ShowHud(id) 
{
    set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
    ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}

public client_putinserver(id)
{
    if(get_pcvar_num(ranks_hud) == 1)
        set_task(1.0, "ShowHud", id, _, _, "b")
        
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_death(killer, victim, weapon, hitgroup, TK)
{        
    if(killer == victim)
        return PLUGIN_HANDLED
        
    new Name[20]
    get_user_name(victim, Name, 19)
    new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
    
    if(get_user_team(killer) == 2 && killer != victim)
    {
        switch(weapon) 
        {
            case CSW_HEGRENADE:
            {
                eXP[killer] += get_pcvar_num(he_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
            } 
            
            case CSW_KNIFE:
            {
                eXP[killer] += get_pcvar_num(knife_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
            } 
        }
        
        if(headshot)
        {
            eXP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp),  Name)
        }
        else
        {
            eXP[killer] += get_pcvar_num(kill_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
        }
    }
    CheckLevel(killer)
    SaveData(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_connect(id)
{
    LoadData(id)
}


public client_disconnect(id)
{
    SaveData(id)
    eXP[id] = 0
    Level[id] = 0
    remove_task(id)
}
        
public reset_xp(id)
{
    if(eXP[id] != 0)
    {
        Level[id] = 0
        eXP[id] = 0
        CheckLevel(id)
        client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
    }
    else
        client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
        
public cmdRank(id)
{
    if(is_user_connected(id))
        client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
        
public CmdAddXP (iPlayer, level, cid)
{
    if(!cmd_access(iPlayer, 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 (iPlayer, 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]
                        
                eXP[All] += XPtoGive
            }
            
            CheckLevel(All)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", 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]
                            
                    eXP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", 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]
                            
                    eXP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(iPlayer, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            eXP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

bool:IsValidMessage( szMessage[ ], iLen )
{
    read_args( szMessage, iLen )
    remove_quotes( szMessage )
   
    new iPos, cChar
    while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
    {
        if( cChar != ' ' && cChar != '%' )
        {
            return true
        }
    }
   
    return false
}

public hook_say(id)
{
    if(!is_user_connected(id)) 
        return PLUGIN_HANDLED_MAIN
    
    new szArgs[192]
    
    if( !IsValidMessage(szArgs, charsmax(szArgs))) 
        return PLUGIN_HANDLED_MAIN

    if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN

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

    new alive = is_user_alive(id)

    if(contain(szArgs,"@") >= 0) 
    return  PLUGIN_HANDLED_MAIN
 
    format(szArgs, 191, "^x04[^x03%s^x04] ^x03%s^x01 :  %s",  Prefix[Level[id]], szName, szArgs)

    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(!is_user_connected(i))
            continue
    
        if(alive && is_user_alive(i))
        {
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(szArgs)
            message_end()
        } 
        else if(!alive && !is_user_alive(i)) 
        {
            new format[192]
            formatex(format,191,"^x01* DEAD %s",szArgs)
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(format)
            message_end()
        }
    }
        
    return PLUGIN_HANDLED_MAIN
}

public SaveData(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#",eXP[id],Level[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public LoadData(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#",eXP[id],Level[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);
    
    eXP[id] = str_to_num(playerxp);
    Level[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
User avatar
Reddeyes
Потребител
Потребител
Posts: 149
Joined: 18 Feb 2015, 19:49
Favorite version: CS: 1.6

Re: Заявки за rank system-и

Post by Reddeyes »

Искам да питам Rank системата от първата страница ще работи ли безпроблемно с Admin prefixes 4.0 от Москвича?
Примерно админ съм и искам пак да ми се виждат ранковете , обаче не в чата ами отгоре под радара.
А когато някой е играч в чата да му изписва пред ника дадения rank + отгоре под радара.

Очаквам отговор :)
User avatar
HacksBG
V.I.P
V.I.P
Posts: 132
Joined: 29 Dec 2011, 14:17
Favorite version: other

Re: Заявки за rank system-и

Post by HacksBG »

Искаш Админ ранговете да се виждат отгоре или На ранк система ранговете?

Виж тази дали ти харесва !!

Code: Select all

#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  //Head Admin префикс "m"
#define ADMIN_TWO        ADMIN_LEVEL_B  //Head Support префикс "n"
#define ADMIN_THREE        ADMIN_LEVEL_C  //Global Admin префикс "o"
#define ADMIN_FOUR        ADMIN_LEVEL_D  //Server Admin префикс "p"
#define ADMIN_FIVE        ADMIN_LEVEL_E  //V.I.P префикс "q"
#define ADMIN_SIX        ADMIN_LEVEL_F  //SMS Admin префикс "r"

#define MaxLevels         14
#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,
50,
100,
150,
300,
350,
450,
550,
700,
850,
1000,
1200,
1350,
1500,
}

new const Prefix[MaxLevels][] =
{
"Newbie",
"Soldier",
"Corporal",
"Sergeant",
"Staff",
"Lieutenant",
"Captain",
"Major",
"Lieutenant Colonel",
"Colonel",
"Brigadier",
"Major General",
"Lieutenant General",
"General of the ARMY",
}

new const szTag[][] = {
    "",
    "Head Admin",
    "Head Support",
    "Global Admin",
    "Server Admin",
    "V.I.P",
    "SMS Admin"
}

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", "t")  //Вип флага. (В момента е t) 
    
    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", "ArmyRanks");  //Префикса на системата.
    knife_xp = register_cvar("knife_xp", "3")  //Колко XP да дава като го убиеш с ножа.
    he_xp = register_cvar("he_grenade_xp", "2") //Колко XP да дава като го убиеш с граната.
    hs_xp = register_cvar("headshot_xp", "4")  //Колко XP да дава като го убиеш с HeadShoot
    kill_xp = register_cvar("kill_xp", "2")  //Колко XP да дава като го убиеш.
    suicide_xp = register_cvar("suicide_xp", "5")  //Колко XP да вземе като се самоубиеш
    killer_msg = register_cvar("kill_message", "1")  //Да излиза ли съобщението когато го убиеш противник.
    
    
    HUDR = register_cvar("hud_color_red", "139")
    HUDG = register_cvar("hud_color_green", "0")
    HUDB = register_cvar("hud_color_blue", "139")
    HUDX = register_cvar("hud_position_X", "0.01")
    HUDY = register_cvar("hud_position_Y", "0.14")
    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_BAN, "<nick | ct | t | @all> <xp>")
    register_concmd ("amx_take_xp", "CmdRemoveXP", ADMIN_BAN, "<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), 6.0, 1.0, 0.0, 0.0, -1)
if(MaxLevels == Lvl[id]+1)
ShowSyncHudMsg(id, syncObj,"Rank: %s^nXP: %d", Prefix[Lvl[id]], XP[id])
else
ShowSyncHudMsg(id, syncObj,"Rank: %s/%s^nXP: %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[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1| ^3XP^1: ^4%d^1.", getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, XP[id])
    else
        ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1/ ^4%d ^1| ^3XP^1: ^4 %d ^1/ ^4%d ^1to become ^4%s^1.",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[%s]^1 You committed ^3suicide ^1and ^3lost^4 %d XP^1.", 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[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^4vip bonus: yes ]", 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[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^3vip bonus: no ]", 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_disconnect(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[%s] ^1ADMIN: ^3%s^1 gave^4 %i XP^1 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[%s]^1 ADMIN: ^4%s ^1gave ^4%i XP ^1to all ^3Terrorists^1.", 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[%s]^1ADMIN: ^4%s^1 gave^4 %i XP^1to all ^3Counter-Terrorists^1.", 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[%s]^1 ADMIN: ^3%s^1 gave^4 %i XP^1 to^4 %s^1.", 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[%s] ^1ADMIN: ^3%s^1 took^4 %i XP^1 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[%s]^1 ADMIN: ^4%s ^1took ^4%i XP ^1from all ^3Terrorists^1.", 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[%s]^1ADMIN: ^4%s^1 took^4 %i XP^1from all ^3Counter-Terrorists^1.", 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[%s]^1 ADMIN: ^3%s^1 took^4 %i XP^1 from^4 %s^1.", 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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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
}
 

В чата като напишеш нещо излиза ПРИМЕРНО:[Head Admin] [General of the ARMY] и ника
User avatar
robertocavalli98
Потребител
Потребител
Posts: 18
Joined: 05 Sep 2016, 16:10

Re: Заявки за rank system-и

Post by robertocavalli98 »

[NewBie] 0-15
[Killer] 15-50
[Mega Killer] 50-100
[Ultra Killer] 100-150
[Supernova] 150-200
[Ultimate] 200-300
[Kniffer] 300-400
[Freak] 400-500
[Pro] 500-550
[General] 550-600
[Terminator] 600-1000

Admin Prefix
[Head admin] - флаг „n“
[server admin] - флаг „o“
[SMS ADMIN] - флаг „p“
[V.I.P] - флаг „q“

Да ми пише и admin prefix и rankа
Пример:[Head Admin] [Terminator] Nick : kfo staa
Префикс-зелен
Префикса на ранка да е в зелено
Име-Червено
Чат-Зелено
Името според отбора ако съм T червен ако CT син!
User avatar
HacksBG
V.I.P
V.I.P
Posts: 132
Joined: 29 Dec 2011, 14:17
Favorite version: other

Re: Заявки за rank system-и

Post by HacksBG »

Code: Select all

#include <amxmodx>
#include <amxmisc>  
#include <cstrike>
#include <chatcolor>
#include <fvault>

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

#define ADMIN1 "Administrator"
#define ADMIN1_ACCESS ADMIN_LEVEL_A

#define ADMIN2 "Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B

#define ADMIN3 "Help Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C

#define ADMIN4 "Head Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D

#define ADMIN5 "Server Admin"
#define ADMIN5_ACCESS ADMIN_LEVEL_E

#define ADMIN6 "V.I.P"
#define ADMIN6_ACCESS ADMIN_LEVEL_F

#define ADMIN7 "Test Admin"
#define ADMIN7_ACCESS ADMIN_LEVEL_G

new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg

new const g_vault_name[] = "levelsz";

new const Levels[MaxLevels] = 
{
    15,
    50, 
    100, 
    150, 
    200, 
    300,
    400,
    500,
    550,
    600
}

new const Prefix[MaxLevels +1][] =
{
    "NewBie", 
    "Killer",
    "Mega Killer", 
    "Ultra Killer",
    "Supernova", 
    "Ultimate",
    "Kniffer",
    "Freak", 
    "Pro", 
    "General",
    "Terminator"
}

public plugin_init() 
{
    register_plugin("Ranks & XP mod", "1.0", "alt.nick")
    
    register_event("DeathMsg","client_death","a") 
    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")
    
    register_clcmd("say /rank", "cmdRank")
    register_clcmd("say_team /rank", "cmdRank")
    
    register_clcmd("say /reset", "reset_xp")
    register_clcmd("say_team /reset", "reset_xp")
    
    ranks_hud = register_cvar("ranks_hud", "1")     // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
    knife_xp = register_cvar("knife_xp", "1")     // Колко ХР да дава за убийство с нож.
    he_xp = register_cvar("he_xp", "1")        // Колко ХР да дава за убийство с Granata (HE).
    hs_xp = register_cvar("hs_xp", "1")        // Колко ХР да дава за убийство с Headshot.
    kill_xp = register_cvar("kill_xp", "1")        // Колко ХР да дава за нормално убийство.    
    kill_msg = register_cvar("kill_msg", "1")    // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
    
    gMaxPlayers = get_maxplayers()
    gMsgSayText = get_user_msgid("SayText")

    syncObj     = CreateHudSyncObj()
    
    fvault_load(g_vault_name)
}

public ShowHud(id) 
{
    set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
    ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}

public client_putinserver(id)
{
    if(get_pcvar_num(ranks_hud) == 1)
        set_task(1.0, "ShowHud", id, _, _, "b")
        
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_death(killer, victim, weapon, hitgroup, TK)
{        
    if(killer == victim)
        return PLUGIN_HANDLED
        
    new Name[20]
    get_user_name(victim, Name, 19)
    new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
    
    if(get_user_team(killer) == 2 && killer != victim)
    {
        switch(weapon) 
        {
            case CSW_HEGRENADE:
            {
                eXP[killer] += get_pcvar_num(he_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
            } 
            
            case CSW_KNIFE:
            {
                eXP[killer] += get_pcvar_num(knife_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
            } 
        }
        
        if(headshot)
        {
            eXP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp),  Name)
        }
        else
        {
            eXP[killer] += get_pcvar_num(kill_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
        }
    }
    CheckLevel(killer)
    SaveData(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_connect(id)
{
    LoadData(id)
}


public client_disconnect(id)
{
    SaveData(id)
    eXP[id] = 0
    Level[id] = 0
    remove_task(id)
}
        
public reset_xp(id)
{
    if(eXP[id] != 0)
    {
        Level[id] = 0
        eXP[id] = 0
        CheckLevel(id)
        client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
    }
    else
        client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
        
public cmdRank(id)
{
    if(is_user_connected(id))
        client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
        
public CmdAddXP (iPlayer, level, cid)
{
    if(!cmd_access(iPlayer, 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 (iPlayer, 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]
                        
                eXP[All] += XPtoGive
            }
            
            CheckLevel(All)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", 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]
                            
                    eXP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", 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]
                            
                    eXP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(iPlayer, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            eXP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

bool:IsValidMessage( szMessage[ ], iLen )
{
    read_args( szMessage, iLen )
    remove_quotes( szMessage )
   
    new iPos, cChar
    while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
    {
        if( cChar != ' ' && cChar != '%' )
        {
            return true
        }
    }
   
    return false
}

public hook_say(id)
{
    if(!is_user_connected(id)) 
        return PLUGIN_HANDLED_MAIN
    
    new szArgs[192]
    
    if( !IsValidMessage(szArgs, charsmax(szArgs))) 
        return PLUGIN_HANDLED_MAIN

    if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN

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

    new alive = is_user_alive(id)

    if(contain(szArgs,"@") >= 0) 
    return  PLUGIN_HANDLED_MAIN
 
    if(get_user_flags(id) & ADMIN1_ACCESS) 
    format(szArgs, 191,"^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN1, Prefix[Level[id]], szName, szArgs)
    
    else if(get_user_flags(id) & ADMIN2_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN2, Prefix[Level[id]], szName, szArgs)
    
    else if(get_user_flags(id) & ADMIN3_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN3, Prefix[Level[id]], szName, szArgs)
    
    else if(get_user_flags(id) & ADMIN4_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN4, Prefix[Level[id]], szName, szArgs)

    else if(get_user_flags(id) & ADMIN5_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN5, Prefix[Level[id]], szName, szArgs)
    
    else if(get_user_flags(id) & ADMIN6_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN6, Prefix[Level[id]], szName, szArgs)

    else if(get_user_flags(id) & ADMIN7_ACCESS) 
    format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04  %s", ADMIN7, Prefix[Level[id]], szName, szArgs)
    
    else 
    format(szArgs, 191, "^x04[%s] ^x03%s^x01 :  %s",  Prefix[Level[id]], szName, szArgs)

    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(!is_user_connected(i))
            continue
    
        if(alive && is_user_alive(i))
        {
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(szArgs)
            message_end()
        } 
        else if(!alive && !is_user_alive(i)) 
        {
            new format[192]
            formatex(format,191,"^x01* DEAD %s",szArgs)
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(format)
            message_end()
        }
    }
        
    return PLUGIN_HANDLED_MAIN
}

public SaveData(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#",eXP[id],Level[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public LoadData(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#",eXP[id],Level[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);
    
    eXP[id] = str_to_num(playerxp);
    Level[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
 
User avatar
robertocavalli98
Потребител
Потребител
Posts: 18
Joined: 05 Sep 2016, 16:10

Re: Заявки за rank system-и

Post by robertocavalli98 »

1 Плъгина не бачка
2 Не си направил админ префиксите по заявка

все пак мерси :)
User avatar
HacksBG
V.I.P
V.I.P
Posts: 132
Joined: 29 Dec 2011, 14:17
Favorite version: other

Re: Заявки за rank system-и

Post by HacksBG »

Лол странно плъгина не бачка кво значи

Code: Select all

#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  //Head Admin префикс "m"
#define ADMIN_TWO        ADMIN_LEVEL_B  //Head Support префикс "n"
#define ADMIN_THREE        ADMIN_LEVEL_C  //Global Admin префикс "o"
#define ADMIN_FOUR        ADMIN_LEVEL_D  //Server Admin префикс "p"
#define ADMIN_FIVE        ADMIN_LEVEL_E  //V.I.P префикс "q"
#define ADMIN_SIX        ADMIN_LEVEL_F  //SMS Admin префикс "r"


#define MaxLevels         14
#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] =
{
    15,
    50, 
    100, 
    150, 
    200, 
    300,
    400,
    500,
    550,
    600
}

new const Prefix[MaxLevels][] =
{
    "NewBie", 
    "Killer",
    "Mega Killer", 
    "Ultra Killer",
    "Supernova", 
    "Ultimate",
    "Kniffer",
    "Freak", 
    "Pro", 
    "General",
    "Terminator"
}

new const szTag[][] = {
    "",
    "Head Admin",
    "Adminka",
    "Global Admin",
    "Server Admin",
    "V.I.P",
    "SMS Admin"
}

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", "t")  //Вип флага. (В момента е t) 
    
    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", "1")  //Админ префикса. 1 включено "0" изключено.
    UseRankSystem = register_cvar("Rank_Prefixes_On/Off", "1")  //Ранк системата "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", "ArmyRanks");  //Префикса на системата.
    knife_xp = register_cvar("knife_xp", "3")  //Колко XP да дава като го убиеш с ножа.
    he_xp = register_cvar("he_grenade_xp", "2") //Колко XP да дава като го убиеш с граната.
    hs_xp = register_cvar("headshot_xp", "4")  //Колко XP да дава като го убиеш с HeadShoot
    kill_xp = register_cvar("kill_xp", "2")  //Колко XP да дава като го убиеш.
    suicide_xp = register_cvar("suicide_xp", "5")  //Колко XP да вземе като се самоубиеш
    killer_msg = register_cvar("kill_message", "1")  //Да излиза ли съобщението когато го убиеш противник.
    
    
    HUDR = register_cvar("hud_color_red", "139")
    HUDG = register_cvar("hud_color_green", "0")
    HUDB = register_cvar("hud_color_blue", "139")
    HUDX = register_cvar("hud_position_X", "0.01")
    HUDY = register_cvar("hud_position_Y", "0.14")
    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_BAN, "<nick | ct | t | @all> <xp>")
    register_concmd ("amx_take_xp", "CmdRemoveXP", ADMIN_BAN, "<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), 6.0, 1.0, 0.0, 0.0, -1)
if(MaxLevels == Lvl[id]+1)
ShowSyncHudMsg(id, syncObj,"Rank: %s^nXP: %d", Prefix[Lvl[id]], XP[id])
else
ShowSyncHudMsg(id, syncObj,"Rank: %s/%s^nXP: %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[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1| ^3XP^1: ^4%d^1.", getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, XP[id])
    else
        ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1/ ^4%d ^1| ^3XP^1: ^4 %d ^1/ ^4%d ^1to become ^4%s^1.",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[%s]^1 You committed ^3suicide ^1and ^3lost^4 %d XP^1.", 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[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^4vip bonus: yes ]", 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[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", 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[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^4vip bonus: yes ^1]", 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[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^3vip bonus: no ]", 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_disconnect(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[%s] ^1ADMIN: ^3%s^1 gave^4 %i XP^1 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[%s]^1 ADMIN: ^4%s ^1gave ^4%i XP ^1to all ^3Terrorists^1.", 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[%s]^1ADMIN: ^4%s^1 gave^4 %i XP^1to all ^3Counter-Terrorists^1.", 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[%s]^1 ADMIN: ^3%s^1 gave^4 %i XP^1 to^4 %s^1.", 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[%s] ^1ADMIN: ^3%s^1 took^4 %i XP^1 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[%s]^1 ADMIN: ^4%s ^1took ^4%i XP ^1from all ^3Terrorists^1.", 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[%s]^1ADMIN: ^4%s^1 took^4 %i XP^1from all ^3Counter-Terrorists^1.", 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[%s]^1 ADMIN: ^3%s^1 took^4 %i XP^1 from^4 %s^1.", 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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^3[^4%s^3] ^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^1[^4%s^1] ^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^1[^4%s^1] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^3[^4%s^3] ^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^3[^4%s^3] ^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^3[^4%s^3] ^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
}
 
Пробвай така даже имаш 2 префиха бонус защото знам че ще ти трябват за напред
User avatar
Sithy
Потребител
Потребител
Posts: 3
Joined: 06 Jan 2017, 13:50

Re: Заявки за rank system-и

Post by Sithy »

Искам да има HUD съобщение горе в средата на екрана със син цвят без да премигва: подредба
Rank: [NewBie]
XP: [0/50]
Убийство: 2xp;
Убийство в главата: 4xp;
Убийство с HE: 6хp;
Убийство с нож: 8xp;
За залагане и обезвреждане: 1xp;
1.При вдигане на левел да изписва в чата само на играча, който е вдигнал левела: [АМХХ] LoShIaA Level Up Rank [Advanced]. Сложи някакви цветове аз ще си ги променя.
2.Ако може да се направи с команда /xp да излиза motd екран със статистика на всички играчи в сървъра: Nick: Rank: XP:, ако не може motd екран тогава без команда за проверка.
3.Да има команда за даване на XP, но да е само за даден играч, a да не може да се дава на цял отбор: say: /givexp loshiaa 50 и да излиза в чата само на админа който е дал: [AMXX]You Gave 50 XP To LoShIaA (Сложи някакви цветове аз ще си ги променя.), а този който го получи да му излиза съобщение: You Received 50 XP From LoShIaA (Сложи някакви цветове аз ще си ги променя.).
4.Не искам админ префикси!
5.Не искам никой да има достъп до рестартиране на ХР-то освен чрез админ команда през конзола.
6.По възможност да не бъгва плъгина, който блокира "/".
[NewBie] 0-50
[Advanced] 50-150
[Killer] 150-250
[Mega Killer] 250-350
[Ultra Killer] 350-450
[Unstoppable] 450-550
[PRO] 550-650
[God Of War] 650-750
[Gamer] 750-850
[Chuck Norris] 850-950
[Machine] 950-1150
[SuperNova] 1150-1400
[Ultimate] 1400-1700
[Hitman] 1700-2050
[Rambo] 2050-2450
[Terminator] 2450-2900
[Freak] 2900-3400
[UNDEAD] 3400-3950
[Monster] 3950-4550
[Master] 4550-5200
User avatar
psyth1g
Deactivated account
Posts: 69
Joined: 30 May 2016, 18:20
Skype: ЛС.
CS Nick: D4Yz
Favorite version: CS: 1.6
Steam Community ID: p1tbullwtf
Location: Под масата
Contact:

Re: Заявки за rank system-и

Post by psyth1g »

[Rednik] - 0
[Novak] - 5
[Mladshi Serjant] - 25
[Serjant] - 50
[Starshi Serjant] - 75
[Starshina] - 100
[Mladshi Leitenant] - 125
[Leitenant] - 150
[Starshi Leitenant] - 175
[Kapitan] - 200
[Kapitan Leitenant] - 250
[Maior] - 300
[General Leitenant] - 400
[General Maior] - 500
[General] - 750
[Admiral] - 1000
[GOHARDPLAY Player] - 7000
[GOHARDPLAY KING] - 10000

Ако може да ми предоставите .sma файла, благодаря!
User avatar
kitin.dll
Потребител
Потребител
Posts: 157
Joined: 02 Jun 2016, 17:52
Skype: zabraih ;(
CS Nick: (*knoxS*)
Favorite version: CS: 1.6

Re: Заявки за rank system-и

Post by kitin.dll »

TorbaN wrote:[Rednik] - 0
[Novak] - 5
[Mladshi Serjant] - 25
[Serjant] - 50
[Starshi Serjant] - 75
[Starshina] - 100
[Mladshi Leitenant] - 125
[Leitenant] - 150
[Starshi Leitenant] - 175
[Kapitan] - 200
[Kapitan Leitenant] - 250
[Maior] - 300
[General Leitenant] - 400
[General Maior] - 500
[General] - 750
[Admiral] - 1000
[GOHARDPLAY Player] - 7000
[GOHARDPLAY KING] - 10000

Ако може да ми предоставите .sma файла, благодаря!

Code: Select all

#include <amxmodx>
#include <amxmisc>  
#include <cstrike>
#include <chatcolor>
#include <fvault>

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

new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg

new const g_vault_name[] = "levelsz";

new const Levels[MaxLevels] = 
{
    0,
    5, 
    25, 
    50, 
    75, 
    100, 
    125, 
    150,
    175,
    200, 
    250,
    300,
    300,
   400,
   500,
   750,
   1000,
   7000,
   10000
}

new const Prefix[MaxLevels +1][] =
{
    "Rednik", 
    "Novak",
    "Mladshi Serjant", 
    "Serjant",
    "Starshi Serjant", 
    "Starshina",
    "Mladshi Leitenant",
    "Leitenant", 
    "Starshi Leitenant", 
    "Kapitan",
    "Kapitan Leitenant", 
    "Maior",
    "General Leitenant", 
    "General Maior",
   "General",
   "Admiral",
   "GOHARDPLAY Player",
   "GOHARDPLAY KING"
   
   
}

public plugin_init() 
{
    register_plugin("Ranks & XP mod", "1.0", "alt.nick")
    
    register_event("DeathMsg","client_death","a") 
    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")
    
    register_clcmd("say /rank", "cmdRank")
    register_clcmd("say_team /rank", "cmdRank")
    
    register_clcmd("say /reset", "reset_xp")
    register_clcmd("say_team /reset", "reset_xp")
    
    ranks_hud = register_cvar("ranks_hud", "1")     // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
    knife_xp = register_cvar("knife_xp", "1")     // Колко ХР да дава за убийство с нож.
    he_xp = register_cvar("he_xp", "1")        // Колко ХР да дава за убийство с Granata (HE).
    hs_xp = register_cvar("hs_xp", "1")        // Колко ХР да дава за убийство с Headshot.
    kill_xp = register_cvar("kill_xp", "1")        // Колко ХР да дава за нормално убийство.    
    kill_msg = register_cvar("kill_msg", "1")    // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
    
    gMaxPlayers = get_maxplayers()
    gMsgSayText = get_user_msgid("SayText")

    syncObj     = CreateHudSyncObj()
    
    fvault_load(g_vault_name)
}

public ShowHud(id) 
{
    set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
    ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}

public client_putinserver(id)
{
    if(get_pcvar_num(ranks_hud) == 1)
        set_task(1.0, "ShowHud", id, _, _, "b")
        
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_death(killer, victim, weapon, hitgroup, TK)
{        
    if(killer == victim)
        return PLUGIN_HANDLED
        
    new Name[20]
    get_user_name(victim, Name, 19)
    new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
    
    if(get_user_team(killer) == 2 && killer != victim)
    {
        switch(weapon) 
        {
            case CSW_HEGRENADE:
            {
                eXP[killer] += get_pcvar_num(he_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
            } 
            
            case CSW_KNIFE:
            {
                eXP[killer] += get_pcvar_num(knife_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
            } 
        }
        
        if(headshot)
        {
            eXP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp),  Name)
        }
        else
        {
            eXP[killer] += get_pcvar_num(kill_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
        }
    }
    CheckLevel(killer)
    SaveData(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_connect(id)
{
    LoadData(id)
}


public client_disconnect(id)
{
    SaveData(id)
    eXP[id] = 0
    Level[id] = 0
    remove_task(id)
}
        
public reset_xp(id)
{
    if(eXP[id] != 0)
    {
        Level[id] = 0
        eXP[id] = 0
        CheckLevel(id)
        client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
    }
    else
        client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
        
public cmdRank(id)
{
    if(is_user_connected(id))
        client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
        
public CmdAddXP (iPlayer, level, cid)
{
    if(!cmd_access(iPlayer, 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 (iPlayer, 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]
                        
                eXP[All] += XPtoGive
            }
            
            CheckLevel(All)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", 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]
                            
                    eXP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", 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]
                            
                    eXP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(iPlayer, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            eXP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

bool:IsValidMessage( szMessage[ ], iLen )
{
    read_args( szMessage, iLen )
    remove_quotes( szMessage )
   
    new iPos, cChar
    while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
    {
        if( cChar != ' ' && cChar != '%' )
        {
            return true
        }
    }
   
    return false
}

public hook_say(id)
{
    if(!is_user_connected(id)) 
        return PLUGIN_HANDLED_MAIN
    
    new szArgs[192]
    
    if( !IsValidMessage(szArgs, charsmax(szArgs))) 
        return PLUGIN_HANDLED_MAIN

    if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN

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

    new alive = is_user_alive(id)

    if(contain(szArgs,"@") >= 0) 
    return  PLUGIN_HANDLED_MAIN
 
    format(szArgs, 191, "^x04[^x03%s^x04] ^x03%s^x01 :  %s",  Prefix[Level[id]], szName, szArgs)

    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(!is_user_connected(i))
            continue
    
        if(alive && is_user_alive(i))
        {
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(szArgs)
            message_end()
        } 
        else if(!alive && !is_user_alive(i)) 
        {
            new format[192]
            formatex(format,191,"^x01* DEAD %s",szArgs)
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(format)
            message_end()
        }
    }
        
    return PLUGIN_HANDLED_MAIN
}

public SaveData(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#",eXP[id],Level[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public LoadData(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#",eXP[id],Level[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);
    
    eXP[id] = str_to_num(playerxp);
    Level[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
Тест :coffee1:
Last edited by kitin.dll on 02 Mar 2017, 18:24, edited 1 time in total.
User avatar
psyth1g
Deactivated account
Posts: 69
Joined: 30 May 2016, 18:20
Skype: ЛС.
CS Nick: D4Yz
Favorite version: CS: 1.6
Steam Community ID: p1tbullwtf
Location: Под масата
Contact:

Re: Заявки за rank system-и

Post by psyth1g »

Californiaa wrote:
TorbaN wrote:[Rednik] - 0
[Novak] - 5
[Mladshi Serjant] - 25
[Serjant] - 50
[Starshi Serjant] - 75
[Starshina] - 100
[Mladshi Leitenant] - 125
[Leitenant] - 150
[Starshi Leitenant] - 175
[Kapitan] - 200
[Kapitan Leitenant] - 250
[Maior] - 300
[General Leitenant] - 400
[General Maior] - 500
[General] - 750
[Admiral] - 1000
[GOHARDPLAY Player] - 7000
[GOHARDPLAY KING] - 10000

Ако може да ми предоставите .sma файла, благодаря!

Code: Select all

#include <amxmodx>
#include <amxmisc>  
#include <cstrike>
#include <chatcolor>
#include <fvault>

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

new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg

new const g_vault_name[] = "levelsz";

new const Levels[MaxLevels] = 
{
    0,
    5, 
    25, 
    50, 
    75, 
    100, 
    125, 
    150,
    175,
    200, 
    250,
    300,
    300,
   400,
   500,
   750,
   1000,
   7000,
   10000
}

new const Prefix[MaxLevels +1][] =
{
    "[Rednik]", 
    "[Novak]",
    "[Mladshi Serjant]", 
    "[Serjant]",
    "[Starshi Serjant]", 
    "[Starshina]",
    "[Mladshi Leitenant]",
    "[Leitenant]", 
    "[Starshi Leitenant]", 
    "[Kapitan]",
    "[Kapitan Leitenant]", 
    "[Maior]",
    "[General Leitenant]", 
    "[General Maior]",
   "[General]",
   "[Admiral]",
   "[GOHARDPLAY Player]",
   "[GOHARDPLAY KING]"
   
   
}

public plugin_init() 
{
    register_plugin("Ranks & XP mod", "1.0", "alt.nick")
    
    register_event("DeathMsg","client_death","a") 
    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")
    
    register_clcmd("say /rank", "cmdRank")
    register_clcmd("say_team /rank", "cmdRank")
    
    register_clcmd("say /reset", "reset_xp")
    register_clcmd("say_team /reset", "reset_xp")
    
    ranks_hud = register_cvar("ranks_hud", "1")     // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
    knife_xp = register_cvar("knife_xp", "1")     // Колко ХР да дава за убийство с нож.
    he_xp = register_cvar("he_xp", "1")        // Колко ХР да дава за убийство с Granata (HE).
    hs_xp = register_cvar("hs_xp", "1")        // Колко ХР да дава за убийство с Headshot.
    kill_xp = register_cvar("kill_xp", "1")        // Колко ХР да дава за нормално убийство.    
    kill_msg = register_cvar("kill_msg", "1")    // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
    
    gMaxPlayers = get_maxplayers()
    gMsgSayText = get_user_msgid("SayText")

    syncObj     = CreateHudSyncObj()
    
    fvault_load(g_vault_name)
}

public ShowHud(id) 
{
    set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
    ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}

public client_putinserver(id)
{
    if(get_pcvar_num(ranks_hud) == 1)
        set_task(1.0, "ShowHud", id, _, _, "b")
        
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_death(killer, victim, weapon, hitgroup, TK)
{        
    if(killer == victim)
        return PLUGIN_HANDLED
        
    new Name[20]
    get_user_name(victim, Name, 19)
    new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
    
    if(get_user_team(killer) == 2 && killer != victim)
    {
        switch(weapon) 
        {
            case CSW_HEGRENADE:
            {
                eXP[killer] += get_pcvar_num(he_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
            } 
            
            case CSW_KNIFE:
            {
                eXP[killer] += get_pcvar_num(knife_xp)
                CheckLevel(killer)
                SaveData(killer)
                if(get_pcvar_num(kill_msg) == 1)
                    client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
            } 
        }
        
        if(headshot)
        {
            eXP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp),  Name)
        }
        else
        {
            eXP[killer] += get_pcvar_num(kill_xp)
            CheckLevel(killer)
            SaveData(killer)
            if(get_pcvar_num(kill_msg) == 1)
                client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
        }
    }
    CheckLevel(killer)
    SaveData(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{
    if(Level[id] < MaxLevels-1)
        while(eXP[id] >= Levels[Level[id]])
            Level[id] += 1 
}

public client_connect(id)
{
    LoadData(id)
}


public client_disconnect(id)
{
    SaveData(id)
    eXP[id] = 0
    Level[id] = 0
    remove_task(id)
}
        
public reset_xp(id)
{
    if(eXP[id] != 0)
    {
        Level[id] = 0
        eXP[id] = 0
        CheckLevel(id)
        client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
    }
    else
        client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
        
public cmdRank(id)
{
    if(is_user_connected(id))
        client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
        
public CmdAddXP (iPlayer, level, cid)
{
    if(!cmd_access(iPlayer, 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 (iPlayer, 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]
                        
                eXP[All] += XPtoGive
            }
            
            CheckLevel(All)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", 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]
                            
                    eXP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", 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]
                            
                    eXP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(iPlayer, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            eXP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

bool:IsValidMessage( szMessage[ ], iLen )
{
    read_args( szMessage, iLen )
    remove_quotes( szMessage )
   
    new iPos, cChar
    while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
    {
        if( cChar != ' ' && cChar != '%' )
        {
            return true
        }
    }
   
    return false
}

public hook_say(id)
{
    if(!is_user_connected(id)) 
        return PLUGIN_HANDLED_MAIN
    
    new szArgs[192]
    
    if( !IsValidMessage(szArgs, charsmax(szArgs))) 
        return PLUGIN_HANDLED_MAIN

    if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN

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

    new alive = is_user_alive(id)

    if(contain(szArgs,"@") >= 0) 
    return  PLUGIN_HANDLED_MAIN
 
    format(szArgs, 191, "^x04[^x03%s^x04] ^x03%s^x01 :  %s",  Prefix[Level[id]], szName, szArgs)

    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(!is_user_connected(i))
            continue
    
        if(alive && is_user_alive(i))
        {
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(szArgs)
            message_end()
        } 
        else if(!alive && !is_user_alive(i)) 
        {
            new format[192]
            formatex(format,191,"^x01* DEAD %s",szArgs)
            message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
            write_byte(id)
            write_string(format)
            message_end()
        }
    }
        
    return PLUGIN_HANDLED_MAIN
}

public SaveData(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#",eXP[id],Level[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public LoadData(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#",eXP[id],Level[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);
    
    eXP[id] = str_to_num(playerxp);
    Level[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
Тест :coffee1:
Изрично казах, че искам .sma файл.
User avatar
kitin.dll
Потребител
Потребител
Posts: 157
Joined: 02 Jun 2016, 17:52
Skype: zabraih ;(
CS Nick: (*knoxS*)
Favorite version: CS: 1.6

Re: Заявки за rank system-и

Post by kitin.dll »

Божичко мили, толкова ли е трудно да го компилираш??
Attachments
ranks.rar
(2.96 KiB) Downloaded 207 times
User avatar
psyth1g
Deactivated account
Posts: 69
Joined: 30 May 2016, 18:20
Skype: ЛС.
CS Nick: D4Yz
Favorite version: CS: 1.6
Steam Community ID: p1tbullwtf
Location: Под масата
Contact:

Re: Заявки за rank system-и

Post by psyth1g »

Някой да ми даде .amxx файл?
User avatar
FEEL MY STYLE
Потребител
Потребител
Posts: 202
Joined: 11 Feb 2016, 19:32
Skype: Ня ти каа, щот няям, ооо ;]
CS Nick: THE PRO , ComPany oF HeroeS
Favorite version: CS: 1.6
Steam Community ID: proto236
Location: България :)
Contact:

Re: Заявки за rank system-и

Post by FEEL MY STYLE »

[Newbie] 0-25 XP
[Advanced] 25-50 XP
[Napredvasht] 50-75 XP
[Serjant] 75-120 XP
[Starshi Serjant] 120-180 XP
[Starshina] 180-260 XP
[Maior] 260-440 XP
[Kapitan] 440-660 XP
[Oficer] 660-880 XP
[Glaven Oficer] 880-1000 XP
[Polkovnik] 1000-1300 XP
[Leitenant] 1300-1600 XP
[Starshi Leitenant] 1600-2000 XP
[Brigaden General] 2000-2345 XP
[General Maior] 2345-2600 XP
[General Leitenant] 2600-3200 XP
[General] 3200-3800 XP
[General na armiqta] 3800-4500 XP
[Chuck Norris] 4500-5000 XP
[THE PRO] 5000-5640 XP
[THE BEST OF THE SERVER] 5640-до безкрай XP
Ще помоля ако може да ми бъдат предоставени и amxx и sma файловете,защото още се уча,а с комплирането съм пълна 0..
Благодаря предварително! :)
User avatar
SorryMateYoureDead
Потребител
Потребител
Posts: 6
Joined: 21 May 2017, 16:09
Skype: Тайна
CS Nick: SorryMateYoureDead
Favorite version: CS: 1.6
Location: Sliven
Contact:

Re: Заявки за rank system-и

Post by SorryMateYoureDead »

NewBie 0-25
Advanced 25-50
Ranked 50-75
Killer 75-100
Super Killer 125-150
Mega Killer 150-175
Ultra Killer 200-250
Supernova 250-300
Monster 300-400
Semi-Pro 400-500
PRO 500-700
Crazy Killer 700-900
Gladiator 900-1100
Terminator 1100- 1500
Chuck Norris* 1500+

(Global Admin) - флаг - m
(Server Support) - флаг - n
(Server Admin) - флаг - p
(Test Admin) - флаг - o
(SMS Admin) - флаг - r
(VIP) - флаг - i

Префикс - Зелен
Ник-Според Тийма ( CT - Син ; T - Червен)
Чат- Според отбора "team"

Ранк - "зелен"
Чат - обикновен
БЛАГОДАРЯ предварително!
Post Reply

Return to “Заявки”