←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Visual Damage (sprites)

Zablokowany

  • +
  • -
DEADP00L - zdjęcie DEADP00L 15.12.2023

Mam taki problem z poniższym pluginem, że sprites z zadawanymi obrażeniami jest widoczny dla wszystkich.

 

I teraz moje pytanie brzmi, jak przerobić go tak aby był widoczny tylko i wyłącznie dla atakującego?

public fwdAddToFullPack_Post( es, e, ent, host, host_flags, player, p_set )
{
	if (!is_nullent(ent) && get_entvar(ent,var_owner) == host && host != ent)
	{
		if(iMeters > 9) set_es( es , ES_Scale , 5.37/19)
		else if(iMeters > 4 && iMeters < 9) set_es( es , ES_Scale , 3.20/22)
		else set_es( es , ES_Scale , iMeters/25);
	}

	return FMRES_IGNORED;
}

public CBasePlayer_TakeDamage(const victim, inflictor, const attacker, Float:damage)
{
	if(victim == attacker || !rg_is_player_can_takedamage(victim, attacker) || !is_user_connected(attacker))
		return HC_CONTINUE;

	new Float:kOrigin[ 3 ], Float:vOrigin[ 3 ]
		
	pev( attacker, pev_origin, kOrigin )
	pev( victim, pev_origin, vOrigin )
		
	iDist = get_distance_f( kOrigin, vOrigin )
	iMeters = iDist * 0.0254 
		
	new MODEL_ent = rg_create_entity("env_sprite")
			
	if(!is_nullent(MODEL_ent)){
		new Float:Color[3] , Float:Velocity[3] , Float:Origin[3] , Float:height = 25 + ( random_num(0,3) * 7.0 )
		Velocity[2] = 20.0
		Velocity[1] = random_float(-4.0,4.0)
		Velocity[0] = random_float(-4.0,4.0)
		
		Color[0] = 255.0
		Color[1] = floatround(damage) > 100 ? 0.0 : ((255.0 - ( floatround(damage) * 4.55 )) * ( 1.0 - (floatround(damage)/100.0) ) )
		Color[2] = Color[1]
			
		get_entvar( victim , var_origin , Origin )
			
		if(iMeters > 7) Origin[2] += height * 1.05
		else Origin[2] += height
				
		set_entvar( MODEL_ent , var_owner , attacker)
		set_entvar( MODEL_ent , var_model , Numbers_Model)
		set_entvar( MODEL_ent , var_modelindex , Numbers_Modelindex)
		set_entvar( MODEL_ent , var_rendermode , kRenderTransAdd)
		set_entvar( MODEL_ent , var_movetype,MOVETYPE_NOCLIP)
		set_entvar( MODEL_ent , var_renderamt , 300.0)
		set_entvar( MODEL_ent , var_scale , 0.0)
		set_entvar( MODEL_ent , var_rendercolor,Color)
		set_entvar( MODEL_ent , var_velocity , Velocity )
		set_entvar( MODEL_ent , var_origin , Origin )
		set_entvar( MODEL_ent , var_frame , damage )
			
		DecreaseSpeed(MODEL_ent)
		SetThink(MODEL_ent, "ReducingTransparency")
		ReducingTransparency( MODEL_ent )	
	}
	return HC_CONTINUE;
}
public DecreaseSpeed(ent){
	if ( !is_nullent(ent)){
		new Float:Velocity[3]
		get_entvar( ent , var_velocity ,Velocity )
		Velocity[2] -= 1.0
		set_entvar( ent , var_velocity ,Velocity )
		set_task(1.0,"DecreaseSpeed",ent)
	}
}
public ReducingTransparency(ent){
	static Float:Renderamt
	get_entvar( ent , var_renderamt ,Renderamt )
	Renderamt -= 10.0
	
	if ( Renderamt < 10 )
		set_entvar( ent , var_flags , FL_KILLME ) , remove_task(ent)
	else {
		set_entvar( ent , var_renderamt , Renderamt )
		set_entvar(ent, var_nextthink, get_gametime( ) + 0.2)
	}
}
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 16.12.2023

dodaj else if jesli owner jest rozny od host z

set_es( es_handle, ES_Effects, EF_NODRAW );
Odpowiedz

  • +
  • -
DEADP00L - zdjęcie DEADP00L 17.12.2023

 

dodaj else if jesli owner jest rozny od host z

set_es( es_handle, ES_Effects, EF_NODRAW );

 

działa! temat do zamknęcia :) 


Użytkownik DEADP00L edytował ten post 17.12.2023 05:16
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 17.12.2023

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL

Odpowiedz
Zablokowany