View Single Post
Author Message
swapped
BANNED
Join Date: Mar 2014
Location: OrpheuRegisterHook
Old 05-02-2014 , 10:49   [solved] nvault : when i change name problem
Reply With Quote #1

I have my XP mod, everytime when i change name i have a problem :

Example if i have level 30 on this name : "ABD"

if i change name to TEST [ and TEST have level 0 ], then TEST will have my level [ 30 ]

The only solution i finded is to block change name but i dont wont to ( this is require my fakemeta ) and i wanna remove it [ because i use only for block name .. ]

Other ideas ?

Anywhey heres the code, but i dont think will help you.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
#include <cstrike>
#include <fakemeta>



/*    ()        Leve Mod ConfiG        ()        */


/*    Who have flag "t" have vip !    */
#define VIP_ACCES    ADMIN_LEVEL_H

/*    Who have acces to amx_xp       !        */
#define ADMIN_ACCES    ADMIN_MENU

/*    Who have acces to amx_showxp       !        */
#define ADMIN_ACCES_INFO    ADMIN_KICK




/*    ()        ----------------------        ()    */




//     Plugin Info !

new const PLUGIN_NAME[] = "Level Mod";
new const 
AUTHOR[] = "swapped";
new const 
hnsxp_version[] = "6.5.5";

new 
levels[51] = {
    
10,        /*    Level 1        */ 
    
50,        /*    Level 2        */
    
100,        /*    Level 3        */
    
400,        /*    Level 4        */
    
800,        /*    Level 5        */
    
1000,        /*    Level 6        */
    
1800,        /*    Level 7        */
    
2400,        /*    Level 8        */
    
3000,        /*    Level 9        */
    
4000,        /*    Level 10    */
    
4800,        /*    Level 11    */
    
5500,        /*    Level 12    */
    
8000,        /*    Level 13    */
    
10000,        /*    Level 14    */
    
12000,        /*    Level 15    */
    
14000,        /*    Level 16    */
    
16000,        /*    Level 17    */
    
18000,        /*    Level 18    */
    
20000,        /*    Level 19    */
    
22050,        /*    Level 20    */
    
23079,        /*    Level 21    */
    
26000,        /*    Level 22    */
    
28070,        /*    Level 23    */
    
29000,        /*    Level 24    */
    
30050,        /*    Level 25    */
    
35000,        /*    Level 26    */
    
40050,        /*    Level 27    */
    
50000,        /*    Level 28    */
    
60050,        /*    Level 29    */
    
70000,        /*    Level 30    */
    
80550,        /*    Level 31    */
    
94000,        /*    Level 32    */
    
95200,        /*    Level 33    */
    
100050,        /*    Level 34    */
    
110000,        /*    Level 35    */
    
140200,        /*    Level 36    */
    
150200,        /*    Level 37    */
    
180200,        /*    Level 38    */
    
190200,        /*    Level 39    */
    
202042,     /*    Level 40    */
    
300000,        /*    Level 41    */
    
450000,        /*    Level 42    */
    
600000,        /*    Level 43    */
    
780000,        /*    Level 44    */
    
850000,        /*    Level 45    */
    
900000,        /*    Level 46    */
    
1000000,    /*    Level 47    */
    
1200000,    /*    Level 48    */
    
1500000,    /*    Level 49    */
    
1999999,    /*    Level 50    */
    
999999999     /*    Solver The Error  */
};
    
    



#define is_user_vip(%1)        ( get_user_flags(%1) & VIP_ACCES )

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

#define TEAM_T 1
#define TEAM_CT 2

