Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
actionfoldentitytoslot.c
Go to the documentation of this file.
2{
4
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 ( !g_Game.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};
ActionBase ActionData
Definition actionbase.c:30
class ActionTargets ActionTarget
ref CCIBase m_ConditionItem
Definition actionbase.c:70
ref CCTBase m_ConditionTarget
Definition actionbase.c:71
void ClearInventoryReservationEx(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
override void OnExecuteServer(ActionData action_data)
override void CreateConditionComponents()
override void OnExecuteClient(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void FoldBandanaToSlotLambda(EntityAI old_item, string new_item_type, PlayerBase player, int slot)
InventoryLocation.
proto native void SetAttachment(notnull EntityAI parent, EntityAI e, int slotId)
provides access to slot configuration
static proto native owned string GetSlotName(int id)
const int INVALID
Invalid slot (-1).
DayZGame g_Game
Definition dayzgame.c:3942