Classic_vip NEW V0.3

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
alkaline
Fost moderator
Fost moderator
Posts: 734
Joined: 18 Jul 2012, 09:42
Detinator Steam: Da
Reputatie: Fost Moderator ajutator
Nume anterior: lucylucy
Fond eXtream: 0
Location: Caras-Severin
Has thanked: 5 times
Been thanked: 296 times

03 Jul 2013, 21:24

Descriere: Acest plugin Este unul pentru vip Classic : Va las sa va convingeti

PS : Daca tot il descarcati dati si voi un MULTUMESC :)
Image

V0.3
Downlaod Resursele
SMA | Afiseaza codul
#include <amxmisc>
#include <engine>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>

#define CLASSIC_VIP ADMIN_LEVEL_H // Flagul "t"

#define WEAPON_SECRETCODE 4962
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_VIP (1<<2)

//#pragma semicolon 1;

new w_m4_gold[66] = "models/w_m4a1gold.mdl";
new w_ak_gold[66] = "models/w_golden_ak47.mdl"
new w_de_gold[66] = "models/w_g_deagle.mdl";
new w_th_gold[66] = "models/w_thompson_gold.mdl";
new w_mp_gold[66] = "models/w_mp5g.mdl";

new VMdl[][] = {
	
	"models/v_golden_m4a1.mdl",
	"models/v_golden_ak47.mdl",
	"models/v_golden_deagle.mdl",
	"models/v_thompson_gold.mdl",
	"models/v_mp5g.mdl"
}

new PMdl[][] = {
	
	"models/p_golden_m4a1.mdl",	
	"models/p_golden_ak47.mdl",
	"models/p_golden_deagle.mdl",
	"models/p_thompson_gold.mdl",
	"models/p_mp5g.mdl"
}
new const PARACHUTE[] = "models/parachute.mdl"

const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
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);
new Float:gPunchAngle[3] = { 0.0, 0.0, 0.0 };

new jumpnum[33] = 0;
new bool:dojump[33] = false;
new bool:has_parachute[33],para_ent[33], pDetach, pFallSpeed, pEnabled;
new m_spriteTexture,cvar_goldbullets, maxplayers, gmsgSayText,pCvarSpawn,pcvarSpawnWeap,bullets[ 33 ];
new NoRec;
new bool: gAkg[33],gM4a1g[33],gDglg[33],gThm[33],gmp5[33],alkaline[69];
new // CVAR :
gSHealth,gSArmor,cvar_goldbullets_allWeap,g_bonus_kill, g_bonus_kill_hs, g_bonus_kill_knife,
gShowVipC,gVipinScore;

public plugin_init( ) {

	register_plugin( "Classic VIP", "v0.3", "alkaline aka lucy");

	RegisterHam( Ham_Spawn, "player", "PlayerSpawn", true);
	RegisterHam( Ham_TakeDamage, "player", "Player_TakeDamage" );

	register_event( "CurWeapon", "Weaponcr", "be", "1=1" );
	register_event( "CurWeapon", "make_tracer", "be", "1=1", "3>0");
	register_event( "DeathMsg", "Bonus", "a", "1>0");
	register_event( "ResetHUD", "newSpawn", "be" );
	register_event( "DeathMsg", "death_event", "a" );

	register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib" );

	register_forward(FM_SetModel, "fw_SetModel_m4a1");
	register_forward(FM_SetModel, "fw_SetModel_ak47");
	register_forward(FM_SetModel, "fw_SetModel_deagle");
	register_forward(FM_SetModel, "fw_SetModel_thompson");
	register_forward(FM_SetModel, "fw_SetModel_mp5");

	register_clcmd( "say /arme", "ArmeVip", CLASSIC_VIP );
	register_clcmd( "say_team /arme", "ArmeVip", CLASSIC_VIP );

	register_clcmd( "say /vreauvip", "ShowMotd");
	register_clcmd("say", "handle_say");

	// Cvar

	pCvarSpawn = register_cvar("cv_spawn_menu", "1"); // apare  menu la respawn pentru vipi ? 1 -da 0 nu
	pcvarSpawnWeap = register_cvar("cv_spawn_weap", "1"); // ramane arma la fiecare spawn ? 1-Da . 0-OFF

	gShowVipC = register_cvar("cv_show_vip_connect","1"); // Show Vip Connect/connected / disconnect
	gVipinScore = register_cvar("cv_show_vip_tabscore", "1"); // Show VIP in TabScore ?
	register_cvar("cv_maxjumps", "1" ); // Nr de sarituri 0 - Oprit

	cvar_goldbullets = register_cvar("cv_gold_bullets", "0") // Gloantele golden 1- ON | 0- OFF
	cvar_goldbullets_allWeap = register_cvar("cv_gold_bullets_all_weap", "1") // Gloantele golden la toate armele ?


	gSHealth = register_cvar("cv_spawn_health", "50"); // Hp la fiecare Spawn
	gSArmor = register_cvar("cv_spawn_armor", "50"); // AP la fiecare spawn

	g_bonus_kill = register_cvar("cv_b_kill", "5"); // Hp Bonus pe kill
	g_bonus_kill_hs = register_cvar("cv_b_kill_hs", "10"); // Headshot Hp Bonus pe kill
	g_bonus_kill_knife = register_cvar("cv_b_kill_knife", "15"); // knife Hp Bonus pe kill


	pEnabled = register_cvar( "cv_sv_parachute", "1" ); // parachuta activata pe server ?
	pFallSpeed = register_cvar( "cv_parachute_fallspeed", "45" ); //Fall speed
	pDetach = register_cvar( "cv_parachute_detach", "1" ); //Don't change

	//

	maxplayers = get_maxplayers();
	gmsgSayText = get_user_msgid("SayText");

}

public client_connect(id)
{
	parachute_reset(id);
	user_connect(id);
}

public client_putinserver(id)
{
	gAkg[id] = false;
	gM4a1g[id] = false;
	gDglg[id] = false;
	gThm[id] = false;
	gmp5[id] = false;

	jumpnum[id] = 0;
	dojump[id] = false;
	user_connected(id);
}

public client_disconnect(id)
{
	gAkg[id] = false;
	gM4a1g[id] = false;
	gDglg[id] = false;
	gThm[id] = false;
	gmp5[id] = false;

	jumpnum[id] = 0;
	dojump[id] = false;
	parachute_reset( id );
	user_disconnect(id);
}

public PlayerSpawn(id) {

	if(is_user_alive(id) )	
	if(get_user_flags(id) & CLASSIC_VIP) {
		
	//give_item(id, "weapon_deagle"); 
	give_item(id, "weapon_knife");
	give_item(id, "weapon_hegrenade") 
	cs_set_user_bpammo(id,CSW_HEGRENADE,1);	//              
	give_item(id, "weapon_flashbang"); 
	cs_set_user_bpammo(id,CSW_FLASHBANG,1) // 
	give_item(id, "weapon_smokegrenade");
	give_spawn_armor_health(id);
	switch(get_user_team(id)){
		case 1,2: {
		switch(get_pcvar_num(pCvarSpawn)) {
			case 0: return 1;
			case 1: ArmeVip( id );
				}			
			}
		}
	}
	if(get_pcvar_num(pcvarSpawnWeap)==1){
	gAkg[id] = true;
	gM4a1g[id] = true;
	gDglg[id] = true;
	gThm[id] = true;
	gmp5[id] = true;

	alkaline[id] = 0
	NoRec=false;		
	}
	return 1;
}


