Page 1 of 1

Cerere modificare shop

Posted: 29 Feb 2020, 22:00
by GoGuT112
Plugin Cerut: Modificare plugin /shop
Descriere (adica ce face el mai exact): Doresc si eu sa imi adaugati in acest meniu
| Afiseaza codul
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util> 

#pragma tabsize 0

native get_user_points( id )
native set_user_points( id, points )

new bool: Speed[17];
new const szTg[] = "Shop";

public plugin_init( ) {

	register_plugin( "S", "shop", "Andy" );

	RegisterHam( Ham_Spawn, "player", "Sp", true );
	register_event("CurWeapon" , "CWeapon" , "be" , "1=1" );

	register_clcmd( "say shop", "TS", -1 );
	register_clcmd( "say /shop", "TS", -1 );
	register_clcmd( "say_team shop", "TS", -1 );
	register_clcmd( "say_team /shop", "TS", -1 );
}
public client_putinserver( id ) {
Speed[id] = false;
}

public TS( id ) {

	if( is_user_connected( id ) && is_user_alive( id ) ) {
		switch( get_user_team( id ) )
			{
				case 1,2: SM( id );	
			}
	}
	else
	client_printcolor( id, "^4[%s]^1Trebuie sa fi in viata pentru a deschide ^3Shopul ^1!", szTg );
}



public SM( id ) {

	new szMenu[ 10 char ];
	format( szMenu, charsmax( szMenu ), "\r[%s] \wMenu",szTg);
	new menu = menu_create ( szMenu , "Menu" );

	menu_additem( menu, "\w10 HP \r[5 Puncte]", "1", 0);
	menu_additem( menu, "\w10 AP \r[5 Puncte]", "2", 0);
	menu_additem( menu, "\wGravitatie \y400 \r[2 Puncte]", "3", 0);
	menu_additem( menu, "\wSpeed \y450 \r[5 Puncte]", "4", 0);
	menu_additem( menu, "\wSchimb \y1000$ \wcu \y1 Punct", "5", 0);

	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	return 1;
}


public Menu( id, menu, item ) {

	if( item == MENU_EXIT )
		{
			return 1;
		}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );	
	switch(key)
	{
		case 1:
		{

			new points = get_user_points( id ) - 10;
			if( points < 0 )
			{
				client_printcolor( id, "^4[%s]^1Nu ai destule puncte !",szTg );
				return 1;
				
			}
			else
			{
			new iHealth = get_user_health(id); 
			if(iHealth >= 120) { 
			client_printcolor( id, "^4[%s]^1 Ai atins limita maxima de ^3 120 HP", szTg );
			}
			else
			{
			fm_set_user_health(id, iHealth + 10); 
			set_user_points( id, points );
			return 1;
		}
		}
		}
		case 2:
		{
			new points = get_user_points( id ) - 10;
			if( points < 0 )
			{
				client_printcolor( id, "^4[%s]^1Nu ai destule puncte !",szTg );
				return 1;
				
			}
			else
			{
			new iArmor = get_user_armor(id); 
			if(iArmor >= 120) {
			client_printcolor( id, "^4[%s]^1 Ai atins limita maxima de ^3 120 AP", szTg );
			}
			else
			{
			fm_set_user_armor(id, iArmor + 10);
			client_printcolor( id, "^4[%s]^1 Ai cumparat ^3 10 AP", szTg );
			set_user_points( id, points );
			return 1;
		}
		}
		}
		case 3:
		{
			new points = get_user_points( id ) - 2;
			if( points < 0 )
			{
				client_printcolor( id, "^4[%s]^1Nu ai destule puncte !",szTg );
				return 1;
				
			}
			set_user_gravity(id, 0.5);
			client_printcolor( id, "^4[%s]^1 Ai cumparat ^3 400 Gravitatie", szTg );
			set_user_points( id, points );
			return 1;

		}
		case 4:
		{
			new points = get_user_points( id ) - 5;
			if( points < 0 )
			{
				client_printcolor( id, "^4[%s]^1Nu ai destule puncte !",szTg );
				return 1;
				
			}
			Speed[id] = true;
			client_printcolor( id, "^4[%s]^1 Ai cumparat ^3 450 Speed", szTg );
			set_user_points( id, points );
			return 1;
		}
		case 5:
		{

			Schimb(id);
			
			
		}
	}
	return 1;
}

public Schimb ( id )
{
	new money = cs_get_user_money( id );
	new points = get_user_points( id );
	new szSchimb[ 10 char ];
	format( szSchimb, charsmax( szSchimb ), "\r[%s] \wSchimb Bani / Points",szTg);
	new SchimbMenu = menu_create ( szSchimb , "SchimbHandled" );

	if( points < 1 )
	{
		menu_additem( SchimbMenu, "\w1 Puncte \y- \r1000$", "1", 0);
	}
	else
	{
		menu_additem( SchimbMenu, "\w1 Puncte \y- \d No Money", "1", 0);
	}
	if( money < 1000 )
	{
		menu_additem( SchimbMenu, "\w1000$ \y- \r1 Puncte", "2", 0);
	}
	else
	{
		menu_additem( SchimbMenu, "\w1000$ \y- \d No Points", "2", 0);
	}

	menu_setprop ( SchimbMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, SchimbMenu, 0 );
	return 1;
	
	
}

