DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionUngagSelf.c
См. документацию.
2{
4 {
6 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_SELF;
7 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
8 m_Text = "#ungag";
9 }
10
12 {
15 }
16
17 override bool HasTarget()
18 {
19 return false;
20 }
21
22 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
23 {
24 if ( IsWearingGag(player) && null == player.GetHumanInventory().GetEntityInHands())
25 return true;
26
27 return false;
28 }
29
30 override void OnFinishProgressServer( ActionData action_data )
31 {
32 EntityAI attachment;
33 Class.CastTo(attachment, action_data.m_Player.GetInventory().FindAttachment(InventorySlots.MASK));
34 if ( attachment && attachment.GetType() == "MouthRag" )
35 {
36 UngagSelfLambda lamb = new UngagSelfLambda(attachment, "Rag", action_data.m_Player);
37 lamb.SetTransferParams(true, true, true, false, 1);
38 action_data.m_Player.ServerReplaceItemElsewhereWithNewInHands(lamb);
39 }
40 }
41
42 bool IsWearingGag( PlayerBase player )
43 {
44 EntityAI attachment;
45 Class.CastTo(attachment, player.GetInventory().FindAttachment(InventorySlots.MASK));
46 if ( attachment && attachment.GetType() == "MouthRag" )
47 {
48 return true;
49 }
50 return false;
51 }
52};
53
55{
56 MouthRag gag;
58
59 void UngagSelfLambda (EntityAI old_item, string new_item_type, PlayerBase player)
60 {
61 gag = MouthRag.Cast(m_OldItem);
62 if (gag)
63 gag.SetIncomingLambaBool(true);
65 targetHnd.SetHands(player, null);
66 OverrideNewLocation(targetHnd);
67 m_OriginalOwner = m_OldItem.GetHierarchyRoot();
68 }
69
70 override void OnSuccess (EntityAI new_item)
71 {
72 super.OnSuccess(new_item);
73
74 PlayerBase player;
75 if (Class.CastTo(player,m_OriginalOwner))
76 {
77 player.CheckForGag();
78 }
79 }
80
81 override void OnAbort ()
82 {
83 if (gag)
84 gag.SetIncomingLambaBool(false);
85 }
86};
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override bool HasTarget()
Определения ActionUngagSelf.c:17
override void OnFinishProgressServer(ActionData action_data)
Определения ActionUngagSelf.c:30
override void CreateConditionComponents()
Определения ActionUngagSelf.c:11
void ActionUngagSelf()
Определения ActionUngagSelf.c:3
bool IsWearingGag(PlayerBase player)
Определения ActionUngagSelf.c:42
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionUngagSelf.c:22
int m_CommandUID
Определения AnimatedActionBase.c:143
Определения CCINone.c:2
Определения CCTNone.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
proto native void SetHands(notnull EntityAI parent, EntityAI e)
sets current inventory location type to Hands
InventoryLocation.
Определения InventoryLocation.c:29
provides access to slot configuration
Определения InventorySlots.c:6
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
override void OnAbort()
Определения ActionUngagSelf.c:81
EntityAI m_OriginalOwner
Определения ActionUngagSelf.c:57
MouthRag gag
Определения ActionUngagSelf.c:56
override void OnSuccess(EntityAI new_item)
Определения ActionUngagSelf.c:70
void UngagSelfLambda(EntityAI old_item, string new_item_type, PlayerBase player)
Определения ActionUngagSelf.c:59
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.