shield force grenade

Въпроси и проблеми свързани с AMXModX.
Аватар
TheRaiD
Извън линия
Foreigner
Foreigner
Мнения: 32
Регистриран на: 20 Яну 2019, 20:22
Се отблагодари: 5 пъти
Получена благодарност: 1 път

shield force grenade

Мнение от TheRaiD » 10 Апр 2020, 14:48

Can someone edit this plugin for normal public mod and only for admins with flagg a if example with command /shgrenade u can get this grenade for CT And T!

Код за потвърждение: Избери целия код

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


#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v1.6"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.

/*=============================[Plugin Customization]=============================*/
//#define CAMPO_TASK
#define CAMPO_ROUND

new const NADE_TYPE_CAMPO = 7000

new const model_grenade[] = "models/zombie_plague/v_auragren.mdl"
new g_bomb[33]
new g_itemID
new const model[] = "models/zombie_plague/aura8.mdl"

new const entclas[] = "campo_grenade_forze"
new cvar_flaregrenades
new g_trailSpr
const m_pPlayer = 41;

new cvar_push

new g_SayText
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"

/*=============================[End Customization]=============================*/

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
	
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	
	cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades")
	
	register_forward(FM_SetModel, "fw_SetModel")
	
	RegisterHam( Ham_Item_Deploy, "weapon_smokegrenade", "FwdHamSmokeDeploy", 1 );
	
	register_touch(entclas, "player", "entity_touch")
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	
	g_SayText = get_user_msgid("SayText")
	
	// cvar to push!!.
	register_cvar("zp_shield_creator", AUTHOR, FCVAR_SERVER)
	
	#if defined CAMPO_ROUND
	g_itemID = zp_register_extra_item( "Force Shield (One Round)", 30 , ZP_TEAM_HUMAN)
	#else 
	g_itemID = zp_register_extra_item( "Force Shield (Short-acting)", 15 , ZP_TEAM_HUMAN)
	#endif
	
	cvar_push = register_cvar("zp_forze_push", "7.5")
}
public event_round_start()
{
	#if defined CAMPO_ROUND
	remove_entity_name(entclas)
	#endif
	
	arrayset( g_bomb, false, 33 );
}

public plugin_precache()
{
	g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
	
	engfunc(EngFunc_PrecacheModel, model_grenade)
	engfunc(EngFunc_PrecacheModel, model)
}

public client_disconnect(id)
{
	g_bomb[id] = false
}

public zp_extra_item_selected(player, itemid)
{
	if(itemid == g_itemID)
	{
		if(g_bomb[player])
		{
			Color(player, "!g[Shield]!y You already have a force field")
		}
		else 
		{
			g_bomb[player] = true
			give_item(player,"weapon_smokegrenade")
			
			
			#if defined CAMPO_ROUND
			Color(player, "!g[Shield]!y You Bought a force field!. This, lasts 1 round complete.")
			#else
			Color(player, "!g[Shield]!y You Bought a force field!. This, lasts very little!")
			#endif
		}
		
		
	}
	
}

public fw_PlayerKilled(victim, attacker, shouldgib) g_bomb[victim] = false


public fw_ThinkGrenade(entity)
{   
	if(!pev_valid(entity))
		return HAM_IGNORED
	
	static Float:dmgtime   
	pev(entity, pev_dmgtime, dmgtime)
	
	if (dmgtime > get_gametime())
		return HAM_IGNORED   
	
	if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_CAMPO)
		crear_ent(entity)
	
	
	return HAM_SUPERCEDE
}

public FwdHamSmokeDeploy(const iEntity) {
	if(pev_valid(iEntity) != 2 )
		return HAM_IGNORED
	
	new id = get_pdata_cbase(iEntity, m_pPlayer, 4)
	
	if(g_bomb[id] && !zp_get_user_zombie(id))
	{
		set_pev( id, pev_viewmodel2, model_grenade )
	}
	
	return HAM_IGNORED;
}

