Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
VIP
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16
Counter-Strike 1.6
VIP
93.123.16.4:27022 Cs-PlovdiV.com - Aim Attack aim_aztec 0/16

Заяка за премахването на ефекта от земята като хвърлиш флаш

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
tom1k
Извън линия
Потребител
Потребител
Мнения: 202
Регистриран на: 29 Сеп 2020, 23:50
Местоположение: Добрич
Се отблагодари: 16 пъти
Получена благодарност: 8 пъти

Заяка за премахването на ефекта от земята като хвърлиш флаш

Мнение от tom1k » 15 Апр 2023, 01:36

Добър вечер.
Бих желал ако е възможно да се направи плъгин който да премахва е това от земята като се хвърли флаш.
Изображение
iG-Blockmaker # HNS 100aa
45.144.155.175:27018


Аватар
ChillX
Извън линия
Потребител
Потребител
Мнения: 92
Регистриран на: 19 Дек 2022, 00:40
Се отблагодари: 1 път
Получена благодарност: 26 пъти
Обратна връзка:

Re: Заяка за премахването на ефекта от земята като хвърлиш флаш

Мнение от ChillX » 15 Апр 2023, 20:58

Имам няколко, виж този първо май е най-пресен маха и пушека, скорча и частиците (flash i he):

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


/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#define REMOVE_EXPLODE_DECAL
#define REMOVE_EXPLODE_BLACKSMOKE
#define REMOVE_EXPLODE_SPARKS


// #define REMOVE_EXPLODE_SOUND
// #define REMOVE_EXPLODE_LIGHT
// #define REMOVE_EXPLODE_PARTICLES


// def sprite: file "sprites/eexplo.spr", frames 25, size 80x80
// #define EXPLODE_FIRST_SPRITE     "sprites/explode/eexplo.spr"  // "" no sprite

// def sprite: file "sprites/fexplo.spr", frames 30, size 80x96
// #define EXPLODE_SECOND_SPRITE    "sprites/explode/fexplo.spr"  // "" no sprite

/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#include <amxmodx>
#include <reapi>

new g_iMsgHookTempEntity

new g_sModelIndexFireball2
new g_sModelIndexFireball3


enum
{
	msg_id = 1,
	msg_position_y,
	msg_position_x,
	msg_position_z,
	msg_sprite_id,
	msg_sprite_scale,
	msg_sprite_framerate,
	msg_explosion_flags
}

public plugin_precache()
{
#if defined EXPLODE_FIRST_SPRITE
	g_sModelIndexFireball3 = precache_explode_sprite(EXPLODE_FIRST_SPRITE)
#else
	#pragma unused g_sModelIndexFireball3
#endif

#if defined EXPLODE_SECOND_SPRITE
	g_sModelIndexFireball2 = precache_explode_sprite(EXPLODE_SECOND_SPRITE)
#else
	#pragma unused g_sModelIndexFireball2
#endif
}



public plugin_init() 
{
	register_plugin("Explode Effects Remover", "0.3", "Vaqtincha")

	RegisterHookChain(RG_CGrenade_ExplodeHeGrenade, "CGrenade_ExplodeGrenade", .post = false)
	RegisterHookChain(RG_CGrenade_ExplodeHeGrenade, "CGrenade_ExplodeGrenadeP", .post = true)
	RegisterHookChain(RG_CGrenade_ExplodeFlashbang, "CGrenade_ExplodeGrenade", .post = false)
	RegisterHookChain(RG_CGrenade_ExplodeFlashbang, "CGrenade_ExplodeGrenadeP", .post = true)
}

public Message_TempEntity(const iMsgId, const iMsgType, const pEnt)
{
	new iTempEntityId = get_msg_arg_int(1)

#if defined REMOVE_EXPLODE_DECAL
	if (iTempEntityId == TE_DECAL || iTempEntityId == TE_WORLDDECAL)
	{
		return PLUGIN_HANDLED
	}
#endif

#if defined REMOVE_EXPLODE_SPARKS	
	if (iTempEntityId == TE_SPARKS)
	{
		return PLUGIN_HANDLED
	}
#endif

	if (iTempEntityId == TE_EXPLOSION && get_msg_arg_int(msg_sprite_framerate) == 30)
	{

	#if defined EXPLODE_FIRST_SPRITE || defined EXPLODE_SECOND_SPRITE
		new iScale = get_msg_arg_int(msg_sprite_scale)
	#endif

	#if defined EXPLODE_FIRST_SPRITE		
		if (iScale == 25)
			set_msg_arg_int(msg_sprite_id, ARG_SHORT, g_sModelIndexFireball3)
	#endif

	#if defined EXPLODE_SECOND_SPRITE	
		if (iScale == 30)
			set_msg_arg_int(msg_sprite_id, ARG_SHORT, g_sModelIndexFireball2)
	#endif
		
		new iFlags = TE_EXPLFLAG_NONE
	
	#if defined  REMOVE_EXPLODE_SOUND
		iFlags |= TE_EXPLFLAG_NOSOUND
	#endif
	#if defined  REMOVE_EXPLODE_LIGHT
		iFlags |= TE_EXPLFLAG_NODLIGHTS
	#endif
	#if defined  REMOVE_EXPLODE_PARTICLES
		iFlags |= TE_EXPLFLAG_NOPARTICLES
	#endif
	
		if (iFlags != TE_EXPLFLAG_NONE)
			set_msg_arg_int(msg_explosion_flags, ARG_BYTE, iFlags)
	}

	return PLUGIN_CONTINUE
}

