DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionUnMountBarbedWire.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
6 }
7};
8
10{
12 string m_SlotName;
13
15 {
17 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
18 m_FullBody = true;
19 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
20
23 m_Text = "#unmount_barbed_wire";
24 }
25
27 {
30 }
31
32 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
33 {
34 Object targetObject = target.GetObject();
35
36 if ( targetObject && targetObject.CanUseConstruction() )
37 {
38 BaseBuildingBase base_building = BaseBuildingBase.Cast( targetObject );
39 if (!base_building.IsPlayerInside(player,""))
40 return false;
41
42 string selection = targetObject.GetActionComponentName( target.GetComponentIndex() );
43
44 if ( selection.Length() > 0 )
45 {
46 int delimiter_index = selection.IndexOfFrom( 0, "_mounted" );
47 if ( delimiter_index > -1 )
48 {
49 selection = selection.Substring( 0, delimiter_index );
50
51 BarbedWire barbed_wire = BarbedWire.Cast( base_building.FindAttachmentBySlotName( selection ) );
52 if ( barbed_wire && barbed_wire.IsMounted() )
53 {
54 m_SlotName = selection;
55
56 return true;
57 }
58 }
59 }
60 }
61
62 return false;
63 }
64
65 override void OnFinishProgressServer( ActionData action_data )
66 {
67 BaseBuildingBase base_building = BaseBuildingBase.Cast( action_data.m_Target.GetObject() );
68 BarbedWire barbed_wire = BarbedWire.Cast( base_building.FindAttachmentBySlotName( m_SlotName ) );
69
70 //unmount and refresh parent
71 barbed_wire.SetMountedState( false );
72
73 action_data.m_Player.GetSoftSkillsManager().AddSpecialty( m_SpecialtyWeight );
74 }
75
76 override string GetAdminLogMessage( ActionData action_data )
77 {
78 string message = string.Format("Player %1 Unmounted BarbedWire from %2", action_data.m_Player, action_data.m_Target.GetObject() );
79 return message;
80 }
81}
protected float m_SpecialtyWeight
Definition ActionBase.c:68
ref CCIBase m_ConditionItem
Definition ActionBase.c:55
ref CCTBase m_ConditionTarget
Definition ActionBase.c:56
protected string m_Text
Definition ActionBase.c:49
protected bool m_FullBody
Definition ActionBase.c:52
protected int m_StanceMask
Definition ActionBase.c:53
class ActionTargets ActionTarget
protected ActionData m_ActionData
PlayerBase m_Player
Definition ActionBase.c:33
ref CABase m_ActionComponent
Definition ActionBase.c:30
ref ActionTarget m_Target
Definition ActionBase.c:32
override void OnFinishProgressServer(ActionData action_data)
override string GetAdminLogMessage(ActionData action_data)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool IsPlayerInside(PlayerBase player, string selection)
Definition Fence.c:615
const float BASEBUILDING
const float DEFAULT_CONSTRUCT
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto string Substring(int start, int len)
Substring of 'str' from 'start' position 'len' number of characters.
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
proto native int IndexOfFrom(int start, string sample)
Finds 'sample' in 'str' from 'start' position. Returns -1 when not found.
proto native int Length()
Returns length of string.