[ROZWIĄZANE] Visual Damage (sprites)
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) } }
DarkGL
16.12.2023
dodaj else if jesli owner jest rozny od host z
set_es( es_handle, ES_Effects, EF_NODRAW );
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
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, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL