DayZ 1.27
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);
43 m_FadeInTime = 0.25;
44 }
47//---------------------------------------------------------------------------------------------------------
48//------------------------------------ Land_Underground_EntranceBase --------------------------------------
49//---------------------------------------------------------------------------------------------------------
50
52{
59 EUndegroundDoorType m_DoorType;
60
64
66 {
67 m_DoorType = EUndegroundDoorType.MAIN;
68 Land_Underground_Panel.RegisterEntrance(this);
69 RegisterNetSyncVariableFloat("m_AnimPhase", 0,1,5);
70 RegisterNetSyncVariableInt("m_DoorState", 0, EnumTools.GetLastEnumValue(EUndegroundEntranceState));
71
72 #ifndef SERVER
74 #endif
75 }
76
78
80 {
81 Land_Underground_Panel.UnregisterEntrance(this);
82 #ifndef SERVER
84 #endif
85 }
86 //---------------------
87
88
90 {
91 //anything we might have started playing when the door was activated
93 }
94
95
97
98 bool CanManipulate(Param param = null)
99 {
100 return m_DoorState == EUndegroundEntranceState.CLOSED;
101 }
102
103 void Manipulate(Param param = null)
104 {
105 OpenServer();
106 }
107
109 {
110 }
111
112 void OnUpdateClient(float timeSlice);
113
114 override void EOnPostSimulate(IEntity other, float timeSlice)
115 {
116 #ifndef SERVER
117 OnUpdateClient(timeSlice);
118 #endif
119 }
120
122 {
123 m_AnimPhase = m_AnimTimerDoorServer.GetValue() / AdjustTime(GetOpeningTime());// make 0..1
124 SetAnimationPhaseNow("EntranceDoor",m_AnimPhase);
125
127
128 SetSynchDirty();
129 }
130
132 {
133 if (!Land_Underground_Panel.m_Panels)
134 {
135 return;
136 }
138 {
139 if (p.GetClosestDoor() == this)
140 {
141 panels.Insert(p);
142 }
143 }
144 }
145
146 // 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
147 // 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
148 // meaning the client just connected in/the item entered their multiplayer bubble
150 {
151 return m_DoorState == state || ( IsInitDoorStateSync() && m_DoorState > state && m_DoorState <= lastValidState);
152 }
153
154 float AdjustTime(float originalTime, float adjustedTime = -1)
155 {
156 #ifdef DIAG_DEVELOPER
157 float timeAccel = 1;
158
159 if (adjustedTime != -1)
160 {
161 return adjustedTime;
162 }
163 if (FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.UNDERGROUND_ENTRANCE))
164 {
165 timeAccel = FeatureTimeAccel.GetFeatureTimeAccelValue();
166 return originalTime / timeAccel;
167 }
168 #endif
169 return originalTime;
170 }
171
173 {
174 return 30;
175 }
176
178 {
179 if (targetState == EUndegroundEntranceState.UNINITIALIZED)
180 {
181 targetState = m_DoorState + 1;
182 }
183 GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( SetDoorStateServer, time * 1000, false, targetState);
184 }
185
187 {
188 m_DoorState = newState;
189 OnDoorStateChangedServer(newState);
190 SetSynchDirty();
191 }
192
194
196 {
197 if (newState > EUndegroundEntranceState.CLOSED)
198 {
199 SetEventMask(EntityEvent.POSTSIMULATE);
200 }
201 else
202 {
203 ClearEventMask(EntityEvent.POSTSIMULATE);
205 }
206
207 HandleAudioPlayback(newState, prevState);
208 HandleVisualPlayback(newState, prevState);
209
211 {
214 }
216 {
217 p.OnDoorStateChangedClient(newState, prevState);
218 }
219 }
220
221 void OpenServer(bool force = false)
222 {
224 if (m_DoorState == EUndegroundEntranceState.CLOSED || force)
225 {
227 }
228 }
229
232
234
236 {
237 super.OnVariablesSynchronized();
238
240 {
243 }
244 }
245
247 {
248 return m_DoorStatePrev == EUndegroundEntranceState.UNINITIALIZED;
249 }
250
251
252 #ifdef DEVELOPER
253 override string GetDebugText()
254 {
255 string debug_output;
256
257 if (GetGame().IsDedicatedServer())
258 {
259 debug_output += "current state: " + typename.EnumToString(EUndegroundEntranceState, m_DoorState) + "\n";
260 /*
261 if(GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ))
262 debug_output += "next stage timer: " + GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).GetRemainingTimeByName(this, "SetDoorStateServer").ToString();
263 */
264 }
265 else
266 {
267 debug_output += "current state: " + typename.EnumToString(EUndegroundEntranceState, m_DoorState) + "\n";
268 }
269 return debug_output;
270 }
271
272 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
273 {
274 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.ACTIVATE_ENTITY, "Open", FadeColors.LIGHT_GREY));
275 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.DEACTIVATE_ENTITY, "Close", FadeColors.LIGHT_GREY));
276 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
277
278 super.GetDebugActions(outputList);
279 }
280
281 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
282 {
283 if (super.OnAction(action_id, player, ctx))
284 return true;
285 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
286 {
287 if (action_id == EActions.ACTIVATE_ENTITY)
288 {
290 OpenServer(true);
291 }
292 else if (action_id == EActions.DEACTIVATE_ENTITY)
293 {
294 // just for debug controls
296 m_AnimTimerDoorServer = new AnimationTimer();
297
298 if (m_DoorState == EUndegroundEntranceState.OPENING_G)
299 {
302 }
303 }
304 }
305 return false;
306 }
307 #endif
308}
309
310
311//---------------------------------------------------------------------------------------------------------
312//-------------------------------------- Land_Underground_Entrance ----------------------------------------
313//---------------------------------------------------------------------------------------------------------
314
315class Land_Underground_Entrance : Land_Underground_EntranceBase
316{
325
326
328
329 const string SIREN_SOUNDSET = "UndergroundDoor_Alarm_Loop_SoundSet";
330 const string ENGINE_SOUNDSET_LOOP_IN = "UndergroundDoor_ElectricMotor_Start_SoundSet";
331 const string ENGINE_SOUNDSET_LOOP = "UndergroundDoor_ElectricMotor_Loop_SoundSet";
332 const string ENGINE_SOUNDSET_LOOP_OUT = "UndergroundDoor_ElectricMotor_End_SoundSet";
333 const string LOCKING_SOUNDSET = "UndergroundDoor_Lock_SoundSet";
334 const string DOORMOVING_SOUNDSET_LOOP = "UndergroundDoor_DoorOpen_Loop_SoundSet";
335 const string DOORMOVING_SOUNDSET_LOOP_OUT = "UndergroundDoor_DoorOpen_End_SoundSet";
336 const string DOORMOVING_SOUNDSET_LOOP_IN = "UndergroundDoor_DoorOpen_Start_SoundSet";
337
338 const float LIGHT_ROT_SPEED = -400;
339
340 override void CreateLights()
341 {
342 m_InteriorLight1 = EntranceLight.Cast(ScriptedLightBase.CreateLightAtObjMemoryPoint(EntranceLightMain1, this, "InteriorLightPos1"));
343 m_InteriorLight2 = EntranceLight.Cast(ScriptedLightBase.CreateLightAtObjMemoryPoint(EntranceLightMain2, this, "InteriorLightPos2"));
344 }
345
362
364 {
365 switch (newState)
366 {
367 case EUndegroundEntranceState.OPENING_A:
369 break;
370 case EUndegroundEntranceState.OPENING_B:
372 break;
373 case EUndegroundEntranceState.OPENING_C:
375 break;
376 case EUndegroundEntranceState.OPENING_D:
377 m_AnimTimerDoorServer = new AnimationTimer();
378 m_AnimTimerDoorServer.Run(AdjustTime(GetOpeningTime()), this, "OnUpdateServer", "OnFinishedTimerServer",0, false,/*1/ AdjustTime(1)*/ 1);
379 m_NavmeshTimer = new Timer();
380 m_NavmeshTimer.Run(3, this, "NavmeshUpdate", NULL, true);
382 break;
383 case EUndegroundEntranceState.OPENING_E:
384 m_AnimTimerDoorServer.Stop();
386 m_NavmeshTimer = null;
388 break;
389 case EUndegroundEntranceState.OPENING_F:
391 break;
392 case EUndegroundEntranceState.OPENING_G:
394 break;
395 case EUndegroundEntranceState.CLOSING_A:
397 break;
398 case EUndegroundEntranceState.CLOSING_B:
400 break;
401 case EUndegroundEntranceState.CLOSING_C:
402 m_NavmeshTimer = new Timer();
403 m_NavmeshTimer.Run(3, this, "NavmeshUpdate", NULL, true);
404 m_AnimTimerDoorServer.Run(0, this, "OnUpdateServer", "OnFinishedTimerServer", AdjustTime(GetOpeningTime()),false, /*1/ AdjustTime(1)*/ 1);
406 break;
407 case EUndegroundEntranceState.CLOSING_D:
409 m_NavmeshTimer = null;
411 break;
412 case EUndegroundEntranceState.CLOSING_E:
414 break;
415 case EUndegroundEntranceState.CLOSING_F:
417 break;
418 case EUndegroundEntranceState.CLOSING_G:
420 break;
421 }
422 }
423
425 {
426 vector pos;
427 if (MemoryPointExists("SirenLightPos"))
428 {
429 pos = GetMemoryPointPos("SirenLightPos");
430 pos = ModelToWorld(pos);
431 }
432 else
433 {
434 ErrorEx("GetLightPosition could not locate memory point 'SirenLightPos'");
435 }
436 return pos;
437 }
438
440 {
441 if (eff == m_DoorMovementSoundIn)
442 {
443 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
445 }
446 else if (eff == m_DoorEngineSoundIn)
447 {
448 PlaySoundSetAtMemoryPointLooped(m_DoorEngineSoundLoop, ENGINE_SOUNDSET_LOOP, "DoorEngineSoundPos");
449 m_DoorEngineSoundIn = null;
450 }
451 }
452
453 //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
454 //we can prevent such effects from playing by checking for IsInitDoorStateSync(), but that seems unnecessary as the issue is really small
456 {
457 //Print("HandleAudioVisualPlayback " + newState + ", " + prevState);
458 //opening
460 {
461 PlaySoundSetAtMemoryPointLooped(m_SirenSound, SIREN_SOUNDSET, "SirenSoundPos",0.5,0.5);
462 }
463 if (newState == EUndegroundEntranceState.OPENING_B)
464 {
465 if (prevState == EUndegroundEntranceState.OPENING_A)//if they connected already during B, do not play the in
466 {
467 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundIn, ENGINE_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
469 m_DoorEngineSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
470 }
471 }
472
474 {
475 if (!m_DoorEngineSoundLoop && !m_DoorEngineSoundIn)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
476 {
477 PlaySoundSetAtMemoryPointLooped(m_DoorEngineSoundLoop, ENGINE_SOUNDSET_LOOP, "DoorEngineSoundPos");
478 }
479 }
480 if (newState == EUndegroundEntranceState.OPENING_C)
481 {
482 PlaySoundSetAtMemoryPoint(m_LockingSound, LOCKING_SOUNDSET, "DoorEngineSoundPos");
483 }
484 if (newState == EUndegroundEntranceState.OPENING_D)
485 {
486 if (prevState == EUndegroundEntranceState.OPENING_C)//if they connected already during C, do not play the in
487 {
488 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundIn, DOORMOVING_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
490 m_DoorMovementSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
491 }
492 else if (!m_DoorMovementSoundIn && !m_DoorMovementSoundLoop)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
493 {
494 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
495 }
496 }
497
498 if (newState == EUndegroundEntranceState.OPENING_E)
499 {
500 StopSoundSet(m_DoorMovementSoundLoop);
501 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundOut, DOORMOVING_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
502 }
503 if (newState == EUndegroundEntranceState.OPENING_F)
504 {
505 StopSoundSet(m_DoorEngineSoundLoop);
506 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundOut, ENGINE_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
507 }
508 if (newState == EUndegroundEntranceState.OPENING_G)
509 {
510 StopSoundSet(m_SirenSound);
511 }
512
513 //closing
515 {
516 PlaySoundSetAtMemoryPointLooped(m_SirenSound, SIREN_SOUNDSET, "SirenSoundPos",0.5,0.5);
517 }
519 {
520 if (prevState == EUndegroundEntranceState.CLOSING_A)//if they connected already during B, do not play the in
521 {
522 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundIn, ENGINE_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
524 m_DoorEngineSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
525 }
526 }
527 if ( newState == EUndegroundEntranceState.CLOSING_C)
528 {
529 if (prevState == EUndegroundEntranceState.CLOSING_B)//if they connected already during C, do not play the in
530 {
531 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundIn, DOORMOVING_SOUNDSET_LOOP_IN, "DoorEngineSoundPos");
533 m_DoorMovementSoundIn.Event_OnEffectEnded.Insert(SoundEnded);
534 }
535 else if (!m_DoorMovementSoundIn && !m_DoorMovementSoundLoop)//missed playing of the IN soundset which automatically triggers playing of the loop(connected after ?)
536 {
537 PlaySoundSetAtMemoryPointLooped(m_DoorMovementSoundLoop, DOORMOVING_SOUNDSET_LOOP, "DoorEngineSoundPos");
538 }
539 }
540 if (newState == EUndegroundEntranceState.CLOSING_D)
541 {
542 StopSoundSet(m_DoorMovementSoundLoop);
543 PlaySoundSetAtMemoryPoint(m_DoorMovementSoundOut, DOORMOVING_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
544 }
545 if (newState == EUndegroundEntranceState.CLOSING_E)
546 {
547 PlaySoundSetAtMemoryPoint(m_LockingSound, LOCKING_SOUNDSET, "DoorEngineSoundPos");
548 }
549 if (newState == EUndegroundEntranceState.CLOSING_F)
550 {
551 StopSoundSet(m_DoorEngineSoundLoop);
552 PlaySoundSetAtMemoryPoint(m_DoorEngineSoundOut, ENGINE_SOUNDSET_LOOP_OUT, "DoorEngineSoundPos");
553 }
554 if (newState == EUndegroundEntranceState.CLOSING_G || newState == EUndegroundEntranceState.CLOSED)
555 {
556 StopSoundSet(m_SirenSound);
557 }
558 }
559
560 override void OnUpdateClient(float timeSlice)
561 {
562 SetAnimationPhaseNow("EntranceDoor",m_AnimPhase);
563 if (m_AlarmLight)
564 {
565 vector newOri = m_AlarmLight.GetOrientation() + Vector(timeSlice * LIGHT_ROT_SPEED,0,0);
566 m_AlarmLight.SetOrientation(newOri);
567 }
568 }
569
571 {
572 if ( CheckShouldPlayPersistent(EUndegroundEntranceState.OPENING_A, EUndegroundEntranceState.OPENING_F) || CheckShouldPlayPersistent(EUndegroundEntranceState.CLOSING_A, EUndegroundEntranceState.CLOSING_F))
573 {
575 }
576 if ( newState == EUndegroundEntranceState.CLOSING_G || newState == EUndegroundEntranceState.CLOSED || newState == EUndegroundEntranceState.OPENING_G )
577 {
578 if (m_AlarmLight)
579 {
580 m_AlarmLight.Destroy();
581 }
582 }
583 }
584
585}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
EActions
Определения EActions.c:2
void Effect()
ctor
Определения Effect.c:70
void EntranceLight()
Определения EntranceLight.c:26
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения ItemBase.c:7114
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения ItemBase.c:7071
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:330
const string LOCKING_SOUNDSET
Определения Land_Underground_Entrance.c:333
OPENING_G
Определения Land_Underground_Entrance.c:41
vector GetLightPosition()
Определения Land_Underground_Entrance.c:424
OPENING_B
Определения Land_Underground_Entrance.c:36
AlarmLight m_AlarmLight
Определения Land_Underground_Entrance.c:327
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:318
const string DOORMOVING_SOUNDSET_LOOP
Определения Land_Underground_Entrance.c:334
CLOSING_C
Определения Land_Underground_Entrance.c:45
EffectSound m_DoorMovementSoundLoop
Определения Land_Underground_Entrance.c:323
const string DOORMOVING_SOUNDSET_LOOP_OUT
Определения Land_Underground_Entrance.c:335
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:439
enum EUndegroundEntranceState SMALL
EffectSound m_DoorEngineSoundOut
Определения Land_Underground_Entrance.c:320
OPENING_F
Определения Land_Underground_Entrance.c:40
OPENING_D
Определения Land_Underground_Entrance.c:38
const float LIGHT_ROT_SPEED
Определения Land_Underground_Entrance.c:338
EffectSound m_DoorEngineSoundLoop
Определения Land_Underground_Entrance.c:319
const string DOORMOVING_SOUNDSET_LOOP_IN
Определения Land_Underground_Entrance.c:336
EffectSound m_LockingSound
Определения Land_Underground_Entrance.c:321
EffectSound m_DoorMovementSoundOut
Определения Land_Underground_Entrance.c:324
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:322
const string ENGINE_SOUNDSET_LOOP_OUT
Определения Land_Underground_Entrance.c:332
const string ENGINE_SOUNDSET_LOOP
Определения Land_Underground_Entrance.c:331
CLOSING_B
Определения Land_Underground_Entrance.c:44
const string SIREN_SOUNDSET
Определения Land_Underground_Entrance.c:329
void Land_Underground_Panel()
Определения Land_Underground_Panel.c:38
string GetDebugText()
Определения ModifierBase.c:71
AnimationTimer class. This timer is for animating float value. usage:
Определения tools.c:653
proto native World GetWorld()
override ScriptCallQueue GetCallQueue(int call_category)
Определения DayZGame.c:1187
proto native bool RegisterNetworkStaticObject(Object object)
Static objects cannot be replicated by default (there are too many objects on the map)....
Wrapper class for managing sound through SEffectManager.
Определения EffectSound.c:5
static int GetLastEnumValue(typename e)
Return amount of values in enum.
Определения EnConvert.c:647
Определения EnConvert.c:590
void House()
Определения Building.c:3
Определения 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:98
void SetDoorStateServer(EUndegroundEntranceState newState)
Определения Land_Underground_Entrance.c:186
void OnUpdateClient(float timeSlice)
void GetConnectedPanels(array< Land_Underground_Panel > panels)
Определения Land_Underground_Entrance.c:131
void OnDoorStateChangedClient(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
Определения Land_Underground_Entrance.c:195
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
bool CheckShouldPlayPersistent(EUndegroundEntranceState state, EUndegroundEntranceState lastValidState)
Определения Land_Underground_Entrance.c:149
ref AnimationTimer m_AnimTimerDoorServer
Определения Land_Underground_Entrance.c:56
override void OnVariablesSynchronized()
Определения Land_Underground_Entrance.c:235
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Land_Underground_Entrance.c:114
float AdjustTime(float originalTime, float adjustedTime=-1)
Определения Land_Underground_Entrance.c:154
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:221
void Manipulate(Param param=null)
Определения Land_Underground_Entrance.c:103
EntranceLight m_InteriorLight3
Определения Land_Underground_Entrance.c:63
void RequestLatentTransition(float time, EUndegroundEntranceState targetState=EUndegroundEntranceState.UNINITIALIZED)
Определения Land_Underground_Entrance.c:177
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:432
Manager class for managing Effect (EffectParticle, EffectSound)
Определения EffectManager.c:6
proto void Remove(func fn)
remove specific call from queue
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Определения DayZPlayerImplement.c:63
proto native void UpdatePathgraphDoorByAnimationSourceName(notnull Object object, string animSourceName)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
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
Определения constants.c:452
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
Определения tools.c:8