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

◆ StateCheck()

bool ActionUnfoldMap::StateCheck ( )

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

331{
332 bool m_MapFolding;
337
338 void ActionUnfoldMapCB()
339 {
343 }
344
345 void ~ActionUnfoldMapCB()
346 {
347 if (g_Game && g_Game.GetMission())
348 {
350 {
351 g_Game.GetMission().RemoveActiveInputExcludes({"map"}, false);
352 }
353 else
354 {
355 g_Game.GetMission().RemoveActiveInputExcludes({"loopedactions"}, false);
356 }
357 g_Game.GetMission().RemoveActiveInputRestriction(EInputRestrictors.MAP);
358 }
359
360 if (!m_ActionData || !m_ActionData.m_Player)
361 return;
362
363 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
364 if (chernomap && m_ActionData.m_Player.IsMapOpen())
365 {
366 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
367 }
368 }
369
370 override void SetActionData(ActionData action_data)
371 {
372 m_ActionData = action_data;
373 m_InitMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
374 }
375
376 bool CancelCondition()
377 {
378 return m_CancelCondition;
379 }
380
381 override void OnStateChange(int pOldState, int pCurrentState)
382 {
383 if (!m_ActionData || !m_ActionData.m_Player)
384 return;
385
386 if ((pOldState == STATE_LOOP_IN && pCurrentState == STATE_LOOP_LOOP) && !m_HasReceivedEvent)
387 {
388 m_CancelCondition = true;
389 }
390 }
391
392 override void OnAnimationEvent(int pEventID)
393 {
394 if (!m_ActionData || !m_ActionData.m_Player)
395 return;
396
397 switch (pEventID)
398 {
399 case UA_ANIM_EVENT:
400 m_HasReceivedEvent = true;
401 m_FinalMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
402
403 if (StateCheck())
404 {
406 m_CancelCondition = false;
407 }
408 else
409 {
410 m_CancelCondition = true;
411 }
412 break;
413 }
414 }
415
416 override void OnFinish(bool pCanceled)
417 {
418 if (m_ActionData && m_ActionData.m_Player)
419 {
420 if (m_ActionData && m_ActionData.m_ActionComponent)
421 m_ActionData.m_State = m_ActionData.m_ActionComponent.Interrupt(m_ActionData);
422
423 if ((!g_Game.IsDedicatedServer()) && g_Game.GetUIManager() && g_Game.GetUIManager().IsMenuOpen(MENU_MAP))
424 {
425 g_Game.GetUIManager().FindMenu(MENU_MAP).Close();
426 }
427
428 ActionUnfoldMap action = ActionUnfoldMap.Cast(m_ActionData.m_Action);
431
432 m_ActionData.m_Player.SetMapClosingSyncSet(false); //reset
433
434 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
435 if (chernomap && m_ActionData.m_Player.IsMapOpen())
436 {
437 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
438 }
439
440 if (action)
441 action.End(m_ActionData);
442 }
443 }
444
445 void PerformMapChange()
446 {
447 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())
448 return;
449
450 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
451 if (chernomap)
452 {
453 if (!m_ActionData.m_Player.IsMapOpen() && !m_MapFolding)
454 {
455 if (m_CancelCondition) //do not open when cancelling in progress
456 return;
457
458 chernomap.SetMapStateOpen(true, m_ActionData.m_Player);
459
460 if (!g_Game.IsDedicatedServer())
461 {
462 Mission mission = g_Game.GetMission();
463 UIManager m_UIManager;
464 UIScriptedMenu mapMenu;
465 m_UIManager = g_Game.GetUIManager();
466 m_UIManager.CloseAll();
468 {
469 mapMenu = m_UIManager.EnterScriptedMenu(MENU_MAP, null);
470 mapMenu.InitMapItem(chernomap);
471 mapMenu.LoadMapMarkers();
472 mission.AddActiveInputExcludes({"map"});
473 }
474 else
475 {
476 mission.AddActiveInputExcludes({"loopedactions"});
477 }
478
479 mission.AddActiveInputRestriction(EInputRestrictors.MAP);
480 }
481 }
482 else if (m_ActionData.m_Player.IsMapOpen())
483 {
484 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
485 m_MapFolding = true;
486 m_ActionData.m_Player.SetMapOpen(false);
487 }
488 }
489 }
490
491 bool StateCheck()
492 {
494 }
495}
496
498{
499 void ActionUnfoldMap()
500 {
501 m_Text = "#unfold_map";
502 }
503
504 override bool IsInstant()
505 {
506 return false;
507 }
508
509 override void CreateConditionComponents()
510 {
511 m_ConditionItem = new CCINonRuined();
512 m_ConditionTarget = new CCTNone();
513 }
514
515 override bool HasTarget()
516 {
517 return false;
518 }
519
520 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
521 {
522 if (player.m_hac || player.IsMapOpen())
523 {
524 return false;
525 }
526 return true;
527 }
528
529 override int GetActionCategory()
530 {
531 return AC_SINGLE_USE;
532 }
533
534 override void OnStartClient(ActionData action_data)
535 {
536 OpenMap(action_data);
537 }
538
539 override void OnStartServer(ActionData action_data)
540 {
541 super.OnStartServer(action_data);
542
543 OpenMap(action_data);
544 ItemMap chernomap = ItemMap.Cast(action_data.m_MainItem);
545 chernomap.SyncMapMarkers();
546 }
547
548 override void OnEndRequest(ActionData action_data)
549 {
550 action_data.m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
551 action_data.m_State = UA_FINISHED;
552 }
553
554 override void Interrupt(ActionData action_data)
555 {
556 if (action_data.m_Player.m_hac)
557 {
558 action_data.m_Player.m_hac.m_MapFolding = true;
559 action_data.m_Player.m_hac.PerformMapChange();
560 action_data.m_Player.m_hac.Cancel();
561 }
562 else //should never get here, End called from the callback
563 {
564 End(action_data);
565 }
566 }
567
568 void OpenMap(ActionData action_data)
569 {
570 if (!action_data.m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
571 {
572 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.AddCommandModifier_Action(DayZPlayerConstants.CMD_ACTIONMOD_VIEWMAP,ActionUnfoldMapCB));
573 }
574 else
575 {
576 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_VIEWMAP,ActionUnfoldMapCB,DayZPlayerConstants.STANCEMASK_PRONE));
577 }
578
579 // sets player for associated callback to use
580 if (action_data.m_Player.m_hac)
581 {
582 action_data.m_Player.m_hac.SetActionData(action_data);
583 action_data.m_Callback = action_data.m_Player.m_hac;
584 }
585 }
586
588 {
589 return false;
590 }
591}
const int AC_SINGLE_USE
ActionBase ActionData
Определения ActionBase.c:30
void Interrupt()
Определения ActionManagerBase.c:284
class ActionTargets ActionTarget
override void OnStateChange(int pOldState, int pCurrentState)
Определения ActionUnfoldMap.c:220
bool m_MapFolding
Определения ActionUnfoldMap.c:171
bool CancelCondition()
Определения ActionUnfoldMap.c:215
bool StateCheck()
Определения ActionUnfoldMap.c:330
ActionUnfoldMapCB ActionBaseCB ActionUnfoldMap()
Определения ActionUnfoldMap.c:170
void ActionUnfoldMapCB()
Определения ActionUnfoldMap.c:177
override void OnAnimationEvent(int pEventID)
Определения ActionUnfoldMap.c:231
void ~ActionUnfoldMapCB()
Определения ActionUnfoldMap.c:184
void PerformMapChange()
Определения ActionUnfoldMap.c:284
bool m_HasReceivedEvent
Определения ActionUnfoldMap.c:172
override void OnFinish(bool pCanceled)
Определения ActionUnfoldMap.c:255
override void SetActionData(ActionData action_data)
Определения ActionUnfoldMap.c:209
int m_InitMovementState
Определения ActionUnfoldMap.c:174
bool m_CancelCondition
Определения ActionUnfoldMap.c:173
int m_FinalMovementState
Определения ActionUnfoldMap.c:175
void OpenMap(ActionData action_data)
Определения ActionUnfoldMap.c:239
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
DayZGame g_Game
Определения DayZGame.c:3942
Mission mission
Определения DisplayStatus.c:28
class GP5GasMask extends MaskBase ItemBase
proto static native void End()
Finalizes the testing process.
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:415
void OnEndRequest(ActionData action_data)
Определения ActionBase.c:797
bool CanBePerformedWhileChangingStance()
Condition used in PlayerBase::CanChangeStance to check if stance can be changed while action is perfo...
Определения ActionBase.c:320
bool HasTarget()
Определения ActionBase.c:250
int GetActionCategory()
Определения ActionBase.c:284
void OnStartClient(ActionData action_data)
Определения ActionBase.c:1277
void OnStartServer(ActionData action_data)
Определения ActionBase.c:1280
bool IsInstant()
Определения ActionBase.c:268
void CreateConditionComponents()
Определения ActionBase.c:236
Определения AnimatedActionBase.c:2
Определения ActionBase.c:59
static bool GetUse3DMap()
Определения CfgGameplayHandler.c:392
Определения ChernarusMap_Open.c:2
Mission class.
Определения gameplay.c:686
proto native UIScriptedMenu EnterScriptedMenu(int id, UIMenuPanel parent)
Create & open menu with specific id (see MenuID) and set its parent.
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
const int MENU_MAP
Определения 3_Game/DayZ/constants.c:191
const int UA_FINISHED
Определения 3_Game/DayZ/constants.c:469
const int UA_ANIM_EVENT
Определения 3_Game/DayZ/constants.c:476
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