public ArmeVip( id ) {
	if(get_user_flags(id)&CLASSIC_VIP){
	new menu = menu_create ( "\yGolden \rVIP \wMenu", "ArmeVipGiver" );

	if(user_has_weapon(id,CSW_M4A1)) {
		menu_additem( menu, "\dM4A1 + Deagle GOLDEN X2 DMG\r-Allready Have", "1", 0);
	}else
		menu_additem( menu, "\wM4A1 + Deagle \yGOLDEN \r X2 DMG", "1", 0);

	if(user_has_weapon(id,CSW_AK47)) {
		menu_additem( menu, "\dAK47 + Deagle GOLDEN X2 DMG\r-Allready Have", "2", 0);
	}else 	
		menu_additem( menu, "\wAK47 + Deagle \yGOLDEN \r X2 DMG", "2", 0);
	
	if(user_has_weapon(id,CSW_P90)) {
		menu_additem( menu, "\dThompson + Deagle \yGOLDEN X2 DMG\r-Allready Have", "3", 0);
	}else
		menu_additem( menu, "\wThompson + Deagle \yGOLDEN \r X2 DMG", "3", 0);

	if(user_has_weapon(id,CSW_MP5NAVY)) {
		menu_additem( menu, "\dMP5 + Deagle GOLDEN X2 DMG\r-Allready Have^n", "4", 0);
	}else 
		menu_additem( menu, "\wMP5 + Deagle \yGOLDEN \r X2 DMG^n", "4", 0);

	new szmenu[ 69 ];
	formatex( szmenu, 68, "\wNo Recoil : %s ", ( alkaline[id] ? "\rDezactiveaza" : "\rActiveaza" ) );
	menu_additem( menu, szmenu, "5" );

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

public ArmeVipGiver( 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:
		{
			drop_weapons(id, 2);
			if(!user_has_weapon(id,CSW_M4A1)){
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			gM4a1g[id] = true;
			gDglg[id] = true;
			Color( id,"^4[VIP]^1Ai Primit M4A1 + Deagle ^3Golden ^4!");
			}
		}
		case 2:
		{
			drop_weapons(id, 2);
			if(!user_has_weapon(id,CSW_AK47)){
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);	
			gAkg[id] = true;
			gDglg[id] = true;
			Color( id, "^4[VIP]^1Ai Primit AK47 + Deagle ^3Golden ^4!");
			}			
		}
		case 3:
		{
			drop_weapons(id, 2);
			if(!user_has_weapon(id,CSW_P90)){
			give_item(id, "weapon_p90");
			cs_set_user_bpammo(id, CSW_P90, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);	
			gThm[id] = true;
			gDglg[id] = true;
			Color( id, "^4[VIP]^1Ai Primit Thompson + Deagle ^3Golden ^4!");
			}
		}
		case 4:
		{
			drop_weapons(id, 2);
			if(!user_has_weapon(id,CSW_MP5NAVY)){
			give_item(id, "weapon_mp5navy");
			cs_set_user_bpammo(id, CSW_MP5NAVY, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);	
			gmp5[id] = true;
			gDglg[id] = true;
			Color( id, "^4[VIP]^1Ai Primit MP5 + Deagle ^3Golden ^4!");
			}
		}
		case 5:
		{
			for ( new id = 1; id <= maxplayers; id++ )         
			switch( alkaline[id])
			{
				case 0:
				{
					alkaline[id] = 1
					NoRec=true;
					ArmeVip(id);
				}
				case 1:
				{
					alkaline[id] = 0
					NoRec=false;
					ArmeVip(id);
				}
			}
		}
	}
	return 1;
}
public Weaponcr( id ) {

	if(get_user_flags(id) & CLASSIC_VIP) {
	new weap = get_user_weapon( id );

	if(gM4a1g[id]&& weap == CSW_M4A1 ) {
		
		
		set_pev( id, pev_viewmodel2, VMdl[ 0 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 0 ] );
	}
	if(gAkg[id]&& weap == CSW_AK47 ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 1 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 1 ] );
	}
	if(gDglg[id]&& weap == CSW_DEAGLE ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 2 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 2 ] );		
	}
	if(gThm[id]&& weap == CSW_P90 ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 3 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 3 ] );		
	}
	if(gmp5[id]&& weap == CSW_MP5NAVY ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 4 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 4 ] );		
	}
	return 1;
	}
	return 1;
}

public fw_SetModel_m4a1(entity, model[])
{
	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	static iOwner;
	iOwner = pev(entity, pev_owner);
	if(equal(model, "models/w_m4a1.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_m4a1", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		if(gM4a1g[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_m4_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public fw_SetModel_ak47(entity, model[])
{
	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_ak47.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_ak47", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gAkg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_ak_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public fw_SetModel_deagle(entity, model[])
{	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_deagle.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_deagle", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gDglg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_de_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public fw_SetModel_thompson(entity, model[])
{	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_p90.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_p90", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gDglg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_th_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public fw_SetModel_mp5(entity, model[])
{	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_mp5navy.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_mp5navy", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gDglg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_mp_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {
	if(get_user_flags( iAttacker ) & CLASSIC_VIP)
	//new weap = get_user_weapon(iAttacker);
	if(gM4a1g[iAttacker]&& get_user_weapon(iAttacker) == CSW_M4A1 ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
       	} 
	if(gAkg[iAttacker]&& get_user_weapon(iAttacker) == CSW_AK47 ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
       	}	
	if(gDglg[iAttacker]&& get_user_weapon(iAttacker) == CSW_DEAGLE ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
	}
	if(gThm[iAttacker]&& get_user_weapon(iAttacker) == CSW_P90 ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
	}
	if(gmp5[iAttacker]&& get_user_weapon(iAttacker) == CSW_MP5NAVY ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
	}
    	return HAM_IGNORED;  
}
public ShowMotd(id) {
	new iCfgDir[32], iFile[192];
        
	get_configsdir(iCfgDir, charsmax(iCfgDir));
	formatex(iFile, charsmax(iFile), "%s/vip.html", iCfgDir);
	show_motd(id, iFile);
}


public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "vips") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_viplist",id)
	return PLUGIN_CONTINUE
}

public print_viplist(user) 
{
	new adminnames[33][32];
	new message[256];
	new id, count, x, len;
	static const COLORG[] = "^x04";
	static const COLORD[] = "^x01";
	static const COLORT[] = "^x03";
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & CLASSIC_VIP)
				get_user_name(id, adminnames[count++], 31);

	len = format(message, 255, "%s VIPI ONLINE: ",COLORG);
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "^x03%s%s ", adminnames[x], x < (count-1) ? ", ":"", COLORT);
			if(len > 96 ) {
				print_message(user, message);
				len = format(message, 255, "%s ",COLORG);
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "^x01Nu sunt VIPI online.", COLORD);
		print_message(user, message);
	}
	
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}
public give_spawn_armor_health(id){
set_user_health(id,get_user_health(id)+get_pcvar_num(gSHealth));
cs_set_user_armor( id, get_user_armor(id)+get_pcvar_num(gSArmor),CS_ARMOR_VESTHELM);
}

public client_PreThink(id)
{
	if(get_user_flags(id)&CLASSIC_VIP) {
	if(!is_user_alive(id)) return PLUGIN_CONTINUE;
	if(get_cvar_num("mjstatus") && (!access(id,CLASSIC_VIP))) return PLUGIN_CONTINUE;
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(jumpnum[id] < get_cvar_num("cv_maxjumps"))
		{
			dojump[id] = true;
			jumpnum[id]++
			return PLUGIN_CONTINUE;
		}
	}
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	}
	client_parachute(id);
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(get_user_flags(id)&CLASSIC_VIP) {	
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(get_cvar_num("mjstatus") && (!access(id,CLASSIC_VIP))) return PLUGIN_CONTINUE;
	if(dojump[id] == true)
	{
		new Float:velocity[3];	
		entity_get_vector(id,EV_VEC_velocity,velocity);
		velocity[2] = random_float(265.0,285.0);
		entity_set_vector(id,EV_VEC_velocity,velocity);
		dojump[id] = false;

		return PLUGIN_CONTINUE;
	}
	}
	return PLUGIN_CONTINUE;
}

public Bonus(id)
{
	new att = read_data(1);
	new hs = read_data(3);

	if(hs) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill_hs));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill_hs));
	}else if(!hs) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill));		
	}
	if(get_user_weapon(att)==CSW_KNIFE) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill_knife));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill_knife));
	}	
}
	
public plugin_precache( ) {
	register_cvar("mjstatus", "0" );
	new lucy;
	for( lucy = 0; lucy < sizeof ( VMdl); lucy++ )
		engfunc( EngFunc_PrecacheModel, VMdl[ lucy ] );
	new alka;
	for( alka = 0; alka < sizeof ( PMdl); alka++ )
		engfunc( EngFunc_PrecacheModel, PMdl[ alka ] );	
	
	precache_model(w_m4_gold);
	precache_model(w_ak_gold);
	precache_model(w_de_gold);
	precache_model(w_th_gold);
	precache_model(w_mp_gold);

	precache_model( PARACHUTE );

	m_spriteTexture = precache_model("sprites/dot.spr");	
}

public make_tracer(id)
{
	if(get_user_flags(id)&CLASSIC_VIP){
	if(get_pcvar_num(cvar_goldbullets))
	{
		new clip,ammo;
		new wpnid = get_user_weapon(id,clip,ammo);
		//new pteam[16];
		
		//get_user_team(id, pteam, 15)
		if(get_pcvar_num(cvar_goldbullets_allWeap) &&(wpnid)) {
		if ((bullets[id] > clip) && (gM4a1g[id]&&gAkg[id]&&gDglg[id]) ) 
		{
		
			new vec1[3], vec2[3];
			get_user_origin(id, vec1, 1); // origin; your camera point.
			get_user_origin(id, vec2, 4); // termina; where your bullet goes (4 is cs-only)
						
			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY);
			write_byte (0);     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0]);
			write_coord(vec1[1]);
			write_coord(vec1[2]);
			write_coord(vec2[0]);
			write_coord(vec2[1]);
			write_coord(vec2[2]);
			write_short( m_spriteTexture );
			write_byte(1); // framestart
			write_byte(5); // framerate
			write_byte(2); // life
			write_byte(10); // width
			write_byte(0); // noise
			write_byte( 255 );     // r, g, b
			write_byte( 215 );       // r, g, b
			write_byte( 0 );       // r, g, b
			write_byte(200); // brightness
			write_byte(150); // speed
			message_end();			
			}
		bullets[id] = clip;
			}
		}
	}
	return 1;
}

public death_event( ) 
{
	new id = read_data( 2 );
	parachute_reset( id );
}

parachute_reset( id ) 
{
	if( para_ent[ id ] > 0 ) 
	{
		if ( is_valid_ent( para_ent[ id ] ) ) 
		{
			remove_entity( para_ent[ id ] );
		}
	}
}

public newSpawn( id ) 
{
	if(para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		para_ent[ id ] = 0;
	}
	has_parachute[ id ] = true;
}