new g_iMaxPlayers;
new 
hnsxp_playerxp[33];
new 
hnsxp_playerlevel[33];
new 
g_hnsxp_vault;
new 
wxp;
new 
xlevel;
new 
dcr_fwd;
new 
xp_kill_cvar;
new 
xp_hs_cvar;
new 
xp_vip_cvar;
new 
xp_win_cvar;
new 
time_item_cvar;
new 
g_iDamage_xp;
new 
speed_per_level;
new 
money_per_level;
new 
health_per_level;
new 
gravity_per_level;
new 
levelmod_prefix;
new 
g_item
new Array:Item_Name;
new Array:
Item_Cost;
new Array:
Item_Desc;
new Array:
Item_Team
new g_selected_forward
new g_damage_per_level;
new 
g_armor_per_level;

enum Color
{
    
NORMAL 1// clients scr_concolor cvar color
    
YELLOW 1// NORMAL alias
    
GREEN// Green Color
    
TEAM_COLOR// Red, grey, blue
    
GREY// grey
    
RED// Red
    
BLUE// Blue
}
 
new 
TeamName[][] =
{
    
"",
    
"TERRORIST",
    
"CT",    
    
"SPECTATOR"
}


public 
plugin_init()
{
        
register_plugin(PLUGIN_NAMEhnsxp_versionAUTHOR);

    
register_event("DeathMsg""hnsxp_playerdie""a");
    
register_event("Damage""give_bonus_dmh""b""2!0""3=0""4!0");
    
register_event("CurWeapon""Ham_CheckSpeed_Bonus""be""1=1");
        
register_event("SendAudio""t_win""a""2&%!MRAD_terwin")

    
xp_kill_cvar register_cvar("levelmod_kill","10")
    
xp_hs_cvar register_cvar("levelmod_hs","25")
    
xp_vip_cvar register_cvar("levelmod_vip_xp","50")
    
xp_win_cvar register_cvar("levelmod_tero_win","15")
    
time_item_cvar  register_cvar("levelmod_time_item","15.0");
    
g_iDamage_xp register_cvar("levelmod_damage_xp","5");
    
speed_per_level register_cvar("levelmod_speed_per_level","3");
    
health_per_level register_cvar("levelmod_health_per_level","5");
    
money_per_level register_cvar("levelmod_money_per_level","1");
    
gravity_per_level register_cvar("levelmod_gravity_per_level","3");
    
levelmod_prefix register_cvar("levelmod_tag","LEVEL MOD");
    
g_damage_per_level register_cvar("levelmod_damage_per_level","10");
    
g_armor_per_level register_cvar("levelmod_armor_per_level""5");

           
register_clcmd("say /level","plvl");
        
register_clcmd("say /xp","plvl");
        
register_clcmd("say /lvl","plvl");
        
register_clcmd("say /levels","plvl");
    
register_clcmd("say /levelmodmenu""_open_menu");
    
register_clcmd("say /lvlmenu""_open_menu");
    
register_clcmd("say /levelmenu""_open_menu");
        
register_clcmd("say_team /levels","plvl");
        
register_clcmd("say_team /level","plvl");
        
register_clcmd("say_team /xp","plvl");
        
register_clcmd("say_team /lvl","plvl");
    
register_clcmd("say_team /levelmodmenu""_open_menu");
    
register_clcmd("say_team /lvlmenu""_open_menu");
    
register_clcmd("say_team /levelmenu""_open_menu");

        
g_hnsxp_vault nvault_open("levelmod_xp_vault");

    
register_concmd("amx_xp","cmd_xp",ADMIN_ACCES,"<NUME> <XP>");
    
register_concmd("amx_showxp","cmd_xp_info",ADMIN_ACCES_INFO,"Retrive player xp,level information.");

        
xlevel CreateMultiForward("levelmod_client_make_next_level"ET_IGNOREFP_CELL);
        
wxp CreateMultiForward("levelmod_client_hook_xp"ET_IGNOREFP_CELL);
    
g_selected_forward CreateMultiForward("levelmod_selected_item"ET_IGNOREFP_CELLFP_CELL)    
    
dcr_fwd CreateMultiForward("levelmod_client_lost_level"ET_IGNOREFP_CELL);
    
    
register_forward(FM_ClientUserInfoChanged"ClientUserInfoChanged"
    
    
g_iMaxPlayers get_maxplayers ( )
    
RegisterHam Ham_TakeDamage"player""Player_TakeDamage");
        
RegisterHam(Ham_Spawn"player""hnsxp_spawn"1);
}