public SchimbHandled( id, SchimbMenu, item ) {

	if( item == MENU_EXIT )
		{
			return 1;
		}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( SchimbMenu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );	
	switch(key)
	{
		case 1:
		{

			new money = cs_get_user_money( id );
			
				new points = get_user_points( id );
				if( money < 1000 )
				{
					client_printcolor( id, "^4[%s]^1Nu ai destui sau bani pentru a face schimbul !",szTg );
					return 1;
				
				}
				client_printcolor( id, "^4[%s]^1Ai schimbat ^3 1 Puncte ^1si ai primit ^3 1000$ ^1!", szTg);
				cs_set_user_money( id, money - 1000 );
				set_user_points( id, points + 1 );
				return 1;
		}
		case 2:
		{
			new money = cs_get_user_money( id );
			
				new points = get_user_points( id );
				if( points < 1 )
				{
					client_printcolor( id, "^4[%s]^1Nu ai destule sau points pentru a face schimbul !",szTg );
					return 1;
				
				}
				client_printcolor( id, "^4[%s]^1Ai schimbat ^3 1000$ ^1si ai primit ^3 1 Points ^1!", szTg);
				cs_set_user_money( id, money + 1000 );
				set_user_points( id, points - 1 );
				return 1;
		}
	}
	return 1;
}


public CWeapon( id ) {

	if( Speed[ id ] ) {
		if( get_user_weapon(id)) {
			set_user_maxspeed(id, 450.0);
		}
	}
}

public Sp( id ) {
Speed[id] = false;
set_user_gravity(id, 1.0);
}

stock client_printcolor(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!g", "^x04"); // Green Color
    replace_all(msg, 190, "!n", "^x01"); // Default Color
    replace_all(msg, 190, "!t", "^x03"); // Team Color
    
    if(id)
        players[0] = id;
    else
        get_players(players, count, "ch");
    
    for (new i = 0; i < count; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
        write_byte(players);
        write_string(msg);
        message_end();
    }
}
urmatoarele :
CUMPARA VIP 7 ZILE
CUMPARA VIP O LUNA
CUMPARA VIP PERMANENT
SI playerul care cumpara sa primeasca flagul "t" pe perioda care a cumparat cu un numar de puncte setat de mine .
Si in chat sa ii scrie : Felicitari ! Ai cumparat VIP 7 Zile , Felicitari ! Ai cumparat VIP O LUNA , Felicitari ! Ai cumparat VIP PERMANENT SI VIPUL sa tina pana pe data care a cumparat el .
VIPUL Sa se salveze pe nick intrun fisier .ini numit vipshop.ini si cand cumpara sa il intrebe daca vrea sa isi seteze o parola pentru vip .
Va las aici si sistemul de puncte poate este nevoie :
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < hamsandwich >
#include < CC_ColorChat >
#include < csx >
#include < cstrike >

#pragma semicolon 1

#define ADMIN_ACCESS ADMIN_IMMUNITY
#define is_user_player(%1) ( 1 <= %1 <= g_MaxPlayers )

#define PLUGIN_NAME 	"Engine Sistem Puncte"
#define PLUGIN_VERSION 	"1.1"
#define PLUGIN_AUTHOR 	"Yonutz"

new const g_szTag[ ] = "[RUN]";

// Make files?
new const szWriteCvarsPoints[  ] = "addons/amxmodx/configs/points/points.cfg";
new const szLocationPoints[  ] = "addons/amxmodx/configs/points";

const PEV_SPEC_TARGET = pev_iuser2;

new g_iUserPoints[ 33 ];
new File[ 128 ];

new points_gamename;
new SyncHudMessage, g_MaxPlayers;

enum _:iCvars {

	EnableBombEvents,
	ShowType,
	CostOnePoint,
	PointsPerHS,
	PointsBombPlanted,
	PointsBombExploded,
	PointsBombDefused,
	AddPointsNewRound,
	EnableRespawn,
	PointsForRespawn,
	PointsForRespawnChance
}
;
new g_iCvar[ iCvars ];