public client_parachute( id ) 
{
	if(get_user_flags(id)&CLASSIC_VIP) {
	if ( !get_pcvar_num( pEnabled ) ) return;
	if ( !is_user_alive( id ) || !has_parachute[ id ] ) return;

	new Float:fallspeed = get_pcvar_float( pFallSpeed ) * -1.0;
	new Float:frame;

	new button = get_user_button( id );
	new oldbutton = get_user_oldbutton( id );
	new flags = get_entity_flags( id );

	if ( para_ent[ id ] > 0 && ( flags & FL_ONGROUND ) ) 
	{

		if (get_pcvar_num( pDetach ) ) 
		{
			if ( entity_get_int( para_ent[ id ], EV_INT_sequence ) != 2 ) 
			{
				entity_set_int( para_ent[ id ], EV_INT_sequence, 2 );			//ZeniX  df : 2
				entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );
				entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_framerate, 0.0 );
				return;
			}

			frame = entity_get_float( para_ent[ id ], EV_FL_fuser1 ) + 2.0;
			entity_set_float( para_ent[ id ], EV_FL_fuser1, frame );
			entity_set_float( para_ent[ id ], EV_FL_frame, frame );

			if ( frame > 254.0 ) 		// 254.0 default
			{
				remove_entity( para_ent[ id ] );
				para_ent[ id ] = 0;
			}
		}
		else 
		{
			remove_entity( para_ent[ id ] );
			para_ent[ id ] = 0;
		}

		return;
	}

	if ( button & IN_USE ) 
	{
		new Float:velocity[ 3 ];
		entity_get_vector( id, EV_VEC_velocity, velocity );

		if ( velocity[ 2 ] < 0.0 ) 
		{
			if( para_ent[ id ] <= 0 ) 
			{
				para_ent[ id ] = create_entity( "info_target" );
				if( para_ent[ id ] > 0 ) 
				{
					entity_set_string( para_ent[ id ],EV_SZ_classname, "parachute" );
					entity_set_edict( para_ent[ id ], EV_ENT_aiment, id );
					entity_set_edict( para_ent[ id ], EV_ENT_owner, id );
					entity_set_int( para_ent[ id ], EV_INT_movetype, MOVETYPE_FOLLOW );
					entity_set_model( para_ent[ id ], PARACHUTE );					
					entity_set_int( para_ent[ id ], EV_INT_sequence, 0 );
					entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 ); // secventa de pers df :   1
					entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 ); // df : 0.0
					entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				}
			}

			if ( para_ent[id  ] > 0 ) 
			{
				entity_set_int( id, EV_INT_sequence, 3 );
				entity_set_int( id, EV_INT_gaitsequence, 1 );
				entity_set_float( id, EV_FL_frame, 1.0 );
				entity_set_float( id, EV_FL_framerate, 1.0 );

				velocity[ 2 ] = ( velocity[ 2 ] + 40.0 < fallspeed ) ? velocity[ 2 ] + 40.0 : fallspeed;
				entity_set_vector( id, EV_VEC_velocity, velocity );

				if ( entity_get_int( para_ent[ id ], EV_INT_sequence ) == 0 ) 
				{
					frame = entity_get_float( para_ent[ id ], EV_FL_fuser1 ) + 1.0;
					entity_set_float( para_ent[ id ], EV_FL_fuser1, frame );
					entity_set_float( para_ent[ id ], EV_FL_frame, frame );

					if ( frame > 100.0 ) 		// df 100.0
					{
						entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_framerate, 0.4 ); // cadru rata df : 0.4
 						entity_set_int( para_ent[ id ], EV_INT_sequence, 1 );
						entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );     // secventa de pers df :   1 
						entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
					}
				}
			}
		}
		else if ( para_ent[ id ] > 0 ) 
		{
			remove_entity( para_ent[ id ] );
			para_ent[ id ] = 0;
		}
	}
	else if ( ( oldbutton & IN_USE ) && para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		para_ent[ id ] = 0;
	}
	}
}/*
stock names(id){
new name[32];
get_user_name(id,name,sizeof(name)-1);
return name;
}*/

public user_connect(id) {
	if(get_pcvar_num(gShowVipC) && get_user_flags(id) & CLASSIC_VIP) {
		new name[100];
		get_user_name(id,name,sizeof(name)-1);
		Color(0,"^4V.I.P ^3%s ^1se conecteaza...",name);
	}
}
public user_connected(id) {
	if(get_pcvar_num(gShowVipC) && get_user_flags(id) & CLASSIC_VIP) {
		new name[100];
		get_user_name(id,name,sizeof(name)-1);
		Color(0,"^4V.I.P ^3%s ^1a intrat pe server.",name);	
	}
}
public user_disconnect(id) {
	if(get_pcvar_num(gShowVipC) && get_user_flags(id) & CLASSIC_VIP) {
		new name[100];
		get_user_name(id,name,sizeof(name)-1);
		Color(0,"^4V.I.P ^3%s ^1a iesit de pe server.",name);	
	}
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver) {
   if(get_pcvar_num(gVipinScore)){
	new iPlayer = get_msg_arg_int( 1 );
	if( is_user_connected( iPlayer )
	&&( get_user_flags( iPlayer ) & CLASSIC_VIP ) ) {
	set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );
	}
   }
}

public server_frame()
{
    if(NoRec) {
    for ( new id = 1; id <= maxplayers; id++ )         
    {
        if ( is_user_alive(id)  )
            set_pev(id, pev_punchangle, gPunchAngle);
    }
    }
    //NoRec= false;
}
stock Color(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "!x04", "^4");
	replace_all(msg, 190, "!x01", "^1");
	replace_all(msg, 190, "!x03", "^3");
	/* This plugin created by alkaline aka lucy */
	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();
			}
		}
	}
}
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 == 2 && ((1<<weaponid) && PRIMARY_WEAPONS_BIT_SUM && SECONDARY_WEAPONS_BIT_SUM))
          {
               static wname[32];
               get_weaponname(weaponid, wname, sizeof wname - 1);
               engclient_cmd(id, "drop", wname);
          }
     }
}



Detalii Versiunea 0.3


Poze | Afiseaza codul
Image


===========================================================================================================================
VECHI | Afiseaza codul
UPDATE:V0.2 - NEW

Actualizari (Jos)

Download_Resurse + PLUGIN
[sursa=sursa]#include <amxmisc>
#include <engine>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>

#define CLASSIC_VIP ADMIN_LEVEL_H // Flagul "t"

#define WEAPON_SECRETCODE 4962

//new w_m4_gold[66] = "models/w_golden_m4a1.mdl";
new w_ak_gold[66] = "models/w_golden_ak47.mdl"
//new w_de_gold[66] = "models/w_golden_deagle.mdl";
new VMdl[][] = {
	
	"models/v_golden_m4a1.mdl",
	"models/v_golden_ak47.mdl",
	"models/v_golden_deagle.mdl"
}

new PMdl[][] = {
	
	"models/p_golden_m4a1.mdl",	
	"models/p_golden_ak47.mdl",
	"models/p_golden_deagle.mdl"
}
new const PARACHUTE[] = "models/parachute.mdl"

new jumpnum[33] = 0;
new bool:dojump[33] = false;
new bool:has_parachute[33],para_ent[33], pDetach, pFallSpeed, pEnabled;
new m_spriteTexture,cvar_goldbullets, maxplayers, gmsgSayText,pCvarSpawn,pcvarSpawnWeap,bullets[ 33 ];

new bool: gAkg[33],gM4a1g[33],gDglg[33];
new
gSHealth,gSArmor,
g_bonus_kill, g_bonus_kill_hs, g_bonus_kill_knife;

public plugin_init( ) {

	register_plugin( "Classic VIP", "v0.1", "alkaline aka lucy");

	RegisterHam( Ham_Spawn, "player", "PlayerSpawn", true);
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );

	register_event( "CurWeapon", "Weaponcr", "be", "1=1" );
	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0");
	register_event("DeathMsg", "Bonus", "a", "1>0");
	register_event( "ResetHUD", "newSpawn", "be" );
	register_event( "DeathMsg", "death_event", "a" );

//	register_forward(FM_SetModel, "fw_SetModel_m4a1");
	register_forward(FM_SetModel, "fw_SetModel_ak47");
//	register_forward(FM_SetModel, "fw_SetModel_deagle");

	register_clcmd( "say /arme", "ArmeVip", CLASSIC_VIP );
	register_clcmd( "say_team /arme", "ArmeVip", CLASSIC_VIP );

	register_clcmd( "say /vreauvip", "ShowMotd");
	register_clcmd( "say", "handle_say");

	// Cvar

	pCvarSpawn = register_cvar("spawn_menu", "1"); // apare  menu la respawn pentru vipi ? 1 -da 0 nu
	pcvarSpawnWeap = register_cvar("spawn_weap", "1"); // ramane arma la fiecare spawn ? 1-Da . 0-OFF

	register_cvar("cv_maxjumps", "1" ); // Nr de sarituri 0 - Oprit

	cvar_goldbullets = register_cvar("cv_gold_bullets", "0") // Gloantele golden 1- ON | 0- OFF

	gSHealth = register_cvar("cv_spawn_health", "50"); // Hp la fiecare Spawn
	gSArmor = register_cvar("cv_spawn_armor", "50"); // AP la fiecare spawn

	g_bonus_kill = register_cvar("cv_b_kill", "5"); // Hp Bonus pe kill
	g_bonus_kill_hs = register_cvar("cv_b_kill_hs", "10"); // Headshot Hp Bonus pe kill
	g_bonus_kill_knife = register_cvar("cv_b_kill_knife", "15"); // knife Hp Bonus pe kill


	pEnabled = register_cvar( "cv_sv_parachute", "1" ); // parachuta activata pe server ?
	pFallSpeed = register_cvar( "cv_parachute_fallspeed", "45" ); //Fall speed
	pDetach = register_cvar( "cv_parachute_detach", "1" ); //Don't change

	//

	maxplayers = get_maxplayers();
	gmsgSayText = get_user_msgid("SayText");

}

