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

◆ PerformMapChange()

void ActionUnfoldMap::PerformMapChange ( )

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

285{
286 bool m_MapFolding;
291
292 void ActionUnfoldMapCB()
293 {
297 }
298
299 void ~ActionUnfoldMapCB()
300 {
301 if (g_Game && g_Game.GetMission())
302 {
304 {
305 g_Game.GetMission().RemoveActiveInputExcludes({"map"}, false);
306 }
307 else
308 {
309 g_Game.GetMission().RemoveActiveInputExcludes({"loopedactions"}, false);
310 }
311 g_Game.GetMission().RemoveActiveInputRestriction(EInputRestrictors.MAP);
312 }
313
314 if (!m_ActionData || !m_ActionData.m_Player)
315 return;
316
317 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
318 if (chernomap && m_ActionData.m_Player.IsMapOpen())
319 {
320 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
321 }
322 }
323
324 override void SetActionData(ActionData action_data)
325 {
326 m_ActionData = action_data;
327 m_InitMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
328 }
329
330 bool CancelCondition()
331 {
332 return m_CancelCondition;
333 }
334
335 override void OnStateChange(int pOldState, int pCurrentState)
336 {
337 if (!m_ActionData || !m_ActionData.m_Player)
338 return;
339
340 if ((pOldState == STATE_LOOP_IN && pCurrentState == STATE_LOOP_LOOP) && !m_HasReceivedEvent)
341 {
342 m_CancelCondition = true;
343 }
344 }
345
346 override void OnAnimationEvent(int pEventID)
347 {
348 if (!m_ActionData || !m_ActionData.m_Player)
349 return;
350
351 switch (pEventID)
352 {
353 case UA_ANIM_EVENT:
354 m_HasReceivedEvent = true;
355 m_FinalMovementState = m_ActionData.m_Player.m_MovementState.m_iStanceIdx;
356
357 if (StateCheck())
358 {
360 m_CancelCondition = false;
361 }
362 else
363 {
364 m_CancelCondition = true;
365 }
366 break;
367 }
368 }
369
370 override void OnFinish(bool pCanceled)
371 {
372 if (m_ActionData && m_ActionData.m_Player)
373 {
374 if (m_ActionData && m_ActionData.m_ActionComponent)
375 m_ActionData.m_State = m_ActionData.m_ActionComponent.Interrupt(m_ActionData);
376
377 if ((!g_Game.IsDedicatedServer()) && g_Game.GetUIManager() && g_Game.GetUIManager().IsMenuOpen(MENU_MAP))
378 {
379 g_Game.GetUIManager().FindMenu(MENU_MAP).Close();
380 }
381
382 ActionUnfoldMap action = ActionUnfoldMap.Cast(m_ActionData.m_Action);
385
386 m_ActionData.m_Player.SetMapClosingSyncSet(false); //reset
387
388 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
389 if (chernomap && m_ActionData.m_Player.IsMapOpen())
390 {
391 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
392 }
393
394 if (action)
395 action.End(m_ActionData);
396 }
397 }
398
399 void PerformMapChange()
400 {
401 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())
402 return;
403
404 ItemMap chernomap = ItemMap.Cast(m_ActionData.m_Player.GetItemInHands());
405 if (chernomap)
406 {
407 if (!m_ActionData.m_Player.IsMapOpen() && !m_MapFolding)
408 {
409 if (m_CancelCondition) //do not open when cancelling in progress
410 return;
411
412 chernomap.SetMapStateOpen(true, m_ActionData.m_Player);
413
414 if (!g_Game.IsDedicatedServer())
415 {
416 Mission mission = g_Game.GetMission();
417 UIManager m_UIManager;
418 UIScriptedMenu mapMenu;
419 m_UIManager = g_Game.GetUIManager();
420 m_UIManager.CloseAll();
422 {
423 mapMenu = m_UIManager.EnterScriptedMenu(MENU_MAP, null);
424 mapMenu.InitMapItem(chernomap);
425 mapMenu.LoadMapMarkers();
426 mission.AddActiveInputExcludes({"map"});
427 }
428 else
429 {
430 mission.AddActiveInputExcludes({"loopedactions"});
431 }
432
433 mission.AddActiveInputRestriction(EInputRestrictors.MAP);
434 }
435 }
436 else if (m_ActionData.m_Player.IsMapOpen())
437 {
438 chernomap.SetMapStateOpen(false, m_ActionData.m_Player);
439 m_MapFolding = true;
440 m_ActionData.m_Player.SetMapOpen(false);
441 }
442 }
443 }
444
445 bool StateCheck()
446 {
448 }
449}
450
452{
453 void ActionUnfoldMap()
454 {
455 m_Text = "#unfold_map";
456 }
457
458 override bool IsInstant()
459 {
460 return false;
461 }
462
463 override void CreateConditionComponents()
464 {
465 m_ConditionItem = new CCINonRuined();
466 m_ConditionTarget = new CCTNone();
467 }
468
469 override bool HasTarget()
470 {
471 return false;
472 }
473
474 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
475 {
476 if (player.m_hac || player.IsMapOpen())
477 {
478 return false;
479 }
480 return true;
481 }
482
483 override int GetActionCategory()
484 {
485 return AC_SINGLE_USE;
486 }
487
488 override void OnStartClient(ActionData action_data)
489 {
490 OpenMap(action_data);
491 }
492
493 override void OnStartServer(ActionData action_data)
494 {
495 super.OnStartServer(action_data);
496
497 OpenMap(action_data);
498 ItemMap chernomap = ItemMap.Cast(action_data.m_MainItem);
499 chernomap.SyncMapMarkers();
500 }
501
502 override void OnEndRequest(ActionData action_data)
503 {
504 action_data.m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
505 action_data.m_State = UA_FINISHED;
506 }
507
508 override void Interrupt(ActionData action_data)
509 {
510 if (action_data.m_Player.m_hac)
511 {
512 action_data.m_Player.m_hac.m_MapFolding = true;
513 action_data.m_Player.m_hac.PerformMapChange();
514 action_data.m_Player.m_hac.Cancel();
515 }
516 else //should never get here, End called from the callback
517 {
518 End(action_data);
519 }
520 }
521
522 void OpenMap(ActionData action_data)
523 {
524 if (!action_data.m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
525 {
526 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.AddCommandModifier_Action(DayZPlayerConstants.CMD_ACTIONMOD_VIEWMAP,ActionUnfoldMapCB));
527 }
528 else
529 {
530 action_data.m_Player.m_hac = ActionUnfoldMapCB.Cast(action_data.m_Player.StartCommand_Action(DayZPlayerConstants.CMD_ACTIONFB_VIEWMAP,ActionUnfoldMapCB,DayZPlayerConstants.STANCEMASK_PRONE));
531 }
532
533 // sets player for associated callback to use
534 if (action_data.m_Player.m_hac)
535 {
536 action_data.m_Player.m_hac.SetActionData(action_data);
537 action_data.m_Callback = action_data.m_Player.m_hac;
538 }
539 }
540
542 {
543 return false;
544 }
545}
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