Raised This Month: $ Target: $400
 0% 

xp level + tag level


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
strikegino
Member
Join Date: Mar 2013
Old 01-26-2014 , 10:18   xp level + tag level
Reply With Quote #1

hy all
i nee to change forom steam id in nick (name)
Code:
/////////////////////////////////////////////////////////////////////////////
//==============================	
//=  DeathRun XP & Level Mod   =
//==============================	
//
//---------------------
//-	Description	- 
//---------------------
//
//This plugin include the features:
//** XP System - nVault
//** Level System - nVault
//** Cvars to control all bonus per lvl
//** Commands to Add & Remove XP
//** Level behind the Nick Name
//** Bonus Per level
//** ADM Chat Colors Support
//** ...
//
//----------------------
//-	Requirements	- 
//----------------------
//
//** AMXX: Version 1.8.1
//** AMXX Modules: Cstrike, Fun, Engine, Fakemeta, ColorChat, nVault and Hamsandwich modules
//
//----------------------
//-	Installation	- 
//----------------------
//
//1- Download and compile the plugin from:
//2- Upload the amxx file to your server (cstrike>addons>amxmodx>plugins).
//3- Edit the config file and add the plugin (cstrike>addons>amxmodx>configs>plugins.ini).
//
//----------------------
//-	Contact Info	- 
//----------------------
//
//For reporting bugs or post your feedback visit:
//https://forums.alliedmods.net/showthread.php?p=1810627
//
//If you want some private job PM ME on alliedmodders Forum's or send me and email to:
//[email protected]
//
//-----------------
//-	Credits	-
//-----------------
//
//** Ex1ne
//- XP System & Level System
//
//** matsi
//- Observations and optimizations
//
//** tre3fla
//- Suggestion and request
//
//** ConnorMcLeod
//- Suggestion, SayTxt and Admin Chat Colors Code
//
//** xBatista
//- ShowHud Help
//
//------------------
//-  Updates Logs  -
//------------------
//
//** v0.0.1 [Oct 2012] 
//- First Release
//
//** v0.0.2 [Oct 2012] 
//- Optimize & Improve Code
//
//** v0.0.3 [Oct 2012] 
//- Optimize Code
//
//** v0.0.4 [Oct 2012] 
//- Improve Level Prefix and Personal Info
//
//** v0.0.5 [Oct 2012] 
//- Optimize EventDeathMsg
//- Improve Check Level
//
//** v0.0.6 [Oct 2012] 
//- Fix Damage Bug
//- Fix Messages Bugs
//
//** v0.0.7 [Oct 2012] 
//- Fix Index of Bounds
//
//** v0.0.8 [Oct 2012] 
//- Added feature Admin Chat Colors
//
//** v0.0.9 [Oct 2012] 
//- Fix some Bugs & Added XP Reward MSG CVAR
//
//** v1.0 [Jan 2013] 
//- Fix Give & Remove XP Command
//
////////////////////////////////////////////////////////////////////

#include <amxmodx>
#include <amxmisc>
#include <nvault>  
#include <colorchat>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>

new Level[33], eXP[33]
new KillXp, HsXp, HeXp/*, KnifeXp*/
new gVault

new const szPrefix[] = "[^4DeathRun XP^3] -"

#define MaxLevels 12
#define IsPlayer(%1) ( 1 <= %1 <=  g_iMaxPlayers )
#define TASK_SHOW_HUD 10113

new g_msgHudSync
new bool:is_user_ignored[ 33 ]

new const Levels[MaxLevels] = 
{
	100, // Recruit #1
         500, // Private #2
         1000, //Private First Class #3
         2000, // Lance Corporal #4
         3000, // Corporal #5
         4000, // Sergeant #6
         5000, // Staff Sergeant #7
         6000, // Gunnery Sergeant #8
         7000, // Master Sergeant #9
         8000, // First Sergeant #10
         9000, // Master Chief #11
         10000, // Sergeant Major #12
         20000, // Ensign #13
         30000, // Third Lieutenant #14
         40000, // Second Lieutenant #15
         50000, // First Lieutenant #16
         60000, // Captain #17
         70000, // Group Captain #18
         80000, // Senior Captain #19
         90000, // Lieutenant Major #20
         100000, // Major #21
         200000, // Group Major #22
         300000, // Lieutenant Commander #23
         400000, // Commander #24
         500000, // Group Commander #25
         600000, // Lieutenant Colonel #26
         700000, // Colonel #27
         800000, // Brigadier #28
         900000, // Brigadier General #29
         1000000, // Major General #30
         2000000, //Lieutenant General #31
         3000000, // General #32
         4000000, // Commander General #33
         5000000, // Field Vice Marshal #34
         7500000, // Field Marshal #35
         10000000, // Vice Commander of the Army #36
         20000000, // Commander of the Army #37
         30000000 , // High Commander #38
         50000000, // Supreme Commander #39
         100000000 // Terminator #40

}
new const Prefix[MaxLevels +1][] =
{
	"Recruit", // 0
         "Private", // 1
         "Private First Class", // 2
         "Lance Corporal", // 3
         "Corporal", // 4
         "Sergeant", // 5
         "Staff Sergeant", // 6
         "Gunnery Sergeant", // 7
         "Master Sergeant", // 8
         "First Sergeant", // 9
         "Master Chief", // 10
         "Sergeant Major", // 11
         "Ensign", // 12
         "Third Lieutenant", // 13
         "Second Lieutenant", // 14
         "First Lieutenant", // 15
         "Captain", // 16
         "Group Captain", // 17
         "Senior Captain", // 18
         "Lieutenant Major", // 19
         "Major", // 20
         "Group Major", // 21
         "Lieutenant Commander", // 22
         "Commander", // 23
         "Group Commander", // 24
         "Lieutenant Colonel", // 25
         "Colonel", // 26
         "Brigadier", // 27
         "Brigadier General", // 28
         "Major General", // 29
         "Lieutenant General", // 30
         "General", // 31
         "Commander General", // 32
         "Field Vice Marshal", // 33
         "Field Marshal", // 34
         "Vice Commander of the Army", // 35
         "Commander of the Army", // 36
         "High Commander", // 37
         "Supreme Commander", // 38
         "Terminator" // 39
}

