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

◆ TurnOffDistantLight()

void FlareSimulation_Red::TurnOffDistantLight ( )
protected

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

312 : Managed
313{
314 protected Particle m_ParMainFire;
315 protected EffectSound m_BurningSound;
316 protected FlareLight m_FlareLight;
317 const static float MAX_FARLIGHT_DIST = 40;
318 const static float MIN_FARLIGHT_DIST = 5;
319
320 static ref NoiseParams m_NoisePar; // Contains the noise data ( template and strength )
321 float m_LastNoiseTime = -1;
322 float m_NoiseTimer = 0;
323 const float NOISE_DELAY = 5; // How much time between two consecutive noise pings
324
325 // flare effect rotation
326 protected const float FLARE_SPIN_RATE = 1.15; // in degrees per simul tick
327 protected const float FLARE_SPIN_RADIUS = 0.18; // radius of circling motion
328 protected Entity m_Flare;
329 protected vector m_RotationPoint;
330 protected vector m_FlarePosition;
331 protected float m_RotationDegrees;
332
333 static protected typename m_ScriptedLight;
334 static protected int m_ParticleId;
335
336 void FlareSimulation()
337 {
340 }
341
342 void OnActivation(Entity flare)
343 {
344 if ( !g_Game.IsServer() || !g_Game.IsMultiplayer() )
345 {
346 m_FlareLight = FlareLight.Cast( ScriptedLightBase.CreateLight( m_ScriptedLight, Vector(0,0,0) ) );
347 if ( m_FlareLight )
348 m_FlareLight.AttachOnObject( flare );
349
350 if (m_ParMainFire)
351 m_ParMainFire.Stop();
352
353 m_Flare = flare;
354 m_RotationPoint = m_Flare.GetOrigin();
356
357 m_ParMainFire = ParticleManager.GetInstance().PlayInWorld( m_ParticleId, m_FlarePosition );
358
359 flare.PlaySoundSetLoop( m_BurningSound, "roadflareLoop_SoundSet", 0, 0 );
360 }
361
362 if ( g_Game.IsServer() )
363 {
364 // Create and load noise parameters
365 m_NoisePar = new NoiseParams();
366 m_NoisePar.LoadFromPath("cfgWeapons Flaregun_Base NoiseFlare");
367 }
368 }
369
370 void OnTermination(Entity flare)
371 {
372 //MiscGameplayFunctions.GenerateAINoiseAtPosition(flare.GetPosition(), NOISE_DELAY, m_NoisePar);
373 }
374
375 void OnFire( Entity flare)
376 {
377 //m_ParMainFire = ParticleManager.GetInstance().PlayOnObject( ParticleList.FLAREPROJ_FIRE, flare);
378 //m_ParMainFire.SetWiggle( 7, 0.3);
379 }
380
381 void Simulate( Entity flare )
382 {
383 DayZPlayer player = g_Game.GetPlayer();
384 if ( player )
385 vector playerPos = player.GetPosition();
386
387 float dist = vector.DistanceSq(flare.GetPosition(), playerPos);
388
390 m_ParMainFire.SetParameter( 0, EmitorParam.SIZE, MiscGameplayFunctions.Normalize(dist, MAX_FARLIGHT_DIST * MAX_FARLIGHT_DIST) );
391
392 if ( dist <= MIN_FARLIGHT_DIST * MIN_FARLIGHT_DIST )
394
395 //CastFlareAINoise( flare.GetPosition() );
397 }
398
399 // Rotate flare particle and set its new position
400 protected void FlareParticleUpdate()
401 {
403 if (m_RotationDegrees > 360)
405
406 float angleRad = m_RotationDegrees * Math.DEG2RAD;
407 float sin = Math.Sin(angleRad);
408 float cos = Math.Cos(angleRad);
409
410 vector newFlarePos = m_ParMainFire.GetOrigin();
411 float surfacePos = g_Game.SurfaceY(newFlarePos[0], newFlarePos[2]);
412
413 if (newFlarePos[1] - surfacePos < 1) // reached ground
414 {
415 if (m_Flare.GetOrigin()[1] <= surfacePos) // actual flare pos might not match and height could be underground
416 m_ParMainFire.SetPosition(Vector(newFlarePos[0], surfacePos, newFlarePos[2]));
417 else
418 m_ParMainFire.SetPosition(Vector(newFlarePos[0], m_Flare.GetOrigin()[1] ,newFlarePos[2]));
419
420 return;
421 }
422
423 // rotate vector around point
424 float xRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * cos) - ((m_FlarePosition[2] - m_RotationPoint[2]) * sin) + m_RotationPoint[0];
425 float yRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * sin) + ((m_FlarePosition[2] - m_RotationPoint[2]) * cos) + m_RotationPoint[2];
426
427 newFlarePos[0] = xRotated;
428 newFlarePos[1] = m_Flare.GetOrigin()[1];
429 newFlarePos[2] = yRotated;
430
431 m_ParMainFire.SetPosition(newFlarePos);
432
433 }
434
435 void CastFlareAINoise( vector position )
436 {
437 int currentTime = g_Game.GetTime();
438 float timeAdjusted = currentTime * 0.0033;
439 if ( m_LastNoiseTime < 0 )
440 m_LastNoiseTime = timeAdjusted;
441
442 float delta_time = timeAdjusted - m_LastNoiseTime;
443 m_LastNoiseTime = timeAdjusted;
444
445 m_NoiseTimer += delta_time;
446
447 if ( m_NoiseTimer >= NOISE_DELAY )
448 {
449 MiscGameplayFunctions.GenerateAINoiseAtPosition(position, NOISE_DELAY, m_NoisePar);
450
451 m_NoiseTimer = 0;
452 }
453 }
454
456 {
457 if (m_ParMainFire)
458 {
459 m_ParMainFire.SetParameter(0, EmitorParam.LIFETIME, 0);
460 m_ParMainFire.SetParameter(0, EmitorParam.LIFETIME_RND, 0);
461 m_ParMainFire.SetParameter(0, EmitorParam.REPEAT, 0);
462 m_ParMainFire.SetParameter(0, EmitorParam.SIZE, 0);
463 }
464 }
465
466 void ~FlareSimulation()
467 {
468 if (m_ParMainFire)
469 m_ParMainFire.Stop();
470
471 if (m_BurningSound)
472 m_BurningSound.SoundStop();
473
474 if (m_FlareLight)
475 m_FlareLight.FadeOut();
476 }
477}
478
480{
482 {
484 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_RED;
485 }
486}
487
489{
491 {
493 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_GREEN;
494 }
495}
496
498{
500 {
502 m_ParticleId = ParticleList.FLAREPROJ_ACTIVATE_BLUE;
503 }
504}
ref NoiseParams m_NoisePar
Определения ActionOpenDoors.c:94
FlareLight m_FlareLight
Определения ContaminatedArea_Dynamic.c:27
DayZGame g_Game
Определения DayZGame.c:3942
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:175
void TurnOffDistantLight()
Определения FlareSimulation.c:312
vector m_RotationPoint
Определения FlareSimulation.c:186
void OnActivation(Entity flare)
Определения FlareSimulation.c:199
EffectSound m_BurningSound
Определения FlareSimulation.c:172
void FlareSimulation()
Определения FlareSimulation.c:193
const float NOISE_DELAY
Определения FlareSimulation.c:180
const float FLARE_SPIN_RADIUS
Определения FlareSimulation.c:184
void OnTermination(Entity flare)
Определения FlareSimulation.c:227
vector m_FlarePosition
Определения FlareSimulation.c:187
float m_LastNoiseTime
Определения FlareSimulation.c:178
void ~FlareSimulation()
Определения FlareSimulation.c:323
void OnFire(Entity flare)
Определения FlareSimulation.c:232
FlareSimulation_Green FlareSimulation FlareSimulation_Blue()
Определения FlareSimulation.c:188
float m_NoiseTimer
Определения FlareSimulation.c:179
FlareSimulation Managed FlareSimulation_Red()
Определения FlareSimulation.c:170
void FlareParticleUpdate()
Определения FlareSimulation.c:257
void CastFlareAINoise(vector position)
Определения FlareSimulation.c:292
m_ScriptedLight
Определения FlareSimulation.c:190
const float FLARE_SPIN_RATE
Определения FlareSimulation.c:183
void Simulate(Entity flare)
Определения FlareSimulation.c:238
static const float MAX_FARLIGHT_DIST
Определения FlareSimulation.c:174
int m_ParticleId
Определения FlareSimulation.c:191
float m_RotationDegrees
Определения FlareSimulation.c:188
Entity m_Flare
Определения FlareSimulation.c:185
Particle m_ParMainFire
Определения FlareSimulation.c:171
class NoiseSystem NoiseParams()
Определения Noise.c:15
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения DayZPlayerImplement.c:87
Wrapper class for managing sound through SEffectManager.
Определения EffectSound.c:5
Определения Camera.c:2
Определения FlareLight.c:46
void FlareSimulation_Green()
Определения FlareSimulation.c:179
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:91
Определения ParticleList.c:12
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
Определения EnConvert.c:119
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