DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnEnterCalculations()

override void Hit_MeatBones::OnEnterCalculations ( Particle p)
inlineprivate

См. определение в файле Hit_MeatBones.c строка 133

134 {
135 // Calculate particle's size based on bullet's speed
136 float velocity_min = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef);
137 float velocity_max = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef);
139 float birth_rate = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef/2);
140
141 if ( m_AmmoType == "Bullet_12GaugePellets" )
142 {
143 birth_rate *= 0.5;
144 velocity_min *= 2;
145 velocity_max *= 2;
146 }
147
148 // Additional size increase by distance from camera
149 vector camera_pos = g_Game.GetCurrentCameraPosition();
150 float distance = vector.Distance(camera_pos, m_Pos);
151 float scaling_by_distance = (distance*1.2) * m_ScalingByDistance;
152
153 // Now scale down the above size increase by player's zoom-in value
154 float current_FOV = Camera.GetCurrentFOV();
155 float config_FOV = GetDayZGame().GetUserFOVFromConfig();
156 float FOV_scale = current_FOV / config_FOV;
157 scaling_by_distance = scaling_by_distance * FOV_scale;
158
159 if (scaling_by_distance > 5)
160 scaling_by_distance = 5;
161
162 size = size + scaling_by_distance;
163 velocity_min = velocity_min + scaling_by_distance;
164 velocity_max = velocity_max + scaling_by_distance;
165
166 if (velocity_min < MIN_SCALING_PARAM)
167 velocity_min = MIN_SCALING_PARAM;
168
169 if (velocity_max < MIN_SCALING_PARAM * 2)
170 velocity_max = MIN_SCALING_PARAM * 2;
171
172 if (size < MIN_SCALING_PARAM)
173 size = MIN_SCALING_PARAM;
174
175 if (birth_rate < MIN_SCALING_PARAM)
176 birth_rate = MIN_SCALING_PARAM;
177
178 p.ScaleParticleParam(EmitorParam.VELOCITY, velocity_min);
179 p.ScaleParticleParam(EmitorParam.VELOCITY_RND, velocity_max);
180 p.ScaleParticleParam(EmitorParam.SIZE, size);
181 p.ScaleParticleParam(EmitorParam.BIRTH_RATE, birth_rate);
182 }
DayZGame g_Game
Определения DayZGame.c:4074
DayZGame GetDayZGame()
Определения DayZGame.c:4076
string m_AmmoType
Определения BulletImpactBase.c:19
float m_StoppingForce
Определения BulletImpactBase.c:10
float m_EnterSplashCoef
Определения BulletImpactBase.c:29
float MIN_SCALING_PARAM
Определения BulletImpactBase.c:7
vector m_Pos
Определения BulletImpactBase.c:14
float m_ScalingByDistance
Определения Hit_MeatBones.c:3
void ScaleParticleParam(int parameter_id, float coef)
Scales the given parameter on all emitors relatively to their CURRENT value.
Определения Particle.c:697
EmitorParam
Определения EnVisual.c:114

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