Page 1 of 1

Plugin Gold Weapons

Posted: 10 Aug 2019, 13:31
by Damageee
Plugin Cerut:Gold weapons
Descriere (adica ce face el mai exact): Sa scriu /vmenu si sa imi apara un meniu cu arme gold si sa dea 2x damage doar la vip, flagul "q", parca era ADMIN_LEVEL_E, armele pe care le vreau sa apara in meniu:AK47 + DEAGLE, M4A1 + DEAGLE si AWP + DEAGLE
Serverul ruleaza (HLDS/ReHLDS):ReHLDS
Versiune AMX Mod X:1.3.1
Modul Serverului:Furien

Re: Plugin Gold Weapons

Posted: 10 Aug 2019, 14:55
by levin

Code: Select all

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>

#define VIP_LEVEL ADMIN_LEVEL_E //flag Q
#define VIP_BONUS_DMG 2.0
#define TAG "!v[!nESTRIKE!v]!n"

new const VWM[][] =
{
	"models/vip/v_m4a1_golden.mdl",
	"models/vip/v_ak47_golden.mdl",
	"models/vip/v_awp_golden.mdl",
	"models/vip/v_dg_golden.mdl"
}

new const WEAPONENTNAMES[][] =
{
	"weapon_m4a1",
	"weapon_ak47",
	"weapon_awp",
	"weapon_deagle"
}

#define is_valid_player(%1) (1 <= %1 <= g_MaxPlayers)

new bool:choice_m4[33],bool:choice_ak[33],bool:choice_awp[33],bool:choice_dg[33]

new g_MaxPlayers;

public plugin_init()
{
       register_clcmd ( "say /vmenu", "DisplayMenu",VIP_LEVEL );
       register_clcmd ( "say_team /vmenu", "DisplayMenu",VIP_LEVEL );

       RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1 )
       for (new i; i < sizeof WEAPONENTNAMES; i++)	if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
       RegisterHam(Ham_TakeDamage, "player", "player_damage",1)
       g_MaxPlayers = get_maxplayers();
}

public plugin_precache()	for (new i; i < sizeof VWM; i++)	precache_model(VWM[i]);

public DisplayMenu( id )
{
	new menu = menu_create( "Equipment", "menu_handler" )

	menu_additem( menu, "AK47 + DEAGLE", "1" )
	menu_additem( menu, "M4A1 + DEAGLE", "2" )
	menu_additem( menu, "AWP + DEAGLE", "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:
		{       
			choice_ak[id] =choice_dg[id]= true
			give_item(id, "weapon_ak47")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_AK47, 90)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e AK47!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}
		case 2:
		{
			choice_m4[id] =choice_dg[id]= true
			give_item(id, "weapon_m4a1")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e M4A1!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}
		case 3:
		{
			choice_awp[id] =choice_dg[id]= true
			give_item(id, "weapon_awp")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_AWP, 30)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e AWP!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}  
	}
	menu_destroy(Menu) 
	return PLUGIN_HANDLED
}

public PlayerSpawn(id)
{
	if(is_user_connected(id)&&is_client_vip(id))
	{
		if(choice_m4[id])	choice_m4[id]=false
		if(choice_ak[id])	choice_ak[id]=false
		if(choice_awp[id])	choice_ak[id]=false
		if(choice_dg[id])	choice_dg[id]=false
	}
}

public player_damage(victim, inflictor, attacker, Float:damage, bits)
{
	if(!is_user_alive(attacker))	return HAM_IGNORED;
	if(is_valid_player(attacker)&&is_client_vip(attacker))
	{
		SetHamParamFloat(4, damage * VIP_BONUS_DMG)
		return HAM_SUPERCEDE;
	}

	return HAM_HANDLED;
}

public OnItemDeployPost(ent)
{
	if( pev_valid(ent) != 2 )	return
	static id; id = get_pdata_cbase(ent, 41, 4);

	if(pev_valid(id)&&is_user_alive(id)&&is_client_vip(id))
	{
	switch(cs_get_weapon_id(ent))//n am chef de enum....
	{
		case CSW_M4A1:
		{
			if(choice_m4[id])	set_pev(id, pev_viewmodel2, VWM[0])
			//set_pev(id, pev_weaponmodel2, "models/p_custom.mdl")
		}
		case CSW_AK47:	if(choice_ak[id])	set_pev(id, pev_viewmodel2, VWM[1])
		case CSW_AWP:	if(choice_awp[id])	set_pev(id, pev_viewmodel2, VWM[2])
		case CSW_DEAGLE:	if(choice_dg[id])	set_pev(id, pev_viewmodel2, VWM[3])
	}
	}
}

is_client_vip(id)
{
	if(get_user_flags(id) & VIP_LEVEL)	return true

	return false
}

stock xCoLoR(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!n", "^1");
	replace_all(szMesage, charsmax(szMesage), "!e", "^3");
	replace_all(szMesage, charsmax(szMesage), "!v", "^4");
	replace_all(szMesage, charsmax(szMesage), "!e2", "^0");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)	g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "c");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}