public 
give_bonus_dmh(id)
{
    static 
valuevalue read_data);
    static 
attackerattacker get_user_attacker(id)
    new 
szName[33]; get_user_name(idszName32);
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

    if(!
is_user_alive(attacker) || !attacker || !id || id == attacker)
        return 
PLUGIN_HANDLED;

    
    
GiveExpattackerget_pcvar_numg_iDamage_xp ) );
    
ColorChat(attackerTEAM_COLOR"^1[ ^3%s^1 ] You received ^4%iXP^1 because you give ^4%i^1 damage on ^4%s^1 !",TAG,get_pcvar_num(g_iDamage_xp),value,szName);    
    
UpdateLevel(attacker);
    return 
PLUGIN_CONTINUE;
    
}

public 
_open_menuid )
{
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

    if(!
is_user_alive(id))
    {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] You can buy when you are dead !",TAG)
        return 
PLUGIN_HANDLED
    
}
    
    if(
g_item == 0)
    {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] Menu are empty !",TAG)
        return 
PLUGIN_HANDLED        
    
}
    
    static 
temp_menu[64]
    static 
menutemp_string1[33], temp_integer1temp_string2[33], temp_string3[5]
    
    if(
get_user_team(id) == 2)
    {
        
menu menu_create("Levelmod CT Menu:""menu1_handle_ct")
        
        for(new 
0g_itemi++)
        {
            if(
ArrayGetCell(Item_Teami) == TEAM_CT)
            {
                
ArrayGetString(Item_Nameitemp_string1sizeof(temp_string1))
                
temp_integer1 ArrayGetCell(Item_Costi)
                
ArrayGetString(Item_Descitemp_string2sizeof(temp_string2))
                
                
formatex(temp_menusizeof(temp_menu), " %s - %i XP "temp_string1temp_integer1)
                
                
num_to_str(itemp_string3sizeof(temp_string3))
                
menu_additem(menutemp_menutemp_string3)
            }
        }
        
        
menu_setprop(menuMPROP_EXITMEXIT_ALL)
        
menu_display(idmenu0)    
        
    } else if(
get_user_team(id) == 1) {
        
menu menu_create("Levelmod Tero menu:""menu1_handle_tero")
        
        for(new 
0g_itemi++)
        {
            if(
ArrayGetCell(Item_Teami) == TEAM_T
            {
                
ArrayGetString(Item_Nameitemp_string1sizeof(temp_string1))
                
temp_integer1 ArrayGetCell(Item_Costi)
                
ArrayGetString(Item_Descitemp_string2sizeof(temp_string2))
                
                
formatex(temp_menusizeof(temp_menu), "%s - %i XP "temp_string1temp_integer1)
                
                
num_to_str(itemp_string3sizeof(temp_string3))
                
menu_additem(menutemp_menutemp_string3)            
            }
        }
        
        
menu_setprop(menuMPROP_EXITMEXIT_ALL)
        
menu_display(idmenu0)    
    }
    
    return 
PLUGIN_CONTINUE
}

public 
menu1_handle_ct(idmenuitem)
{
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

    if(
item == MENU_EXIT || get_user_team(id) != 2)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    static 
data[6], szName[64], accesscallback
    
static temp_integer1
    menu_item_getinfo
(menuitemaccessdatacharsmax(data), szNamecharsmax(szName), callback)
    
    
temp_integer1 str_to_num(data)
    
    static 
costwp_name[64], wp_desc[64]
    
cost ArrayGetCell(Item_Costtemp_integer1)
    
ArrayGetString(Item_Nametemp_integer1wp_namesizeof(wp_name))
    
ArrayGetString(Item_Desctemp_integer1wp_descsizeof(wp_desc))
    
    if(
hnsxp_playerxp[id] >= cost)
    {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] You bought ^4%s^1 for ^4%i^1 XP !",TAGwp_namecost)
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] %s",TAG,wp_desc)
        
        
TakeExp(idcost);
        
        static 
