Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actionfoldentitytoslot.c
Go to the documentation of this file.
2{
3 int m_SlotID = InventorySlots.INVALID;
4
5 override void CreateConditionComponents ()
6 {
9 }
10
11 override bool HasTarget () { return false; }
12
13 override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item )
14 {
15 EntityAI att = player.GetInventory().FindAttachment(m_SlotID);
16 if ( item && att == null )
17 return true;
18 return false;
19 }
20
21 override bool ActionConditionContinue ( ActionData action_data ) { return true; }
22
23 override void OnExecuteClient ( ActionData action_data )
24 {
25 ClearInventoryReservationEx(action_data);
26 }
27
28 override void OnExecuteServer ( ActionData action_data )
29 {
30 if ( !GetGame().IsMultiplayer() )
31 ClearInventoryReservationEx(action_data);
32
33 ItemBase old_item = action_data.m_MainItem;
34 if (old_item.ConfigIsExisting("ChangeIntoOnAttach"))
35 {
36 string slot_name = InventorySlots.GetSlotName(m_SlotID);
37 string str = old_item.ChangeIntoOnAttach(slot_name);
38 if (str != "")
39 {
40 FoldBandanaToSlotLambda lambda = new FoldBandanaToSlotLambda(action_data.m_MainItem, str, action_data.m_Player, m_SlotID);
41 action_data.m_Player.ServerReplaceItemInHandsWithNewElsewhere(lambda);
42 }
43 }
44 }
45};
46
48{
49 void FoldBandanaToSlotLambda (EntityAI old_item, string new_item_type, PlayerBase player, int slot)
50 {
52 targetAtt.SetAttachment(player, NULL, slot);
53 OverrideNewLocation(targetAtt);
54 }
55};
ref CCIBase m_ConditionItem
Definition actionbase.c:64
void ClearInventoryReservationEx(ActionData action_data)
ref CCTBase m_ConditionTarget
Definition actionbase.c:65
InventoryLocation.
provides access to slot configuration
proto native CGame GetGame()