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

◆ TurnOffDistantLight()

void FlareSimulation_Red::TurnOffDistantLight ( )
protected

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

308 : Managed
309{
310 protected Particle m_ParMainFire;
311 protected EffectSound m_BurningSound;
312 protected FlareLight m_FlareLight;
313 const static float MAX_FARLIGHT_DIST = 40;
314 const static float MIN_FARLIGHT_DIST = 5;
315
316 static ref NoiseParams m_NoisePar; // Contains the noise data ( template and strength )
317 float m_LastNoiseTime = -1;
318 float m_NoiseTimer = 0;
319 const float NOISE_DELAY = 5; // How much time between two consecutive noise pings
320
321 // flare effect rotation
322 protected const float FLARE_SPIN_RATE = 1.15; // in degrees per simul tick
323 protected const float FLARE_SPIN_RADIUS = 0.18; // radius of circling motion
324 protected Entity m_Flare;
325 protected vector m_RotationPoint;
326 protected vector m_FlarePosition;
327 protected float m_RotationDegrees;
328
329 static protected typename m_ScriptedLight;
330 static protected int m_ParticleId;
331
332 void FlareSimulation()
333 {
336 }
337
338 void OnActivation(Entity flare)
339 {
340 if ( !GetGame().IsServer() || !GetGame().IsMultiplayer() )
341 {
342 m_FlareLight = FlareLight.Cast( ScriptedLightBase.CreateLight( m_ScriptedLight, Vector(0,0,0) ) );
343 if ( m_FlareLight )
344 m_FlareLight.AttachOnObject( flare );
345
346 if (m_ParMainFire)
347 m_ParMainFire.Stop();
348
349 m_Flare = flare;
350 m_RotationPoint = m_Flare.GetOrigin();
352
353 m_ParMainFire = ParticleManager.GetInstance().PlayInWorld( m_ParticleId, m_FlarePosition );
354
355 flare.PlaySoundSetLoop( m_BurningSound, "roadflareLoop_SoundSet", 0, 0 );
356 }
357
358 if ( GetGame().IsServer() )
359 {
360 // Create and load noise parameters
361 m_NoisePar = new NoiseParams();
362 m_NoisePar.LoadFromPath("cfgWeapons Flaregun_Base NoiseFlare");
363 }
364 }
365
366 void OnTermination(Entity flare)
367 {
368 //MiscGameplayFunctions.GenerateAINoiseAtPosition(flare.GetPosition(), NOISE_DELAY, m_NoisePar);
369 }
370
371 void OnFire( Entity flare)
372 {
373 //m_ParMainFire = ParticleManager.GetInstance().PlayOnObject( ParticleList.FLAREPROJ_FIRE, flare);
374 //m_ParMainFire.SetWiggle( 7, 0.3);
375 }
376
377 void Simulate( Entity flare )
378 {
379 DayZPlayer player = GetGame().GetPlayer();
380 if ( player )
381 vector playerPos = player.GetPosition();
382
383 float dist = vector.DistanceSq(flare.GetPosition(), playerPos);
384
386 m_ParMainFire.SetParameter( 0, EmitorParam.SIZE, MiscGameplayFunctions.Normalize(dist, MAX_FARLIGHT_DIST * MAX_FARLIGHT_DIST) );
387
388 if ( dist <= MIN_FARLIGHT_DIST * MIN_FARLIGHT_DIST )
390
391 //CastFlareAINoise( flare.GetPosition() );
393 }
394
395 // Rotate flare particle and set its new position
396 protected void FlareParticleUpdate()
397 {
399 if (m_RotationDegrees > 360)
401
402 float angleRad = m_RotationDegrees * Math.DEG2RAD;
403 float sin = Math.Sin(angleRad);
404 float cos = Math.Cos(angleRad);
405
406 vector newFlarePos = m_ParMainFire.GetOrigin();
407 float surfacePos = GetGame().SurfaceY(newFlarePos[0], newFlarePos[2]);
408
409 if (newFlarePos[1] - surfacePos < 1) // reached ground
410 {
411 if (m_Flare.GetOrigin()[1] <= surfacePos) // actual flare pos might not match and height could be underground
412 m_ParMainFire.SetPosition(Vector(newFlarePos[0], surfacePos, newFlarePos[2]));
413 else
414 m_ParMainFire.SetPosition(Vector(newFlarePos[0], m_Flare.GetOrigin()[1] ,newFlarePos[2]));
415
416 return;
417 }
418
419 // rotate vector around point
420 float xRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * cos) - ((m_FlarePosition[2] - m_RotationPoint[2]) * sin) + m_RotationPoint[0];
421 float yRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * sin) + ((m_FlarePosition[2] - m_RotationPoint[2]) * cos) + m_RotationPoint[2];
422
423 newFlarePos[0] = xRotated;
424 newFlarePos[1] = m_Flare.GetOrigin()[1];
425 newFlarePos[2] = yRotated;
426
427 m_ParMainFire.SetPosition(newFlarePos);
428
429 }
430
431 void CastFlareAINoise( vector position )
432 {
433 if ( m_LastNoiseTime < 0 )
434 m_LastNoiseTime = GetGame().GetTime() * 0.0033;
435
436 float delta_time = GetGame().GetTime() * 0.0033 - m_LastNoiseTime;
437 m_LastNoiseTime = GetGame().GetTime() * 0.0033;
438
439 m_NoiseTimer += delta_time;
440
441 if ( m_NoiseTimer >= NOISE_DELAY )
442 {
443 MiscGameplayFunctions.GenerateAINoiseAtPosition(position, NOISE_DELAY, m_NoisePar);
444
445 m_NoiseTimer = 0;
446 }
447 }
448
450 {
451 if (m_ParMainFire)
452 {
453 m_ParMainFire.SetParameter(0, EmitorParam.LIFETIME, 0);
454 m_ParMainFire.SetParameter(0, EmitorParam.LIFETIME_RND, 0);
455 m_ParMainFire.SetParameter(0, EmitorParam.REPEAT, 0);
456 m_ParMainFire.SetParameter(0, EmitorParam.SIZE, 0);
457 }
458 }
459
460 void ~FlareSimulation()
461 {
462 if (m_ParMainFire)
463 m_ParMainFire.Stop();
464
465 if (m_BurningSound)
466 m_BurningSound.SoundStop();
467
468 if (m_FlareLight)
469 m_FlareLight.FadeOut();
470 }
471}
472
474{
476 {
478 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_RED;
479 }
480}
481
483{
485 {
487 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_GREEN;
488 }
489}
490
492{
494 {
496 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_BLUE;
497 }
498}
ref NoiseParams m_NoisePar
Определения ActionOpenDoors.c:94
void FlareLightGreen()
Определения FlareLight.c:57
class FlareLightGreen extends FlareLight FlareLightBlue()
Определения FlareLight.c:56
class FlareLight extends PointLightBase FlareLightRed()
Определения FlareLight.c:38
static const float MIN_FARLIGHT_DIST
Определения FlareSimulation.c:173
void TurnOffDistantLight()
Определения FlareSimulation.c:308
vector m_RotationPoint
Определения FlareSimulation.c:184
void OnActivation(Entity flare)
Определения FlareSimulation.c:197
EffectSound m_BurningSound
Определения FlareSimulation.c:170
void FlareSimulation()
Определения FlareSimulation.c:191
const float NOISE_DELAY
Определения FlareSimulation.c:178
const float FLARE_SPIN_RADIUS
Определения FlareSimulation.c:182
void OnTermination(Entity flare)
Определения FlareSimulation.c:225
vector m_FlarePosition
Определения FlareSimulation.c:185
float m_LastNoiseTime
Определения FlareSimulation.c:176
void ~FlareSimulation()
Определения FlareSimulation.c:319
void OnFire(Entity flare)
Определения FlareSimulation.c:230
FlareSimulation_Green FlareSimulation FlareSimulation_Blue()
Определения FlareSimulation.c:186
float m_NoiseTimer
Определения FlareSimulation.c:177
FlareSimulation Managed FlareSimulation_Red()
Определения FlareSimulation.c:168
void FlareParticleUpdate()
Определения FlareSimulation.c:255
FlareLight m_FlareLight
Определения FlareSimulation.c:171
void CastFlareAINoise(vector position)
Определения FlareSimulation.c:290
m_ScriptedLight
Определения FlareSimulation.c:188
const float FLARE_SPIN_RATE
Определения FlareSimulation.c:181
void Simulate(Entity flare)
Определения FlareSimulation.c:236
static const float MAX_FARLIGHT_DIST
Определения FlareSimulation.c:172
int m_ParticleId
Определения FlareSimulation.c:189
float m_RotationDegrees
Определения FlareSimulation.c:186
Entity m_Flare
Определения FlareSimulation.c:183
Particle m_ParMainFire
Определения FlareSimulation.c:169
class NoiseSystem NoiseParams()
Определения Noise.c:15
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
proto native float SurfaceY(float x, float z)
proto native DayZPlayer GetPlayer()
proto int GetTime()
returns mission time in milliseconds
Wrapper class for managing sound through SEffectManager.
Определения EffectSound.c:5
Определения Camera.c:2
Определения FlareLight.c:46
void FlareSimulation_Green()
Определения FlareSimulation.c:177
int m_ParticleId
Определения FlareSimulation.c:23
m_ScriptedLight
Определения FlareSimulation.c:22
Определения FlareSimulation.c:2
TODO doc.
Определения EnScript.c:118
Определения EnMath.c:7
Legacy way of using particles in the game.
Определения Particle.c:7
static const int FLAREPROJ_ACTIVATE
Определения ParticleList.c:90
Определения ParticleList.c:12
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
Определения EnConvert.c:106
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Cos(float angle)
Returns cosinus of angle in radians.
static proto float Sin(float angle)
Returns sinus of angle in radians.
static const float DEG2RAD
Определения EnMath.c:17
EmitorParam
Определения EnVisual.c:114