g_dummy
        ExecuteForward
(g_selected_forwardg_dummyidtemp_integer1)
    } else {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] You need at least ^4%i^1 XP to buy ^4%s^1 !",TAGcostwp_name )
    }
        
    return 
PLUGIN_CONTINUE
}

public 
menu1_handle_tero(idmenuitem)
{
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

    if(
item == MENU_EXIT || get_user_team(id) != 1)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    static 
data[6], szName[64], accesscallback
    
static temp_integer1
    menu_item_getinfo
(menuitemaccessdatacharsmax(data), szNamecharsmax(szName), callback)
    
    
temp_integer1 str_to_num(data)
    
    static 
costname[32], desc[32]
    
cost ArrayGetCell(Item_Costtemp_integer1)
    
ArrayGetString(Item_Nametemp_integer1namesizeof(name))
    
ArrayGetString(Item_Desctemp_integer1descsizeof(desc))

    if(
hnsxp_playerxp[id] >= cost)
    {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] You bought ^4%s^1 for ^4%i^1 XP !",TAGnamecost)
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] %s",TAG,desc)
        
        
TakeExp(idcost);
        
        static 
g_dummy
        ExecuteForward
(g_selected_forwardg_dummyidtemp_integer1)
    } else {
        
ColorChat(idTEAM_COLOR"^1[ ^3%s^1 ] You need at least ^4%i^1 XP to buy ^4%s^1 !",TAGcostname )
    }
        
    return 
PLUGIN_CONTINUE    
}


public 
Player_TakeDamage iVictimiInflictoriAttackerFloat:fDamage ) {
    
    if ( 
iInflictor == iAttacker && IsPlayer iAttacker ) && hnsxp_playerlevel[iAttacker]) 
    {
    
        
SetHamParamFloat 4fDamage hnsxp_playerxpiAttacker ] * get_pcvar_numg_damage_per_level ) );
        return 
HAM_HANDLED;
           }
    
    return 
HAM_IGNORED;
    
}

public 
ClientUserInfoChanged(id)
{
    static const 
name[] = "name"
    
static szOldName[32], szNewName[32]
    
pev(idpev_netnameszOldNamecharsmax(szOldName))
    if( 
szOldName[0] )
    {
        
get_user_info(idnameszNewNamecharsmax(szNewName))

        if( !
equal(szOldNameszNewName) )
        {
            
set_user_info(idnameszOldName)
            return 
FMRES_HANDLED
        
}
    }
    return 
FMRES_IGNORED
}

public 
cmd_xp(id,level,cid)
{
    if(!
cmd_access(id,level,cid,3))
        return 
PLUGIN_HANDLED;
    
    new 
arg[33], amount[33]
    
read_argv(1argcharsmax(arg) - 1)
    
read_argv(2amountcharsmax(amount) - 1)
    new 
target cmd_target(idarg7)
    new 
admin_name[35], player_name[35];
    
get_user_name(targetplayer_namecharsmax(player_name) - 1);
    
get_user_name(idadmin_namecharsmax(admin_name) - 1);
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );



    new 
wors str_to_num(amount)
    
    
    if(!
target)
    {
        return 
1
    
}
    
        new 
ret;
        
ExecuteForward(wxprettarget);
    
hnsxp_playerxp[target] = wors;
    
ColorChat(0TEAM_COLOR"^1[ ^3%s^1 ] Admin ^4%s^1 set ^4%i^1 xp on ^4%s^1 !",TAG,admin_name,wors,player_name);
    
UpdateLevel(target);
    return 
0
}
  
public 
cmd_xp_info(id,level,cid)
{
    if(!
cmd_access(id,level,cid,2))
        return 
PLUGIN_HANDLED;

    new 
arg[33]
    
read_argv(1arg32)

    new 
target cmd_target(idarg7)

    new 
player_name[35];
    
get_user_name(targetplayer_namecharsmax(player_name) - 1);
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );
    
    
    if(!
target)
    {
        return 
1;
    }
    
    
