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

◆ PerformMapChange()

void ActionUnfoldMap::PerformMapChange ( )

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

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