public fw_SetModel(entity, const model[])
{	
	static Float:dmgtime
	pev(entity, pev_dmgtime, dmgtime)
	
	if (dmgtime == 0.0)
		return
	
	if (equal(model[7], "w_sm", 4))
	{		
		new owner = pev(entity, pev_owner)		
		
		if(!zp_get_user_zombie(owner) && g_bomb[owner]) 
		{
			set_pcvar_num(cvar_flaregrenades,0)			
			
			fm_set_rendering(entity, kRenderFxGlowShell, 000, 255, 255, kRenderNormal, 16)
			
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
			write_byte(TE_BEAMFOLLOW) // TE id
			write_short(entity) // entity
			write_short(g_trailSpr) // sprite
			write_byte(10) // life
			write_byte(10) // width
			write_byte(000) // r
			write_byte(255) // g
			write_byte(255) // b
			write_byte(500) // brightness
			message_end()
			
			set_pev(entity, pev_flTimeStepSound, NADE_TYPE_CAMPO)
			
			set_task(6.0, "DeleteEntityGrenade" ,entity)
		}
	}
	
}

public DeleteEntityGrenade(entity) remove_entity(entity)

public crear_ent(id)
{
	set_pcvar_num(cvar_flaregrenades,1)
	
	// Create entitity
	new iEntity = create_entity("info_target")
	
	if(!is_valid_ent(iEntity))
		return PLUGIN_HANDLED
	
	new Float: Origin[3] 
	entity_get_vector(id, EV_VEC_origin, Origin) 
	Origin[2] -= 0.00
	
	entity_set_string(iEntity, EV_SZ_classname, entclas)
	
	entity_set_vector(iEntity,EV_VEC_origin, Origin)
	entity_set_model(iEntity,model)
	entity_set_int(iEntity, EV_INT_solid, SOLID_TRIGGER)
	entity_set_size(iEntity, Float: {-100.0, -100.0, -100.0}, Float: {100.0, 100.0, 100.0})
	entity_set_int(iEntity, EV_INT_renderfx, kRenderFxGlowShell)
	entity_set_int(iEntity, EV_INT_rendermode, kRenderTransAlpha)
	entity_set_float(iEntity, EV_FL_renderamt, 50.0)
	
	
	if(is_valid_ent(iEntity))
	{
		new Float:vColor[3]
		
		for(new i; i < 3; i++)
			vColor[i] = random_float(0.0, 255.0)
		
		entity_set_vector(iEntity, EV_VEC_rendercolor, vColor)
	}
	
	
	#if defined CAMPO_TASK
	set_task(15.0, "DeleteEntity", iEntity)
	#endif
	
	static attacker
	attacker = pev(id, pev_owner)
	
	g_bomb[attacker] = false
	
	return PLUGIN_CONTINUE;
}

public zp_user_infected_post(infected, infector)
{
	if (g_bomb[infected])
	{
		g_bomb[infected] = false
	}
}

public entity_touch(touched, toucher)
{
	if(zp_get_user_zombie(toucher) || zp_get_user_nemesis(toucher))
	{
		new Float:pos_ptr[3], Float:pos_ptd[3], Float:push_power = get_pcvar_float(cvar_push)
		
		pev(touched, pev_origin, pos_ptr)
		pev(toucher, pev_origin, pos_ptd)
		
		for(new i = 0; i < 2; i++)
		{
			pos_ptd[i] -= pos_ptr[i]
			pos_ptd[i] *= push_power
		}
		set_pev(toucher, pev_velocity, pos_ptd)
		set_pev(toucher, pev_impulse, pos_ptd)
	}
}

public remove_ent()
{
	remove_entity_name(entclas)
}  

public DeleteEntity( entity ) 
	if( is_valid_ent( entity ) ) 
	remove_entity( entity );

stock Color(const id, const input[], any:...)
{
	static msg[191]
	vformat(msg, 190, input, 3)
	
	replace_all(msg, 190, "!g", "^4")
	replace_all(msg, 190, "!y", "^1")
	replace_all(msg, 190, "!t", "^3")
	
	message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id)
	write_byte(id)
	write_string(msg)
	message_end()
}

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot], Semrush [Bot] и 18 госта