public client_connect( id )
{
	parachute_reset( id );
}
public client_putinserver(id)
{
	gAkg[id] = false;
	gM4a1g[id] = false;
	gDglg[id] = false;

	jumpnum[id] = 0;
	dojump[id] = false;
}

public client_disconnect(id)
{
	gAkg[id] = false;
	gM4a1g[id] = false;
	gDglg[id] = false;

	jumpnum[id] = 0;
	dojump[id] = false;
	parachute_reset( id );
}

public PlayerSpawn(id) {

	if(is_user_alive(id) )	
	if(get_user_flags(id) & CLASSIC_VIP) {
		
	//give_item(id, "weapon_deagle"); 
	give_item(id, "weapon_knife");
	give_item(id, "weapon_hegrenade") 
	cs_set_user_bpammo(id,CSW_HEGRENADE,1);	//              
	give_item(id, "weapon_flashbang"); 
	cs_set_user_bpammo(id,CSW_FLASHBANG,1) // 
	give_item(id, "weapon_smokegrenade");
	give_spawn_armor_health(id);
	switch(get_user_team(id)){
		case 1,2: {
		switch(get_pcvar_num(pCvarSpawn)) {
			case 0: return 1;
			case 1: ArmeVip( id );
				}			
			}
		}
	}
	if(get_pcvar_num(pcvarSpawnWeap)==1){
	gAkg[id] = true;
	gM4a1g[id] = true;
	gDglg[id] = true;		
	}
	return 1;
}


public ArmeVip( id ) {
	if(get_user_flags(id)&CLASSIC_VIP){
	new menu = menu_create ( "\wARME \rVIP", "ArmeVipGiver" );

	menu_additem( menu, "\wM4A1 + Deagle \yGOLDEN \r X2 DMG", "1", 0);
	menu_additem( menu, "\wAK47 + Deagle \yGOLDEN \r X2 DMG", "2", 0);
	
	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, menu, 0 );
	return 1;
	}
	return 1;
}

public ArmeVipGiver( 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:
		{
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			gM4a1g[id] = true;
			gDglg[id] = true;
			Color( id,"^3Ai Primit M4A1 + Deagle ^1Golden ^3!");
		}
		case 2:
		{
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 90);
			give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);	
			gAkg[id] = true;
			gDglg[id] = true;
			Color( id, "^3Ai Primit AK47 + Deagle ^1Golden ^3!");			
		}
	}
	return 1;
}
public Weaponcr( id ) {

	if(get_user_flags(id) & CLASSIC_VIP) {
	new weap = get_user_weapon( id );

	if(gM4a1g[id]&& weap == CSW_M4A1 ) {
		
		
		set_pev( id, pev_viewmodel2, VMdl[ 0 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 0 ] );
	}
	if(gAkg[id]&& weap == CSW_AK47 ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 1 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 1 ] );
	}
	if(gDglg[id]&& weap == CSW_DEAGLE ) {
		
		set_pev( id, pev_viewmodel2, VMdl[ 2 ] );
		set_pev( id, pev_weaponmodel2, PMdl[ 2 ] );		
	}
	return 1;
	}
	return 1;
}
/*
public fw_SetModel_m4a1(entity, model[])
{
	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	static iOwner;
	iOwner = pev(entity, pev_owner);
	if(equal(model, "models/w_m4a1.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_m4a1", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		if(gM4a1g[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_m4_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
*/
public fw_SetModel_ak47(entity, model[])
{
	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_ak47.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_ak47", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gAkg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_ak_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
/*
public fw_SetModel_deagle(entity, model[])
{	if(!pev_valid(entity))
		return FMRES_IGNORED;
	
	static Classname[32];
	pev(entity, pev_classname, Classname, sizeof(Classname));
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED;
	
	static iOwner;
	iOwner = pev(entity, pev_owner);
	
	if(equal(model, "models/w_deagle.mdl"))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_deagle", entity);
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(gDglg[iOwner])
		{
			set_pev(weapon, pev_impulse, WEAPON_SECRETCODE);
			engfunc(EngFunc_SetModel, entity, w_de_gold);
			
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}*/
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {
	if(get_user_flags( iAttacker ) & CLASSIC_VIP)
	//new weap = get_user_weapon(iAttacker);
	if(gM4a1g[iAttacker]&& get_user_weapon(iAttacker) == CSW_M4A1 ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
       	} 
	if(gAkg[iAttacker]&& get_user_weapon(iAttacker) == CSW_AK47 ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
       	}	
	if(gDglg[iAttacker]&& get_user_weapon(iAttacker) == CSW_DEAGLE ) {
        
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
	}
    	return HAM_IGNORED;  
}
public ShowMotd(id) {
	new iCfgDir[32], iFile[192];
        
	get_configsdir(iCfgDir, charsmax(iCfgDir));
	formatex(iFile, charsmax(iFile), "%s/vip.html", iCfgDir);
	show_motd(id, iFile);
}


public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "vips") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_viplist",id)
	return PLUGIN_CONTINUE
}

public print_viplist(user) 
{
	new adminnames[33][32];
	new message[256];
	new id, count, x, len;
	static const COLORG[] = "^x04";
	static const COLORD[] = "^x01";
	static const COLORT[] = "^x03";
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & CLASSIC_VIP)
				get_user_name(id, adminnames[count++], 31);

	len = format(message, 255, "%s VIPI ONLINE: ",COLORG);
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "^x03%s%s ", adminnames[x], x < (count-1) ? ", ":"", COLORT);
			if(len > 96 ) {
				print_message(user, message);
				len = format(message, 255, "%s ",COLORG);
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "^x01Nu sunt VIPI online.", COLORD);
		print_message(user, message);
	}
	
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}
public give_spawn_armor_health(id){
set_user_health(id,get_user_health(id)+get_pcvar_num(gSHealth));
cs_set_user_armor( id, get_user_armor(id)+get_pcvar_num(gSArmor),CS_ARMOR_VESTHELM);
}

public client_PreThink(id)
{
	if(get_user_flags(id)&CLASSIC_VIP) {
	if(!is_user_alive(id)) return PLUGIN_CONTINUE;
	if(get_cvar_num("mjstatus") && (!access(id,CLASSIC_VIP))) return PLUGIN_CONTINUE;
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(jumpnum[id] < get_cvar_num("cv_maxjumps"))
		{
			dojump[id] = true;
			jumpnum[id]++
			return PLUGIN_CONTINUE;
		}
	}
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	}
	client_parachute(id);
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(get_user_flags(id)&CLASSIC_VIP) {	
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(get_cvar_num("mjstatus") && (!access(id,CLASSIC_VIP))) return PLUGIN_CONTINUE;
	if(dojump[id] == true)
	{
		new Float:velocity[3];	
		entity_get_vector(id,EV_VEC_velocity,velocity);
		velocity[2] = random_float(265.0,285.0);
		entity_set_vector(id,EV_VEC_velocity,velocity);
		dojump[id] = false;

		return PLUGIN_CONTINUE;
	}
	}
	return PLUGIN_CONTINUE;
}

public Bonus(id)
{
	new att = read_data(1);
	new hs = read_data(3);

	if(hs) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill_hs));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill_hs));
	}else if(!hs) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill));		
	}
	if(get_user_weapon(att)==CSW_KNIFE) {
		set_user_health(att,get_user_health(att)+get_pcvar_num(g_bonus_kill_knife));
		set_hudmessage(255, 0, 0, 0.07, 0.90, 0, 6.0, 3.0);
		show_hudmessage(att, "+%i HP",get_pcvar_num(g_bonus_kill_knife));
	}	
}
	
public plugin_precache( ) {
	register_cvar("mjstatus", "0" );
	new lucy;
	for( lucy = 0; lucy < sizeof ( VMdl); lucy++ )
		engfunc( EngFunc_PrecacheModel, VMdl[ lucy ] );
	new alka;
	for( alka = 0; alka < sizeof ( PMdl); alka++ )
		engfunc( EngFunc_PrecacheModel, PMdl[ alka ] );	
	
//	precache_model(w_m4_gold);
	precache_model(w_ak_gold);
//	precache_model(w_dg_gold);

	precache_model( PARACHUTE );

	m_spriteTexture = precache_model("sprites/dot.spr");	
}

public make_tracer(id)
{
	if(get_user_flags(id)&CLASSIC_VIP){
	if(get_pcvar_num(cvar_goldbullets))
	{
		new clip,ammo;
		new wpnid = get_user_weapon(id,clip,ammo);
		new pteam[16];
		
		get_user_team(id, pteam, 15)
		if ((bullets[id] > clip) && (wpnid==CSW_M4A1)&&(wpnid==CSW_AK47)&&(wpnid==CSW_DEAGLE) && gM4a1g[id]&&gAkg[id]&&gDglg[id] ) 
		{
		
			new vec1[3], vec2[3];
			get_user_origin(id, vec1, 1); // origin; your camera point.
			get_user_origin(id, vec2, 4); // termina; where your bullet goes (4 is cs-only)
						
			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY);
			write_byte (0);     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0]);
			write_coord(vec1[1]);
			write_coord(vec1[2]);
			write_coord(vec2[0]);
			write_coord(vec2[1]);
			write_coord(vec2[2]);
			write_short( m_spriteTexture );
			write_byte(1); // framestart
			write_byte(5); // framerate
			write_byte(2); // life
			write_byte(10); // width
			write_byte(0); // noise
			write_byte( 255 );     // r, g, b
			write_byte( 215 );       // r, g, b
			write_byte( 0 );       // r, g, b
			write_byte(200); // brightness
			write_byte(150); // speed
			message_end();			
		}
		bullets[id] = clip;
		}
	}
	return 1;
}

