Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс Hit_MeatBones
+ Граф наследования:Hit_MeatBones:

Закрытые члены

void Hit_MeatBones ()
 
override float CalculateStoppingForce (float in_speedf, float out_speedf, string ammoType, float weight)
 
override void Event_OnStarted ()
 
void BloodSplatGround (vector start_pos, vector speed_vector, float decay_coef)
 
void BloodSplatWall ()
 
override void OnEnterCalculations (Particle p)
 
override void OnExitCalculations (Particle p, float outSpeedf)
 

Закрытые данные

float m_ScalingByDistance
 

Подробное описание

Конструктор(ы)

◆ Hit_MeatBones()

void Hit_MeatBones ( )
inlineprivate
6 {
10
11 m_AngledEnter = 10;
12 m_EnterSplashCoef = 0.002;
13 m_ExitSplashCoef = 0.006;
15
17 }
float m_EnterSplashCoef
Definition BulletImpactBase.c:29
float MIN_SCALING_PARAM
Definition BulletImpactBase.c:7
float m_ExitSplashCoef
Definition BulletImpactBase.c:30
float m_AngledEnter
Definition BulletImpactBase.c:33
void SetExitParticle(int id)
Definition BulletImpactBase.c:50
void SetRicochetParticle(int id)
Definition BulletImpactBase.c:55
void SetEnterParticle(int id)
Definition BulletImpactBase.c:45
float m_ScalingByDistance
Definition Hit_MeatBones.c:3
Definition ParticleList.c:12
static const int IMPACT_MEATBONES_EXIT
Definition ParticleList.c:231
static const int IMPACT_MEATBONES_RICOCHET
Definition ParticleList.c:230
static const int IMPACT_MEATBONES_ENTER
Definition ParticleList.c:229

Перекрестные ссылки ParticleList::IMPACT_MEATBONES_ENTER, ParticleList::IMPACT_MEATBONES_EXIT, ParticleList::IMPACT_MEATBONES_RICOCHET, EffBulletImpactBase::m_AngledEnter, EffBulletImpactBase::m_EnterSplashCoef, EffBulletImpactBase::m_ExitSplashCoef, m_ScalingByDistance, EffBulletImpactBase::MIN_SCALING_PARAM, EffBulletImpactBase::SetEnterParticle(), EffBulletImpactBase::SetExitParticle() и EffBulletImpactBase::SetRicochetParticle().

Методы

◆ BloodSplatGround()

void BloodSplatGround ( vector start_pos,
vector speed_vector,
float decay_coef )
inlineprivate
69 {
70 vector pos = start_pos;
71 float power = m_StoppingForce;
72 float upscale = 1;
73 float rnd_offset = 0.5;
74 float rnd_offset_2 = rnd_offset * 0.5;
75
76 while (power > 200)
77 {
78 pos = pos + ( speed_vector * 0.001 );
80 pos[1] = GetGame().SurfaceY(pos[0], pos[2]);
81
83 eff.SetAutodestroy(true);
85
86 Particle blood = eff.GetParticle(); // TO DO: Handle particle changes inside the Effect instance itself! Not here!
87
88 vector ori = GetGame().GetSurfaceOrientation(pos[0], pos[2]);
89
90 blood.SetOrientation(ori);
91 blood.ScaleParticleParam(EmitorParam.SIZE, upscale);
92
94 blood_chunks.SetOrientation(ori);
95
97 upscale = upscale + Math.RandomFloat(0.1, 1);
98
100 }
101 }
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Definition ParticleManager.c:84
Definition BloodSplatter.c:2
float m_StoppingForce
Definition BulletImpactBase.c:10
Wrapper class for managing particles through SEffectManager.
Definition EffectParticle.c:5
void BloodSplatWall()
Definition Hit_MeatBones.c:103
Definition EnMath.c:7
Definition EntityAI.c:95
Legacy way of using particles in the game.
Definition Particle.c:7
static const int BLOOD_SURFACE_CHUNKS
Definition ParticleList.c:142
Manager class for managing Effect (EffectParticle, EffectSound)
Definition EffectManager.c:6
static int PlayInWorld(notnull Effect eff, vector pos)
Play an Effect.
Definition EffectManager.c:43
Definition EnConvert.c:106
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float RandomFloat(float min, float max)
Returns a random float number between and min[inclusive] and max[exclusive].
EmitorParam
Definition EnVisual.c:114

Перекрестные ссылки ParticleList::BLOOD_SURFACE_CHUNKS, BloodSplatWall(), GetGame(), EffBulletImpactBase::m_StoppingForce, ParticleManager(), SEffectManager::PlayInWorld(), Math::RandomFloat() и Vector().

Используется в Event_OnStarted().

◆ BloodSplatWall()

void BloodSplatWall ( )
inlineprivate
104 {
105 // Commented out due to age rating process :(
106
107 /*
108 if (m_OutSpeed.Length() > 0)
109 {
110 Object projected_surface;
111 vector hit_pos;
112 vector hit_normal;
113 float hit_fraction;
114 DayZPhysics.RayCastBullet(m_ExitPos, m_ExitPos + m_OutSpeed, PhxInteractionLayers.BUILDING, m_Object, projected_surface, hit_pos, hit_normal, hit_fraction);
115
116 hit_normal = hit_normal.VectorToAngles();
117 hit_normal[1] = hit_normal[1] + 90;
118
119 EffectParticle eff = new BloodSplatter();
120 eff.SetAutodestroy(true);
121 SEffectManager.PlayInWorld(eff, hit_pos);
122 Particle blood = eff.GetParticle();
123 blood.SetOrientation(hit_normal);
124 }
125 */
126 }

Используется в BloodSplatGround().

◆ CalculateStoppingForce()

override float CalculateStoppingForce ( float in_speedf,
float out_speedf,
string ammoType,
float weight )
inlineprivate
20 {
21 if ( m_ImpactType == ImpactTypes.MELEE )
22 {
23 return 400;
24 }
25
27
29
30 if (m_DirectHit)
31 {
32 /*
33 // TO DO: Doesn't work because IsAlive() is false, even when it shouldn't be.
34 if ( m_DirectHit.IsMan() && m_componentIndex == SURVIVOR_HEAD && m_DirectHit.IsAlive() ) // Is the victim a survivor?
35 {
36 stopping_force = stopping_force * 2;
37 }
38 */
39
40 /*
41 // TO DO: Doesn't work. Need to recognize a zombie somehow
42 else if ( m_DirectHit.IsInherited(DayZCreatureAIType) && m_componentIndex == INFECTED_HEAD ) // Is the victim a survivor that's hit in the head?
43 {
44 stopping_force = stopping_force * 2;
45 }*/
46 }
47
48 return stopping_force;
49 }
ImpactTypes
Definition ImpactEffects.c:2
int m_ImpactType
Definition BulletImpactBase.c:12
static float DEFAULT_PROJECTILE_WEIGHT
Definition BulletImpactBase.c:5
Object m_DirectHit
Definition BulletImpactBase.c:9

Перекрестные ссылки EffBulletImpactBase::DEFAULT_PROJECTILE_WEIGHT, EffBulletImpactBase::m_DirectHit и EffBulletImpactBase::m_ImpactType.

◆ Event_OnStarted()

override void Event_OnStarted ( )
inlineprivate
52 {
53 super.Event_OnStarted();
54
55 if (m_ImpactType != ImpactTypes.MELEE)
56 {
57 vector in_speed = m_InSpeed * (-1); // Compiler demands to have this variable
58
60
61 if (m_OutSpeed.Length() > 0)
62 {
64 }
65 }
66 }
class JsonUndergroundAreaTriggerData GetPosition
Definition UndergroundAreaLoader.c:9
vector m_InSpeed
Definition BulletImpactBase.c:17
vector m_ExitPos
Definition BulletImpactBase.c:16
vector m_OutSpeed
Definition BulletImpactBase.c:18
void BloodSplatGround(vector start_pos, vector speed_vector, float decay_coef)
Definition Hit_MeatBones.c:68
proto native float Length()
Returns length of vector (magnitude)

Перекрестные ссылки BloodSplatGround(), GetPosition, vector::Length(), EffBulletImpactBase::m_ExitPos, EffBulletImpactBase::m_ImpactType, EffBulletImpactBase::m_InSpeed и EffBulletImpactBase::m_OutSpeed.

◆ OnEnterCalculations()

override void OnEnterCalculations ( Particle p)
inlineprivate
129 {
130 // Calculate particle's size based on bullet's speed
135
136 if ( m_AmmoType == "Bullet_12GaugePellets" )
137 {
138 birth_rate *= 0.5;
139 velocity_min *= 2;
140 velocity_max *= 2;
141 }
142
143 // Additional size increase by distance from camera
144 vector camera_pos = GetGame().GetCurrentCameraPosition();
147
148 // Now scale down the above size increase by player's zoom-in value
149 float current_FOV = Camera.GetCurrentFOV();
150 float config_FOV = GetDayZGame().GetUserFOVFromConfig();
153
154 if (scaling_by_distance > 5)
156
160
163
166
169
172
173 p.ScaleParticleParam(EmitorParam.VELOCITY, velocity_min);
174 p.ScaleParticleParam(EmitorParam.VELOCITY_RND, velocity_max);
175 p.ScaleParticleParam(EmitorParam.SIZE, size);
176 p.ScaleParticleParam(EmitorParam.BIRTH_RATE, birth_rate);
177 }
DayZGame GetDayZGame()
Definition DayZGame.c:3748
Definition Camera.c:70
vector m_Pos
Definition BulletImpactBase.c:14
string m_AmmoType
Definition BulletImpactBase.c:19
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.

Перекрестные ссылки vector::Distance(), GetDayZGame(), GetGame(), EffBulletImpactBase::m_AmmoType, EffBulletImpactBase::m_EnterSplashCoef, EffBulletImpactBase::m_Pos, m_ScalingByDistance, EffBulletImpactBase::m_StoppingForce и EffBulletImpactBase::MIN_SCALING_PARAM.

◆ OnExitCalculations()

override void OnExitCalculations ( Particle p,
float outSpeedf )
inlineprivate
180 {
184
187
190
191 if (size > 1)
192 size = 1;
193
196
197 p.ScaleParticleParam(EmitorParam.VELOCITY_RND, velocity_rnd);
198 p.ScaleParticleParam(EmitorParam.BIRTH_RATE, birth_rate_rnd_def);
199 p.ScaleParticleParam(EmitorParam.SIZE, size);
200 }

Перекрестные ссылки EffBulletImpactBase::m_ExitSplashCoef и EffBulletImpactBase::MIN_SCALING_PARAM.

Поля

◆ m_ScalingByDistance

float m_ScalingByDistance
private

Используется в Hit_MeatBones() и OnEnterCalculations().


Объявления и описания членов класса находятся в файле: