DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionUngagTarget.c
Go to the documentation of this file.
2{
4 {
6 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_TARGET;
7 //m_FullBody = true;
8 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
9 m_Text = "#ungag_person";
10 }
11
13 {
14
17 }
18
19 override typename GetInputType()
20 {
22 }
23
24 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
25 {
26 PlayerBase targetPlayer;
27 if( Class.CastTo(targetPlayer, target.GetObject()) )
28 {
29 if ( IsWearingGag(targetPlayer) && null == player.GetHumanInventory().GetEntityInHands())
30 {
31 return true;
32 }
33 }
34 return false;
35 }
36
37 override void OnFinishProgressServer( ActionData action_data )
38 {
39 PlayerBase ntarget = PlayerBase.Cast( action_data.m_Target.GetObject() );
40 if (CanReceiveAction(action_data.m_Target))
41 {
42 EntityAI attachment;
43 Class.CastTo(attachment, ntarget.GetInventory().FindAttachment(InventorySlots.MASK));
44
45 if ( attachment && attachment.GetType() == "MouthRag" )
46 {
47 UngagSelfLambda lamb = new UngagSelfLambda(attachment, "Rag", action_data.m_Player);
48 lamb.SetTransferParams(true, true, true, false, 1);
49 action_data.m_Player.ServerReplaceItemElsewhereWithNewInHands(lamb);
50 //action_data.m_Player.GetSoftSkillsManager().AddSpecialty( m_SpecialtyWeight );
51 }
52 }
53 }
54
55 bool IsWearingGag( PlayerBase player )
56 {
57 EntityAI attachment;
58 Class.CastTo(attachment, player.GetInventory().FindAttachment(InventorySlots.MASK));
59 if ( attachment && attachment.GetType() == "MouthRag" )
60 {
61 return true;
62 }
63 return false;
64 }
65};
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
bool CanReceiveAction(ActionTarget target)
Definition ActionBase.c:637
protected string m_Text
Definition ActionBase.c:49
protected int m_StanceMask
Definition ActionBase.c:53
class ActionTargets ActionTarget
PlayerBase m_Player
Definition ActionBase.c:33
ref ActionTarget m_Target
Definition ActionBase.c:32
override void OnFinishProgressServer(ActionData action_data)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
bool IsWearingGag(PlayerBase player)
Definition CCTMan.c:2
Super root of all classes in Enforce script.
Definition EnScript.c:11
provides access to slot configuration
const float DEFAULT
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.