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

◆ StateCheck()

bool ActionUnfoldMap::StateCheck ( )

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

339{
340 bool m_MapFolding;
345
346 void ActionUnfoldMapCB()
347 {
351 }
352
353 void ~ActionUnfoldMapCB()
354 {
355 if (GetGame() && GetGame().GetMission())
356 {
358 {
359 GetGame().GetMission().RemoveActiveInputExcludes({"map"}, false);
360 }
361 else
362 {
363 GetGame().GetMission().RemoveActiveInputExcludes({"loopedactions"}, false);
364 }
365 GetGame().GetMission().RemoveActiveInputRestriction(EInputRestrictors.MAP);
366 }
367
368 if (!m_ActionData || !m_ActionData.m_Player)
369 return;
370
371 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
372 if (chernomap && m_ActionData.m_Player.IsMapOpen())
373 {
374 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
375 }
376 }
377
378 override void SetActionData(ActionData action_data)
379 {
380 m_ActionData = action_data;
381 m_InitMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
382 }
383
384 bool CancelCondition()
385 {
386 return m_CancelCondition;
387 }
388
389 override void OnStateChange(int pOldState, int pCurrentState)
390 {
391 if (!m_ActionData || !m_ActionData.m_Player)
392 return;
393
394 if ((pOldState == STATE_LOOP_IN && pCurrentState == STATE_LOOP_LOOP) && !m_HasReceivedEvent)
395 {
396 m_CancelCondition = true;
397 }
398 }
399
400 override void OnAnimationEvent(int pEventID)
401 {
402 if (!m_ActionData || !m_ActionData.m_Player)
403 return;
404
405 switch (pEventID)
406 {
407 case UA_ANIM_EVENT:
408 m_HasReceivedEvent = true;
409 m_FinalMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
410
411 if (StateCheck())
412 {
414 m_CancelCondition = false;
415 }
416 else
417 {
418 m_CancelCondition = true;
419 }
420 break;
421 }
422 }
423
424 override void OnFinish(bool pCanceled)
425 {
426 if (m_ActionData && m_ActionData.m_Player)
427 {
428 if (m_ActionData && m_ActionData.m_ActionComponent)
429 m_ActionData.m_State = m_ActionData.m_ActionComponent.Interrupt(m_ActionData);
430
431 if ((!GetGame().IsDedicatedServer()) && GetGame().GetUIManager() && GetGame().GetUIManager().IsMenuOpen(MENU_MAP))
432 {
434 }
435
436 ActionUnfoldMap action = ActionUnfoldMap.Cast(m_ActionData.m_Action);
439
440 m_ActionData.m_Player.SetMapClosingSyncSet(false); //reset
441
442 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
443 if (chernomap && m_ActionData.m_Player.IsMapOpen())
444 {
445 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
446 }
447
448 if (action)
449 action.End(m_ActionData);
450 }
451 }
452
453 void PerformMapChange()
454 {
455 if (m_ActionData.m_Player.IsSwimming() || m_ActionData.m_Player.IsClimbing() || m_ActionData.m_Player.IsFalling() || m_ActionData.m_Player.IsClimbingLadder() || m_ActionData.m_Player.IsUnconscious() || m_ActionData.m_Player.IsRestrained())
456 return;
457
458 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
459 if (chernomap)
460 {
461 if (!m_ActionData.m_Player.IsMapOpen() && !m_MapFolding)
462 {
463 if (m_CancelCondition) //do not open when cancelling in progress
464 return;
465
466 chernomap.SetMapStateOpen(true, m_ActionData.m_Player);
467
468 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
469 {
470 //chernomap.SyncMapMarkers();
471 }
472
473 if (!GetGame().IsDedicatedServer())
474 {
475 UIManager m_UIManager;
476 UIScriptedMenu mapMenu;
477 m_UIManager = GetGame().GetUIManager();
478 m_UIManager.CloseAll();
480 {
481 mapMenu = m_UIManager.EnterScriptedMenu(MENU_MAP, null);
482 mapMenu.InitMapItem(chernomap);
483 mapMenu.LoadMapMarkers();
485 }
486 else
487 {
488 GetGame().GetMission().AddActiveInputExcludes({"loopedactions"});
489 }
490
491 GetGame().GetMission().AddActiveInputRestriction(EInputRestrictors.MAP);
492 }
493 }
494 else if (m_ActionData.m_Player.IsMapOpen())
495 {
496 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
497 m_MapFolding = true;
498 m_ActionData.m_Player.SetMapOpen(false);
499 }
500 }
501 }
502
503 bool StateCheck()
504 {
506 }
507}
508
510{
511 void ActionUnfoldMap()
512 {
513 m_Text = "#unfold_map";
514 }
515
516 override bool IsInstant()
517 {
518 return false;
519 }
520
521 override void CreateConditionComponents()
522 {
523 m_ConditionItem = new CCINonRuined();
524 m_ConditionTarget = new CCTNone();
525 }
526
527 override bool HasTarget()
528 {
529 return false;
530 }
531
532 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
533 {
534 if (player.m_hac || player.IsMapOpen())
535 {
536 return false;
537 }
538 return true;
539 }
540
541 override int GetActionCategory()
542 {
543 return AC_SINGLE_USE;
544 }
545
546 override void OnStartClient(ActionData action_data)
547 {
548 OpenMap(action_data);
549 }
550
551 override void OnStartServer(ActionData action_data)
552 {
553 super.OnStartServer(action_data);
554
555 OpenMap(action_data);
556 ItemMap chernomap = ItemMap.Cast(action_data.m_MainItem);
557 chernomap.SyncMapMarkers();
558 }
559
560 override void OnEndRequest(ActionData action_data)
561 {
562 action_data.m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
563 action_data.m_State = UA_FINISHED;
564 }
565
566 override void Interrupt(ActionData action_data)
567 {
568 if (action_data.m_Player.m_hac)
569 {
570 action_data.m_Player.m_hac.m_MapFolding = true;
571 action_data.m_Player.m_hac.PerformMapChange();
572 action_data.m_Player.m_hac.Cancel();
573 }
574 else //should never get here, End called from the callback
575 {
576 End(action_data);
577 }
578 }
579
580 void OpenMap(ActionData action_data)
581 {
582 if (!action_data.m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
583 {
584 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.AddCommandModifier_Action(DayZPlayerConstants.CMD_ACTIONMOD_VIEWMAP,ActionUnfoldMapCB));
585 }
586 else
587 {
588 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_VIEWMAP,ActionUnfoldMapCB,DayZPlayerConstants.STANCEMASK_PRONE));
589 }
590
591 // sets player for associated callback to use
592 if (action_data.m_Player.m_hac)
593 {
594 action_data.m_Player.m_hac.SetActionData(action_data);
595 action_data.m_Callback = action_data.m_Player.m_hac;
596 }
597 }
598}
const int AC_SINGLE_USE
Определения _constants.c:2
ActionBase ActionData
Определения ActionBase.c:30
void Interrupt()
Определения ActionManagerBase.c:284
class ActionTargets ActionTarget
override void OnStateChange(int pOldState, int pCurrentState)
Определения ActionUnfoldMap.c:224
bool m_MapFolding
Определения ActionUnfoldMap.c:175
bool CancelCondition()
Определения ActionUnfoldMap.c:219
bool StateCheck()
Определения ActionUnfoldMap.c:338
ActionUnfoldMapCB ActionBaseCB ActionUnfoldMap()
Определения ActionUnfoldMap.c:174
void ActionUnfoldMapCB()
Определения ActionUnfoldMap.c:181
override void OnAnimationEvent(int pEventID)
Определения ActionUnfoldMap.c:235
void ~ActionUnfoldMapCB()
Определения ActionUnfoldMap.c:188
void PerformMapChange()
Определения ActionUnfoldMap.c:288
bool m_HasReceivedEvent
Определения ActionUnfoldMap.c:176
override void OnFinish(bool pCanceled)
Определения ActionUnfoldMap.c:259
override void SetActionData(ActionData action_data)
Определения ActionUnfoldMap.c:213
int m_InitMovementState
Определения ActionUnfoldMap.c:178
bool m_CancelCondition
Определения ActionUnfoldMap.c:177
int m_FinalMovementState
Определения ActionUnfoldMap.c:179
void OpenMap(ActionData action_data)
Определения ActionUnfoldMap.c:243
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
class GP5GasMask extends MaskBase ItemBase
proto static native void End()
Finalizes the testing process.
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:403
void OnEndRequest(ActionData action_data)
Определения ActionBase.c:785
bool HasTarget()
Определения ActionBase.c:244
int GetActionCategory()
Определения ActionBase.c:278
void OnStartClient(ActionData action_data)
Определения ActionBase.c:1263
void OnStartServer(ActionData action_data)
Определения ActionBase.c:1266
bool IsInstant()
Определения ActionBase.c:262
void CreateConditionComponents()
Определения ActionBase.c:230
Определения AnimatedActionBase.c:2
Определения ActionBase.c:53
proto native UIManager GetUIManager()
proto native Mission GetMission()
static bool GetUse3DMap()
Определения CfgGameplayHandler.c:382
Определения ChernarusMap_Open.c:2
void RemoveActiveInputRestriction(int restrictor)
void AddActiveInputRestriction(int restrictor)
void AddActiveInputExcludes(array< string > excludes)
void RemoveActiveInputExcludes(array< string > excludes, bool bForceSupress=false)
deprecated
proto native UIScriptedMenu EnterScriptedMenu(int id, UIMenuPanel parent)
Create & open menu with specific id (see MenuID) and set its parent.
UIScriptedMenu FindMenu(int id)
Returns menu with specific ID if it is open (see MenuID)
Определения UIManager.c:160
bool CloseAll()
Close all opened menus.
Определения UIManager.c:78
Определения UIManager.c:2
override void LoadMapMarkers()
Определения MapMenu.c:322
override void InitMapItem(EntityAI item)
Определения MapMenu.c:168
Определения DayZGame.c:64
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
const int MENU_MAP
Определения constants.c:191
const int UA_FINISHED
Определения constants.c:464
const int UA_ANIM_EVENT
Определения constants.c:471
static const int STATE_LOOP_IN
looped state
Определения human.c:352
proto native void EnableCancelCondition(bool pEnable)
proto native void EnableStateChangeCallback()
enables state change callback OnStateChange
static const int STATE_LOOP_LOOP
Определения human.c:353