DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Land_Underground_Entrance.c
См. документацию.
2{
4 CLOSED,//fully closed
5 //opening
10 OPENING_E,//fully open
13 //closing
21}
22
23enum EUndegroundDoorType
24{
27}
28
29class AlarmLight : SpotlightLight
30{
31 void AlarmLight()
32 {
33 SetVisibleDuringDaylight(true);
34 SetRadiusTo(15);
35 SetBrightnessTo(10);
36 SetFlareVisible(false);
37 SetAmbientColor(1.0, 0.0, 0.0);
38 SetDiffuseColor(1.0, 0.0, 0.0);
39 SetLifetime(1000);
40 SetDisableShadowsWithinRadius(-1);
41 SetFadeOutTime(1);
42 SetCastShadow(false);
44 }
47//---------------------------------------------------------------------------------------------------------
48//------------------------------------ Land_Underground_EntranceBase --------------------------------------
49//---------------------------------------------------------------------------------------------------------
50
52{
59 EUndegroundDoorType m_DoorType;
60
64
65 #ifndef SERVER
66 #ifndef NO_GUI
68 #endif
69 #endif
70 private const float TEMP_HOTIX_TIMESLICE = 0.01;
71
73 {
74 m_DoorType = EUndegroundDoorType.MAIN;
75 Land_Underground_Panel.RegisterEntrance(this);
76 RegisterNetSyncVariableFloat("m_AnimPhase", 0,1,5);
77 RegisterNetSyncVariableInt("m_DoorState", 0, EnumTools.GetLastEnumValue(EUndegroundEntranceState));
78
79 #ifndef SERVER
80 #ifndef NO_GUI
81 g_Game.GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( CreateLights, 250);
82
85 m_TempHotfixTimer.Run(TEMP_HOTIX_TIMESLICE, this, "EOnPostSimulate", null, true);
86 #endif
87 #endif
88 }
89
91
93 {
94 Land_Underground_Panel.UnregisterEntrance(this);
95 #ifndef SERVER
96 #ifndef NO_GUI
98
100 {
101 m_TempHotfixTimer.Stop();
102 m_TempHotfixTimer = null;
103 }
104 #endif
105 #endif
106 }
107 //---------------------
108
109
111 {
112 //anything we might have started playing when the door was activated
114 }
115
116
118
119 bool CanManipulate(Param param = null)
120 {
121 return m_DoorState == EUndegroundEntranceState.CLOSED;
122 }
123
124 void Manipulate(Param param = null)
125 {
126 OpenServer();
127 }
128
130 {
131 }
132
133 void OnUpdateClient(float timeSlice);
134
135 override void EOnPostSimulate(IEntity other, float timeSlice)
136 {
137 #ifndef SERVER
138 #ifndef NO_GUI
140 #endif
141 #endif
142 }
143
145 {
146 m_AnimPhase = m_AnimTimerDoorServer.GetValue() / AdjustTime(GetOpeningTime());// make 0..1
147 SetAnimationPhaseNow("EntranceDoor",m_AnimPhase);
148
149 g_Game.GetWorld().UpdatePathgraphDoorByAnimationSourceName(this, "EntranceDoor");
150
151 SetSynchDirty();
152 }
153
155 {
156 if (!Land_Underground_Panel.m_Panels)
157 {
158 return;
159 }
161 {
162 if (p.GetClosestDoor() == this)
163 {
164 panels.Insert(p);
165 }
166 }
167 }
168
169 // checks whether we want to play this effect even when we are at a different(more advanced) state, as this effect is supposed to be playing over multiple states and was supposed to start during some earlier state switch
170 // param 'state' is the state this effect is supposed to be played in, and 'lastValidState' is the latests state where we still want to play this effect provided previous state for the client is UNINITIALIZED
171 // meaning the client just connected in/the item entered their multiplayer bubble
173 {
174 return m_DoorState == state || ( IsInitDoorStateSync() && m_DoorState > state && m_DoorState <= lastValidState);
175 }
176
177 float AdjustTime(float originalTime, float adjustedTime = -1)
178 {
179 #ifdef DIAG_DEVELOPER
180 float timeAccel = 1;
181
182 if (adjustedTime != -1)
183 {
184 return adjustedTime;
185 }
186 if (FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.UNDERGROUND_ENTRANCE))
187 {
188 timeAccel = FeatureTimeAccel.GetFeatureTimeAccelValue();
189 return originalTime / timeAccel;
190 }
191 #endif
192 return originalTime;
193 }
194
196 {
197 return 30;
198 }
199
201 {
202 if (targetState == EUndegroundEntranceState.UNINITIALIZED)
203 {
204 targetState = m_DoorState + 1;
205 }
206 g_Game.GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SetDoorStateServer, time * 1000, false, targetState);
207 }
208
210 {
211 m_DoorState = newState;
212 OnDoorStateChangedServer(newState);
213 SetSynchDirty();
214 }
215
217
219 {
220 if (newState > EUndegroundEntranceState.CLOSED)
221 {
222 SetEventMask(EntityEvent.POSTSIMULATE);
223 }
224 else
225 {
226 ClearEventMask(EntityEvent.POSTSIMULATE);
228 }
229
230 HandleAudioPlayback(newState, prevState);
231 HandleVisualPlayback(newState, prevState);
232
234 {
237 }
239 {
240 p.OnDoorStateChangedClient(newState, prevState);
241 }
242 }
243
244 void OpenServer(bool force = false)
245 {
246 g_Game.RegisterNetworkStaticObject(this);
247 if (m_DoorState == EUndegroundEntranceState.CLOSED || force)
248 {
250 }
251 }
252
255
257
259 {
260 super.OnVariablesSynchronized();
261
263 {
266 }
267 }
268
270 {
271 return m_DoorStatePrev == EUndegroundEntranceState.UNINITIALIZED;
272 }
273
274
275 #ifdef DEVELOPER
276 override string GetDebugText()
277 {
278 string debug_output;
279
280 if (g_Game.IsDedicatedServer())
281 {
282 debug_output += "current state: " + typename.EnumToString(EUndegroundEntranceState, m_DoorState) + "\n";
283 /*
284 if(g_Game.GetCallQueue( CALL_CATEGORY_SYSTEM ))
285 debug_output += "next stage timer: " + g_Game.GetCallQueue( CALL_CATEGORY_SYSTEM ).GetRemainingTimeByName(this, "SetDoorStateServer").ToString();
286 */
287 }
288 else
289 {
290 debug_output += "current state: " + typename.EnumToString(EUndegroundEntranceState, m_DoorState) + "\n";
291 }
292 return debug_output;
293 }
294
295 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
296 {
297 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.ACTIVATE_ENTITY, "Open", FadeColors.LIGHT_GREY));
298 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.DEACTIVATE_ENTITY, "Close", FadeColors.LIGHT_GREY));
299 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.RED));
300
301 super.GetDebugActions(outputList);
302 }
303
304 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
305 {
306 if (super.OnAction(action_id, player, ctx))
307 return true;
308 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
309 {
310 if (action_id == EActions.ACTIVATE_ENTITY)
311 {
313 OpenServer(true);
314 }
315 else if (action_id == EActions.DEACTIVATE_ENTITY)
316 {
317 // just for debug controls
319 m_AnimTimerDoorServer = new AnimationTimer();
320
321 if (m_DoorState == EUndegroundEntranceState.OPENING_G)
322 {
323 g_Game.GetCallQueue( CALL_CATEGORY_SYSTEM ).Remove(SetDoorStateServer);
325 }
326 }
327 }
328 return false;
329 }
330 #endif
331}
332
333
334//---------------------------------------------------------------------------------------------------------
335//-------------------------------------- Land_Underground_Entrance ----------------------------------------
336//---------------------------------------------------------------------------------------------------------
337
338class Land_Underground_Entrance : Land_Underground_EntranceBase
339{
348
349
351
352 const string SIREN_SOUNDSET = "UndergroundDoor_Alarm_Loop_SoundSet";
353 const string ENGINE_SOUNDSET_LOOP_IN = "UndergroundDoor_ElectricMotor_Start_SoundSet";
354 const string ENGINE_SOUNDSET_LOOP = "UndergroundDoor_ElectricMotor_Loop_SoundSet";
355 const string ENGINE_SOUNDSET_LOOP_OUT = "UndergroundDoor_ElectricMotor_End_SoundSet";
356 const string LOCKING_SOUNDSET = "UndergroundDoor_Lock_SoundSet";
357 const string DOORMOVING_SOUNDSET_LOOP = "UndergroundDoor_DoorOpen_Loop_SoundSet";
358 const string DOORMOVING_SOUNDSET_LOOP_OUT = "UndergroundDoor_DoorOpen_End_SoundSet";
359 const string DOORMOVING_SOUNDSET_LOOP_IN = "UndergroundDoor_DoorOpen_Start_SoundSet";
360
361 const float LIGHT_ROT_SPEED = -400;
362
363 override void CreateLights()
364 {
365 m_InteriorLight1 = EntranceLight.Cast(ScriptedLightBase.CreateLightAtObjMemoryPoint(EntranceLightMain1, this, "InteriorLightPos1"));
366 m_InteriorLight2 = EntranceLight.Cast(ScriptedLightBase.CreateLightAtObjMemoryPoint(EntranceLightMain2, this, "InteriorLightPos2"));
367 }
368
385
387 {
388 switch (newState)
389 {
390 case EUndegroundEntranceState.OPENING_A:
392 break;
393 case EUndegroundEntranceState.OPENING_B:
395 break;
396 case EUndegroundEntranceState.OPENING_C:
398 break;
399 case EUndegroundEntranceState.OPENING_D:
400 m_AnimTimerDoorServer = new AnimationTimer();
401 m_AnimTimerDoorServer.Run(AdjustTime(GetOpeningTime()), this, "OnUpdateServer", "OnFinishedTimerServer",0, false,/*1/ AdjustTime(1)*/ 1);
402 m_NavmeshTimer = new Timer();
403 m_NavmeshTimer.Run(3, this, "NavmeshUpdate", NULL, true);
405 break;
406 case EUndegroundEntranceState.OPENING_E:
407 m_AnimTimerDoorServer.Stop();
409 m_NavmeshTimer = null;
411 break;
412 case EUndegroundEntranceState.OPENING_F:
414 break;
415 case EUndegroundEntranceState.OPENING_G:
417 break;
418 case EUndegroundEntranceState.CLOSING_A:
420 break;
421 case EUndegroundEntranceState.CLOSING_B:
423 break;
424 case EUndegroundEntranceState.CLOSING_C:
425 m_NavmeshTimer = new Timer();
426 m_NavmeshTimer.Run(3, this, "NavmeshUpdate", NULL, true);
427 m_AnimTimerDoorServer.Run(0, this, "OnUpdateServer", "OnFinishedTimerServer", AdjustTime(GetOpeningTime()),false, /*1/ AdjustTime(1)*/ 1);
429 break;
430 case EUndegroundEntranceState.CLOSING_D:
432 m_NavmeshTimer = null;
434 break;
435 case EUndegroundEntranceState.CLOSING_E:
437 break;
438 case EUndegroundEntranceState.CLOSING_F:
440 break;
441 case EUndegroundEntranceState.CLOSING_G:
443 break;
444 }
445 }
446
448 {
449 vector pos;
450 if (MemoryPointExists("SirenLightPos"))
451 {
452 pos = GetMemoryPointPos("SirenLightPos");
453 pos = ModelToWorld(pos);
454 }
455 else
456 {
457 ErrorEx("GetLightPosition could not locate memory point 'SirenLightPos'");
458 }
459 return pos;
460 }
461
463 {
464 if (eff == m_DoorMovementSoundIn)
465 {
466 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
468 }
469 else if (eff == m_DoorEngineSoundIn)
470 {
471 PlaySoundSetAtMemoryPointLooped(m_DoorEngineSoundLoop, ENGINE_SOUNDSET_LOOP, "DoorEngineSoundPos");
472 m_DoorEngineSoundIn = null;
473 }
474 }
475
476 //do note that one-time effects are played even if the client connects and misses the state switch, ie. they are not connected the exact moment when the effect is supposed to be played(just after a state switch), but connect sometime later
477 //we can prevent such effects from playing by checking for IsInitDoorStateSync(), but that seems unnecessary as the issue is really small
479 {
480 //Print("HandleAudioVisualPlayback " + newState + ", " + prevState);
481 //opening
483 {
484 PlaySoundSetAtMemoryPointLooped(m_SirenSound, SIREN_SOUNDSET, "SirenSoundPos",0.5,0.5);
485 }
486 if (newState == EUndegroundEntranceState.OPENING_B)
487 {
488 if (prevState == EUndegroundEntranceState.OPENING_A)//if they connected already during B, do not play the in
489 {
490 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundIn, ENGINE_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
492 m_DoorEngineSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
493 }
494 }
495
497 {
498 if (!m_DoorEngineSoundLoop && !m_DoorEngineSoundIn)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
499 {
500 PlaySoundSetAtMemoryPointLooped(m_DoorEngineSoundLoop, ENGINE_SOUNDSET_LOOP, "DoorEngineSoundPos");
501 }
502 }
503 if (newState == EUndegroundEntranceState.OPENING_C)
504 {
505 PlaySoundSetAtMemoryPoint(m_LockingSound, LOCKING_SOUNDSET, "DoorEngineSoundPos");
506 }
507 if (newState == EUndegroundEntranceState.OPENING_D)
508 {
509 if (prevState == EUndegroundEntranceState.OPENING_C)//if they connected already during C, do not play the in
510 {
511 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundIn, DOORMOVING_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
513 m_DoorMovementSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
514 }
515 else if (!m_DoorMovementSoundIn && !m_DoorMovementSoundLoop)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
516 {
517 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
518 }
519 }
520
521 if (newState == EUndegroundEntranceState.OPENING_E)
522 {
523 StopSoundSet(m_DoorMovementSoundLoop);
524 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundOut, DOORMOVING_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
525 }
526 if (newState == EUndegroundEntranceState.OPENING_F)
527 {
528 StopSoundSet(m_DoorEngineSoundLoop);
529 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundOut, ENGINE_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
530 }
531 if (newState == EUndegroundEntranceState.OPENING_G)
532 {
533 StopSoundSet(m_SirenSound);
534 }
535
536 //closing
538 {
539 PlaySoundSetAtMemoryPointLooped(m_SirenSound, SIREN_SOUNDSET, "SirenSoundPos",0.5,0.5);
540 }
542 {
543 if (prevState == EUndegroundEntranceState.CLOSING_A)//if they connected already during B, do not play the in
544 {
545 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundIn, ENGINE_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
547 m_DoorEngineSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
548 }
549 }
550 if ( newState == EUndegroundEntranceState.CLOSING_C)
551 {
552 if (prevState == EUndegroundEntranceState.CLOSING_B)//if they connected already during C, do not play the in
553 {
554 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundIn, DOORMOVING_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
556 m_DoorMovementSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
557 }
558 else if (!m_DoorMovementSoundIn && !m_DoorMovementSoundLoop)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
559 {
560 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
561 }
562 }
563 if (newState == EUndegroundEntranceState.CLOSING_D)
564 {
565 StopSoundSet(m_DoorMovementSoundLoop);
566 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundOut, DOORMOVING_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
567 }
568 if (newState == EUndegroundEntranceState.CLOSING_E)
569 {
570 PlaySoundSetAtMemoryPoint(m_LockingSound, LOCKING_SOUNDSET, "DoorEngineSoundPos");
571 }
572 if (newState == EUndegroundEntranceState.CLOSING_F)
573 {
574 StopSoundSet(m_DoorEngineSoundLoop);
575 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundOut, ENGINE_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
576 }
577 if (newState == EUndegroundEntranceState.CLOSING_G || newState == EUndegroundEntranceState.CLOSED)
578 {
579 StopSoundSet(m_SirenSound);
580 }
581 }
582
583 override void OnUpdateClient(float timeSlice)
584 {
585 SetAnimationPhaseNow("EntranceDoor",m_AnimPhase);
586 if (m_AlarmLight)
587 {
588 vector newOri = m_AlarmLight.GetOrientation() + Vector(timeSlice * LIGHT_ROT_SPEED,0,0);
589 m_AlarmLight.SetOrientation(newOri);
590 }
591 }
592
594 {
595 if ( CheckShouldPlayPersistent(EUndegroundEntranceState.OPENING_A, EUndegroundEntranceState.OPENING_F) || CheckShouldPlayPersistent(EUndegroundEntranceState.CLOSING_A, EUndegroundEntranceState.CLOSING_F))
596 {
598 }
599 if ( newState == EUndegroundEntranceState.CLOSING_G || newState == EUndegroundEntranceState.CLOSED || newState == EUndegroundEntranceState.OPENING_G )
600 {
601 if (m_AlarmLight)
602 {
603 m_AlarmLight.Destroy();
604 }
605 }
606 }
607
608}
Param4< int, int, string, int > TSelectableActionInfoWithColor
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения DayZAnimal.c:136
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения DayZAnimal.c:125
DayZGame g_Game
Определения DayZGame.c:4074
float m_FadeInTime
Определения DebugWeatherRPCData.c:43
EActions
Определения EActions.c:2
void Effect()
ctor
Определения Effect.c:72
void EntranceLight()
Определения EntranceLight.c:26
enum EUndegroundEntranceState AlarmLight()
Определения Land_Underground_Entrance.c:31
CLOSED
Определения Land_Underground_Entrance.c:33
OPENING_A
Определения Land_Underground_Entrance.c:35
const string ENGINE_SOUNDSET_LOOP_IN
Определения Land_Underground_Entrance.c:353
const string LOCKING_SOUNDSET
Определения Land_Underground_Entrance.c:356
OPENING_G
Определения Land_Underground_Entrance.c:41
vector GetLightPosition()
Определения Land_Underground_Entrance.c:447
OPENING_B
Определения Land_Underground_Entrance.c:36
AlarmLight m_AlarmLight
Определения Land_Underground_Entrance.c:350
CLOSING_D
Определения Land_Underground_Entrance.c:46
enum EUndegroundEntranceState MAIN
OPENING_C
Определения Land_Underground_Entrance.c:37
CLOSING_E
Определения Land_Underground_Entrance.c:47
Land_Underground_EntranceBase m_SirenSound
EffectSound m_DoorEngineSoundIn
Определения Land_Underground_Entrance.c:341
const string DOORMOVING_SOUNDSET_LOOP
Определения Land_Underground_Entrance.c:357
CLOSING_C
Определения Land_Underground_Entrance.c:45
EffectSound m_DoorMovementSoundLoop
Определения Land_Underground_Entrance.c:346
const string DOORMOVING_SOUNDSET_LOOP_OUT
Определения Land_Underground_Entrance.c:358
CLOSING_G
Определения Land_Underground_Entrance.c:50
CLOSING_F
Определения Land_Underground_Entrance.c:48
OPENING_E
Определения Land_Underground_Entrance.c:39
void SoundEnded(Effect eff)
Определения Land_Underground_Entrance.c:462
enum EUndegroundEntranceState SMALL
EffectSound m_DoorEngineSoundOut
Определения Land_Underground_Entrance.c:343
OPENING_F
Определения Land_Underground_Entrance.c:40
OPENING_D
Определения Land_Underground_Entrance.c:38
const float LIGHT_ROT_SPEED
Определения Land_Underground_Entrance.c:361
EffectSound m_DoorEngineSoundLoop
Определения Land_Underground_Entrance.c:342
const string DOORMOVING_SOUNDSET_LOOP_IN
Определения Land_Underground_Entrance.c:359
EffectSound m_LockingSound
Определения Land_Underground_Entrance.c:344
EffectSound m_DoorMovementSoundOut
Определения Land_Underground_Entrance.c:347
UNINITIALIZED
Определения Land_Underground_Entrance.c:32
EUndegroundEntranceState
Определения Land_Underground_Entrance.c:2
CLOSING_A
Определения Land_Underground_Entrance.c:43
EffectSound m_DoorMovementSoundIn
Определения Land_Underground_Entrance.c:345
const string ENGINE_SOUNDSET_LOOP_OUT
Определения Land_Underground_Entrance.c:355
const string ENGINE_SOUNDSET_LOOP
Определения Land_Underground_Entrance.c:354
CLOSING_B
Определения Land_Underground_Entrance.c:44
const string SIREN_SOUNDSET
Определения Land_Underground_Entrance.c:352
void Land_Underground_Panel()
Определения Land_Underground_Panel.c:38
string GetDebugText()
Определения ModifierBase.c:71
AnimationTimer class. This timer is for animating float value. usage:
Определения 3_Game/DayZ/tools/tools.c:651
Wrapper class for managing sound through SEffectManager.
Определения EffectSound.c:5
static int GetLastEnumValue(typename e)
Return amount of values in enum.
Определения EnConvert.c:750
Определения EnConvert.c:688
Определения EnEntity.c:165
EntranceLight m_InteriorLight2
Определения Land_Underground_Entrance.c:62
EUndegroundEntranceState m_DoorState
Определения Land_Underground_Entrance.c:53
bool CanManipulate(Param param=null)
Определения Land_Underground_Entrance.c:119
void SetDoorStateServer(EUndegroundEntranceState newState)
Определения Land_Underground_Entrance.c:209
void OnUpdateClient(float timeSlice)
void GetConnectedPanels(array< Land_Underground_Panel > panels)
Определения Land_Underground_Entrance.c:154
void OnDoorStateChangedClient(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
Определения Land_Underground_Entrance.c:218
ref array< Land_Underground_Panel > m_ConnectedPanels
Определения Land_Underground_Entrance.c:58
void HandleAudioPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
EUndegroundEntranceState m_DoorStatePrev
Определения Land_Underground_Entrance.c:54
const float TEMP_HOTIX_TIMESLICE
Определения Land_Underground_Entrance.c:70
bool CheckShouldPlayPersistent(EUndegroundEntranceState state, EUndegroundEntranceState lastValidState)
Определения Land_Underground_Entrance.c:172
ref AnimationTimer m_AnimTimerDoorServer
Определения Land_Underground_Entrance.c:56
override void OnVariablesSynchronized()
Определения Land_Underground_Entrance.c:258
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Land_Underground_Entrance.c:135
float AdjustTime(float originalTime, float adjustedTime=-1)
Определения Land_Underground_Entrance.c:177
void OnDoorStateChangedServer(EUndegroundEntranceState newState)
EUndegroundDoorType m_DoorType
Определения Land_Underground_Entrance.c:59
EntranceLight m_InteriorLight1
Определения Land_Underground_Entrance.c:61
void HandleVisualPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
void OpenServer(bool force=false)
Определения Land_Underground_Entrance.c:244
void Manipulate(Param param=null)
Определения Land_Underground_Entrance.c:124
EntranceLight m_InteriorLight3
Определения Land_Underground_Entrance.c:63
void RequestLatentTransition(float time, EUndegroundEntranceState targetState=EUndegroundEntranceState.UNINITIALIZED)
Определения Land_Underground_Entrance.c:200
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
static bool DestroySound(EffectSound sound_effect)
Legacy, backwards compatibility.
Определения EffectManager.c:441
Manager class for managing Effect (EffectParticle, EffectSound)
Определения EffectManager.c:6
Определения DayZPlayerImplement.c:39
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения EnConvert.c:119
Serializer ParamsReadContext
Определения gameplay.c:15
enum ShapeType ErrorEx
EntityEvent
Entity events for event-mask, or throwing event from code.
Определения EnEntity.c:45
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
const int SAT_DEBUG_ACTION
Определения 3_Game/DayZ/constants.c:486
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8