public plugin_init( ) {

	register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );
	
	register_event( "DeathMsg", "event_DeathMsg", "a" );

	register_forward( FM_GetGameDescription, "GameDesc" ); 
	register_forward( FM_PlayerPreThink, "fwd_PlayerPreThink" );

	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawned_Post", 1 );
	RegisterHam( Ham_Killed, "player", "Ham_PlayerKilled", 1 );
	
	register_clcmd( "say /cp", "ClCmdSayBuyPoint" );
	register_clcmd( "say_team /cp", "ClCmdSayBuyPoint" );

	register_clcmd( "say /top", "ClCmdSayShowAllPoints" );
	register_clcmd( "say_team /top", "ClCmdSayShowAllPoints" );

	register_clcmd( "say /puncte", "ClCmdSayPoints" );
	register_clcmd( "say_team /puncte", "ClCmdSayPoints" );

	register_concmd( "amx_acorda_puncte" ,"ClCmdGivePoints", ADMIN_ACCESS, "< nume / @ALL / @T / @CT > < Puncte >" );
	register_concmd( "amx_retrage_puncte", "ClCmdTakePoints", ADMIN_ACCESS, "< nume > < Puncte >" );
	register_concmd( "amx_reset_puncte", "ClCmdResetPoints", ADMIN_ACCESS, "< nume / @ALL >" );
	
	g_iCvar[ ShowType ] = register_cvar( "points_show_info", "1" );
	g_iCvar[ EnableBombEvents ] = register_cvar( "points_bombevents_rewards", "1" );
	g_iCvar[ CostOnePoint ] = register_cvar( "points_costonepoint", "4000" );
	g_iCvar[ PointsPerHS ] = register_cvar( "points_per_headshot", "2" );
	g_iCvar[ PointsBombPlanted ] = register_cvar( "points_bomb_planted", "4" );
	g_iCvar[ PointsBombExploded ] = register_cvar( "points_bomb_exploded", "1" );
	g_iCvar[ PointsBombDefused ] = register_cvar( "points_bomb_defused", "5" );
	g_iCvar[ PointsForRespawn ] = register_cvar( "points_for_respawn", "10" );
	g_iCvar[ PointsForRespawnChance ] = register_cvar( "points_respawn_chance", "70" );
	g_iCvar[ EnableRespawn ] = register_cvar( "points_enable_respawn", "1" );
	points_gamename = register_cvar( "points_gamename", "RUN INDUNGI SISTEMS" );

	SyncHudMessage = CreateHudSyncObj(  );
	g_MaxPlayers = global_get( glb_maxClients );

	new DataDir[ 64 ];
	get_datadir( DataDir, 63 );
	format( File, 127, "%s/AdvancedPointsSystem.dat", DataDir );
}

public plugin_precache(  ) {

	server_cmd( "exec %s", szWriteCvarsPoints );
       
	if( !dir_exists( szLocationPoints ) )
		mkdir( szLocationPoints );

	if( !file_exists( szWriteCvarsPoints ) ) {

		write_file( szWriteCvarsPoints, "// In acest fisier se afla cvar-urile legate despre puncte:");
		write_file( szWriteCvarsPoints, " ");
		write_file( szWriteCvarsPoints, "points_show_info ^"1^" // 0: Afiseaza datele in HUD sub radar | 1: Afiseaza datele deasupra vietii" );
		write_file( szWriteCvarsPoints, "points_bombevents_rewards ^"1^" // 0: Dezactivat | 1: Activat -> Puncte obtinute pe plantarea/dezamorsarea/explodearea bombei" );
		write_file( szWriteCvarsPoints, "points_costonepoint ^"4000^" // Cat sa coste un punct atunci cand il cumperi prin comanda /buypoint" );
		write_file( szWriteCvarsPoints, "points_per_headshot ^"2^" // Cate puncte sa primesti pe HeadShot !" );
		write_file( szWriteCvarsPoints, "points_bomb_planted ^"1^" // Cate puncte sa primesti pe plantarea bombei" );
		write_file( szWriteCvarsPoints, "points_bomb_exploded ^"2^" // Cate puncte sa primesti pe explodarea bombei" );
		write_file( szWriteCvarsPoints, "points_bomb_defused ^"1^" // Cate puncte sa primesti pe dezamorsarea bombei" );
		write_file( szWriteCvarsPoints, "points_enable_respawn ^"1^" // Activeaza / Dezactiveaza respawn-ul cand victima moare doar daca are X PUNCTE" );
		write_file( szWriteCvarsPoints, "points_for_respawn ^"1000^" // Cate puncte sa aiba victima ca sa poata reinvia atunci cand este omorata" );
		write_file( szWriteCvarsPoints, "points_respawn_chance ^"40^" // Cate sanse sa aiba victima ca sa poata reinvia" );
		write_file( szWriteCvarsPoints, "points_gamename ^"Adv. Points System v1.1^" // Schimbi numele default( Counter-Strike ) cu altul" );
		//write_file( szWriteCvarsPoints, "cvar ^"1 / 0^" // De cate sanse are nevoie victima ca sa invie atunci cand are X PUNCTE" );
	}
}

public plugin_natives( ) {

	register_native( "get_user_points", "native_get_user_points", 1 );
	register_native( "set_user_points", "native_set_user_points", 1 );
}

public native_get_user_points( id ) {

	return g_iUserPoints[ id ];
}

public native_set_user_points( id, points ) {

	g_iUserPoints[ id ] = points;
}

public client_putinserver( id ) {

	LoadUserPoints( id );
}

public client_disconnect( id ) {

	SaveUserPoints( id );
}

public GameDesc( ) {

	static szGameName[ 32 ];

	get_pcvar_string( points_gamename, szGameName, 31 );
	forward_return( FMV_STRING, szGameName );

	return FMRES_SUPERCEDE; 
}

public fwdPlayerPreThink( id ) {
	
	if( is_user_alive( id ) ) {
		
		new target, body; 
		get_user_aiming( id, target, body, 9999 );
		
		new CsTeams:team = cs_get_user_team( id );
		
		if( is_user_alive( target ) ) {

			if( is_user_player( target ) ) {
			
				new CsTeams:targetTeam = cs_get_user_team( target );
				
				new szName[ 32 ];
				get_user_name( target,  szName, sizeof( szName ) -1 );
							
				new sMessage[ 64 ];
				if( targetTeam == team ) {

					formatex( sMessage, sizeof( sMessage ) -1, "%s: %s^nHealth: %i | Puncte: %i", is_user_vip( target ) ? "VIP" : "Friend", szName, get_user_health( target ), g_iUserPoints[ target ] );
				}

				else if( targetTeam != team && team != CS_TEAM_CT ) {

					formatex( sMessage, sizeof( sMessage ) -1, "%s: %s^nHealth: %i | Puncte: %i", is_user_vip( target ) ? "VIP" : "Enemy", szName, get_user_health( target ), g_iUserPoints[ target ] );
				}
					
				if( targetTeam == CS_TEAM_CT ) {

					set_hudmessage( 0, 255, 0, -1.0, 0.6, 0, 0.0, 0.1, 0.0, 0.0, -1 );
				}

				else if( targetTeam == CS_TEAM_T ) {

					set_hudmessage( 127, 0, 0, -1.0, 0.6, 0, 0.0, 0.1, 0.0, 0.0, -1 );
				}	
				
				show_hudmessage( id, "%s",  sMessage );
			}
		}
	}
	
	return FMRES_IGNORED;
}

public event_DeathMsg( ) {

	new iKiller = read_data( 1 );
	new iVictim = read_data( 2 );
	new iHeadshot = read_data( 3 );
	
	if( !is_user_connected( iKiller ) || !is_user_connected( iVictim ) ) {

		return;
	}
	
	if( iKiller == iVictim ) {

		return;
	}
	
	if( iHeadshot ) {

		g_iUserPoints[ iKiller ] += get_pcvar_num( g_iCvar[ PointsPerHS ] );
		set_hudmessage( random( 255 ), random( 255 ), random( 255 ), 0.6, 0.7, 1, 6.0, 7.0 );
		show_hudmessage( iKiller, "+%i points", get_pcvar_num( g_iCvar[ PointsPerHS ] ) );
	}

	else {

		g_iUserPoints[ iKiller ]++;
		set_hudmessage( random( 255 ), random( 255 ), random( 255 ), 0.6, 0.7, 0, 6.0, 7.0 );
		show_hudmessage( iKiller, "+1 point" );
	}
}

public Ham_PlayerSpawned_Post( id ) {

	if( is_user_connected( id ) && is_user_alive( id ) ) {

		set_task( 1.0, "ShowHud", id, _, _, "b" );
	}
}

public Ham_PlayerKilled( iVictim, iAttacker, iShouldgib ) {

	if( get_pcvar_num( g_iCvar[ EnableRespawn ] ) == 0 || !is_user_connected( iVictim ) )
		return PLUGIN_CONTINUE;

	new iPoints = get_pcvar_num( g_iCvar[ PointsForRespawn ] );
	new iChance = random_num( 1, 100 );
	new iAccepted = get_pcvar_num( g_iCvar[ PointsForRespawnChance ] );

	if( g_iUserPoints[ iVictim ] == iPoints ) {

		if( iChance <= iAccepted ) {

			ExecuteHamB( Ham_CS_RoundRespawn, iVictim );
			ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Tocmai ai fost inviat pentru ca ai avut^x03 %i^x01 sanse !", g_szTag, iChance );
		}

		if( iChance >= iAccepted ) {

			ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Poate runda viitoare vei avea^x03 %i^x01 sanse pentru a putea reinvia !", g_szTag, iChance );
		}
	}

	return PLUGIN_CONTINUE;
}

public ShowHud( id ) {

	switch( get_pcvar_num( g_iCvar[ ShowType ] ) ) {

		case 0: {
	
			if( is_user_connected( id ) && is_user_alive( id ) && ( get_user_team( id ) == 1 || get_user_team( id ) == 2 ) ) {

				set_hudmessage( random( 250 ), random( 250 ), random( 250 ), 0.01, 0.23, 0, 0.5, 15.0, 2.0, 2.0, -1 );
				ShowSyncHudMsg( id, SyncHudMessage, "HP: %d^nPoints: %d", get_user_health( id ), g_iUserPoints[ id ] );
			}

			else {

				new idSpec;
				new iPlayerName[ 32 ];

				idSpec = pev( id, PEV_SPEC_TARGET );
				get_user_name( idSpec, iPlayerName, 31 );

				set_hudmessage( random( 250 ), random( 250 ), random( 250 ), 0.01, 0.22, 0, 0.5, 15.0, 2.0, 2.0, -1 );
				ShowSyncHudMsg( id, SyncHudMessage, "Spectating: %s^nHealth: %d^nPuncte: %d", iPlayerName, get_user_health( idSpec ), g_iUserPoints[ idSpec ] );
			}
		}

		case 1: {
	
			if( is_user_connected( id ) && is_user_alive( id ) && ( get_user_team( id ) == 1 || get_user_team( id ) == 2 ) ) {

				set_hudmessage( 0, 0, 254, 0.01, 0.91, 0, 0.5, 15.0, 2.0, 2.0, -1 );
				ShowSyncHudMsg( id, SyncHudMessage, "HP: %d | AP: %d | Puncte: %d", get_user_health( id ), get_user_armor( id ), g_iUserPoints[ id ] );
			}

			else {

				new idSpec;
				new iPlayerName[ 32 ];

				idSpec = pev( id, PEV_SPEC_TARGET );
				get_user_name( idSpec, iPlayerName, 31 );

				set_hudmessage( random( 250 ), random( 250 ), random( 250 ), -1.0, 0.7, 0, 0.5, 15.0, 2.0, 2.0, -1 );
				ShowSyncHudMsg( id, SyncHudMessage, "Spectating: %s^nHealth: %d^nPuncte: %d", iPlayerName, get_user_health( idSpec ), g_iUserPoints[ idSpec ] );
			}
		}
	}
}

public ClCmdSayBuyPoint( id ) {

	if( is_user_connected( id ) )
	{
		new g_iUserMoney = cs_get_user_money( id );
		new iNeededMoney = get_pcvar_num( g_iCvar[ CostOnePoint ] );
 
		if( g_iUserMoney < iNeededMoney )
 
		ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Mai ai nevoie de^x03 %d $^x01 pentru a cumpara^x03 1 punct^x01 !", g_szTag, iNeededMoney - g_iUserMoney );
 
		else {
 
			g_iUserPoints[ id ] += 1;
			cs_set_user_money( id, g_iUserMoney - iNeededMoney );
			ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Tocmai ai cumparat^x03 1 punct^x01 pentru^x03 %d $ !", g_szTag, iNeededMoney );
		}
	}
}

public ClCmdSayShowAllPoints( id ) {

	new iPlayers[ 32 ], iPlayersNum, szName[ 40 ], szMotd[ 1024 ], len;

	len = formatex( szMotd, charsmax( szMotd ), "<html> ");
	get_players( iPlayers, iPlayersNum );

	for( new i = 0 ; i < iPlayersNum ; i++ ) {

		get_user_name( iPlayers[ i ], szName, charsmax( szName ) );
		len += formatex( szMotd[ len ], charsmax( szMotd ) - len, "<br> <center> <font color=#008000>Name:</font> <font color=#8A2BE2>%s</font> | <font color=#008000>Points:</font> <font color=#8A2BE2>%i</font> </center> <br>", szName, g_iUserPoints[ iPlayers[ i ] ] );
	}

	formatex( szMotd[ len ], charsmax( szMotd ) - len, "</html>" );
	show_motd( id, szMotd );	
}

public ClCmdSayPoints( id ) {

	set_hudmessage( 127, 42, 255, 0.03, 0.86, 2, 6.0, 10.0 );
	show_hudmessage( id, "Ai %i puncte !", g_iUserPoints[ id ] );
	
	ColorChat( id, TEAM_COLOR, "^x04%s^x01 Ai^x03 %i^x01 puncte !!!", g_szTag, g_iUserPoints[ id ] );
	
	return PLUGIN_CONTINUE;
}

public bomb_planted( iPlanter ) {

	if( get_pcvar_num( g_iCvar[ EnableBombEvents ] ) == 0 || !is_user_connected( iPlanter ) )
		return PLUGIN_CONTINUE;
		
	g_iUserPoints[ iPlanter ] += get_pcvar_num( g_iCvar[ PointsBombPlanted ] );
	ColorChat( 0, TEAM_COLOR, "^x04%s^x03 %s^x01 a primit^x03 1 punct^x01 pentru plantarea bombei !", g_szTag, get_name( iPlanter ) );
	
	return PLUGIN_CONTINUE;
}

public bomb_explode( iExploder ) {
	
	if( get_pcvar_num( g_iCvar[ EnableBombEvents ] ) == 0 || !is_user_connected( iExploder ) )
		return PLUGIN_CONTINUE;
		
	g_iUserPoints[ iExploder ] += get_pcvar_num( g_iCvar[ PointsBombExploded ] );
	ColorChat( 0, TEAM_COLOR, "^x04%s^x03 %s^x01 a primit^x03 2 puncte^x01 pentru explodarea bombei !", g_szTag, get_name( iExploder ) );
	
	return PLUGIN_CONTINUE;
}

public bomb_defused( iDefuser ) {

	if( get_pcvar_num( g_iCvar[ EnableBombEvents ] ) == 0 || !is_user_connected( iDefuser ) )
		return PLUGIN_CONTINUE;
		
	g_iUserPoints[ iDefuser ] += get_pcvar_num( g_iCvar[ PointsBombDefused ] );
	ColorChat( 0, TEAM_COLOR, "^x04%s^x03 %s^x01 a primit^x03 1 punct^x01 pentru dezamorsarea bombei !", g_szTag, get_name( iDefuser ) );
	
	return PLUGIN_CONTINUE;
}