ColorChat(0TEAM_COLOR"^1[ ^3%s^1 ] Player ^3%s^1 have level ^4%i^1 [ ^4%i^1 / ^4%i^1 ]",TAG,player_name,hnsxp_playerlevel[target], hnsxp_playerxp[target],levels[hnsxp_playerlevel[target]]); 
    return 
0;
}

/*      Speed Check      */
public Ham_CheckSpeed_Bonusid )
{
    if(
is_user_alive(id))
    {
        
set_user_maxspeedid250.0 get_pcvar_numspeed_per_level ) * hnsxp_playerlevelid ] );
    }        
}

GiveExp(indexvalue)
{
    if(
value >= 1999999)
    {
        
hnsxp_playerxp[index] = 1999999 ;
        return 
1;
    }
    if(
hnsxp_playerxp[index] >= 1999999)
    {
        
hnsxp_playerxp[index] = 1999999;
        return 
1;
    }

        new 
ret;
        
ExecuteForward(wxpretindex);

    
client_cmd(0"spk buttons/bell1");
    
hnsxp_playerxp[index] = hnsxp_playerxp[index] + value;
    return 
0;
}

TakeExp(indexvalue)
{
    if(
hnsxp_playerxp[index] >= value)
    {
        
hnsxp_playerxp[index] = hnsxp_playerxp[index] - value;
    }

    else
    {
        
hnsxp_playerxp[index] = 0;
    }
}

public 
plugin_precache()
{
    
Item_Name ArrayCreate(641)
    
Item_Cost ArrayCreate(11)
    
Item_Desc ArrayCreate(641)
    
Item_Team ArrayCreate(11)
}

public 
plugin_natives()
{
        
register_native("levelmod_get_user_xp","_get_user_xp");
        
register_native("levelmod_get_user_level","_get_user_level");
    
register_native("levelmod_get_user_next_level""_next_level");
    
register_native("levelmod_get_user_xp_needed""_xp_needed");
        
register_native("levelmod_set_user_xp","_set_user_xp");
        
register_native("levelmod_set_user_level","_set_user_level");
    
register_native("levelmod_updatelevel","_update");
    
register_native("levelmod_open_menu","_open");
    
register_native("levelmod_menu_register_item""native_register_item"1)

}

public 
_open(pluinparams)
{
    new 
id get_param);

    if( 
is_user_aliveid ) )
    {
        
_open_menuid );
    }    
}

public 
_update(pluinparams)
{
    new 
ids get_param);

    if( 
is_user_connectedids ) )
    {
        
UpdateLevelids );
    }
}

public 
_get_user_xp(pluginparams)
{
        return 
hnsxp_playerxp[get_param(1)];
}

public 
_get_user_level(pluginparams)
{
        return 
hnsxp_playerlevel[get_param(1)];
}

public 
_next_level(pluginparams)
{
    return 
hnsxp_playerlevel[get_param(1)] + 1;
}

public 
_xp_needed(pluinparams)
{
    return 
levels[hnsxp_playerlevel[get_param(1)]];
}

public 
_set_user_xp(pluginxer)
{
    new 
id get_param(1)
    new 
value get_param(2)

    if(
is_user_connected(id))
    {
        
hnsxp_playerxp[id] = value;
        return 
0
    
}

    else
    {
        
log_error(AMX_ERR_NATIVE,"User %d is not connected !",id)
        return 
0
    
}
    return 
1
}