Re: Plugin Gold Weapons

Posted: 10 Aug 2019, 16:15
by Damageee
e bug, pot sa iau si la tero armele, fa sa le pot lua doar la ct

Re: Plugin Gold Weapons

Posted: 10 Aug 2019, 17:58
by levin
Δƒsta nu e bug:))

Code: Select all

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>

#define VIP_LEVEL ADMIN_LEVEL_E //flag Q
#define VIP_BONUS_DMG 2.0
#define TAG "!v[!nESTRIKE!v]!n"

new const VWM[][] =
{
	"models/vip/v_m4a1_golden.mdl",
	"models/vip/v_ak47_golden.mdl",
	"models/vip/v_awp_golden.mdl",
	"models/vip/v_dg_golden.mdl"
}

new const WEAPONENTNAMES[][] =
{
	"weapon_m4a1",
	"weapon_ak47",
	"weapon_awp",
	"weapon_deagle"
}

#define is_valid_player(%1) (1 <= %1 <= g_MaxPlayers)

new bool:choice_m4[33],bool:choice_ak[33],bool:choice_awp[33],bool:choice_dg[33]

new g_MaxPlayers;

public plugin_init()
{
       register_clcmd ( "say /vmenu", "DisplayMenu",VIP_LEVEL );
       register_clcmd ( "say_team /vmenu", "DisplayMenu",VIP_LEVEL );

       RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1 )
       for (new i; i < sizeof WEAPONENTNAMES; i++)	if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
       RegisterHam(Ham_TakeDamage, "player", "player_damage",1)
       g_MaxPlayers = get_maxplayers();
}

public plugin_precache()	for (new i; i < sizeof VWM; i++)	precache_model(VWM[i]);

public DisplayMenu( id )
{
	if(!is_user_alive(id)&&get_user_team(id)!=2)	return

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

	menu_additem( menu, "AK47 + DEAGLE", "1" )
	menu_additem( menu, "M4A1 + DEAGLE", "2" )
	menu_additem( menu, "AWP + DEAGLE", "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:
		{       
			choice_ak[id] =choice_dg[id]= true
			give_item(id, "weapon_ak47")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_AK47, 90)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e AK47!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}
		case 2:
		{
			choice_m4[id] =choice_dg[id]= true
			give_item(id, "weapon_m4a1")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e M4A1!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}
		case 3:
		{
			choice_awp[id] =choice_dg[id]= true
			give_item(id, "weapon_awp")     
			give_item(id, "weapon_deagle") 
			cs_set_user_bpammo(id, CSW_AWP, 30)
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			xCoLoR(id,"%s Ai ales!e AWP!n+!vDEAGLE!n, spor la!e fraguri!n!",TAG)
		}  
	}
	menu_destroy(Menu) 
	return PLUGIN_HANDLED
}

public PlayerSpawn(id)
{
	if(is_user_connected(id)&&is_client_vip(id))
	{
		if(choice_m4[id])	choice_m4[id]=false
		if(choice_ak[id])	choice_ak[id]=false
		if(choice_awp[id])	choice_ak[id]=false
		if(choice_dg[id])	choice_dg[id]=false
	}
}

public player_damage(victim, inflictor, attacker, Float:damage, bits)
{
	if(!is_user_alive(attacker))	return HAM_IGNORED;
	if(is_valid_player(attacker)&&is_client_vip(attacker))
	{
		SetHamParamFloat(4, damage * VIP_BONUS_DMG)
		return HAM_SUPERCEDE;
	}

	return HAM_HANDLED;
}

public OnItemDeployPost(ent)
{
	if( pev_valid(ent) != 2 )	return
	static id; id = get_pdata_cbase(ent, 41, 4);

	if(pev_valid(id)&&is_user_alive(id)&&is_client_vip(id))
	{
	switch(cs_get_weapon_id(ent))//n am chef de enum....
	{
		case CSW_M4A1:
		{
			if(choice_m4[id])	set_pev(id, pev_viewmodel2, VWM[0])
			//set_pev(id, pev_weaponmodel2, "models/p_custom.mdl")
		}
		case CSW_AK47:	if(choice_ak[id])	set_pev(id, pev_viewmodel2, VWM[1])
		case CSW_AWP:	if(choice_awp[id])	set_pev(id, pev_viewmodel2, VWM[2])
		case CSW_DEAGLE:	if(choice_dg[id])	set_pev(id, pev_viewmodel2, VWM[3])
	}
	}
}

is_client_vip(id)
{
	if(get_user_flags(id) & VIP_LEVEL)	return true

	return false
}

stock xCoLoR(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!n", "^1");
	replace_all(szMesage, charsmax(szMesage), "!e", "^3");
	replace_all(szMesage, charsmax(szMesage), "!v", "^4");
	replace_all(szMesage, charsmax(szMesage), "!e2", "^0");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)	g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "c");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}