DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionUnpackBox.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.UNPACK);
6 }
7};
8
10{
12 {
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM;
15 m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_OPENITEM;
16 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
17 m_Text = "#unbox";
18 }
19
25
26 override bool HasProneException()
27 {
28 return true;
29 }
30
31 override bool HasTarget()
32 {
33 return false;
34 }
35
36 override void OnFinishProgressServer( ActionData action_data )
37 {
38 if ( action_data.m_MainItem && action_data.m_MainItem.GetHierarchyRootPlayer() == action_data.m_Player )
39 {
40 string path = "CfgVehicles " + action_data.m_MainItem.GetType();
41 string child_name = "";
42 int count;
43 array<string> resources = new array<string>;
44
45 if( GetGame().ConfigIsExisting( path ) && GetGame().ConfigIsExisting( path + " Resources") )
46 {
47 path = path + " Resources";
49 for (int i = 0; i < count; i++)
50 {
51 GetGame().ConfigGetChildName ( path, i, child_name );
52
53 if ( GetGame().ConfigGetInt( path + " " + child_name + " value" ) )
54 {
55 resources.Insert( child_name );
56 }
57 }
58
59 //TODO modify to allow for multiple ammo types spawning (if needed??)
60 string itemType = resources.Get(0);
61 int itemCount = GetGame().ConfigGetInt( path + " " + itemType + " value" );
62
63 UnboxLambda lambda = new UnboxLambda(action_data.m_MainItem, itemType, action_data.m_Player, itemCount);
64 action_data.m_Player.ServerReplaceItemInHandsWithNew(lambda);
65 }
66 }
67 }
68};
69
71{
73 void UnboxLambda (EntityAI old_item, string new_item_type, PlayerBase player, int count) { m_ItemCount = count; }
74
75 override void CopyOldPropertiesToNew (notnull EntityAI old_item, EntityAI new_item)
76 {
77 super.CopyOldPropertiesToNew(old_item, new_item);
78
79 if ( GetGame().ConfigIsExisting( "CfgMagazines " + m_NewItemType ) )
80 {
81 Magazine pile;
82 Class.CastTo(pile, new_item);
83 pile.ServerSetAmmoCount(m_ItemCount);
84 }
85 else
86 {
87 ItemBase unboxed;
88 Class.CastTo(unboxed, new_item);
89 unboxed.SetQuantity(m_ItemCount);
90 }
91 }
92
93 override void OnSuccess(EntityAI new_item)
94 {
95 super.OnSuccess(new_item);
96
97 //spawns wrapping Paper
98 ItemBase paper = ItemBase.Cast( GetGame().CreateObjectEx("Paper", new_item.GetHierarchyRoot().GetPosition(), ECE_PLACE_ON_SURFACE) );
99 }
100};
101
ActionBase ActionData
Определения ActionBase.c:30
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:37
string path
Определения OptionSelectorMultistate.c:142
float m_SpecialtyWeight
Определения ActionBase.c:77
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override void CreateConditionComponents()
Определения ActionUnpackBox.c:20
override void OnFinishProgressServer(ActionData action_data)
Определения ActionUnpackBox.c:36
override bool HasTarget()
Определения ActionUnpackBox.c:31
override bool HasProneException()
Определения ActionUnpackBox.c:26
void ActionUnpackBox()
Определения ActionUnpackBox.c:11
override void CreateActionComponent()
Определения ActionUnpackBox.c:3
int m_CommandUID
Определения AnimatedActionBase.c:143
int m_CommandUIDProne
Определения AnimatedActionBase.c:144
Определения CCINonRuined.c:2
Определения CCTNone.c:2
proto bool ConfigGetChildName(string path, int index, out string name)
Get name of subclass in config class on path.
proto native int ConfigGetInt(string path)
Get int value from config on path.
proto native int ConfigGetChildrenCount(string path)
Get count of subclasses in config class on path.
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
void ReplaceItemWithNewLambdaBase(EntityAI old_item, string new_item_type)
Определения ReplaceItemWithNewLambdaBase.c:13
const float UNPACK
Определения ActionConstants.c:86
Определения ActionConstants.c:28
override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
Определения ActionUnpackBox.c:75
override void OnSuccess(EntityAI new_item)
Определения ActionUnpackBox.c:93
int m_ItemCount
Определения ActionUnpackBox.c:72
void UnboxLambda(EntityAI old_item, string new_item_type, PlayerBase player, int count)
Определения ActionUnpackBox.c:73
Определения ActionUnpackBox.c:71
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.