public 
_set_user_level(plugineat)
{
    new 
id get_param(1)
    new 
valuex get_param(2)

    if(
is_user_connected(id))
    {
        
hnsxp_playerlevel[id] = valuex;
        return 
0
    
}

    else
    {
        
log_error(AMX_ERR_NATIVE,"User %d is not connected !",id)
        return 
0
    
}
    return 
1
}
public 
native_register_item(const item_name[], const item_cost, const item_desc[], const item_team)
{
    
param_convert(1)
    
param_convert(3)
    
    
ArrayPushString(Item_Nameitem_name)
    
ArrayPushCell(Item_Costitem_cost)
    
ArrayPushString(Item_Descitem_desc)
    
ArrayPushCell(Item_Teamitem_team)
    
    
g_item++
    
    return 
g_item 1
}

public 
gItem(id)
{
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

        new 
dgl give_item(id"weapon_deagle")

    new 
hp get_pcvar_numhealth_per_level ) * hnsxp_playerlevelid ];
    new 
money get_pcvar_nummoney_per_level ) * hnsxp_playerlevelid ];
    new 
armor get_pcvar_numg_armor_per_level ) * hnsxp_playerlevelid ];


        if(
is_user_alive(id))
        {
                switch(
hnsxp_playerlevel[id])
                {
                
                        case 
0:
                        {
                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl1);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 1DGL ^1, ^4 0SG ^1, ^4 0FL ^1, ^4 0HE ^1!",TAG,hp,moneyarmor);
                                
remove_task(id);
                        }
                        
                        case 
1..5:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                                
cs_set_user_bpammo(idCSW_FLASHBANG1);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE1);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl1);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 1DGL ^1, ^4 1SG ^1, ^4 1FL ^1, ^4 1HE ^1!",TAG,hp,money,armor);
                         
                
remove_task(id);
                
                        }

                        case 
6..10:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE2);
                                
cs_set_user_bpammo(idCSW_FLASHBANG1);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE2);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl2);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 2DGL ^1, ^4 2SG ^1, ^4 1FL ^1, ^4 2HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
                
                        }

                        case 
11..14:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE3);
                                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE4);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl3);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 3DGL ^1, ^4 4SG ^1, ^4 2FL ^1, ^4 3HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
                
                        }

                        case 
15..24:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE5);
                                
cs_set_user_bpammo(idCSW_FLASHBANG5);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE5);

                                
set_user_healthidget_user_healthid ) + hp );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )
                
set_user_armoridget_user_armorid ) + armor );

                 if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl4);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 4DGL ^1, ^4 5SG ^1, ^4 5FL ^1, ^4 5HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
                
                        }

                        case 
25..29:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE6);
                                
cs_set_user_bpammo(idCSW_FLASHBANG5);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE7);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money );

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl5);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 5DGL ^1, ^4 7SG ^1, ^4 5FL ^1, ^4 6HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
            }

                        case 
30..39:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE7);
                                
cs_set_user_bpammo(idCSW_FLASHBANG6);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE7);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money );

                  if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl,5);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 5DGL ^1, ^4 7SG ^1, ^4 6FL ^1, ^4 7HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
            }

                        case 
40..45:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE8);
                                
cs_set_user_bpammo(idCSW_FLASHBANG8);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE8);

                                
set_user_healthidget_user_healthid ) + hp );
                
set_user_armoridget_user_armorid ) + armor );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl6);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 6DGL ^1, ^4 8SG ^1, ^4 8FL ^1, ^4 8HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
            }

                        case 
46..49:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE9);
                                
cs_set_user_bpammo(idCSW_FLASHBANG8);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE9);

                                
set_user_healthidget_user_healthid ) + hp );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money )
                
set_user_armoridget_user_armorid ) + armor );

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl,6);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 6DGL ^1, ^4 9SG ^1, ^4 8FL ^1, ^4 9HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
            }
                   
                        case 
50:
                        {
                                
give_item(id"weapon_hegrenade");
                                
give_item(id"weapon_flashbang");
                                
give_item(id"weapon_smokegrenade");

                                
cs_set_user_bpammo(idCSW_HEGRENADE10);
                                
cs_set_user_bpammo(idCSW_FLASHBANG10);
                                
cs_set_user_bpammo(idCSW_SMOKEGRENADE10);

                                
set_user_healthidget_user_healthid ) + hp );
                