public death_event( ) 
{
	new id = read_data( 2 );
	parachute_reset( id );
}

parachute_reset( id ) 
{
	if( para_ent[ id ] > 0 ) 
	{
		if ( is_valid_ent( para_ent[ id ] ) ) 
		{
			remove_entity( para_ent[ id ] );
		}
	}
}

public newSpawn( id ) 
{
	if(para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		para_ent[ id ] = 0;
	}
	has_parachute[ id ] = true;
}

public client_parachute( id ) 
{
	if(get_user_flags(id)&CLASSIC_VIP) {
	if ( !get_pcvar_num( pEnabled ) ) return;
	if ( !is_user_alive( id ) || !has_parachute[ id ] ) return;

	new Float:fallspeed = get_pcvar_float( pFallSpeed ) * -1.0;
	new Float:frame;

	new button = get_user_button( id );
	new oldbutton = get_user_oldbutton( id );
	new flags = get_entity_flags( id );

	if ( para_ent[ id ] > 0 && ( flags & FL_ONGROUND ) ) 
	{

		if (get_pcvar_num( pDetach ) ) 
		{
			if ( entity_get_int( para_ent[ id ], EV_INT_sequence ) != 2 ) 
			{
				entity_set_int( para_ent[ id ], EV_INT_sequence, 2 );			//ZeniX  df : 2
				entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );
				entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_framerate, 0.0 );
				return;
			}

			frame = entity_get_float( para_ent[ id ], EV_FL_fuser1 ) + 2.0;
			entity_set_float( para_ent[ id ], EV_FL_fuser1, frame );
			entity_set_float( para_ent[ id ], EV_FL_frame, frame );

			if ( frame > 254.0 ) 		// 254.0 default
			{
				remove_entity( para_ent[ id ] );
				para_ent[ id ] = 0;
			}
		}
		else 
		{
			remove_entity( para_ent[ id ] );
			para_ent[ id ] = 0;
		}

		return;
	}

	if ( button & IN_USE ) 
	{
		new Float:velocity[ 3 ];
		entity_get_vector( id, EV_VEC_velocity, velocity );

		if ( velocity[ 2 ] < 0.0 ) 
		{
			if( para_ent[ id ] <= 0 ) 
			{
				para_ent[ id ] = create_entity( "info_target" );
				if( para_ent[ id ] > 0 ) 
				{
					entity_set_string( para_ent[ id ],EV_SZ_classname, "parachute" );
					entity_set_edict( para_ent[ id ], EV_ENT_aiment, id );
					entity_set_edict( para_ent[ id ], EV_ENT_owner, id );
					entity_set_int( para_ent[ id ], EV_INT_movetype, MOVETYPE_FOLLOW );
					entity_set_model( para_ent[ id ], PARACHUTE );					
					entity_set_int( para_ent[ id ], EV_INT_sequence, 0 );
					entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 ); // secventa de pers df :   1
					entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 ); // df : 0.0
					entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				}
			}

			if ( para_ent[id  ] > 0 ) 
			{
				entity_set_int( id, EV_INT_sequence, 3 );
				entity_set_int( id, EV_INT_gaitsequence, 1 );
				entity_set_float( id, EV_FL_frame, 1.0 );
				entity_set_float( id, EV_FL_framerate, 1.0 );

				velocity[ 2 ] = ( velocity[ 2 ] + 40.0 < fallspeed ) ? velocity[ 2 ] + 40.0 : fallspeed;
				entity_set_vector( id, EV_VEC_velocity, velocity );

				if ( entity_get_int( para_ent[ id ], EV_INT_sequence ) == 0 ) 
				{
					frame = entity_get_float( para_ent[ id ], EV_FL_fuser1 ) + 1.0;
					entity_set_float( para_ent[ id ], EV_FL_fuser1, frame );
					entity_set_float( para_ent[ id ], EV_FL_frame, frame );

					if ( frame > 100.0 ) 		// df 100.0
					{
						entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_framerate, 0.4 ); // cadru rata df : 0.4
 						entity_set_int( para_ent[ id ], EV_INT_sequence, 1 );
						entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );     // secventa de pers df :   1 
						entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
					}
				}
			}
		}
		else if ( para_ent[ id ] > 0 ) 
		{
			remove_entity( para_ent[ id ] );
			para_ent[ id ] = 0;
		}
	}
	else if ( ( oldbutton & IN_USE ) && para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		para_ent[ id ] = 0;
	}
	}
}
stock Color(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "!x04", "^4");
	replace_all(msg, 190, "!x01", "^1");
	replace_all(msg, 190, "!x03", "^3");
	
	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();
			}
		}
	}
}
//VECHI
CVARURI | Afiseaza codul
Cvaru-ri :

spawn_menu "1" // apare  menu la respawn pentru vipi ? 1 -da 0 nu
spawn_weap "1" // ramane arma la fiecare spawn ? 1-Da . 0-OFF

cv_maxjumps "1"  // Nr de sarituri 0 - Oprit

cv_gold_bullets "0" // Gloantele golden 1- ON | 0- OFF

cv_spawn_health "50" // Hp la fiecare Spawn
cv_spawn_armor "50" // AP la fiecare spawn

cv_b_kill "5"  // Hp Bonus pe kill
cv_b_kill_hs "10" // Headshot Hp Bonus pe kill
cv_b_kill_knife "15"  // knife Hp Bonus pe kill
cv_sv_parachute "1"  // parachuta activata pe server ?



VECHI
VECHI | Afiseaza codul
[/color]
Altele: Pluginul Nu are buguri + Testat, Functioneaza perfect
Cu Ocazia aceasta am facut  si la Aceasta Cerere

Descarcare:
Aveti Toate resursele
DOWNLOAD 

Folositi Sursa de aici

Aici sursa  [sursa=classic_vip.sma]/*		PLUGIN CREAT DE ZeniX aka lucy 
					REALIZAT IN TOTALITATE + CVAR 2013
						V 0.1
						
	// CVAR

	bullets_gold "0"			// CVAR sa apara linile golden cand tragi ;) 1- ON / 0- OFF
	
	bonus_status "1"			// CVAR sa fie activat Pluginul BONUS 1- ON /0 - OFF
	bonus_maxhealth "255"		// CVAR MAXIMUM de bonus cat sa aibe un player default 255 

	bonus_knife "0"				// CVAR BONUS kill cutit kill 0 dezactivat / default 10
	bonus_knifeheadshot "20" 	// CVAR BONUS kill cutit kill/headshot 0 dezactivat / default 20
	bonus_kill "25"				// BOnus kill
	bonus_hs", "55")			// Bonus kill HS	
		
*/
#include <amxmodx>
#include <fun>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <hamsandwich>
#include <fakemeta_util>


#define PLUGIN	"Classic VIP"
#define VERSIUNE "0.1"

#define CLASSIC_VIP ADMIN_LEVEL_H

static const COLORG[] = "^x04"
static const COLORD[] = "^x01"
static const COLORT[] = "^x03"

/*
new v_Ak47_Gold [ ] = "models/v_golden_ak47.mdl"
new p_Ak47_Gold [ ] = "models/p_golden_ak47.mdl"

new v_M4a1_Gold [ ] = "models/v_golden_m4a1_UP.mdl"
new p_M4a1_Gold [ ] = "models/p_golden_m4a1_UP.mdl"

new v_Golden_Deagle [ ] = "models/v_golden_deagle.mdl"
new p_Golden_Deagle [ ] = "models/p_golden_deagle.mdl"
*/

new b_Status, b_MaxHealth, b_Kill, b_Knife, b_Headshot, b_KnifeHeadshot
new bullets[ 33 ], m_spriteTexture
new cvar_goldbullets
new maxplayers, gmsgSayText
//, g_msgSayText

new ViewModels [ ] [ ] = {
	
	"models/v_golden_m4a1.mdl",
	"models/v_golden_ak47.mdl",
	"models/v_golden_deagle.mdl"
}

new PlayersModels [ ] [ ] = {
	
	"models/p_golden_m4a1.mdl",	
	"models/p_golden_ak47.mdl",
	"models/p_golden_deagle.mdl"
}

public plugin_init ( ) {

	register_plugin ( PLUGIN, VERSIUNE, "zenix aka lucylucy" );

	register_clcmd ( "say /arme", "ApperNext", CLASSIC_VIP );
	register_clcmd ( "say_team /arme", "ApperNext", -1 );
	register_clcmd("say /vreauvip", "ShowMotd");

	register_event( "CurWeapon", "bullets_gold", "be", "1=1", "3>0");
	register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
	register_event( "DeathMsg", "EventKillBonus", "a", "1>0" );

	RegisterHam ( Ham_Spawn, "player", "ApperNext", 1 );
	RegisterHam ( Ham_Spawn, "player", "Player_Spawn", 1);
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
	
	maxplayers = get_maxplayers()
	gmsgSayText = get_user_msgid("SayText")
	register_clcmd("say", "handle_say")
	
	//register_logevent("round_start", 2, "1=Round_Start")
	
	// CVAR-uri .. La Greu ;) ZeNiX	
	cvar_goldbullets = register_cvar("bullets_gold", "0");	// CVAR sa apara linile gol cand tragi ;) 1- ON / 0- OFF
	
	b_Status = register_cvar("bonus_status", "1");	// CVAR sa fie activat Pluginul BONUS 1- ON /0 - OFF
	b_MaxHealth = register_cvar("bonus_maxhealth", "255");	// CVAR MAXIMUM de bonus cat sa aibe un player default 255 

	b_Knife = register_cvar("bonus_knife", "0");		// CVAR BONUS kill cutit kill 0 dezactivat / default 10
	b_KnifeHeadshot = register_cvar("bonus_knifeheadshot", "20"); // CVAR BONUS kill cutit kill/headshot 0 dezactivat / default 20
	b_Kill = register_cvar("bonus_kill", "25");	// BOnus kill
	b_Headshot = register_cvar("bonus_hs", "55");	// Bonus kill HS
	

}