public ClCmdGivePoints( id ) {

	if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {

		client_cmd( id, "echo Nu ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {

		client_cmd( id, "echo amx_give_points < nume / @ALL / @T / @CT > < points >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iPoints = str_to_num( szSecondArg );
	if( iPoints <= 0 ) {

		client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' ) {

		switch ( szFirstArg[ 1 ] ) {

			case 'A': {

				if( equal( szFirstArg, "@ALL" ) ) {
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserPoints[ iPlayers[ i ] ] += iPoints;
						
					ColorChat( 0, TEAM_COLOR, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i Puncte^x01 tuturor jucatorilor!", g_szTag, get_name( id ), iPoints );
					return 1;
				}
			}
			
			case 'T': {

				if( equal( szFirstArg, "@T" ) ) {
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 ) {

						client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" );
						return 1;
					}

					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserPoints[ iPlayers[ i ] ] += iPoints;
						
					ColorChat( 0, TEAM_COLOR, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i puncte^x01 jucatorilor de la^x03 TERO^x01!", g_szTag, get_name( id ), iPoints );
					return 1;
				}
			}
			
			case 'C': {

				if( equal( szFirstArg, "@CT" ) ) {
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 ) {

						client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" );
						return 1;
					}

					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserPoints[ iPlayers[ i ] ] += iPoints;
						
					ColorChat( 0, TEAM_COLOR, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i puncte^x01 jucatorilor de la^x03 CT^x01!", g_szTag, get_name( id ), iPoints );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer ) {

		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserPoints[ iPlayer ] += iPoints;
	
	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	
	ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i puncte^x01 lui^x03 %s^x01.", g_szTag, get_name( id ), iPoints, szName );
	
	return 1;
}

public ClCmdTakePoints( id ) {

	if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {

		client_cmd( id, "echo Nu ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {

		client_cmd( id, "echo amx_take_points < nume > < puncte >" );
		return 1;
	}
	
	new iPoints = str_to_num( szSecondArg );
	if( iPoints <= 0 ) {

		client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer ) {

		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserPoints[ iPlayer ] < iPoints ) {

		client_cmd( id, "echo Jucatorul %s nu are atatea puncte! Are doar %i puncte !", szFirstArg, g_iUserPoints[ iPlayer ] );
		return 1;
	}
	
	g_iUserPoints[ iPlayer ] -= iPoints;
	
	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof( szName ) -1 );
	
	ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i puncte^x01 lui^x03 %s^x01.", g_szTag, get_name( id ), iPoints, szName );
	
	return 1;
}

public ClCmdResetPoints( id, level, cid ) {

	if( !cmd_access( id, level, cid, 2 ) ) {

		return PLUGIN_HANDLED; 
	}
	
	new szArgument[ 32 ];
   	read_argv( 1, szArgument, charsmax( szArgument ) );
	
	new iPlayer[ 32 ], iPlayersNum, all;
	get_players( iPlayer, iPlayersNum, "c" );

	if( equal( szArgument, "@ALL" ) ) {

		for( new i; i < iPlayersNum; i++ ) {

			all = iPlayer[ i ];
			
			g_iUserPoints[ all ] = 0;
			
			ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Adminul^x03 %s^x01 v-a resetat toate^x03 punctele !!!", g_szTag, get_name( id ) );
		}
	}
			
	else {

		new player = cmd_target( id, szArgument, 10 );

		if( !player )  {

  			 return PLUGIN_HANDLED;
		}
	

		new TargetName[ 32 char ];
		get_user_name( player, TargetName, charsmax( TargetName ) );
	
		g_iUserPoints[ player ] = 0;
		ColorChat( 0, TEAM_COLOR, "^x04%s^x01 Adminul^x03 %s^x01 i-a resetat punctele lui^x03 %s^x01 !!!", g_szTag, get_name( id ), TargetName );
	}

	return PLUGIN_HANDLED;
}

public SaveUserPoints( id ) {

	new Name[ 32 ];
	get_user_name( id, Name, 31 );
	
	static Data[ 1024 ];
	formatex( Data, sizeof( Data ) - 1, "^"%i^"", g_iUserPoints[ id ] );
	
	new Save[ 512 ];
	format( Save, 511, "^"%s^" %s", Name, Data );
	
	new Line[ 128 ], Linie, IsPlayer = false, Arg1[ 32 ];
	
	new FileOpen = fopen( File, "rt" );

	while( !feof( FileOpen ) ) {

		fgets( FileOpen, Line, 127 );
		trim( Line );
		
		parse( Line, Arg1, 31 );
		
		if( equali( Arg1, Name ) ) {

			write_file( File, Save, Linie );
			IsPlayer = true;
			break;
		}
		
		Linie++;
	}

	fclose( FileOpen );

	if( !IsPlayer ) {

		write_file( File, Save, -1 );
	}
}

public LoadUserPoints( id ) {

	new Name[ 32 ];
	get_user_name( id, Name, 31 );
	
	new Line[ 128 ], IsPlayer = false, Arg1[ 32 ], Arg2[ 32 ];
	
	new FileOpen = fopen( File, "rt" );

	while( !feof( FileOpen ) ) {

		fgets( FileOpen, Line, 127 );
		trim( Line );
		
		parse( Line, Arg1, 31, Arg2, 31 );
		
		if( equali( Arg1, Name ) ) {

			g_iUserPoints[ id ] = str_to_num( Arg2 );
			IsPlayer = true;
			break;
		}
	}

	fclose( FileOpen );
	
	if( !IsPlayer ) {

		g_iUserPoints[ id ] = 1;
	}
}

stock get_name( id ) {

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

stock bool:is_user_vip( id ) {

	if( get_user_flags( id ) & read_flags( "h" )  )
		return true;
	
	return false;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/

Si sursa de la vip :
| Afiseaza codul
#include <amxmodx>

#include <hamsandwich>

#include <cstrike>

#include <engine>

#include <fun>

#include <fakemeta>



#pragma tabsize 0



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



new const PLUGIN_NAME[] = "[Offensive] VIP System", 

    PLUGIN_VERSION[] = "1.0", 

    PLUGIN_AUTHOR[] = "YONTU";



// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new g_JumpNum[33] = 0

new bool:g_bJump[33] = false



const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);

const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);



enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };

new const vip_benefits[] =

{

   100,   // VIATA LA SPAWN

   100,   // ARMURA LA SPAWN

   12000,   // BANII LA START

   1,   // NUMARUL MAXIM DE SARITURI

   250,   // VITEZA MAXIMA

   10,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)

   15,   // VIATA PE KILL NORMAL

   12,   // VIATA PE HEADSHOT

   600,   // BANII PE KILL

}





new const g_weapons[] =

{

   CSW_P228,

   CSW_SCOUT,

   CSW_XM1014,

   CSW_MAC10,

   CSW_AUG,

   CSW_ELITE,

   CSW_FIVESEVEN,

   CSW_UMP45,

   CSW_SG550,

   CSW_GALI,

   CSW_GALIL,

   CSW_FAMAS,

   CSW_USP,

   CSW_GLOCK18,

   CSW_AWP,

   CSW_MP5NAVY,

   CSW_M249,

   CSW_M3,

   CSW_M4A1,

   CSW_TMP,

   CSW_G3SG1,

   CSW_DEAGLE,

   CSW_SG552,

   CSW_AK47,

   CSW_P90

}



new const g_max_clip[] =

{

   13,

   10,

   7,

   30,

   30,

   30,

   20,

   25,

   30,

   35,

   35,

   25,

   12,

   20,

   10,

   30,

   100,

   8,

   30,

   30,

   20,

   7,

   30,

   30,

   50

}



new const g_other_weapons[] =

{

   CSW_KNIFE,

   CSW_HEGRENADE,

   CSW_C4

}



new g_type , g_recieved, g_hudmsg1, g_hudmsg2



new bool:choosed[33],active=0



public plugin_init()

{

   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);

   set_cvar_string("level_mod_", PLUGIN_VERSION);



   register_event("DeathMsg", "event_DeathMsg", "a");

   

   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");

   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);

   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);





   register_clcmd( "say /vips", "print_list" );

   register_clcmd( "say_team /vips", "print_list" );

   register_clcmd( "say /vreauvip", "print_info" );

   register_clcmd( "say_team /vreauvip", "print_info" );



    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")

register_event("HLTV", "event_new_round", "a", "1=0", "2=0")



    g_type = register_cvar("amx_bulletdamage","1")  

    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      

      

    g_hudmsg1 = CreateHudSyncObj()      

    g_hudmsg2 = CreateHudSyncObj()  

}



public event_new_round()

{

   active++

   for(new id=0;id<get_maxplayers();++id)   choosed[id]=false

}



public client_putinserver(id)

{

   g_JumpNum[id] = 0;

   g_bJump[id] = false;



   choosed[id]=false

}



public client_PreThink(id)

{

   if(!is_user_alive(id) || !is_user_vip(id))

      return PLUGIN_CONTINUE;

      

   new nbut = get_user_button(id);

   new obut = get_user_oldbutton(id);

   new jump_num = vip_benefits[MAX_JUMPS];

   

   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))

   {

      if(g_JumpNum[id] < jump_num)

      {

         g_bJump[id] = true;

         g_JumpNum[id]++;

         return PLUGIN_CONTINUE;

      }

   }

   

   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))

   {

      g_JumpNum[id] = 0;

      return PLUGIN_CONTINUE;

   }

   

   return PLUGIN_CONTINUE;

}



public client_PostThink(id)

{

   if(!is_user_alive(id) || !is_user_vip(id))

      return PLUGIN_CONTINUE;



   if(g_bJump[id])

   {

      new Float:fVelocity[3];

      entity_get_vector(id, EV_VEC_velocity, fVelocity);

      fVelocity[2] = random_float(265.0, 285.0);

      entity_set_vector(id, EV_VEC_velocity, fVelocity);

      

      g_bJump[id] = false;

      return PLUGIN_CONTINUE;

   }

   

   return PLUGIN_CONTINUE;

}



public event_DeathMsg()

{

   new attacker = read_data(1);

   new victim = read_data(2);

   new headshot = read_data(3);

   new hitself = (attacker == victim) ? 1 : 0;



   if(is_user_alive(attacker) && is_user_vip(attacker))

   {

      if(hitself)

         return;



      if(headshot)

      {

         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);





   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return

   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))

   for (new a = 0; a < sizeof (g_weapons); a++)

   {

      if (get_user_weapon(attacker) == g_weapons[a])

      {

         new ammo = get_weapon_maxclip(get_user_weapon(attacker))



         if (ammo)

         {

            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")

            cs_set_weapon_ammo(weapon, ammo)

         }

         return

      }

   }

}

else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);



      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));





   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)

   write_short(1<<12)

   write_short(1<<12)

   write_short(0x0000)

   write_byte(30)

   write_byte(144)

   write_byte(255)

   write_byte(90)

   message_end()

}

}



public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)

{

   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))

      return HAM_IGNORED;



   if(is_user_vip(attacker) && is_user_alive(attacker))

   {

      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;

      SetHamParamFloat(4, fDamage);

      return HAM_HANDLED;

   }

   return HAM_IGNORED;

}



public fw_ResetMaxSpeed_Post(id)

{

   if(!is_user_alive(id))

      return HAM_HANDLED;



   if(is_user_vip(id))

   {

      new Float:fMaxSpeed = float(vip_benefits[SPEED]);

      set_user_maxspeed(id, fMaxSpeed);



      new command[128];

      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);

      client_cmd(id, command);

   }



   return HAM_IGNORED;

}



public fw_PlayerSpawnPost(id)

{

   if(!is_user_alive(id))

      return HAM_IGNORED;



   if(is_user_vip(id))

   {

      set_user_health(id, vip_benefits[HEALTH]);

      set_user_armor(id, vip_benefits[ARMOR]);

      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));



      if(!choosed[id]&&active>=2)   MeniuArme(id)

   }

   

   return HAM_IGNORED;

}



public MeniuArme(id)

{

   new menu = menu_create( "Equipment", "menu_handler" )



   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )

   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )

   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade", "3" )



   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )

   menu_display( id, menu, 0 )

}

public menu_handler( id, Menu, Item )

{

   if( Item < 0 || !is_user_alive(id) )   return 0;



   new Key[ 3 ],Access, CallBack;

   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );

   new isKey = str_to_num( Key );



   switch( isKey )

   {

      case 1:

      {

         drop_weapons(id,1)

         drop_weapons(id,2)

         give_item(id, "weapon_deagle")

         cs_set_user_bpammo(id, CSW_DEAGLE, 35)

         give_item(id, "weapon_hegrenade")

         give_item(id, "weapon_flashbang")

         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)

         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")

         cs_set_user_bpammo(id, CSW_AWP, 30)

      }

      case 2:

      {

         drop_weapons(id,1)

         drop_weapons(id,2)

         give_item(id, "weapon_deagle")

         cs_set_user_bpammo(id, CSW_DEAGLE, 35)

         give_item(id, "weapon_hegrenade")

         give_item(id, "weapon_flashbang")

         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)

         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")

         cs_set_user_bpammo(id, CSW_AK47, 90)

      }

      case 3:

      {

         drop_weapons(id,1)

         drop_weapons(id,2)

         give_item(id, "weapon_deagle")

         cs_set_user_bpammo(id, CSW_DEAGLE, 35)

         give_item(id, "weapon_hegrenade")

         give_item(id, "weapon_flashbang")

         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)

         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")

         cs_set_user_bpammo(id, CSW_M4A1, 90)



         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");

      }

   }



   if(isKey)   choosed[id]=true



   menu_destroy(Menu) 

   return PLUGIN_HANDLED

}



public print_info(id)   show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")



public print_list( user )

{

   new adminnames[ 33 ][ 32 ];

   new message[ 256 ];

   new id, count, x, len;



   for( id = 1; id <= get_maxplayers( ); id++ )

   {

      if( is_user_connected( id ) )

      {

         if( is_user_vip(id) )

         {

            get_user_name( id, adminnames[ count ++ ], 31 );

         }

      }

   }



   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );



   if( count > 0 )

   {

      for( x = 0; x < count; x++ )

      {

         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );



         if( len > 96 )

         {

            len = formatex( message, 255, "" );

            print_message( user, message );

         }

      }



      print_message( user, message );

   }

   else

   {

      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );

      print_message( user, message );

   }

}



print_message( id, msg[ ] )

{

   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );

   write_byte( id );

   write_string( msg );

   message_end( );

}



public on_damage(id)  

{  

    if(get_pcvar_num(g_type)==1 )

    {          

        static attacker; attacker = get_user_attacker(id)  

        static damage; damage = read_data(2)          

        if(get_pcvar_num(g_recieved)==1)  

        {              

            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  

            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          

        }  

        if(is_user_connected(attacker))  

        {  

            if( is_user_vip(attacker) )  

            {  

                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  

                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  

            }

        }  

    }  

}

stock drop_weapons(id, dropwhat)

{

	static Weapons[32], Num, i, WeaponID;

	Num = 0;

	get_user_weapons(id, Weapons, Num);

	for(i = 0; i < Num; i ++)

	{

		WeaponID = Weapons;

		if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM )))

		{

			static DropName[32], WeaponEntity;

			get_weaponname(WeaponID, DropName, charsmax(DropName));

			WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);

			set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));

			engclient_cmd(id, "drop", DropName);

			cs_set_user_bpammo(id, WeaponID, 0);

		}

	}

}

get_weapon_maxclip(wpnid = 0)

{

   for (new a = 0; a < sizeof (g_weapons); a++)

      if (wpnid == g_weapons[a])

         return g_max_clip[a]



   return false

}



fm_get_weapon_ent(id, wpnid = 0)

{

   new name[32]



   if(wpnid)

      get_weaponname(wpnid, name, 31)



   if (!equal(name, "weapon_", 7))

      format(name, sizeof (name) - 1, "weapon_%s", name)



   return fm_find_ent_by_owner(get_maxplayers(), name, id)

}



fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)

{

   new strtype[16] = "classname"

   new ent = id



   switch (jghgtype)

   {

      case 1: strtype = "target"

      case 2: strtype = "targetname"

   }



   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)

   {

   }



   return ent

}

Serverul impune conditii strict HLDS/REHLDS?: Nu
Ai cautat pluginul?(daca da, precizeaza cum): Da si nu exista .
Necesita mod special?:Nu cred