DayZ 1.29
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( g_Game.ConfigIsExisting( path ) && g_Game.ConfigIsExisting( path + " Resources") )
46 {
47 path = path + " Resources";
48 count = g_Game.ConfigGetChildrenCount ( path );
49 for (int i = 0; i < count; i++)
50 {
51 g_Game.ConfigGetChildName ( path, i, child_name );
52
53 if ( g_Game.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 = g_Game.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 ( g_Game.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( g_Game.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
DayZGame g_Game
Определения DayZGame.c:3942
string path
Определения OptionSelectorMultistate.c:142
float m_SpecialtyWeight
Определения ActionBase.c:83
string m_Text
Определения ActionBase.c:64
ref CCIBase m_ConditionItem
Определения ActionBase.c:70
ref CCTBase m_ConditionTarget
Определения ActionBase.c:71
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
Super root of all classes in Enforce script.
Определения EnScript.c:11
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
Определения 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
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.