// Bonus Stuff
new healthperlevel,
	armorperlevel,
	speedperlevel,
	damageperlevel,
	gravityperlvl
	
new g_iMaxPlayers

// ADMIN CHAT COLORS by ConnorMcLeod
enum _:ADMIN_DATAS 
{ 
    m_szName[32], 
    m_iFlag 
} 

new const AdminsDatas[][ADMIN_DATAS] =  
{ 
    {"Owner", ADMIN_IMMUNITY}, 
    {"Manager", ADMIN_BAN}, 
    // {"SuperAdmin", ADMIN_CFG}, 
    {"Admin", ADMIN_KICK}, 
    {"VIP", ADMIN_RESERVATION} 
};

public plugin_init() 
{
	register_plugin("Deathrun XP & Level Mod", "0.0.9", "Freestyle")
	
	register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
	
	RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
	RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
	RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
	
	g_iMaxPlayers = get_maxplayers( );
	
	register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
	register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
	
	// CHAT COMMANDS //
	register_clcmd ( "say /xp", "ShowPlayerXP")
	register_clcmd ( "say_team /xp", "ShowPlayerXP")
	register_clcmd ( "say /level", "ShowPlayerLevel")
	register_clcmd ( "say_team /level", "ShowPlayerLevel")
	
	// XP SYSTEM //
	KillXp	= register_cvar("drxp_per_kill", "2")
	HsXp	= register_cvar("drxp_per_hs", "5")
	HeXp	= register_cvar("drxp_per_nade_kill", "2")
	//KnifeXp	= register_cvar("drxp_per_knife_kill", "5")
	
	// Give & Remove XP //
	register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
	register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
	
	/* Bonus Stuff */
	
	// Health Per Level //
	healthperlevel	= register_cvar("health_per_lvl", "1")
	
	// Armor Per Level //
	armorperlevel	= register_cvar("armor_per_lvl", "1") 
	
	// Speed Per Level //
	speedperlevel	= register_cvar("speed_per_lvl", "1")
	
	// Gravity Per Level //
	gravityperlvl	= register_cvar("gravity_per_lvl", "1") // NERVER MORE THAN 66 PER LVL
	
	// Damage Per Level //
	damageperlevel	= register_cvar("damage_per_lvl", "1")
	
	g_msgHudSync = CreateHudSyncObj()
}

public plugin_cfg( )
{	
	gVault = nvault_open( "StRiKeMoD_XP" )
	
	if ( gVault == INVALID_HANDLE )
		set_fail_state( "Error opening nVault" );
}

/*      INFO ABOUT PERSONAL XP/LEVEL      */
public ShowPlayerXP(id)
{
	ColorChat(id, GREY, "%s You have ^4%i^3 XP and your Level are ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
}

public ShowPlayerLevel(id)
{
	new name[32]
	get_user_name(id, name, sizeof(name) -1)
		
	ColorChat(id, GREY, "%s You are Level ^4%s^3 with ^4%i^3 XP!", szPrefix, Prefix[Level[id]], eXP[id])
}

public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits ) 
{ 
    if( !( 1 <= pevAttacker <= g_iMaxPlayers) ) 
    { 
        return HAM_HANDLED; 
    } 
     
    if( !is_user_alive( pevAttacker )  ) 
    { 
        return HAM_HANDLED; 
    } 

    SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) ) 

    return HAM_IGNORED; 
} 

/*      Speed Check      */
public Ham_CheckSpeed_Bonus( id )
{
	if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
	{
		return HAM_IGNORED;
	}
	
	set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
			
	return HAM_IGNORED;
}

/*      HP & AP & Gravity Check      */
public Ham_CheckOthers_Bonus(id)
{
	if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
		return HAM_IGNORED;
		
	// HP Check
	new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
	set_user_health( id, HPCheck );
	
	// AP Check
	new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
	set_user_armor( id, APCheck );
	
	// Gravity
	new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
	
	if(get_pcvar_num(gravityperlvl) > 66)
	{
		set_user_gravity( id, float( 8 ) / 800.0 );
	}
	else
	{
		set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
	}
	
	remove_task( TASK_SHOW_HUD + id );		

	set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
			
	return HAM_IGNORED;
}

/*      Respected Player Join / Leave Stuff      */

public LvL_12_PlayerJoin(id)
{
	new name[32]
	get_user_name(id, name, sizeof(name) -1)
		
	ColorChat(0, GREY, "%s ^4Respected Player : ^1%s^4 has joined with ^1%i^4 XP!", szPrefix, name, eXP[id])
}

public LvL_12_PlayerRemove(id)
{
	new name[32]
	get_user_name(id, name, sizeof(name) -1)
		
	ColorChat(0, GREY, "%s ^4Respected Player : %s has left with %i XP!", szPrefix, name, eXP[id])
}

public plugin_end( )
	nvault_close( gVault )
	
public client_putinserver(id)
{
	LoadData(id)
	set_task( 3.0, "ShowHud", id, .flags = "b" );
	
	if(Level[id] == 12)
	{
		set_task(5.0, "LvL_12_PlayerJoin", id)
	}
}

public client_disconnect(id)
{
	SaveData(id)
	
	if(Level[id] == 12)
	{
		set_task(1.0, "LvL_12_PlayerRemove", id)
	}
}

/*      XP REWARDS      */
public client_death( iKiller, iVictim, wpnindex, hitplace )
{
	new vname[32]
	new kname[32]
	
	get_user_name( iKiller, kname, charsmax( kname ) )
	get_user_name( iVictim, vname, charsmax( vname ) )

	if( is_user_ignored[ iKiller ] )
		return PLUGIN_HANDLED_MAIN
	
	get_user_name( iKiller, kname, charsmax( kname ) )
	get_user_name( iVictim, vname, charsmax( vname ) )
	
	if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
	{
		eXP[iKiller] += get_pcvar_num(KillXp)
		
		if( get_cvar_num("XP_Reward_MSG") == 1 ) 
		{
			ColorChat ( iKiller, GREY, "%s You got^4 %i^3 XP for killing^4 %s^3", szPrefix, get_pcvar_num(KillXp), vname )
		}
	}
	
	if( hitplace == HIT_HEAD )
	{
		eXP[iKiller] += get_pcvar_num(HsXp)
		
		if( get_cvar_num("XP_Reward_MSG") == 1 ) 
		{
			ColorChat ( iKiller, GREY, "%s You got ^4%i^3 XP for killing ^4%s^3 with a ^4HeadShot", szPrefix, get_pcvar_num (HsXp), vname )
		}
	}
	
	if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
	{
		eXP[iKiller] += get_pcvar_num(HeXp)
		
		if( get_cvar_num("XP_Reward_MSG") == 1 ) 
		{
			ColorChat( iKiller, GREEN, "%s^1 You got^4 %i^3 XP for killing^4 %s^3 with a ^4Grenade", szPrefix, get_pcvar_num (HeXp), vname )
		}
	}
	CheckLevel(iKiller)
	SaveData(iKiller)
	
	return PLUGIN_CONTINUE
}

public CheckLevel(id)
{
	if(Level[id] < MaxLevels-1)
	{
		while(eXP[id] >= Levels[Level[id]])
		{
			Level[id] += 1 
			ColorChat(id, GREY, "%s Congratulations, you've leveled up! You are now level : ^4%i^3", szPrefix, Level[id])
		}
	} 
}

/*      HUD PERMANENT INFO      */
public ShowHud(task)
{
	new id = task - TASK_SHOW_HUD
	
	if(!is_user_alive(id))
		return;
	
	set_hudmessage(0, 255, 0, 0.02, 0.33, 0, 0.0, 0.3, 0.0, 0.0)
	ShowSyncHudMsg(id, g_msgHudSync,"[Status : %s]^n[XP : %i]", Prefix[Level[id]], eXP[id])
	
	set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)	
}

/*      nVault Stuff      */
public SaveData(id) 
{ 
	new AuthID[35]
	get_user_authid(id,AuthID,34) 
	new vaultkey[64],vaultdata[256] 
	
	format(vaultkey,63,"%s-Mod",AuthID) 
	format(vaultdata,255,"%i#%i#",eXP[id],Level[id]) 
	
	nvault_set(gVault,vaultkey,vaultdata) 
	
	return PLUGIN_CONTINUE 
} 
public LoadData(id) 
{ 
	new AuthID[35]
	get_user_authid(id,AuthID,34) 
	new vaultkey[64],vaultdata[256] 
	
	format(vaultkey,63,"%s-Mod",AuthID) 
	format(vaultdata,255,"%i#%i#",eXP[id],Level[id]) 
	
	nvault_get(gVault,vaultkey,vaultdata,255) 
	
	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 
} 

/*      Remove And Add XP      */
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 )
			ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 players^3!", szPrefix, 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 )
			ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Terrorists^3!", szPrefix, 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 )
			ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoGive )
		}
	}
	else
	{
		new iTarget = cmd_target( iPlayer, arg, 3 )
		get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
		
		if( iTarget )
		{
			eXP[ iTarget ] += XPtoGive
			
			CheckLevel( iTarget )
			ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoGive, TargetName )
		}
	}
	return PLUGIN_HANDLED
}
 
public CmdRemoveXP ( iPlayer, level, cid )
{
	if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
	   
	new arg [ 32 ]
	read_argv ( 1, arg, 31 ) 
 
	new RemoveXP [ 32 ]
	read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
 
	new XPtoRemove = str_to_num ( RemoveXP )
	   
	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 ] -= XPtoRemove
			}
			
			CheckLevel( All )
			ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 players^3!", szPrefix, AdminName, XPtoRemove )
		}
		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 ] -= XPtoRemove
				}
			}
			
			CheckLevel( T )
			ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Terrorists^3!", szPrefix, AdminName, XPtoRemove )
		}
		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 ] -= XPtoRemove
				}
			}
			
			CheckLevel( CT )
			ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoRemove )
		}
	}
	else
	{
		new iTarget = cmd_target( iPlayer, arg, 3 )
		get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
		
		if( !iTarget )
			return PLUGIN_HANDLED
			
		eXP[ iTarget ] -= XPtoRemove
			
		CheckLevel( iTarget )
		ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoRemove, TargetName )
	}
	
	return PLUGIN_HANDLED
}
/*      Level Behind Nick & AdminChatColors
              CREDITS TO ConnorMcLeod            */
public Message_SayText(msgId,msgDest,msgEnt) 
{ 
	new id = get_msg_arg_int(1); 
	if( is_user_connected(id) ) 
	{ 
		if( get_cvar_num("AdminChatColors_On") == 1 ) 
		{
			new flags = get_user_flags(id)
			for(new i; i<sizeof(AdminsDatas); i++) 
			{ 
				if( flags & AdminsDatas[i][m_iFlag] ) 
				{ 
					new szChannel[64]
					get_msg_arg_string(2, szChannel, charsmax(szChannel))
		
					if( equal(szChannel, "#Cstrike_Chat_All") ) 
					{ 
					    formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1:  %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
					    set_msg_arg_string(2, szChannel)
					} 
					else if( !equal(szChannel, "#Cstrike_Name_Change") ) 
					{ 
					    format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
					    set_msg_arg_string(2, szChannel)
					} 
					return
				} 
				else
				{
					new szChannel[64]
					get_msg_arg_string(2, szChannel, charsmax(szChannel))
		
					if( equal(szChannel, "#Cstrike_Chat_All") ) 
					{ 
					    formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1:  %%s2", Prefix[Level[id]])
					    set_msg_arg_string(2, szChannel)
					} 
					else if( !equal(szChannel, "#Cstrike_Name_Change") ) 
					{ 
					    format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
					    set_msg_arg_string(2, szChannel)
					} 
					return 
				}
			} 
		}
		else
		{
			new szChannel[64]
			get_msg_arg_string(2, szChannel, charsmax(szChannel));
		
			if( equal(szChannel, "#Cstrike_Chat_All") ) 
			{ 
				formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1:  %%s2", Prefix[Level[id]])
				set_msg_arg_string(2, szChannel)
			} 
			else if( !equal(szChannel, "#Cstrike_Name_Change") ) 
			{ 
				format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel) 
				set_msg_arg_string(2, szChannel)
			} 
			return 
		}
	} 
}
and i want to add

/xp
/level
/lvl
/levels
/toplevel

from this plugin

Code:
/* AMX Mod X
* Level Mod Plugin
*
* by LordOfNothing
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
#include <cstrike>
#include <fakemeta>

new const PLUGIN_NAME[] = "Level Mod";
new const hnsxp_version[] = "5.5";
new const LEVELS[311] = {
        
        1000, // 1
        3000, // 2
        5000, // 3
        7000, // 4
        9000, // 5
        10000, // 6
        15000, // 7
        20000, // 8
        25000, // 10
        30000, // 11
        40000, // 12
        50000, // 13
        60000, // 14
        70000, // 15
        100000, // 16
        120000, // 17
        130000, // 18
        150000, // 19
        200000, // 20
        250000, // 21
        300000, // 22
        350000, // 23
        400000, // 24
        450000, // 25
        500000, // 26
        600000, // 27
        700000, // 28
        800000, // 29
        1000000, // 30
        1200000, // 31
        1300000, //32
        1400000, // 33
        1500000, // 34
        1600000, // 35
        1700000, // 36
        1800000, // 37
        1900000, // 38
        1950000, // 39
        2000000, // 40
        2500000, // 41
        3000000, // 42
        3500000, // 43
        4000000, // 44
        5000000, // 45
        6000000, // 46
        7000000, // 47
        8000000, // 48
        9000000, // 49
        10000000, // 50
        13000000, // 51
        15000000, // 2
        18000000, // 3
        20000000, // 4
        22500000, // 5
        25000000, // 6
        27500000, // 7
        29000000, // 8
        30000000, // 10
        35000000, // 11
        40000000, // 12
        45000000, // 13
        50000000, // 14
        55000000, // 15
        60000000, // 16
        65000000, // 17
        70000000, // 18
        75000000, // 19
        85000000, // 20
        90000000, // 21
        100000000, // 22
        110000000, // 23
        220000000, // 24
        230000000, // 25
        240000000, // 26
        250000000, // 27
        260000000, // 28
        270000000, // 29
        280000000, // 30
        290000000, // 31
        300000000, //32
        400000000, // 33
        500000000, // 34
        600000000, // 35
        700000000, // 36
        800000000, // 37
        900000000, // 38
        1000000000, // 39
        1500000000, // 40
        2000000000, // 41
        3000000000, // 42
        4000000000, // 43
        5000000000, // 44
        6000000000, // 45
        7000000000, // 46
        7500000000, // 47
        8500000000, // 48
        9099090000, // 97
        10000000000, // 98
        10000500000, // 99
        20000000000, // 100
	20000100000, // 1
        20000110000,// 2
        20000130000,
        20000134000,
        20000135000,
        20000136000,
        20000138000,
        20000139000,
        20000113000,
        20000213000,
        20000313000,
	20000413000,
        20000513000,
        20000613000,
        20000713000,
        20000813000,
        20000913000,
        20001113000,
        20002113000,
        20003113000,
        20004113000,
        20005113000,
        20006113000,
        20007113000,
        20008113000,
        20009113000,
        20011113000,
        20021113000,
        20031113000,
        20041113000,
        20051113000,
        20061113000,
        20071113000,
        20081113000,
        20091113000,
        20101113000,
        20201113000,
        20301113000,
        20401113000,
        20501113000,
        20601113000,
        20701113000,
        20901113000,
        21101113000,
        22101113000,
        23101113000,
        24101113000,
        25101113000,
        26101113000,
        27101113000,
        28101113000,
        29101113000,
        30000000000,
	30000130000,
        30000134000,
        30000135000,
        30000136000,
        30000138000,
        30000139000,
        30000113000,
        30000213000,
        30000313000,
	30000413000,
        30000513000,
        30000613000,
        30000713000,
        30000813000,
        30000913000,
        30001113000,
        30002113000,
        30003113000,
        30004113000,
        30005113000,
        30006113000,
        30007113000,
        30008113000,
        30009113000,
        30011113000,
        30021113000,
        30031113000,
        30041113000,
        30051113000,
        30061113000,
        30071113000,
        30081113000,
        30091113000,
        30101113000,
        30201113000,
        30301113000,
        30401113000,
        30501113000,
        30601113000,
        30701113000,
        30901113000,
        31101113000,
        32101113000,
        33101113000,
        34101113000,
        35101113000,
        36101113000,
        37101113000,
        38101113000,
        39101113000,
        40000000000,
        40000130000,
        40000134000,
        40000135000,
        40000136000,
        40000138000,
        40000139000,
        40000113000,
        40000213000,
        40000313000,
	40000413000,
        40000513000,
        40000613000,
        40000713000,
        40000813000,
        40000913000,
        40001113000,
        40002113000,
        40003113000,
        40004113000,
        40005113000,
        40006113000,
        40007113000,
        40008113000,
        40009113000,
        40011113000,
        40021113000,
        40031113000,
        40041113000,
        40051113000,
        40061113000,
        40071113000,
        40081113000,
        40091113000,
        40101113000,
        40201113000,
        40301113000,
        40401113000,
        40501113000,
        40601113000,
        40701113000,
        40901113000,
        41101113000,
        42212113000,
        43210111300,
        44101113000,
        45101113000,
        46101113000,
        47101113000,
        48101113000,
        49101113000,
        50000000000, // 46
        50000001000, // 1
	50000002000,  // 2
	50000003000,  // 3
	50000004000,  // 4
	50000005000,
	50000006000,
	50000007000,
	50000008000,
	50000009000,  // 58 !
	50000010000, // 10
	50000011000,
	50000020000,
	50000030000, // 13
	50000040000,
	50000050000,
	50000060000,
	50000070000,
	50000080000,
	50000090000, // 19
	50000200000,
	50000300000,
	50000400000,  // 22
	50000500000,
	50000600000,
	50000700000,
	50000800000,
	50000800500, // 27
	50000900000,
	50001000000,
	50002090000, // 30/58
	50003000000,
	50004000000,
	50005000000,
	50006000000,
	50007000000,
	50008000000,
	50009000000,
	50009005000,
	50009900000,
	50009995000, // 40/58
	50010000000,
	50020000000, 
	50030000000,
	50040000000,
	50050000000, 
	50060000000,
	50070000000,
	50080000000,
	50090000000,
	50100000000,  // 50 !
	50200000000, 
	50300000000, 
	50400000000, 
	50500000000,
	50600000000,
	99999999999999999999999999 // 300 ! 
}
new hnsxp_playerxp[33], hnsxp_playerlevel[33];
new hnsxp_kill, hnsxp_savexp, g_hnsxp_vault, tero_win, vip_enable, vip_xp, xlevel, wxp;


new Data[64];

new toplevels[33];
new topnames[33][33];

public plugin_init()
{
        register_plugin(PLUGIN_NAME, hnsxp_version, "LordOfNothing");

        RegisterHam(Ham_Spawn, "player", "hnsxp_spawn", 1);
        RegisterHam(Ham_Killed, "player", "hnsxp_death", 1);

        hnsxp_savexp = register_cvar("hnsxp_savexp","1");
        hnsxp_kill = register_cvar("hnsxp_kill", "1000");
        tero_win = register_cvar("hnsxp_terowin_xp","1500");
        vip_enable = register_cvar("hnsxp_vip_enable","1");
        vip_xp = register_cvar("hnsxp_vip_xp","100000");


        register_clcmd("say /level","plvl");
        register_clcmd("say /xp","plvl");

        register_clcmd("say /levels","plvls");
        register_clcmd("say_team /level","plvl");
        register_clcmd("say_team /xp","plvl");

        register_clcmd("say /lvl","tlvl");
        g_hnsxp_vault = nvault_open("levelmod_vault");
       

        register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")

        xlevel = CreateMultiForward("PlayerMakeNextLevel", ET_IGNORE, FP_CELL);
        wxp = CreateMultiForward("PlayerIsHookXp", ET_IGNORE, FP_CELL);
        register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged")
        
        register_clcmd("say /toplevel","sayTopLevel");
        register_clcmd("say_team /toplevel","sayTopLevel");
        register_concmd("amx_resetleveltop","concmdReset_Top");
        
        get_datadir(Data, 63);
        read_top();

}

public save_top() {
        new path[128];
        formatex(path, 127, "%s/LevelTop.dat", Data);
        if( file_exists(path) ) {
                delete_file(path);
        }
        new Buffer[256];
        new f = fopen(path, "at");
        for(new i = 0; i < 15; i++)
        {
                formatex(Buffer, 255, "^"%s^" ^"%d^"^n",topnames[i],toplevels[i] );
                fputs(f, Buffer);
        }
        fclose(f);
}
public concmdReset_Top(id) {
        
        if( !(get_user_flags(id) & read_flags("abcdefghijklmnopqrstu"))) {
                       return PLUGIN_HANDLED;
        }
        new path[128];
        formatex(path, 127, "%s/LevelTop.dat", Data);
        if( file_exists(path) ) {
                delete_file(path);
        }        
        static info_none[33];
        info_none = "";
        for( new i = 0; i < 15; i++ ) {
                formatex(topnames[i], 31, info_none);
                toplevels[i]= 0;
        }
        save_top();
        new aname[32];
        get_user_name(id, aname, 31);
        MesajColorat(0, "!normal[ !echipaLevel Mod !normal] Adminul !echipa%s!normal a resetat top level!", aname);
        return PLUGIN_CONTINUE;
}
public checkandupdatetop(id, levels) {        

        new name[32];
        get_user_name(id, name, 31);
        for (new i = 0; i < 15; i++)
        {
                if( levels > toplevels[i] )
                {
                        new pos = i;        
                        while( !equal(topnames[pos],name) && pos < 15 )
                        {
                                pos++;
                        }
                        
                        for (new j = pos; j > i; j--)
                        {
                                formatex(topnames[j], 31, topnames[j-1]);
                                toplevels[j] = toplevels[j-1];
                                
                        }
                        formatex(topnames[i], 31, name);
                        
                        toplevels[i]= levels;
                        
                        MesajColorat(0, "!normal[!echipaLevel Mod!normal] Jucatorul !echipa%s!normal a intrat pe locul !echipa%i!normal in top level !", name,(i+1));
                        if(i+1 == 1) {
                                client_cmd(0, "spk vox/doop");
                        } else {
                                client_cmd(0, "spk buttons/bell1");
                        }
                        save_top();
                        break;
                }
                else if( equal(topnames[i], name))
                break;        
        }
}
public read_top() {
        new Buffer[256],path[128];
        formatex(path, 127, "%s/LevelTop.dat", Data);
        
        new f = fopen(path, "rt" );
        new i = 0;
        while( !feof(f) && i < 15+1)
        {
                fgets(f, Buffer, 255);
                new lvls[25];
                parse(Buffer, topnames[i], 31, lvls, 24);
                toplevels[i]= str_to_num(lvls);
                
                i++;
        }
        fclose(f);
}
public sayTopLevel(id) {        
        static buffer[2368], name[131], len, i;
        len = formatex(buffer, 2047, "<body bgcolor=#FFFFFF><table width=100%% cellpadding=2 cellspacing=0 border=0>");
        len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#52697B><th width=10%% > # <th width=45%%> Nume <th width=45%%>Level");
        for( i = 0; i < 100; i++ ) {                
                if( toplevels[i] == 0) {
                        len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td> %s <td> %s",((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-");
                        //i = NTOP
                }
                else {
                        name = topnames[i];
                        while( containi(name, "<") != -1 )
                                replace(name, 129, "<", "&lt;");
                        while( containi(name, ">") != -1 )
                                replace(name, 129, ">", "&gt;");
                        len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td> %s <td> %d",((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name,toplevels[i]);
                }
        }
        len += format(buffer[len], 2367-len, "</table>");
        len += formatex(buffer[len], 2367-len, "<tr align=bottom font-size:11px><Center><br><br><br><br>Level Mod by LordOfNothing </body>");
        static strin[20];
        format(strin,33, "Top Level");
        show_motd(id, buffer, strin);
}

public ClientUserInfoChanged(id)
{
        static const name[] = "name"
        static szOldName[32], szNewName[32]
        pev(id, pev_netname, szOldName, charsmax(szOldName))
        if( szOldName[0] )
        {
                get_user_info(id, name, szNewName, charsmax(szNewName))
                if( !equal(szOldName, szNewName) )
                {
                        set_user_info(id, name, szOldName)
                        MesajColorat(id, "!normal[!echipaLevel Mod!normal] Pe acest server nu este permisa schimbarea numelui !");
                        return FMRES_HANDLED
                }
        }
        return FMRES_IGNORED
}

public plugin_natives()
{
        register_native("get_user_xp","_get_user_xp");
        register_native("get_user_level","_get_user_level");
}

public _get_user_xp(plugin, params)
{
        return hnsxp_playerxp[get_param(1)];
}

public _get_user_level(plugin, params)
{
        return hnsxp_playerlevel[get_param(1)];
}

public gItem(id)
{

        new dgl = give_item(id, "weapon_deagle")

        if(is_user_alive(id))
        {
                switch(hnsxp_playerlevel[id])
                {
                
                        case 0:
                        {
                                give_item(id, "weapon_smokegrenade");
                                set_user_health(id, get_user_health(id) + 3);
                                cs_set_weapon_ammo(dgl, 1);
                                remove_task(id);
                        }
                        
                        case 1..10:
                        {
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 1);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 1);
                                set_user_health(id, get_user_health(id) + 5);
                                cs_set_weapon_ammo(dgl, 1);
                                remove_task(id);
                
                        }
                
                        case 11..20:
                        {
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 1);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 1);
                        
                                cs_set_weapon_ammo(dgl, 1);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 10);
                                remove_task(id);
                
                        }
                
                        case 21..30:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 2);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 2);
                                
                                cs_set_weapon_ammo(dgl, 2);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                
                                set_user_health(id, get_user_health(id) + 10);
                                remove_task(id);
                        }

                        case 31..40:
                        {
                
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 2);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 2);
                        
                                cs_set_weapon_ammo(dgl, 3);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                        
                                set_user_health(id, get_user_health(id) + 10);
                                remove_task(id);
                        }
                
                        case 41..50:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 3);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
                                
                                cs_set_weapon_ammo(dgl, 4);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 20);
                                remove_task(id);
                        }
                        
                        case 51..60:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 3);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
                                
                                cs_set_weapon_ammo(dgl, 4);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 20);
                                remove_task(id);
                        }
                        case 61..70:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 4);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 4);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
                                
                                cs_set_weapon_ammo(dgl, 4);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 25);
                                remove_task(id);
                        }
                        case 71..80:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 4);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 4);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
                                
                                cs_set_weapon_ammo(dgl, 5);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 30);
                                remove_task(id);
                        }
                        case 81..90:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 4);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 4);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
                                
                                cs_set_weapon_ammo(dgl, 6);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 30);
                                remove_task(id);
                        }
                        
                        case 91..100:
                        {
                        
                                give_item(id, "weapon_hegrenade");
                                give_item(id, "weapon_flashbang");
                                give_item(id, "weapon_smokegrenade");
                                cs_set_user_bpammo(id, CSW_HEGRENADE, 5);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 5);
                                cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5);

                                cs_set_weapon_ammo(dgl, 6);
                                
                                cs_set_user_bpammo(id, CSW_DEAGLE, 0);
                                set_user_health(id, get_user_health(id) + 50);
                                remove_task(id);
                        }
                }
                        
        }

}

UpdateLevel(id)
{
        if((hnsxp_playerlevel[id] < 101) && (hnsxp_playerxp[id] >= LEVELS[hnsxp_playerlevel[id]]))
        {
                MesajColorat(id,"!normal[!echipa%s!normal] Felicitari ai trecut la nivelul urmator !", PLUGIN_NAME);
                MesajColorat(id,"!normal[!echipa%s!normal] Felicitari ai trecut la nivelul urmator !", PLUGIN_NAME);
                MesajColorat(id,"!normal[!echipa%s!normal] Felicitari ai trecut la nivelul urmator !", PLUGIN_NAME);
                MesajColorat(id,"!normal[!echipa%s!normal] Felicitari ai trecut la nivelul urmator !", PLUGIN_NAME);
                MesajColorat(id,"!normal[!echipa%s!normal] Felicitari ai trecut la nivelul urmator !", PLUGIN_NAME);
                new ret;
                ExecuteForward(xlevel, ret, id);
                while(hnsxp_playerxp[id] >= LEVELS[hnsxp_playerlevel[id]])
                {
                        hnsxp_playerlevel[id] += 1;
                }
        }
        
}

public hnsxp_spawn(id)
{
        set_task(15.0, "gItem", id);
        UpdateLevel(id);
        checkandupdatetop(id,hnsxp_playerlevel[id]);
}

public plvl(id)
{
        
        MesajColorat(id, "!normal[!echipaLevel Mod!normal] !verdeLVL !normal: !echipa%i !normal, !verdeXP !normal: !echipa %i !normal/ !echipa%i ", hnsxp_playerlevel[id], hnsxp_playerxp[id], LEVELS[hnsxp_playerlevel[id]]);
        return PLUGIN_HANDLED
}

public plvls(id)
{
        new players[32], playersnum, name[40], motd[1024], len;
        
        len = formatex(motd, charsmax(motd), "<html> <center> <font color=red> <b>LEVEL NUME XP <br ></font> </b> <body bgcolor=black></center> ");
        get_players(players, playersnum);
        
        for ( new i = 0 ; i < playersnum ; i++ ) {
                get_user_name(players[i], name, charsmax(name));
                len += formatex(motd[len], charsmax(motd) - len, "<center> <br><font color=red> <b> [%i] %s: %i</font>  </center> ",hnsxp_playerlevel[players[i]], name, hnsxp_playerxp[players[i]]);
        }
        
        formatex(motd[len], charsmax(motd) - len, "</html>");
        show_motd(id, motd);
        return PLUGIN_HANDLED
        
        
}
public tlvl(id)
{
        new poj_Name [ 32 ];
        get_user_name(id, poj_Name, 31)
        MesajColorat(0, "!normal[!echipaLevel-Mod!normal] Jucatorul !echipa%s !normalare nivelul !verde%i",poj_Name, hnsxp_playerlevel[id]);
        return PLUGIN_HANDLED
}

public hnsxp_death( iVictim, attacker, shouldgib )
{
        
        if( !attacker || attacker == iVictim )
                return;
        
        hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_kill);
        new ret;
        ExecuteForward(wxp, ret, attacker);
        
        
        UpdateLevel(attacker);
        UpdateLevel(iVictim);
        checkandupdatetop(iVictim,hnsxp_playerlevel[iVictim]);
        checkandupdatetop(attacker,hnsxp_playerlevel[attacker]);

        if(get_user_flags(attacker) & ADMIN_IMMUNITY && get_pcvar_num(vip_enable))
        {
                        hnsxp_playerxp[attacker] += get_pcvar_num(vip_xp);
        }
}

public client_connect(id)
{
        if(get_pcvar_num(hnsxp_savexp) == 1)
                LoadData(id);

        checkandupdatetop(id,hnsxp_playerlevel[id])               
}
public client_disconnect(id)
{
        if(get_pcvar_num(hnsxp_savexp) == 1)
                SaveData(id);
        
        hnsxp_playerxp[id] = 0;
        hnsxp_playerlevel[id] = 0;
        
        checkandupdatetop(id,hnsxp_playerlevel[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(vaultdata, 255, "`", " ");
        
        new playerxp[32], playerlevel[32];
        
        parse(vaultdata, playerxp, 31, playerlevel, 31);
        
        hnsxp_playerxp[id] = str_to_num(playerxp);
        hnsxp_playerlevel[id] = str_to_num(playerlevel);
        
        return PLUGIN_CONTINUE;
}

public t_win(id)
{
        
        new iPlayer [ 32 ], iNum;
        get_players(iPlayer, iNum, "ae", "TERRORIST")
        for ( new i = 0; i < iNum; i++ ) {
                hnsxp_playerxp[iPlayer [ i ]] += get_pcvar_num(tero_win);
                MesajColorat(iPlayer[i], "!normal[!echipaLevel Mod!normal] Ai primit !verde %i !normalxp pentru ca echipa !verdeTERO a castigat !",get_pcvar_num(tero_win));
                UpdateLevel(iPlayer[i]);
                checkandupdatetop(iPlayer[i],hnsxp_playerlevel[iPlayer[i]])
        }
}
stock MesajColorat(const id, const input[], any:...)
{
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!verde", "^4")
        replace_all(msg, 190, "!normal", "^1")
        replace_all(msg, 190, "!echipa", "^3")
        
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++)
                {
                        if (is_user_connected(players[i]))
                        {
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                                write_byte(players[i]);
                                write_string(msg);
                                message_end();
                        }
                }
        }
}

Last edited by strikegino; 01-27-2014 at 10:21.
strikegino is offline
joshknifer
Veteran Member
Join Date: Jun 2011
Location: Denver, CO
Old 01-29-2014 , 12:44   Re: xp level + tag level
Reply With Quote #2

Why do you need to switch from SteamID to nick?
__________________
joshknifer is offline
Send a message via Skype™ to joshknifer
strikegino
Member
Join Date: Mar 2013
Old 01-29-2014 , 13:13   Re: xp level + tag level
Reply With Quote #3

becouse has conflict with another plugin (hlstatsx)
strikegino is offline
joshknifer
Veteran Member
Join Date: Jun 2011
Location: Denver, CO
Old 01-29-2014 , 13:13   Re: xp level + tag level
Reply With Quote #4

What is the conflict?
__________________
joshknifer is offline
Send a message via Skype™ to joshknifer
strikegino
Member
Join Date: Mar 2013
Old 01-29-2014 , 13:16   Re: xp level + tag level
Reply With Quote #5

when i eneble the plugin the hlstatsx stop working, i don`t no ???
L 01/26/2014 - 16:08:18: [AMXX] Displaying debug trace (plugin "hlstatsx_commands_cstrike.amxx")
L 01/26/2014 - 16:08:18: [AMXX] Run time error 4: index out of bounds
L 01/26/2014 - 16:08:18: [AMXX] [0] hlstatsx_commands_cstrike.sma::psay (line 629)
L 01/26/2014 - 16:08:18: [AMXX] [1] hlstatsx_commands_cstrike.sma::hlx_amx_bulkps ay (line 687)
strikegino is offline
Kia
AlliedModders Donor
Join Date: Apr 2010
Location: In a world of madness
Old 01-29-2014 , 15:35   Re: xp level + tag level
Reply With Quote #6

Show us the output of the following commands


rcon version
rcon meta version
rcon meta list
rcon amxx version
rcon amxx plugins
rcon status
__________________
Kia is offline
strikegino
Member
Join Date: Mar 2013
Old 01-29-2014 , 16:38   Re: xp level + tag level
Reply With Quote #7

ok

Last edited by strikegino; 01-29-2014 at 16:39.
strikegino is offline
strikegino
Member
Join Date: Mar 2013
Old 01-29-2014 , 16:43   Re: xp level + tag level
Reply With Quote #8

Code:
version
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 13:14:12 Aug 29 2013 (6153)
] meta version
Metamod v1.20 2013-02-16 (5:13)
by Will Day <[email protected]>
http://www.metamod.org/
compiled: Feb 16 2013, 17:115 +0100 (optimized)
ifvers: 5:13


meta list
Currently running plugins:
[ 1] dproto_EF, v0.9.356, 2013-11-09, by Crock, see
[ 2] AMX Mod X, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
[ 3] Fun, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
[ 4] Engine, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
[ 5] FakeMeta, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
[ 6] CStrike, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
[ 7] CSX, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org/
[ 8] Ham Sandwich, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
8 plugins

amxx version
AMX Mod X 1.8.2
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko, Felix "SniperBeamer" Geyer
Jonny "Got His Gun" Bergstrom, Lukasz "SidLuke" Wlasinski
Christian "Basic-Master" Hammacher, Borja "faluco" Ferrer
Scott "Damaged Soul" Ehlert
Compiled: Feb 14 2013, 00:55:00
URL:http://www.amxmodx.org/
Core mode: JIT

amxx plugins
AMX Mod X 1.8.2
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko, Felix "SniperBeamer" Geyer
Jonny "Got His Gun" Bergstrom, Lukasz "SidLuke" Wlasinski
Christian "Basic-Master" Hammacher, Borja "faluco" Ferrer
Scott "Damaged Soul" Ehlert
Compiled: Feb 14 2013, 00:55:00
URL:http://www.amxmodx.org/
Core mode: JIT


i dont have acces on consol on the server onli in game
strikegino is offline
WildCard65
Veteran Member
Join Date: Aug 2013
Location: Canada
Old 01-29-2014 , 17:18   Re: xp level + tag level
Reply With Quote #9

No steam, no support!
Or, update server and remove dproto for support.

Last edited by WildCard65; 01-29-2014 at 17:19.
WildCard65 is offline
strikegino
Member
Join Date: Mar 2013
Old 01-30-2014 , 07:08   Re: xp level + tag level
Reply With Quote #10

ok i wil update the server
(way you want to lai you)
i like to have the server ful steam but i dont have players wit steam to play, i have onli 20 player how have steam, i geve to player how have admin grad ownar or top 15 fist 3, i geve steam original, but i dont have so meny money to geve all steam . in the future i want to go on only steam the server, if i have players.
thx for your replay.
i dont want to lay you i want to no the truth
strikegino is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:32.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode