Deathrun xp si shop xp. [rezolvat!]

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

05 Mar 2014, 18:39

Nickname: Adi
Numele pluginului cerut: Deathrun xp si shop transformat in XP.
Descriere plugin cerut: Am pluginul cu XP si levele. Vreau sa-mi scoateti toate levelele. Are si un mesaj hud care scrie ce level esti si cat xp ai. Vreau sa lasati sa scrie doar "Ai 5 XP" . XP-ul sa se salveze pe IP daca se poate , pentru ca s-ar salva mai corect zic eu. Am si un shop care vreau sa-l mai simplific si sa-l transformati in XP. Sa se poata cumpara cu xp tot.
Alte informatii: Shop-ul vreau sa arate cam asa:


Magazin DR.Nume.Ro
1. Grenade He+FB [50 XP]
2. Deagle [70 XP]
3. Ak47+M4A1 [130 XP]
4. AWP [120 XP]
5. God Mode 7 sec. [250 XP]
6. Invizibilitate 80 % [200 XP]
0. Iesire

Acum sursa Plugin XP:
| Afiseaza codul
/////////////////////////////////////////////////////////////////////////////
//==============================	
//=  Dr.Nume.Ro XP & Level Mod   =
//==============================	
//
////////////////////////////////////////////////////////////////////

#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[] = "[^4Dr.nume.Ro 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, // Incepator #1
	150, // Elev #2
	200, // Jucator Bun #3
	250, // Talentat #4
	300, // Foarte Bun #5
	350, // Smecher #6
	400, // Cunoscut de toti #7
	450, // Veteran #8
	550, // Zmeu #9
	600, // Primul Loc #10
	650, // Deathruner #11
	700 // Jucator Respectat #12
}
new const Prefix[MaxLevels +1][] =
{
	"Incepator", // 0
	"Elev", // 1
	"Jucator Bun",  // 2
	"Talentat", // 3
	"Foarte Bun", // 4
	"Smecher",  // 5
	"Cunoscut de toti", // 6
	"Veteran", // 7
	"Zmeu", // 8
	"Primul Loc", // 9
	"Deathruner", // 10
	"Cel mai bun", // 11
	"Jucator Respectat" // 12
}

// 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", "nume")
	
	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", "5")
	HsXp	= register_cvar("drxp_per_hs", "10")
	HeXp	= register_cvar("drxp_per_nade_kill", "10")
	//KnifeXp	= register_cvar("drxp_per_knife_kill", "10")
	
	// 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", "10")
	
	// Armor Per Level //
	armorperlevel	= register_cvar("armor_per_lvl", "10") 
	
	// Speed Per Level //
	//speedperlevel	= register_cvar("speed_per_lvl", "10")
	
	// Gravity Per Level //
	gravityperlvl	= register_cvar("gravity_per_lvl", "10") // NERVER MORE THAN 66 PER LVL
	
	// Damage Per Level //
	damageperlevel	= register_cvar("damage_per_lvl", "10")
	
	g_msgHudSync = CreateHudSyncObj()
}

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

/*      INFO ABOUT PERSONAL XP/LEVEL      */
public ShowPlayerXP(id)
{
	ColorChat(id, GREY, "%s Ai ^4%i^3 XP si esti levelul ^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 Esti levelul ^4%s^3 cu ^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 ) )
	{
		return HAM_IGNORED;
	}
	
	//set_user_maxspeed( id, 450.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
			
	return HAM_IGNORED;
}

/*      HP & AP & Gravity Check      */
public Ham_CheckOthers_Bonus(id)
{
	if( !is_user_alive( id ))
		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 ^4Jucator Respectat : ^1%s^4 s-a conectat pe Dr.nume.Ro cu ^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 ^4Jucator Respectat : %s s-a deconectat de pe Dr.nume.Ro cu %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 Ai primit^4 %i^3 XP pentru kill^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 Ai primit ^4%i^3 XP pentru ca l-ai omorat pe ^4%s^3 cu ^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 Ai primit^4 %i^3 XP pentru ca l-ai omorat pe^4 %s^3 cu o ^4Grenada", 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 Felicitari ai trecut levelul , acum esti levelul : ^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[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[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[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 
		}
	} 
}



Si sursa shop DR
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <engine>

#if cellbits == 32
#define OFFSET_CSMONEY  115
#else
#define OFFSET_CSMONEY  140
#endif
#define OFFSET_LINUX      5

new g_Menu, g_hasLongJump[33];

public plugin_init()
{
    register_plugin("DrShop", "1.9", "nume");
    
    g_Menu = register_menuid("DeathRun Shop");
    register_menucmd(g_Menu, 1023, "drshop");
    
    register_clcmd("say /shop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say /drshop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say_team /shop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say_team /drshop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say shop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say drshop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say_team shop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("say_team drshop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("drshop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_clcmd("shop","cmdShop",-1,"<cumperi diverse lucruri>");
    register_event("DeathMsg", "event_death", "a");
    set_task ( 15.0, "showmessage", _, _, _, "b" );
}

public showmessage ( )
{
    /*client_print ( 0, print_chat, "Apasati tasta c sau scrie /drshop pentru a folosii beneficiile deathrun shop [Dr.nume.Ro]" );*/
}

public client_connect ( id )
{
    g_hasLongJump[id] = 0;
    client_cmd ( id, "bind c drshop" );
}

public cmdShop(id) {   
    
    new menuBody[512];
    
    add(menuBody, 511, "Magazin \r[Dr.nume.Ro]\w^n^n");
    add(menuBody, 511, "1. He+FB`s \r(\y2000$\w^n\r)");
    add(menuBody, 511, "2. +155 hp \r(\y5000$\w^n\)");
    add(menuBody, 511, "3. +200 AP \r(\y3000$\w^n\r)");
    add(menuBody, 511, "4. Speed \r(\y5000$\w^n\r)");
    add(menuBody, 511, "5. Deagl \r(\y4000$\w^n\r)");
    add(menuBody, 511, "6. AK47+M4A1 \r(\y9000$\w^n\r)");
    add(menuBody, 511, "7. AWP \r(\y6000$\w^n)");
    add(menuBody, 511, "8. GodMode 7.sec \r(\y16000$\w^n\r)");
    add(menuBody, 511, "0. Exit^n");
    
    new keys = (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 |1<<9);
    show_menu(id, keys, menuBody, -1, "DeathRun Shop");
    
    return PLUGIN_CONTINUE;
}

public drshop(id, key) {
    switch(key) 
    {
        case 0:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 2000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara HE si FB. Necesari: 2000$");
                return PLUGIN_HANDLED;
            }
            else {
 
            banif = bani - 2000;
            cs_set_user_money(id,banif);
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat HE si FB ",banif);
            give_item(id,"weapon_hegrenade");
            give_item(id,"weapon_flashbang"); 
        }
		}
        case 1:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 5000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru Viata. Necesari: 5000$");
                return PLUGIN_HANDLED;
            }
            if(is_user_alive(id)) {
                client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat deja +170hp");
                return PLUGIN_HANDLED;
            }
            banif = bani - 5000;
            cs_set_user_money(id,banif);
            set_user_health( id, get_user_health(id) + 155 );
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat +155 hp",banif);
        }
        case 2:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 3000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru armura. Necesari: 5000$");
                return PLUGIN_HANDLED;
            }
            if(is_user_alive(id)) {
                client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat deja +200 ap");
                return PLUGIN_HANDLED;
            }
            banif = bani - 3000;
            cs_set_user_money(id,banif);
            set_user_armor( id, get_user_armor(id) + 155 );
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat +200 ap",banif);
        }
        case 3:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 5000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara viteza. Necesari: 3000$");
                return PLUGIN_HANDLED;
            }
            
            banif = bani - 5000;
            cs_set_user_money(id,banif);
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat viteza.");
            
            new Float:speed = get_user_maxspeed(id) + 150.0;
            set_user_maxspeed(id,speed);
        }
        case 4:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 4000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara Deagle. Necesari: 3000$");
                return PLUGIN_HANDLED;
            }
            
            if(user_has_weapon(id,CSW_DEAGLE)) {
                client_print(id,print_chat,"[Dr.nume.Ro] Ai deja Deagle");
                return PLUGIN_HANDLED;
            }
            
            banif = bani - 4000;
            cs_set_user_money(id,banif);
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat Deagle.",banif);
            give_item(id,"weapon_deagle");
            give_item(id,"ammo_50ae");
            give_item(id,"ammo_50ae");
        }
        case 5:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 9000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara M4A1+AK47. Necesari: 3000$");
                return PLUGIN_HANDLED;
            }
            
            if(user_has_weapon(id,CSW_DEAGLE)) {
                client_print(id,print_chat,"[Dr.nume.Ro] Ai deja Deagle+AK47");
                return PLUGIN_HANDLED;
            }
            
            banif = bani - 9000;
            cs_set_user_money(id,banif);
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat M4A1+AK47 .",banif);
            give_item(id, "weapon_m4a1");
            give_item(id, "ammo_100ae");
            give_item(id, "ammo_100ae");
            give_item(id, "weapon_ak47");
            give_item(id, "ammo_100ae");
            give_item(id, "ammo_100ae");
        }
        case 6:
        {
            new bani,banif;
            bani = cs_get_user_money(id);
            if(bani < 6000) {
                client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara AWP. Necesari: 6000$");
                return PLUGIN_HANDLED;
            }
            
            if(user_has_weapon(id,CSW_DEAGLE)) {
                client_print(id,print_chat,"[Dr.nume.Ro] Ai deja AWP");
                return PLUGIN_HANDLED;
            }
            
            banif = bani - 6000;
            cs_set_user_money(id,banif);
            client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat AWP.",banif);
            give_item(id, "weapon_awp");
            give_item(id, "ammo_50ae");
            give_item(id, "ammo_50ae");
        }
        case 7:
        {
        new bani,banif;
        bani = cs_get_user_money(id);
        if(bani < 16000) {
            client_print(id,print_chat,"[Dr.nume.Ro] Nu ai suficienti bani pentru a cumpara GodMode Necesari: 16000$");
            return PLUGIN_HANDLED;
        }
        if(get_user_godmode(id) == 1) {
            client_print(id,print_chat,"[DrShop] Ai deja GodMode.");
            return PLUGIN_HANDLED;
        }
        
        banif = bani - 16000;
        cs_set_user_money(id,banif);
        client_print(id,print_chat,"[Dr.nume.Ro] Ai cumparat GodMode pentru 7 secunde.");
        set_user_godmode ( id, 1 );
        // set_task ( 5.0,"removeInvis",id );
        set_task ( 7.0, "removegm", id );
        }
        
        default: return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}

public removegm ( id )
{
    set_user_godmode ( id, 0 );
}
                                     
public event_death() {

new victim = read_data(2);
g_hasLongJump[victim] = 0;
set_pdata_int(victim, 291, 0, 5);
engfunc(EngFunc_SetPhysicsKeyValue, victim, "slj", "0");
return PLUGIN_CONTINUE;
}
stock set_user_longjump(id, mode = 1) 
{
    if (!is_user_connected(id))
        return;
    
    if (mode)
    {
        set_pdata_int(id, 291, 1, 5);
        engfunc(EngFunc_SetPhysicsKeyValue, id, "slj", "1");
    }
    else
    {
        set_pdata_int(id, 291, 0, 5);
        engfunc(EngFunc_SetPhysicsKeyValue, id, "slj", "0");
    }
}

public client_disconnect(id) {
    g_hasLongJump[id] = 0;
}
Last edited by GhosT *** on 07 Mar 2014, 20:31, edited 1 time in total.
Reason: Rezolvat !
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
RoyalServer 2
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

06 Mar 2014, 14:53

ma poate ajuta cineva ?
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
User avatar
Clawuu.
Membru, skill 0
Membru, skill 0
Posts: 22
Joined: 01 Mar 2014, 15:16
Detinator Steam: Nu
CS Status: Scripter eXtreamCS
Detinator server CS: Fost Detinator
SteamID: -
Location: Braila
Has thanked: 1 time
Been thanked: 1 time
Contact:

06 Mar 2014, 20:42

Lasa-mi PM daca esti deacord sa ti-l fac contracost exact cum ai spus tu.
Nu regret nimic din ce am facut pana acum !
Image
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

06 Mar 2014, 22:18

Nu te supara , dar in primul rand ai cont pe forum de 6 zile :) , deci incredere 0 , si plus la asta daca vroiam contra cost , plecam la anakin sa-mi faca. M-am gandit ca o sa-mi faca cineva free.

Mai astept cateva zile , daca nu-mi face nimeni o sa iau o hotarare.
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

06 Mar 2014, 22:20

Nu o lua aiurea .. Maine ti-l fac eu .. Pana diseara il postez . ( am scoala :)) )
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

06 Mar 2014, 22:42

GhosT *** wrote:Nu o lua aiurea .. Maine ti-l fac eu .. Pana diseara il postez . ( am scoala :)) )
Multumesc frumos. Daca o sa mi-l faci , te rog sa mi-l faci din xp-ul asta :) si sa lasi si levelele , cand se va cumpara ceva din shop sa scada din xp si sa scada si levelele.
| Afiseaza codul
/*==================================================

Plugin: Deathrun XP
Version: 2.0
Author: KronoS 

*****************
*** Changelog ***
*****************

#Version 2.0 | 03 October 2011

-Ham_Spawn instead of ResetHud
-removed the respawn system because it wasn't working (it will be added in the next version)
-minor changes in the code
-fixed the "index out of bounds" error

***************
*** Credits ***
***************

XunTric - xp based tutorial
Il3gal - for his idea
Vechta - admin commands

==================================================*/

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

new const PLUGIN_NAME[] = "Deathrun XP";

new const drxp_version[] = "2.0";

new const LEVELS[15] = {
 	50, 
 	100, 
 	150, 
 	200,
 	250,
 	300,
	350,
	400,
	450,
	500,
        550,
        600,
        650,
        700,
        900
}

new drxp_playerxp[33], drxp_playerlevel[33];
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, drxp_version, "KronoS");

	RegisterHam(Ham_Spawn, "player", "drxp_spawn", 1);
 	register_event("DeathMsg", "drxp_death", "a");

 	drxp_savexp = register_cvar("drxp_savexp","1");
 	drxp_kill = register_cvar("drxp_kill", "5");
 	drxp_knife = register_cvar("drxp_knife","5");
	drxp_grenade = register_cvar("drxp_grenade","15");
 	drxp_hs = register_cvar("drxp_hs","10");

 	g_drxp_vault = nvault_open("deathrun_xp");

    	register_concmd("amx_takexp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");  
    	register_concmd("amx_givexp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>"); 
}

public drxp_spawn(id)
{
	if((drxp_playerlevel[id] < 10) && (drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]]))
	{
		client_print(id,print_chat,"[%s] Felicitari , ai trecut la urmatorul level!", PLUGIN_NAME);
		while(drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]])
		{
  			drxp_playerlevel[id] += 1;
		}
	}

	if(drxp_playerlevel[id] > 0)
		set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id]);
}

public drxp_death() 
{
 	new iVictim = read_data(2);
 	new weapon, hitplace, attacker = get_user_attacker(iVictim,weapon,hitplace);

	new victimname[32], wvar[32];
   	get_user_name(iVictim,victimname,31);
   	read_data(4, wvar, 31);

   	if(equal(wvar, "world", 5))
   		return;

	if(attacker < 1 || attacker > 32)
		return;

 	drxp_playerxp[attacker] += get_pcvar_num(drxp_kill);
	client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);

 	if(hitplace == HIT_HEAD)
	{
 		drxp_playerxp[attacker] += get_pcvar_num(drxp_hs);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis pe %s cu headshot!", PLUGIN_NAME, get_pcvar_num(drxp_hs), victimname);
	}

 	if(weapon == CSW_KNIFE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_knife);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis %s cu cutitul!", PLUGIN_NAME, get_pcvar_num(drxp_knife), victimname);
	}
 	else if(weapon == CSW_HEGRENADE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade);
		client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s cu Grenada!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);
	}

	drxp_hudinfo(attacker);
}

public drxp_hudinfo(id)
{
	set_hudmessage(0, 32, 245, 0.01, 0.2, 0, 3.0, 3.0);
	if(drxp_playerlevel[id] < 10)
 		show_hudmessage(id, "Level: %i^nXP: %i / %i", drxp_playerlevel[id], drxp_playerxp[id], LEVELS[drxp_playerlevel[id] + 1]);
	else
 		show_hudmessage(id, "Level: %i^nMax Level Maxim atins!", drxp_playerlevel[id]);

	set_task(2.0, "drxp_hudinfo", id);
}

public client_putinserver(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		LoadData(id);

	set_task(10.0, "drxp_hudinfo", id);
}

public client_disconnect(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		SaveData(id);

 	drxp_playerxp[id] = 0;
 	drxp_playerlevel[id] = 0;
}

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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_set(g_drxp_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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_get(g_drxp_vault,vaultkey,vaultdata,255);

 	replace_all(vaultdata, 255, "#", " ");

 	new playerxp[32], playerlevel[32];

 	parse(vaultdata, playerxp, 31, playerlevel, 31);

 	drxp_playerxp[id] = str_to_num(playerxp);
 	drxp_playerlevel[id] = str_to_num(playerlevel);

 	return PLUGIN_CONTINUE;
}  

public cmd_give_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
       		 return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8)

    	if(!player)  
        	return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: give %s xp to %s", admin_name, amount, player_name)

    	drxp_playerxp[player] += expnum
    	SaveData(id)

    	return PLUGIN_CONTINUE
} 
  
public cmd_take_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
    		return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8) 

    	if(!player)  
       		 return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: take %s xp from %s", admin_name, amount, player_name)

    	drxp_playerxp[player] -= expnum
    	SaveData(id) 

    	return PLUGIN_CONTINUE
}
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

07 Mar 2014, 14:27

| Afiseaza codul
/*==================================================

Plugin: Deathrun XP
Version: 2.0
Author: KronoS 

*****************
*** Changelog ***
*****************

#Version 2.0 | 03 October 2011

-Ham_Spawn instead of ResetHud
-removed the respawn system because it wasn't working (it will be added in the next version)
-minor changes in the code
-fixed the "index out of bounds" error

***************
*** Credits ***
***************

XunTric - xp based tutorial
Il3gal - for his idea
Vechta - admin commands

==================================================*/

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

new const PLUGIN_NAME[] = "Deathrun XP";

new const drxp_version[] = "2.0";

new const LEVELS[15] = {
 	50, 
 	100, 
 	150, 
 	200,
 	250,
 	300,
	350,
	400,
	450,
	500,
        550,
        600,
        650,
        700,
        900
}

new drxp_playerxp[33], drxp_playerlevel[33];
new bool:Speed[33];
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, drxp_version, "KronoS");

	RegisterHam(Ham_Spawn, "player", "drxp_spawn", 1);
 	register_event("DeathMsg", "drxp_death", "a");
	register_event("CurWeapon", "CurrentWeapon", "be", "1=1");

 	drxp_savexp = register_cvar("drxp_savexp","1");
 	drxp_kill = register_cvar("drxp_kill", "5");
 	drxp_knife = register_cvar("drxp_knife","5");
	drxp_grenade = register_cvar("drxp_grenade","15");
 	drxp_hs = register_cvar("drxp_hs","10");

 	g_drxp_vault = nvault_open("deathrun_xp");

    	register_concmd("amx_takexp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");  
    	register_concmd("amx_givexp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>"); 
	
	register_clcmd("say /shop", "ShopClCmd");
	register_clcmd("say_team /shop", "ShopClCmd");
	
	register_clcmd("say shop", "ShopClCmd");
	register_clcmd("say_team shop", "ShopClCmd");
	
	register_clcmd("say /drshop", "ShopClCmd");
	register_clcmd("say_team /drshop", "ShopClCmd");
	
	register_clcmd("say drshop", "ShopClCmd");
	register_clcmd("say_team drshop", "ShopClCmd");
	
	set_task ( 15.0, "showmessage", _, _, _, "b" );
}
public showmessage ( )
{
    /*client_print ( 0, print_chat, "Apasati tasta c sau scrie /drshop pentru a folosii beneficiile deathrun shop [Dr.nume.Ro]" );*/
}
public drxp_spawn(id)
{
	if((drxp_playerlevel[id] < 10) && (drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]]))
	{
		client_print(id,print_chat,"[%s] Felicitari , ai trecut la urmatorul level!", PLUGIN_NAME);
		while(drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]])
		{
  			drxp_playerlevel[id] += 1;
		}
	}

	if(drxp_playerlevel[id] > 0)
		set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id]);
}

public drxp_death() 
{
 	new iVictim = read_data(2);
 	new weapon, hitplace, attacker = get_user_attacker(iVictim,weapon,hitplace);

	new victimname[32], wvar[32];
   	get_user_name(iVictim,victimname,31);
   	read_data(4, wvar, 31);

   	if(equal(wvar, "world", 5))
   		return;

	if(attacker < 1 || attacker > 32)
		return;

 	drxp_playerxp[attacker] += get_pcvar_num(drxp_kill);
	client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);

 	if(hitplace == HIT_HEAD)
	{
 		drxp_playerxp[attacker] += get_pcvar_num(drxp_hs);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis pe %s cu headshot!", PLUGIN_NAME, get_pcvar_num(drxp_hs), victimname);
	}

 	if(weapon == CSW_KNIFE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_knife);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis %s cu cutitul!", PLUGIN_NAME, get_pcvar_num(drxp_knife), victimname);
	}
 	else if(weapon == CSW_HEGRENADE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade);
		client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s cu Grenada!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);
	}

	drxp_hudinfo(attacker);
	
	Speed[iVictim] = false;
}

public drxp_hudinfo(id)
{
	set_hudmessage(0, 32, 245, 0.01, 0.2, 0, 3.0, 3.0);
	if(drxp_playerlevel[id] < 10)
 		show_hudmessage(id, "Level: %i^nXP: %i / %i", drxp_playerlevel[id], drxp_playerxp[id], LEVELS[drxp_playerlevel[id] + 1]);
	else
 		show_hudmessage(id, "Level: %i^nMax Level Maxim atins!", drxp_playerlevel[id]);

	set_task(2.0, "drxp_hudinfo", id);
}

public client_putinserver(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		LoadData(id);

	set_task(10.0, "drxp_hudinfo", id);
	
	client_cmd(id, "bind c ^"say shop");
}

public client_disconnect(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		SaveData(id);

 	drxp_playerxp[id] = 0;
 	drxp_playerlevel[id] = 0;
}

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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_set(g_drxp_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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_get(g_drxp_vault,vaultkey,vaultdata,255);

 	replace_all(vaultdata, 255, "#", " ");

 	new playerxp[32], playerlevel[32];

 	parse(vaultdata, playerxp, 31, playerlevel, 31);

 	drxp_playerxp[id] = str_to_num(playerxp);
 	drxp_playerlevel[id] = str_to_num(playerlevel);

 	return PLUGIN_CONTINUE;
}  

public cmd_give_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
       		 return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8)

    	if(!player)  
        	return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: give %s xp to %s", admin_name, amount, player_name)

    	drxp_playerxp[player] += expnum
    	SaveData(id)

    	return PLUGIN_CONTINUE
} 
  
public cmd_take_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
    		return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8) 

    	if(!player)  
       		 return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: take %s xp from %s", admin_name, amount, player_name)

    	drxp_playerxp[player] -= expnum
    	SaveData(id) 

    	return PLUGIN_CONTINUE
}
public ShopClCmd(id)
{
	new menu = menu_create("Magazin \y[Dr.Nume.Ro]", "Handler");
	
	menu_additem(menu, "\yHE + FB \r (\y40XP\r)", "1", 0);
	menu_additem(menu, "\y+155 HP \r (\y50XP\r)", "2", 0);
	menu_additem(menu, "\y+200 AP \r (\y30XP\r)", "3", 0);
	menu_additem(menu, "\ySpeed \r (\y50XP\r)", "4", 0);
	menu_additem(menu, "\yDeagle \r (\y40XP\r)", "5", 0);
	menu_additem(menu, "\yAK47 + M4A1 \r (\y90XP\r)", "6", 0);
	menu_additem(menu, "\yAWP \r (\y60XP\r)", "7", 0);
	menu_additem(menu, "\yGodMode 7 Secunde \r (\y160XP\r)", "8", 0);
	
	menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
	menu_setprop(menu, MPROP_EXITNAME, "Iesire");
	menu_display(id, menu, 0);
	
	return PLUGIN_HANDLED;
}
public Handler(id, menu, item)
{
	if(item == MENU_EXIT)
		return PLUGIN_HANDLED;
		
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,sizeof(data), szName,sizeof(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(drxp_playerxp[id] > 40)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			
			drxp_playerxp[id] -= 40;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat HE + FB !");
		}
		case 2:
		{
			if(drxp_playerxp[id] > 50)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			set_user_health(id, get_user_health(id) + 155);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +155 HP !");
		}
		case 3:
		{
			if(drxp_playerxp[id] > 30)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			set_user_armor(id, get_user_armor(id) + 200);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +200 AP !");
		}
		case 4:
		{
			if(drxp_playerxp[id] > 50)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			Speed[id] = true;
			CurrentWeapon(id);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat Speed !");
		}
		case 5:
		{
			if(drxp_playerxp[id] > 40)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id,CSW_DEAGLE))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja Deagle !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_deagle");
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			
			drxp_playerxp[id] -= 40;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat Deagle !");
		}
		case 6:
		{
			if(drxp_playerxp[id] > 90)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AK47) || user_has_weapon(id, CSW_M4A1))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja aceste arme !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_m4a1");
			give_item(id, "weapon_ak47");
			
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			cs_set_user_bpammo(id, CSW_AK47, 90);
			
			drxp_playerxp[id] -= 90;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat M4A1 + AK47 !");
		}
		case 7:
		{
			if(drxp_playerxp[id] > 60)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AWP))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja AWP !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 30);
			
			drxp_playerxp[id] -= 60;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat AWP !");
		}
		case 8:
		{
			if(drxp_playerxp[id] > 160)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(get_user_godmode(id) == 1)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja GodMode !");
				return PLUGIN_HANDLED;
			}
			
			set_user_godmode(id, 1);
			set_task(7.0, "RemoveGodMode", id);
			
			drxp_playerxp[id] -= 160;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat GodMode !");
		}
	}
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public CurrentWeapon(id)
{
	if(Speed[id] && is_user_alive(id))
		set_user_maxspeed(id, get_user_maxspeed(id) + 150.0);
		
}
public RemoveGodMode(id)
{
	set_user_godmode(id, 0);
	ColorChat(id, "^x04[DR SHOP]^x01 Nu mai ai God Mode !");
	return PLUGIN_HANDLED;
}
stock ColorChat(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "^x04", "^4"); // Green Color
	replace_all(msg, 190, "^x01", "^1"); // Default Color
	replace_all(msg, 190, "^x03", "^3"); // Team Color
	replace_all(msg, 190, "^0", "^0"); // Team2 Color
	
	if (id) players[0] = id; else get_players(players, count, "ch");
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

07 Mar 2014, 16:40

Totul merge perfect doar ca e o mica problema :)

Cand cumperi din shop cumperi fara limita si intri in minus XP , de exemplu ai doar 10 xp , si cand cumperi poti cumpara orice si iti faci -120 xp .. Te rog sa-l faci sa nu poti cumpara in minus . Multumesc .
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

07 Mar 2014, 16:48

| Afiseaza codul
/*==================================================

Plugin: Deathrun XP
Version: 2.0
Author: KronoS 

*****************
*** Changelog ***
*****************

#Version 2.0 | 03 October 2011

-Ham_Spawn instead of ResetHud
-removed the respawn system because it wasn't working (it will be added in the next version)
-minor changes in the code
-fixed the "index out of bounds" error

***************
*** Credits ***
***************

XunTric - xp based tutorial
Il3gal - for his idea
Vechta - admin commands

==================================================*/

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

new const PLUGIN_NAME[] = "Deathrun XP";

new const drxp_version[] = "2.0";

new const LEVELS[15] = {
 	50, 
 	100, 
 	150, 
 	200,
 	250,
 	300,
	350,
	400,
	450,
	500,
        550,
        600,
        650,
        700,
        900
}

new drxp_playerxp[33], drxp_playerlevel[33];
new bool:Speed[33];
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, drxp_version, "KronoS");

	RegisterHam(Ham_Spawn, "player", "drxp_spawn", 1);
 	register_event("DeathMsg", "drxp_death", "a");
	register_event("CurWeapon", "CurrentWeapon", "be", "1=1");

 	drxp_savexp = register_cvar("drxp_savexp","1");
 	drxp_kill = register_cvar("drxp_kill", "5");
 	drxp_knife = register_cvar("drxp_knife","5");
	drxp_grenade = register_cvar("drxp_grenade","15");
 	drxp_hs = register_cvar("drxp_hs","10");

 	g_drxp_vault = nvault_open("deathrun_xp");

    	register_concmd("amx_takexp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");  
    	register_concmd("amx_givexp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>"); 
	
	register_clcmd("say /shop", "ShopClCmd");
	register_clcmd("say_team /shop", "ShopClCmd");
	
	register_clcmd("say shop", "ShopClCmd");
	register_clcmd("say_team shop", "ShopClCmd");
	
	register_clcmd("say /drshop", "ShopClCmd");
	register_clcmd("say_team /drshop", "ShopClCmd");
	
	register_clcmd("say drshop", "ShopClCmd");
	register_clcmd("say_team drshop", "ShopClCmd");
	
	set_task ( 15.0, "showmessage", _, _, _, "b" );
}
public showmessage ( )
{
    /*client_print ( 0, print_chat, "Apasati tasta c sau scrie /drshop pentru a folosii beneficiile deathrun shop [Dr.nume.Ro]" );*/
}
public drxp_spawn(id)
{
	if((drxp_playerlevel[id] < 10) && (drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]]))
	{
		client_print(id,print_chat,"[%s] Felicitari , ai trecut la urmatorul level!", PLUGIN_NAME);
		while(drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]])
		{
  			drxp_playerlevel[id] += 1;
		}
	}

	if(drxp_playerlevel[id] > 0)
		set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id]);
}

public drxp_death() 
{
 	new iVictim = read_data(2);
 	new weapon, hitplace, attacker = get_user_attacker(iVictim,weapon,hitplace);

	new victimname[32], wvar[32];
   	get_user_name(iVictim,victimname,31);
   	read_data(4, wvar, 31);

   	if(equal(wvar, "world", 5))
   		return;

	if(attacker < 1 || attacker > 32)
		return;

 	drxp_playerxp[attacker] += get_pcvar_num(drxp_kill);
	client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);

 	if(hitplace == HIT_HEAD)
	{
 		drxp_playerxp[attacker] += get_pcvar_num(drxp_hs);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis pe %s cu headshot!", PLUGIN_NAME, get_pcvar_num(drxp_hs), victimname);
	}

 	if(weapon == CSW_KNIFE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_knife);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis %s cu cutitul!", PLUGIN_NAME, get_pcvar_num(drxp_knife), victimname);
	}
 	else if(weapon == CSW_HEGRENADE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade);
		client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s cu Grenada!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);
	}

	drxp_hudinfo(attacker);
	
	Speed[iVictim] = false;
}

public drxp_hudinfo(id)
{
	set_hudmessage(0, 32, 245, 0.01, 0.2, 0, 3.0, 3.0);
	if(drxp_playerlevel[id] < 10)
 		show_hudmessage(id, "Level: %i^nXP: %i / %i", drxp_playerlevel[id], drxp_playerxp[id], LEVELS[drxp_playerlevel[id] + 1]);
	else
 		show_hudmessage(id, "Level: %i^nMax Level Maxim atins!", drxp_playerlevel[id]);

	set_task(2.0, "drxp_hudinfo", id);
}

public client_putinserver(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		LoadData(id);

	set_task(10.0, "drxp_hudinfo", id);
	
	client_cmd(id, "bind c ^"say shop");
}

public client_disconnect(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		SaveData(id);

 	drxp_playerxp[id] = 0;
 	drxp_playerlevel[id] = 0;
}

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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_set(g_drxp_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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_get(g_drxp_vault,vaultkey,vaultdata,255);

 	replace_all(vaultdata, 255, "#", " ");

 	new playerxp[32], playerlevel[32];

 	parse(vaultdata, playerxp, 31, playerlevel, 31);

 	drxp_playerxp[id] = str_to_num(playerxp);
 	drxp_playerlevel[id] = str_to_num(playerlevel);

 	return PLUGIN_CONTINUE;
}  

public cmd_give_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
       		 return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8)

    	if(!player)  
        	return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: give %s xp to %s", admin_name, amount, player_name)

    	drxp_playerxp[player] += expnum
    	SaveData(id)

    	return PLUGIN_CONTINUE
} 
  
public cmd_take_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
    		return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8) 

    	if(!player)  
       		 return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: take %s xp from %s", admin_name, amount, player_name)

    	drxp_playerxp[player] -= expnum
    	SaveData(id) 

    	return PLUGIN_CONTINUE
}
public ShopClCmd(id)
{
	new menu = menu_create("Magazin \y[Dr.Nume.Ro]", "Handler");
	
	menu_additem(menu, "\yHE + FB \r (\y40XP\r)", "1", 0);
	menu_additem(menu, "\y+155 HP \r (\y50XP\r)", "2", 0);
	menu_additem(menu, "\y+200 AP \r (\y30XP\r)", "3", 0);
	menu_additem(menu, "\ySpeed \r (\y50XP\r)", "4", 0);
	menu_additem(menu, "\yDeagle \r (\y40XP\r)", "5", 0);
	menu_additem(menu, "\yAK47 + M4A1 \r (\y90XP\r)", "6", 0);
	menu_additem(menu, "\yAWP \r (\y60XP\r)", "7", 0);
	menu_additem(menu, "\yGodMode 7 Secunde \r (\y160XP\r)", "8", 0);
	
	menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
	menu_setprop(menu, MPROP_EXITNAME, "Iesire");
	menu_display(id, menu, 0);
	
	return PLUGIN_HANDLED;
}
public Handler(id, menu, item)
{
	if(item == MENU_EXIT)
		return PLUGIN_HANDLED;
		
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,sizeof(data), szName,sizeof(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(drxp_playerxp[id] > 40 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			
			drxp_playerxp[id] -= 40;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat HE + FB !");
		}
		case 2:
		{
			if(drxp_playerxp[id] > 50 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			set_user_health(id, get_user_health(id) + 155);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +155 HP !");
		}
		case 3:
		{
			if(drxp_playerxp[id] > 30 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			set_user_armor(id, get_user_armor(id) + 200);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +200 AP !");
		}
		case 4:
		{
			if(drxp_playerxp[id] > 50 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			
			Speed[id] = true;
			CurrentWeapon(id);
			
			drxp_playerxp[id] -= 50;
			
			ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat Speed !");
		}
		case 5:
		{
			if(drxp_playerxp[id] > 40 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id,CSW_DEAGLE))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja Deagle !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_deagle");
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			
			drxp_playerxp[id] -= 40;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat Deagle !");
		}
		case 6:
		{
			if(drxp_playerxp[id] > 90 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AK47) || user_has_weapon(id, CSW_M4A1))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja aceste arme !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_m4a1");
			give_item(id, "weapon_ak47");
			
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			cs_set_user_bpammo(id, CSW_AK47, 90);
			
			drxp_playerxp[id] -= 90;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat M4A1 + AK47 !");
		}
		case 7:
		{
			if(drxp_playerxp[id] > 60 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AWP))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja AWP !");
				return PLUGIN_HANDLED;
			}
			
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 30);
			
			drxp_playerxp[id] -= 60;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat AWP !");
		}
		case 8:
		{
			if(drxp_playerxp[id] > 160 && drxp_playerxp[id] > 0)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(get_user_godmode(id) == 1)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja GodMode !");
				return PLUGIN_HANDLED;
			}
			
			set_user_godmode(id, 1);
			set_task(7.0, "RemoveGodMode", id);
			
			drxp_playerxp[id] -= 160;
			
			ColorChat(id, "^x04%s^x01 Ai cumparat GodMode !");
		}
	}
	
	if(drxp_playerlevel[id] <= 15 && drxp_playerxp[id] < LEVELS[drxp_playerlevel[id]])
	{
		while(drxp_playerxp[id] < LEVELS[drxp_playerlevel[id]])
			drxp_playerlevel[id] -= 1;
	}
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public CurrentWeapon(id)
{
	if(Speed[id] && is_user_alive(id))
		set_user_maxspeed(id, get_user_maxspeed(id) + 150.0);
		
}
public RemoveGodMode(id)
{
	set_user_godmode(id, 0);
	ColorChat(id, "^x04[DR SHOP]^x01 Nu mai ai God Mode !");
	return PLUGIN_HANDLED;
}
stock ColorChat(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "^x04", "^4"); // Green Color
	replace_all(msg, 190, "^x01", "^1"); // Default Color
	replace_all(msg, 190, "^x03", "^3"); // Team Color
	replace_all(msg, 190, "^0", "^0"); // Team2 Color
	
	if (id) players[0] = id; else get_players(players, count, "ch");
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

07 Mar 2014, 17:05

Acum orice as cumpara si oricat xp as avea , imi spune ca nu ai suficienti XP :)
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

07 Mar 2014, 17:20

ang wrote:Acum orice as cumpara si oricat xp as avea , imi spune ca nu ai suficienti XP :)
Ups...

Acum merge sigur:
| Afiseaza codul
/*==================================================

Plugin: Deathrun XP
Version: 2.0
Author: KronoS 

*****************
*** Changelog ***
*****************

#Version 2.0 | 03 October 2011

-Ham_Spawn instead of ResetHud
-removed the respawn system because it wasn't working (it will be added in the next version)
-minor changes in the code
-fixed the "index out of bounds" error

***************
*** Credits ***
***************

XunTric - xp based tutorial
Il3gal - for his idea
Vechta - admin commands

==================================================*/

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

new const PLUGIN_NAME[] = "Deathrun XP";

new const drxp_version[] = "2.0";

new const LEVELS[15] = {
 	50, 
 	100, 
 	150, 
 	200,
 	250,
 	300,
	350,
	400,
	450,
	500,
        550,
        600,
        650,
        700,
        900
}

new drxp_playerxp[33], drxp_playerlevel[33];
new bool:Speed[33];
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, drxp_version, "KronoS");

	RegisterHam(Ham_Spawn, "player", "drxp_spawn", 1);
 	register_event("DeathMsg", "drxp_death", "a");
	register_event("CurWeapon", "CurrentWeapon", "be", "1=1");

 	drxp_savexp = register_cvar("drxp_savexp","1");
 	drxp_kill = register_cvar("drxp_kill", "5");
 	drxp_knife = register_cvar("drxp_knife","5");
	drxp_grenade = register_cvar("drxp_grenade","15");
 	drxp_hs = register_cvar("drxp_hs","10");

 	g_drxp_vault = nvault_open("deathrun_xp");

    	register_concmd("amx_takexp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");  
    	register_concmd("amx_givexp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>"); 
	
	register_clcmd("say /shop", "ShopClCmd");
	register_clcmd("say_team /shop", "ShopClCmd");
	
	register_clcmd("say shop", "ShopClCmd");
	register_clcmd("say_team shop", "ShopClCmd");
	
	register_clcmd("say /drshop", "ShopClCmd");
	register_clcmd("say_team /drshop", "ShopClCmd");
	
	register_clcmd("say drshop", "ShopClCmd");
	register_clcmd("say_team drshop", "ShopClCmd");
	
	set_task ( 15.0, "showmessage", _, _, _, "b" );
}
public showmessage ( )
{
    /*client_print ( 0, print_chat, "Apasati tasta c sau scrie /drshop pentru a folosii beneficiile deathrun shop [Dr.nume.Ro]" );*/
}
public drxp_spawn(id)
{
	if((drxp_playerlevel[id] < 10) && (drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]]))
	{
		client_print(id,print_chat,"[%s] Felicitari , ai trecut la urmatorul level!", PLUGIN_NAME);
		while(drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]])
		{
  			drxp_playerlevel[id] += 1;
		}
	}

	if(drxp_playerlevel[id] > 0)
		set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id]);
}

public drxp_death() 
{
 	new iVictim = read_data(2);
 	new weapon, hitplace, attacker = get_user_attacker(iVictim,weapon,hitplace);

	new victimname[32], wvar[32];
   	get_user_name(iVictim,victimname,31);
   	read_data(4, wvar, 31);

   	if(equal(wvar, "world", 5))
   		return;

	if(attacker < 1 || attacker > 32)
		return;

 	drxp_playerxp[attacker] += get_pcvar_num(drxp_kill);
	client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);

 	if(hitplace == HIT_HEAD)
	{
 		drxp_playerxp[attacker] += get_pcvar_num(drxp_hs);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis pe %s cu headshot!", PLUGIN_NAME, get_pcvar_num(drxp_hs), victimname);
	}

 	if(weapon == CSW_KNIFE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_knife);
		client_print(attacker,print_chat,"[%s] Ai pirmi %i XP pentru ca l-ai ucis %s cu cutitul!", PLUGIN_NAME, get_pcvar_num(drxp_knife), victimname);
	}
 	else if(weapon == CSW_HEGRENADE)
	{
  		drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade);
		client_print(attacker,print_chat,"[%s] Ai primit %i XP pentru ca l-ai ucis pe %s cu Grenada!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);
	}

	drxp_hudinfo(attacker);
	
	Speed[iVictim] = false;
}

public drxp_hudinfo(id)
{
	set_hudmessage(0, 32, 245, 0.01, 0.2, 0, 3.0, 3.0);
	if(drxp_playerlevel[id] < 10)
 		show_hudmessage(id, "Level: %i^nXP: %i / %i", drxp_playerlevel[id], drxp_playerxp[id], LEVELS[drxp_playerlevel[id] + 1]);
	else
 		show_hudmessage(id, "Level: %i^nMax Level Maxim atins!", drxp_playerlevel[id]);

	set_task(2.0, "drxp_hudinfo", id);
}

public client_putinserver(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		LoadData(id);

	set_task(10.0, "drxp_hudinfo", id);
	
	client_cmd(id, "bind c ^"say shop");
}

public client_disconnect(id)
{
 	if(get_pcvar_num(drxp_savexp) == 1)
  		SaveData(id);

 	drxp_playerxp[id] = 0;
 	drxp_playerlevel[id] = 0;
}

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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_set(g_drxp_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#",drxp_playerxp[id],drxp_playerlevel[id]);
 	nvault_get(g_drxp_vault,vaultkey,vaultdata,255);

 	replace_all(vaultdata, 255, "#", " ");

 	new playerxp[32], playerlevel[32];

 	parse(vaultdata, playerxp, 31, playerlevel, 31);

 	drxp_playerxp[id] = str_to_num(playerxp);
 	drxp_playerlevel[id] = str_to_num(playerlevel);

 	return PLUGIN_CONTINUE;
}  

public cmd_give_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
       		 return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8)

    	if(!player)  
        	return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: give %s xp to %s", admin_name, amount, player_name)

    	drxp_playerxp[player] += expnum
    	SaveData(id)

    	return PLUGIN_CONTINUE
} 
  
public cmd_take_exp(id, level, cid) 
{ 
    	if(!cmd_access(id, level, cid, 3)) 
    		return PLUGIN_HANDLED

    	new target[32], amount[21], reason[21]

    	read_argv(1, target, 31)
    	read_argv(2, amount, 20)
    	read_argv(3, reason, 20)

    	new player = cmd_target(id, target, 8) 

    	if(!player)  
       		 return PLUGIN_HANDLED

    	new admin_name[32], player_name[32]
    
    	get_user_name(id, admin_name, 31)
    	get_user_name(player, player_name, 31)

    	new expnum = str_to_num(amount)
	client_print(0, print_chat, "ADMIN %s: take %s xp from %s", admin_name, amount, player_name)

    	drxp_playerxp[player] -= expnum
    	SaveData(id) 

    	return PLUGIN_CONTINUE
}
public ShopClCmd(id)
{
	new menu = menu_create("Magazin \y[Dr.Nume.Ro]", "Handler");
	
	menu_additem(menu, "\yHE + FB \r (\y40XP\r)", "1", 0);
	menu_additem(menu, "\y+155 HP \r (\y50XP\r)", "2", 0);
	menu_additem(menu, "\y+200 AP \r (\y30XP\r)", "3", 0);
	menu_additem(menu, "\ySpeed \r (\y50XP\r)", "4", 0);
	menu_additem(menu, "\yDeagle \r (\y40XP\r)", "5", 0);
	menu_additem(menu, "\yAK47 + M4A1 \r (\y90XP\r)", "6", 0);
	menu_additem(menu, "\yAWP \r (\y60XP\r)", "7", 0);
	menu_additem(menu, "\yGodMode 7 Secunde \r (\y160XP\r)", "8", 0);
	
	menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
	menu_setprop(menu, MPROP_EXITNAME, "Iesire");
	menu_display(id, menu, 0);
	
	return PLUGIN_HANDLED;
}
public Handler(id, menu, item)
{
	if(item == MENU_EXIT)
		return PLUGIN_HANDLED;
		
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,sizeof(data), szName,sizeof(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1:
		{
			if(drxp_playerxp[id] > 40)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				give_item(id, "weapon_hegrenade");
				give_item(id, "weapon_flashbang");
				
				drxp_playerxp[id] -= 40;
				
				ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat HE + FB !");
			}
		}
		case 2:
		{
			if(drxp_playerxp[id] > 50)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				set_user_health(id, get_user_health(id) + 155);
				
				drxp_playerxp[id] -= 50;
				
				ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +155 HP !");
			}
		}
		case 3:
		{
			if(drxp_playerxp[id] > 30)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				set_user_armor(id, get_user_armor(id) + 200);
			
				drxp_playerxp[id] -= 50;
			
				ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat +200 AP !");
			}
		}
		case 4:
		{
			if(drxp_playerxp[id] > 50)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				Speed[id] = true;
				CurrentWeapon(id);
				
				drxp_playerxp[id] -= 50;
				
				ColorChat(id, "^x04[DR SHOP]^x01 Ai cumparat Speed !");
			}
		}
		case 5:
		{
			if(drxp_playerxp[id] > 40)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id,CSW_DEAGLE))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja Deagle !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				give_item(id, "weapon_deagle");
				cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			
				drxp_playerxp[id] -= 40;
			
				ColorChat(id, "^x04%s^x01 Ai cumparat Deagle !");
			}
		}
		case 6:
		{
			if(drxp_playerxp[id] > 90)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AK47) || user_has_weapon(id, CSW_M4A1))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja aceste arme !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				give_item(id, "weapon_m4a1");
				give_item(id, "weapon_ak47");
				
				cs_set_user_bpammo(id, CSW_M4A1, 90);
				cs_set_user_bpammo(id, CSW_AK47, 90);
				
				drxp_playerxp[id] -= 90;
				
				ColorChat(id, "^x04%s^x01 Ai cumparat M4A1 + AK47 !");
			}
		}
		case 7:
		{
			if(drxp_playerxp[id] > 60)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(user_has_weapon(id, CSW_AWP))
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja AWP !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				give_item(id, "weapon_awp");
				cs_set_user_bpammo(id, CSW_AWP, 30);
				
				drxp_playerxp[id] -= 60;
				
				ColorChat(id, "^x04%s^x01 Ai cumparat AWP !");
			}
		}
		case 8:
		{
			if(drxp_playerxp[id] > 160)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Nu ai suficient xp !");
				return PLUGIN_HANDLED;
			}
			if(get_user_godmode(id) == 1)
			{
				ColorChat(id, "^x04[DR SHOP]^x01 Ai deja GodMode !");
				return PLUGIN_HANDLED;
			}
			else if(drxp_playerxp[id] > 0)
			{
				set_user_godmode(id, 1);
				set_task(7.0, "RemoveGodMode", id);
				
				drxp_playerxp[id] -= 160;
				
				ColorChat(id, "^x04%s^x01 Ai cumparat GodMode !");
			}
		}
	}
	
	if(drxp_playerlevel[id] <= 15 && drxp_playerxp[id] < LEVELS[drxp_playerlevel[id]])
	{
		while(drxp_playerxp[id] < LEVELS[drxp_playerlevel[id]])
			drxp_playerlevel[id] -= 1;
	}
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public CurrentWeapon(id)
{
	if(Speed[id] && is_user_alive(id))
		set_user_maxspeed(id, get_user_maxspeed(id) + 150.0);
		
}
public RemoveGodMode(id)
{
	set_user_godmode(id, 0);
	ColorChat(id, "^x04[DR SHOP]^x01 Nu mai ai God Mode !");
	return PLUGIN_HANDLED;
}
stock ColorChat(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "^x04", "^4"); // Green Color
	replace_all(msg, 190, "^x01", "^1"); // Default Color
	replace_all(msg, 190, "^x03", "^3"); // Team Color
	replace_all(msg, 190, "^0", "^0"); // Team2 Color
	
	if (id) players[0] = id; else get_players(players, count, "ch");
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}
ang
Membru, skill +1
Membru, skill +1
Posts: 169
Joined: 14 Jan 2012, 18:39
Detinator Steam: Da
Detinator server CS: Da
Location: Africa
Has thanked: 37 times

07 Mar 2014, 19:21

La fel imi face .. nu inteleg de ce :|
<a href="https://www.gametracker.com/server_info ... 3.4:27015/" target="_blank"><img src="http://cache.gametracker.com/server_inf ... 2E3226.png" border="0" width="350" height="20" alt=""/></a>
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 43 guests