cs_set_user_moneyidcs_get_user_moneyid ) + money );
                
set_user_armoridget_user_armorid ) + armor );

                if( 
dgl )
                {
                                    
cs_set_weapon_ammo(dgl7);
                }

                                
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iHP ^1, ^4 %iMONEY ^1, ^4 %iARMOR ^1, ^4 7DGL ^1, ^4 10SG ^1, ^4 10FL ^1, ^4 10HE ^1!",TAG,hp,money,armor);
                                
remove_task(id);
            }
                
     
                        
 
                }
                        
        }

}




UpdateLevel(id)
{
    new 
ret;
        if((
hnsxp_playerlevel[id] < 50) && (hnsxp_playerxp[id] >= levels[hnsxp_playerlevel[id]]))
        {
                
ExecuteForward(xlevelretid);

                while(
hnsxp_playerxp[id] >= levels[hnsxp_playerlevel[id]])
                {
                        
hnsxp_playerlevel[id]++;
                }
        }
    else
    {
                
ExecuteForward(dcr_fwdretid);

        while(
hnsxp_playerxp[id] < levels[hnsxp_playerlevel[id]])
        {
            
hnsxp_playerlevel[id]--;
        }
    }
        
}

public 
hnsxp_spawn(id)
{
        
set_task(get_pcvar_float(time_item_cvar), "gItem"id);

    new 
GRAVITYCheck 800 get_pcvar_numgravity_per_level ) * hnsxp_playerlevelid ];

    if(
is_user_alive(id))
    {

        
set_user_gravityidfloatGRAVITYCheck ) / 800.0 );
        
UpdateLevel(id);
    
    }


}

public 
plvl(id)
{
    new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );

        if(
hnsxp_playerlevel[id] >= 99)
    {
        
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] ^1Max Level(50) ! ",TAG);
        return 
PLUGIN_HANDLED
    
}
    
    else
    {
            
ColorChat(idTEAM_COLOR,"^1[^3 %s^1 ] ^4LVL ^1: ^3%i ^1, ^4XP ^1: ^3%i ^1/ ^3%i ",TAGhnsxp_playerlevel[id], hnsxp_playerxp[id], levels[hnsxp_playerlevel[id]]);
            return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE    
            
}


public 
hnsxp_playerdie() 
{
    new 
iVictim read_data)
    new 
attacker read_data)
    new 
headshot read_data)

        
        if( !
attacker || attacker == iVictim )
                return;
        
        
GiveExp(attackerget_pcvar_num(xp_kill_cvar));
        
        
        
UpdateLevel(attacker);
        
UpdateLevel(iVictim);


    if(
headshot)
    { 
        
GiveExp(attackerget_pcvar_num(xp_hs_cvar));

    }

        if(
is_user_vip(attacker))
        {
        
GiveExp(attackerget_pcvar_num(xp_vip_cvar));

        }

}

public 
client_putinserver(id)
{
    
UpdateLevel(id);
}

public 
client_connect(id)

        
LoadData(id);            
}
public 
client_disconnect(id)

        
SaveData(id);
}

public 
SaveData(id)
{
        new 
PlayerName[35];
        
get_user_name(id,PlayerName,34);
       
        new 
vaultkey[64],vaultdata[256];
        
format(vaultkey,63,"%s",PlayerName);
        
format(vaultdata,255,"%i`i%",hnsxp_playerxp[id],hnsxp_playerlevel[id]);
        
nvault_set(g_hnsxp_vault,vaultkey,vaultdata);
        return 
PLUGIN_CONTINUE;
}
public 
LoadData(id)
{
        new 
PlayerName[35];
        
get_user_name(id,PlayerName,34);
       
        new 
vaultkey[64],vaultdata[256];
        
format(vaultkey,63,"%s",PlayerName);
        
format(vaultdata,255,"%i`%i",hnsxp_playerxp[id],hnsxp_playerlevel[id]);
        
nvault_get(g_hnsxp_vault,vaultkey,vaultdata,255);
       
        
replace_all(vaultdata255"`"" ");
       
        new 
playerxp[32], playerlevel[32];
       
        
parse(vaultdataplayerxp31playerlevel31);
       
        
hnsxp_playerxp[id] = str_to_num(playerxp);
        
hnsxp_playerlevel[id] = str_to_num(playerlevel);
       
        return 
PLUGIN_CONTINUE;
}