public CGrenade_ExplodeGrenadeP(const pGrenade, const tracehandle, const bitsDamageType)
{
	if (g_iMsgHookTempEntity)
	{
		unregister_message(SVC_TEMPENTITY, g_iMsgHookTempEntity)
		g_iMsgHookTempEntity = 0
	}
	
#if defined REMOVE_EXPLODE_BLACKSMOKE
	if (pGrenade > 0)
	{
		set_entvar(pGrenade, var_nextthink, 0.0)
		set_entvar(pGrenade, var_flags, FL_KILLME)
	}
#endif

#if defined REMOVE_EXPLODE_SPARKS
	new pSpark, Float:vecOriginGrenade[3], Float:vecOrigin[3]

	get_entvar(pGrenade, var_origin, vecOriginGrenade)
	
	while ((pSpark = rg_find_ent_by_class(pSpark, "spark_shower", true)))
	{
		get_entvar(pSpark, var_origin, vecOrigin)
		
		if (vecOriginGrenade[0] == vecOrigin[0] && vecOriginGrenade[1] == vecOrigin[1] && vecOriginGrenade[2] == vecOrigin[2])
		{
			set_entvar(pSpark, var_speed, 0.0)
		}
	}
#endif

	return HC_CONTINUE
}

public CGrenade_ExplodeGrenade(const pGrenade, const tracehandle, const bitsDamageType)
{
	g_iMsgHookTempEntity = register_message(SVC_TEMPENTITY, "Message_TempEntity")

	return HC_CONTINUE
}

stock precache_explode_sprite(const szSprite[])
{
	return (szSprite[0] > 0) ? precache_model(szSprite) : 0
} 
Или само за Scorch:

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

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define SHORT_BYTES	2 
#define BYTE_BITS	8 
#define PDATA_SAFE	2

// Offsets
const m_usEvent_Grenade = 228

new g_iPCvar_HE // "amx_remove_he_decal" cvar pointer
new g_iPCvar_FB // "amx_remove_fb_decal" cvar pointer

new g_fwTempEntity // "msg_TempEntity" forward id
new HamHook:g_hGrenadeThinkPost // "fw_Grenade_Think_Post" forward id

public plugin_init() 
{
	register_plugin("Grenade Decal/Scorch Remover", "0.1", "meTaLiCroSS")
	
	g_iPCvar_HE = register_cvar("amx_remove_he_decal", "1")
	g_iPCvar_FB = register_cvar("amx_remove_fb_decal", "1")
	
	RegisterHam(Ham_Think, "grenade", "fw_Grenade_Think")
}

public msg_TempEntity(iMsgId, iDest, iId)
{
	new iTempEntityId = get_msg_arg_int(1)
	
	// The decals used are not indexed > 256, so 
	// there's no need to check TE_DECALHIGH and TE_WORLDDECALHIGHT
	if(iTempEntityId == TE_DECAL || iTempEntityId == TE_WORLDDECAL)
		return PLUGIN_HANDLED
	
	return PLUGIN_CONTINUE
}

public fw_Grenade_Think(iEntId)
{
	if(pev_valid(iEntId) == PDATA_SAFE // safe entity
	&& entity_get_float(iEntId, EV_FL_dmgtime) <= get_gametime() // ready to explode
	&& ~entity_get_int(iEntId, EV_INT_effects) & EF_NODRAW) // and not yet
	{
		static iHEGrenEvent
	
		if(!iHEGrenEvent)
			iHEGrenEvent = precache_event(1, "events/createexplo.sc") 
			
		new iEventIndex = get_pdata_short(iEntId, m_usEvent_Grenade)
		
		// Better than checking a model
		if((!iEventIndex && get_pcvar_num(g_iPCvar_FB)) // flashbang doesn't have an event index
		|| (iEventIndex == iHEGrenEvent && get_pcvar_num(g_iPCvar_HE))) 
		{
			if(!g_hGrenadeThinkPost)
				g_hGrenadeThinkPost = RegisterHam(Ham_Think, "grenade", "fw_Grenade_Think_Post", true)
			else
				EnableHamForward(g_hGrenadeThinkPost)
			
			g_fwTempEntity = register_message(SVC_TEMPENTITY, "msg_TempEntity")
		}
	}
}

public fw_Grenade_Think_Post(iEntId)
{
	DisableHamForward(g_hGrenadeThinkPost)
	
	unregister_message(SVC_TEMPENTITY, g_fwTempEntity)
	g_fwTempEntity = 0
}

// All credits goes to ConnorMcLeod
stock get_pdata_short(ent, shortbased_offset, intbase_linuxdiff = 5) 
{ 
	return (get_pdata_int(ent, shortbased_offset / SHORT_BYTES, intbase_linuxdiff)>>>((shortbased_offset % SHORT_BYTES) * BYTE_BITS) ) & 0xFFFF 
}

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

 amx_remove_he_decal: Enable/Disable HE Grenade explosion's decal/scorch
amx_remove_fb_decal: Enable/Disable Flashbang explosion's decal/scorch

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

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 4 госта