public plugin_precache ( ) {
/*
	precache_model ( v_Ak47_Gold )
	precache_model ( p_Ak47_Gold )

	precache_model ( v_M4a1_Gold )
	precache_model ( p_M4a1_Gold )

	precache_model ( v_Golden_Deagle )
	precache_model ( p_Golden_Deagle )
*/
	new lucy;
	for ( lucy = 0; lucy < sizeof ( ViewModels ); lucy++ )
		engfunc ( EngFunc_PrecacheModel, ViewModels [ lucy ] );
	new zenix;
	for ( zenix = 0; zenix < sizeof ( PlayersModels ); zenix++ )
		engfunc ( EngFunc_PrecacheModel, PlayersModels [ zenix ] );	
		
	m_spriteTexture = precache_model("sprites/dot.spr")	
}

	
public Player_Spawn(id) 
{ 
   	new iPlayers [ 32 ], iNum, i;
	get_players ( iPlayers, iNum );
	
	for ( i = 0; i < iNum; i++ )
	{
		if( !is_user_alive ( iPlayers [ i ] ) )
			continue;

		if(get_user_flags(id) & CLASSIC_VIP) {
		
		fm_strip_user_weapons ( iPlayers [ i ] );
		set_pdata_int ( iPlayers [ i ], 116, 0 );
		give_item(id, "weapon_deagle") 
		give_item(id, "weapon_knife") 
		fm_give_item(id, "weapon_hegrenade") 
                fm_give_item(id, "weapon_hegrenade")             
                give_item(id, "weapon_flashbang")  
                give_item(id, "weapon_flashbang") 
		give_item(id, "weapon_smokegrenade") 
	}
	}
}

/*
 if(is_user_alive(id)) 
    { 
        new CsTeams:team = cs_get_user_team(id)
        switch(team) 
        { 
            case 0: 
            { 
                strip_user_weapons(id) 
                give_item(id, "weapon_knife") 
		give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_hegrenade")               
                give_item(id, "weapon_flashbang") 
                give_item(id, "weapon_flashbang")
		give_item(id, "weapon_smokegrenade")
            } 

	}

    }
*/

public ApperNext ( id ) {
	
	if ( get_user_team ( id ) == 1 && get_user_flags(id) & CLASSIC_VIP ) {
		
		set_task( 0.1, "ArmeVip", id );
	}
	
	if ( get_user_team ( id ) == 2 && get_user_flags(id) & CLASSIC_VIP ) {
		
		set_task( 0.1, "ArmeVip", id );
	}
	
}

public ArmeVip ( id, level, cid ) {

	new menu = menu_create ( "\rARME \yVIP", "ArmeVipGiver" );

	menu_additem ( menu, "\wM4A1 + Deagle \yGOLDEN \r X2 DMG", "1", 0);
	menu_additem ( menu, "\wAK47 + Deagle \yGOLDEN \r X2 DMG", "2", 0);
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	
	return 1;
}

public ArmeVipGiver ( 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:
		{
			fm_give_item(id, "weapon_m4a1");
			fm_give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)

			ColorChat ( id, TEAM_COLOR, "Ai Primit M4A1 + Deagle Golden !");
		}
		case 2:
		{
			fm_give_item(id, "weapon_ak47");
			fm_give_item(id, "weapon_deagle");		
			cs_set_user_bpammo(id, CSW_AK47, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);	
		
			ColorChat ( id, TEAM_COLOR, "Ai Primit AK47 + Deagle Golden !");			
		}
	}
	return 1;
}

public CurrentWeapon ( id ) {
	
	new szWeapon = get_user_weapon ( id ) ;
	if ( szWeapon == CSW_M4A1 && get_user_flags( id ) & CLASSIC_VIP ) {
		
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
		set_pev ( id, pev_weaponmodel2, PlayersModels [ 0 ] );
		
	}
	
	if ( szWeapon == CSW_AK47 && get_user_flags( id ) & CLASSIC_VIP) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
		set_pev ( id, pev_weaponmodel2, PlayersModels [ 1 ] );
		
	}

	if ( szWeapon == CSW_DEAGLE && get_user_flags( id ) & CLASSIC_VIP) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
		set_pev ( id, pev_weaponmodel2, PlayersModels [ 2 ] );
		
	}
	
	return 1;
}

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {

    if ( get_user_weapon ( iAttacker ) == CSW_M4A1 && get_user_flags( iAttacker ) & CLASSIC_VIP   ) {
        
        SetHamParamFloat( 4, fDamage * 2.0);
        return HAM_HANDLED;
        
    }
   
    if (  get_user_weapon ( iAttacker ) == CSW_AK47 && get_user_flags( iAttacker ) & CLASSIC_VIP ) {
        
        SetHamParamFloat( 4, fDamage * 2.0);
        return HAM_HANDLED;
        
    }
	
    if ( get_user_weapon ( iAttacker ) == CSW_DEAGLE && get_user_flags( iAttacker ) & CLASSIC_VIP ) {
        
        SetHamParamFloat( 4, fDamage * 2.0);
        return HAM_HANDLED;
        
    }
    
    return HAM_IGNORED;
    
}


public ShowMotd(id) {
        new iCfgDir[32], iFile[192];
        
        get_configsdir(iCfgDir, charsmax(iCfgDir));
        formatex(iFile, charsmax(iFile), "%s/vip.html", iCfgDir);

        show_motd(id, iFile);
}
/*
public client_authorized ( id ) {

	set_task(30.0, "PrintChat" ,id)

}

public PrintChat ( id ) {

	//client_print(id, print_chat, "\r[VIP] \wScrie in chat \r/vreauvip \wpentru Beneficile VIP.")
	ColorChat ( id, GREEN, "Scrie in chat /vreauvip pentru Beneficiile VIP !");

}
*/

public bullets_gold(id)
{
	if (get_pcvar_num(cvar_goldbullets) && get_user_flags( id ) & CLASSIC_VIP )
	{
		new clip,ammo
		new wpnid = get_user_weapon(id,clip,ammo)
		new pteam[16]
		
		get_user_team(id, pteam, 15)
		
		if ((bullets[id] > clip) && (wpnid == CSW_AK47, CSW_M4A1, CSW_DEAGLE && get_user_flags( id ) & CLASSIC_VIP) ) 
		{
			new vec1[3], vec2[3]
			get_user_origin(id, vec1, 1) // origin; your camera point.
			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
			
			
			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (0)     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0])
			write_coord(vec1[1])
			write_coord(vec1[2])
			write_coord(vec2[0])
			write_coord(vec2[1])
			write_coord(vec2[2])
			write_short( m_spriteTexture )
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // life
			write_byte(10) // width
			write_byte(0) // noise
			write_byte( 255 )     // r, g, b
			write_byte( 215 )       // r, g, b
			write_byte( 0 )       // r, g, b
			write_byte(200) // brightness
			write_byte(150) // speed
			message_end()
		}
		
		bullets[id] = clip
	}
	
}

/*
    new killer = read_data(1);
    new victim = read_data(2);
    new headshot = read_data(3);
*/

public EventKillBonus() {
    new killer 
    new victim
    new headshot
    new weapon = get_user_weapon(killer);
    new num;
    
    if(killer == victim || !get_pcvar_num(b_Status) || !is_user_connected(victim) || !is_user_alive(killer) && get_user_flags( killer ) & CLASSIC_VIP)
        return PLUGIN_HANDLED;
    
    if(headshot && weapon == CSW_KNIFE ) {
        num = get_pcvar_num(b_KnifeHeadshot)
        GiveHealth(killer, num)
        HudMessage(killer, "Ai primit +%ihp", num)
    } else if(headshot) {
        num = get_pcvar_num(b_Headshot)
        GiveHealth(killer, num)
        HudMessage(killer, "Ai primit +%ihp pentru HS", num)
    } else if(weapon == CSW_KNIFE) {
        num = get_pcvar_num(b_Knife)
        GiveHealth(killer, num)
        HudMessage(killer, "Ai primit +%ihp", num)
    } else {
        num = get_pcvar_num(b_Kill)
        GiveHealth(killer, num)
        HudMessage(killer, "Ai primit +%ihp pentru Kill", num)
    }
    return PLUGIN_CONTINUE;
}

GiveHealth(id, count)
    set_user_health(id, min( (get_user_health(id) + count), get_pcvar_num(b_MaxHealth) ))