public 
t_win(id)
{
          new 
TAG[60];
    
get_pcvar_stringlevelmod_prefixTAGcharsmaxTAG ) - );
  
        new 
iPlayer 32 ], iNum;
        
get_players(iPlayeriNum"ae""TERRORIST")
        for ( new 
0iNumi++ ) 
        {
            if(
is_user_alive(iPlayer[i]))
        {
                    
GiveExp(iPlayer ], get_pcvar_num(xp_win_cvar));
                    
ColorChat(iPlayer[i], TEAM_COLOR,"^1[^3 %s^1 ] You got ^4 %iXP^1 because your team has win the round !",TAG,get_pcvar_num(xp_win_cvar));
                    
UpdateLevel(iPlayer[i]);
                }
        }
}
ColorChat(idColor:type, const msg[], {Float,Sql,Result,_}:...)
{
    new 
message[256];
 
    switch(
type)
    {
        case 
NORMAL// clients scr_concolor cvar color
        
{
            
message[0] = 0x01;
        }
        case 
GREEN// Green
        
{
            
message[0] = 0x04;
        }
        default: 
// White, Red, Blue
        
{
            
message[0] = 0x03;
        }
    }
     
    
vformat(message[1], 251msg4);
 
    
// Make sure message is not longer than 192 character. Will crash the server.
    
message[191] = '^0';
 
    new 
teamColorChangeindexMSG_Type;
    if(
id)
    {
        
MSG_Type MSG_ONE;
        
index id;
    } else {
        
index FindPlayer();
        
MSG_Type MSG_ALL;
    }

    
team get_user_team(index);
    
ColorChange ColorSelection(indexMSG_Typetype);
 

    
ShowColorMessage(indexMSG_Typemessage);
    if(
ColorChange)
    {
        
Team_Info(indexMSG_TypeTeamName[team]);
    }
}
 
ShowColorMessage(idtypemessage[])
{
    static 
get_user_msgid_saytext;
    if(!
get_user_msgid_saytext)
    {
        
get_user_msgid_saytext get_user_msgid("SayText");
    }
    
message_begin(typeget_user_msgid_saytext_id);
    
write_byte(id)    
    
write_string(message);
    
message_end();    
}
 
Team_Info(idtypeteam[])
{
    static 
bool:teaminfo_used;
    static 
get_user_msgid_teaminfo;
    if(!
teaminfo_used)
    {
        
get_user_msgid_teaminfo get_user_msgid("TeamInfo");
        
teaminfo_used true;
    }
    
message_begin(typeget_user_msgid_teaminfo_id);
    
write_byte(id);
    
write_string(team);
    
message_end();
 
    return 
1;
}
 
ColorSelection(indextypeColor:Type)
{
    switch(
Type)
    {
        case 
RED:
        {
            return 
Team_Info(indextypeTeamName[1]);
        }
        case 
BLUE:
        {
            return 
Team_Info(indextypeTeamName[2]);
        }
        case 
GREY:
        {
            return 
Team_Info(indextypeTeamName[0]);
        }
    }
 
    return 
0;
}
 
FindPlayer()
{
    new 
= -1;
    static 
iMaxPlayers;
    if( !
iMaxPlayers )
    {
        
iMaxPlayers get_maxplayers( );
    }
    while(
<= iMaxPlayers)
    {
        if(
is_user_connected(++i))
            return 
i;
    }
 
    return -
1;


Last edited by swapped; 05-03-2014 at 02:15.
swapped is offline