stock HudMessage(const id, const input[], any:...) {
    static msg[191];
    vformat(msg, 190, input, 3);
    
    set_hudmessage(255, 255, 0, 0.27, 0.14, 0, 5.0, 5.0, 0.0, 0.0, -1);
    show_hudmessage(id, "%s^n%s", msg)
}
/*
stock client_printcolor(id, const message[], any:...)
{
	static buffer[512], argscount
	argscount = numargs()
	
	if (!id) {
		
		static players[32], num, player, i, i2
		get_players(players, num , "ch")
			
		for (i = 0; i < num; i++) {
			
			player = players
			
			static changed[5], changedcount
			changedcount = 0
			
			for (i2 = 2; i2 < argscount; i2++)
			{
				if (getarg(i2) == LANG_PLAYER)
				{
					setarg(i2, 0, player)
					changed[changedcount] = i2
					changedcount++
				}
			}
			
			vformat(buffer, charsmax(buffer), message, 3)
			
			replace_all(buffer, charsmax(buffer), "/g", "^4")
			replace_all(buffer, charsmax(buffer), "/y", "^1")
		
			message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
			write_byte(player)
			write_string(buffer)
			message_end()
			
			for (i2 = 0; i2 < changedcount; i2++)
				setarg(changed[i2], 0, LANG_PLAYER)
		}
	}
	else {
		
		vformat(buffer, charsmax(buffer), message, 3)
		
		replace_all(buffer, charsmax(buffer), "/g", "^4")
		replace_all(buffer, charsmax(buffer), "/y", "^1")
		
		message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id)
		write_byte(id)
		write_string(buffer)
		message_end()
	}
}
*/
public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "vips") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_viplist",id)
	return PLUGIN_CONTINUE
}

public print_viplist(user) 
{
	new adminnames[33][32]
	new message[256]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & CLASSIC_VIP)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "%s VIPI ONLINE: ",COLORG)
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "^x03%s%s ", adminnames[x], x < (count-1) ? ", ":"", COLORT)
			if(len > 96 ) {
				print_message(user, message)
				len = format(message, 255, "%s ",COLORG)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "^x01Nu sunt VIPI online.", COLORD)
		print_message(user, message)
	}
	
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
	write_byte(id)
	write_string(msg)
	message_end()
}

/*';';';';';';';'';';';';';';';'';';';';';';';'';';';';';';';'
;'	Plugin						    ;'
;'							    ;'
;'		By	23:16 AM			    ;'
;'				  2.07.2013	FINISH..    ;'
;'	ZeniX aka lucy					    ;'
';';';';';';';'';';';';';';';'';';';';';';';'';';';';';';';';'
*/



Nume: ZeniX aka lucylucy (eu)
Versiune: 0.1
Link oficial: aici

Instalare:
1. Fisierul classic_vip.sma il puneti in addons/amxmodx/scripting
2. Fisierul classic_vip.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

classic_vip.amxx
Cvar-uri :[/b]
Le aveti in Sursa + ce face fiecare


Module necesare :[/b]
Intrati in addons/amxmodx/configs/modules si stergeti ";" din fata Modulelor :

Code: Select all

fun
fakemeta
cstrike
hamsandwich

Imagini:

Image
Image
Image

PS: Primul meu plugin mai "complicat", Multumesc scripterilor de aici Pentru ca tot de la ei am invatat .
[/Sursa]
Last edited by alkaline on 04 Feb 2014, 22:46, edited 34 times in total.
RoyalServer
M3taph0riK
Membru eXtream
Membru eXtream
Posts: 2127
Joined: 16 Jan 2013, 12:55
Detinator Steam: Da
CS Status: Utilizator Serios
SteamID: Utilizator Serios
Reputatie: Restrictie moderator
Nume anterior: RzV24
Utilizator neserios (tepar)
Has thanked: 60 times
Been thanked: 250 times

04 Jul 2013, 10:15

Puteai sa faci o descriere mai ampla a pluginului + niste poze sa vada tot poporu ce si cum. Oricum felicitari pentru munca depusa !
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

04 Jul 2013, 10:41

Code: Select all

public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "vips") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_viplist",id)
	return PLUGIN_CONTINUE
}

public print_viplist(user) 
{
	new adminnames[33][32]
	new message[256]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & CLASSIC_VIP)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "%s VIPI ONLINE: ",COLORG)
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "^x03%s%s ", adminnames[x], x < (count-1) ? ", ":"", COLORT)
			if(len > 96 ) {
				print_message(user, message)
				len = format(message, 255, "%s ",COLORG)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "^x01Nu sunt VIPI online.", COLORD)
		print_message(user, message)
	}
	
}
Puteai sa faci ceva mai simplu.. de exemplu sa arate doar cati sunt online, nu si numele lor..
Retras
User avatar
alkaline
Fost moderator
Fost moderator
Posts: 734
Joined: 18 Jul 2012, 09:42
Detinator Steam: Da
Reputatie: Fost Moderator ajutator
Nume anterior: lucylucy
Fond eXtream: 0
Location: Caras-Severin
Has thanked: 5 times
Been thanked: 296 times

04 Jul 2013, 14:58

RzV24 wrote:Puteai sa faci o descriere mai ampla a pluginului + niste poze sa vada tot poporu ce si cum. Oricum felicitari pentru munca depusa !
Am adaugat Pozele
puMf wrote:

Code: Select all

public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "vips") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_viplist",id)
	return PLUGIN_CONTINUE
}

public print_viplist(user) 
{
	new adminnames[33][32]
	new message[256]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & CLASSIC_VIP)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "%s VIPI ONLINE: ",COLORG)
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "^x03%s%s ", adminnames[x], x < (count-1) ? ", ":"", COLORT)
			if(len > 96 ) {
				print_message(user, message)
				len = format(message, 255, "%s ",COLORG)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "^x01Nu sunt VIPI online.", COLORD)
		print_message(user, message)
	}
	
}
Puteai sa faci ceva mai simplu.. de exemplu sa arate doar cati sunt online, nu si numele lor..
DA dar arata admini uitate in poza 3
cRi
Membru, skill +2
Membru, skill +2
Posts: 786
Joined: 09 Dec 2011, 20:10
Detinator Steam: Nu
Reputatie: Fost Membru Club eXtreamCS (25 Ian - 25 Mai)
Location: Bacau
Has thanked: 21 times
Been thanked: 22 times
Contact:

05 Jul 2013, 10:54

Interesant dar am citit fiecare linie si nu cred ca e nevoie sa scrii tot felul de porcarii mai ales cum e la final la ce ora ai facut plugin si pe ce data. Mie unul chiar mi se pare fain pluginul dar de curiozitate? Tu l-ai facut in totalitate sau unele linie le-ai pastrat sa zic "asa" de la altii precum compaq sau Rap , stiu ca ei folosesc g_Max , iPlayer sau ceva de genul .
B|ravo din nou , chiar imi place pluginul
Imagecristipaul43
REGULI GENERALE : Afișează regulile forumului
1. Utilizati corect limba romana (folositi cuvinte intregi, virgula, punctul si cratima). NU FOLOSITI limbaj de chat!
2. Raspundeti concret! Fara offtopic, fara mesaje scurte, inutile sau deja postate!
* offtopic = reprezinta devierea de la subiectul care se discuta
3. Folosirea cuvintelor sau inregistrarea cu nume obscene/jignitoare duce la restrictionarea accesului, stergerea contului, etc.
4. Este interzis orice atac la persoana. Discutati ideea, nu persoana !
5. Restrictii reclame :
a) Reclama este permisa in subiecte atat timp cat ele au legatura cu idea care se discuta.
b) In semnatura este permisa o singura reclama SIMPLA de tip TEXT cu dimensiunea fontului setat pe NORMAL
c) Reclama nu este permisa in campurile personale gen: Locatie, CS Status.
d) Nu aveti voie sa deschideti topicuri cu referire exacta la un site in scopul obtinerii de vizite, se considera reclama !
6. Nu folositi imagini in semnatura mai mari decat 500x120. Puteti folosi mai multe imagini care, toate sa nu depaseasca marimea impusa !
7. Folositi CAUTAREA si apoi intrebati pentru ceva daca nu exista pe forum! Numele topicurilor create trebuie sa reflecte continutul subiectului pe care se discuta. Nu vor fi permise topicuri de genul: help, ajutor pls, cum fac, etc
8. Este permisa continuarea unei discutii vechi de pe forum, chiar daca aceasta a fost deschisa cu cativa ani in urma. NU se permite insa dublu-post, triplu-post sau UP-uri.
* dublu-post / triplu - post = adaugarea unor mesaje unul dupa altul intr-o discutie a forumului de catre aceeasi persoana
* UP = adaugarea unor mesaje unul dupa altul cu scopul de a scoate in evidenta discutia respectiva
9. Orice fel de continut cu caracter erotic va fi sters, iar daca este necesar se vor aplica avertismente.
10. Nu este permisa promovarea firmelor de hosting in afara de http://www.eXtreamHost.com , fie ca este vorba de o reclama directa sau indirecta.
11. Nu este permisa postarea de continut ilegal: warez, carding (bine cunoscutele "metode" de furat domenii etc.) si alte practici "neortodoxe", se vor aplica avertismente sau ban, dupa caz si antecedente.

SANCTIONAM DRASTIC INCALCAREA ACESTOR REGULI SI ORICE ABUZ !


WARNINGS/Avertismente
3 Avertismente = BAN pe forum pentru o anumita perioada de timp, in functie de gravitatea regulilor incalcate!
1 Avertisment = 15 de zile

Mesaje private
Abuzul in orice fel de folosirea mesajelor private va duce la sanctionare. In concluzie, vi se va lua dreptul de a mai trimite mesaje.
Reclamatiile cat si penalizarile se regasesc aici: discutii-forum/reclamatii-mesaje-private-t335539.html

Suplimentar
1. In semnatura nu sunt permise linkuri catre jocuri (site-uri) gen bitefight, monstergame, etc.
2. La profilul Detinator server CS se permite reclama catre un server de Counter-Strike.
3. Orice insulta adusa asupra unui administrator se penalizeaza cu ban permanent. Orice insulta adusa asupra unui moderator se penalizeaza (in functie de gravitatea situatiei) de la avertisment pana la ban permanent.
4. Nu se permite ridicarea subiectelor cu mesaje gen "UP!" unul dupa altul, indiferent de timpul dintre raspunsuri.


Atentionari
1. Nu se permite schimbarea numelui pe forum
2. Nu aveti voie cu mai mult de 1 cont / persoana (vi se sterg toate mesajele si contul de utilizator de pe forum drept penalizare) - cei care abuzeaza si isi fac mai multe conturi, risca sa primeasca ban permanent

 

[regulia][/regulia]
Model postare addonsuri : Afiseaza modelul
Acesta este un tip standard pentru postarea unui addons

A. Continut

- Nu mai stergeti folderul scripting din amxmodx pe motiv ca nu avem nevoie sau ca face lag !
- Nu includeti in addons mai multe pluginuri care fac acelasi lucru, gen hpk.
- Nu includeti in addons pluginul show_ip la care orice jucator are acces la comanda amx_ipban.
- Nu includeti in addons pluginuri care nu stiti ce fac.
- Nu personalizati addons-ul cu reclame catre alte site-uri/forum-uri,etc...
- Postati intotdeauna .sma-ul pluginurilor incluse.

B. Postare

Titlul: Va contine tipul addons-ului ( amxmodx/amxmod/adminmod/war3ft/superhero/csdm/etc..)
- Va rog nu folositi in numele topic-ului caractere ! Gen : "-->> addons by me <--"
- Deoarece am observat cateva confuzii, cand postati un addons, nu scrieti in interiorul postului "titlu : addons,blablabla"


Descriere:

Ce contine addons-ul. Adica ce mod, ce versiune, ce alte facilitati are in plus (booster,hlguard,webmod,statsme,etc.)
* Puteti folosi urmatorii termeni :

* Normal - addons standard.
* Normal+ - addons standard dar cu cateva lucruri modificate.
* War3ft - addons cu puteri war3ft.
* UWC3 - addons cu puteri war3ft diverse.
* Respawn/CSDM - addons care te reinvie imediat dupa ce mori.
* Soccerjam - addons cu fifa/cs instalat.
* Zombie - addons in care jucatorii trebuie 'infectati' de un zombie.
* DeathRun - addons in care jucatorii trebuie sa treaca de obstacole
* Hide N'Seek - addons in
* Divers - addons Neinclus in aceste tipuri (daca credeti ca mai trebuie adaugat un alt tip trimiteti-mi mesaj pe privat !)

Autor: Cine a facut addonsul respectiv
Versiune: 1.x 2.x
Descarcare:

Code:
[url=Linkul_catre_addons]Link![/url]


Pluginuri: aici veti scrie ce pluginuri are addons-ul postat (fara cele de baza) si ce fac acestea !
plugin1.amxx - ce face pluginul respectiv
plugin2.amxx - ce face pluginul respectiv
plugin3.amxx - ce face pluginul respectiv

ATENTIE !
- Daca vreti sa postati un addons care nu este facut de dvs.,folositi intai cautarea pentru a va asigura ca addons-ul respectiv nu este deja postat de altcineva !
- De asemenea,daca incercati sa ne pacaliti cu un addons copiat si punandu-va pe dvs ca si autor,topicul va fi mutat la Cos si riscati sa primiti warn !
- NU postati tot link-ul catre addons ! Ci folositi ]URL :
Code:
[url=linkul_catre_addons]cuvant[/url]


C. Raspuns/Reply
1.Cei care posteaza addons-ul !
Daca vi se zice "gj,misto addons" nu raspundeti cu "merci,alte pareri",etc...

2.Cei care raspund !
Nu faceti reply-uri de gen-ul "gj","bravo","misto addons","gg tare",etc...

3.Copiere !
Daca vi se pare ca un addons postat este copiat, nu faceti replay cu "copiat,praf","addons-ul este copiat","nu tu l-ai facut".etc.. ci veniti cu o dovada daca vreti sa fiti bagati in seama! Daca aduceti acuzatii false riscati sa primiti warn ! De asemenea, nu aduceti cuvinte vulgare la adresa autorului, veti primi fara nici o ezitare warn sau chiar ban !
Model postare servere :Afiseaza modelul
Va rugam respectati urmatorul model de postare al serverului, completand campurile cu datele corecte:

Titlul va contine: NUMELE / ADRESA IP a serverului si in paranteze patrate Non.Steam / Steam / Steam & Non.Steam
Adresa poate fi de tip: NUME / IP
Port: portul acestuia
Jucatori: 18 / 22 / 24 (sau cat aveti setat)
Tipul poate fi: Non.Stop (merge 24/24 ore) sau PartTime (functioneaza doar ziua sau intre anumite ore ale zilei/noptii)
Modul poate fi: Normal / ZombieMod / SourceMod / Metamod:Source

Anticheat: Protejat / Neprotejat
Tara: RO / US / DE (sau orice alte INITIALE ale tarii respective)

EXEMPLU:
Titlu (sau numele topicului): ExTrEaM [Steam & Non.Steam]
Continut:
    Adresa: extream.idle.ro (acesta este doar un exemplu!)
    Port: 27015
    Jucatori: 18
    Tip: Non.Stop
    Mod: Normal
    Anticheat: Neprotejat
    Tara: RO

----------- Sfarsit exemplu ---------------------

* Nu va lasati adresa la SITE / FORUM in model pentru ca se considera reclama si primiti avertisment sau topicul dvs. ajunge la cos!
* Titlurile vor fi colorate cu rosu ca in exemplul de deasupra !
* Cine NU respecta modelul prezentat i se va STERGE topicul !!
* NU aveti voie sa adaugati comentarii de genul: serverul meu este cel mai tare..etc. pentru ca iarasi vi se va sterge topicul ! Insa puteti lasa alte informatii diverse (un ID Yahoo, un mail, etc.)
User avatar
alkaline
Fost moderator
Fost moderator
Posts: 734
Joined: 18 Jul 2012, 09:42
Detinator Steam: Da
Reputatie: Fost Moderator ajutator
Nume anterior: lucylucy
Fond eXtream: 0
Location: Caras-Severin
Has thanked: 5 times
Been thanked: 296 times

05 Jul 2013, 10:57

Da , am vazut ca ei stiu sa scripteze, dupa ei am invatat cum se face , ce functie are fiecare etc., da eu l-am scris pe tot
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

08 Jul 2013, 10:40

Ca si o optimizare: Creaza meniul in plugin_cfg( ) si, cand este comanda chemata, sa ii dai meniul. (menu_display( ... ))
Retras
User avatar
Chris Duskblade
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 2780
Joined: 18 Jun 2013, 16:46
Detinator Steam: Da
Reputatie: Fost super moderator
Nume anterior: Cristinel.
Utilizator neserios (tepar)
Location: Timișoara
Has thanked: 62 times
Been thanked: 15 times
Contact:

14 Jul 2013, 01:39

am o intrebare? modelele de la armele golden ? :-s si am primit si o chestie colorchat.txt cu aia ce fac ?
User avatar
alkaline
Fost moderator
Fost moderator
Posts: 734
Joined: 18 Jul 2012, 09:42
Detinator Steam: Da
Reputatie: Fost Moderator ajutator
Nume anterior: lucylucy
Fond eXtream: 0
Location: Caras-Severin
Has thanked: 5 times
Been thanked: 296 times

14 Jul 2013, 20:21

Modelel l-eam pus mai sus un link de downlaod si colorchat nu il faci .txt il transformi in

Code: Select all

colorchat.inc 
si il adaugi in scriptings/include ca sa poata fi compilat
User avatar
MasterKiss
Membru, skill 0
Membru, skill 0
Posts: 6
Joined: 21 Jun 2013, 07:51
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Contact:

02 Aug 2013, 08:10

Super imi place BRAVA =D> =D> =D> =D>
smileye
Fost moderator
Fost moderator
Posts: 4648
Joined: 12 Jun 2012, 15:18
Detinator Steam: Da
Reputatie: Fost moderator
Has thanked: 258 times
Been thanked: 38 times
Contact:

02 Aug 2013, 11:01

La ce accese de Vip da aceste beneficii?
Poti seta niste accese din sursa, sau pe ce criteriu le da? Oricine scrie /vreuarme,/arme samd?

Si inca ceva:
Ai putea sa il faci mai frumos prin
- pui la cei de la Vip sa poata avea parasuta pe server, ceilalti nu, doar cei cu acces vip care au literele corespunzatoare sursei
- sa dea grenade la alegere smoke/he daca omoara pe cineva cu he care l-am cumparat
- sa scoti faza cu gloante golden ca e cam naspa sa incarci serverul cu modele sau linii golden cum are momentan pluginul
User avatar
DenysaEu
Membru, skill +2
Membru, skill +2
Posts: 551
Joined: 08 Jul 2013, 13:53
Detinator Steam: Da
CS Status: I'm a writer. Therefore. I am not sane.
Detinator server CS: Nup!
SteamID: teqdenyeu182
Location: Oradea
Has thanked: 18 times
Been thanked: 17 times
Contact:

08 Aug 2013, 18:33

Voi adauga vipul si pe sv meu.

Mersi si gj
I'm a writer. Therefore. I am not sane.
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests