DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionAttachPowerSourceToPanel.c
См. документацию.
1
3{
5 {
6 m_Text = "#attach";
7 }
8
14
15 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
16 {
17 EntityAI target_entity = EntityAI.Cast( target.GetObject() );
18 if ( player && target_entity && item )
19 {
20 if ( target_entity.IsStaticTransmitter() && target_entity.GetInventory().AttachmentCount() == 0 ) //has any power source attachment attached
21 {
22 return true;
23 }
24 }
25
26 return false;
27 }
28
29 protected void OnExecuteImpl( ActionData action_data )
30 {
31 EntityAI target_entity = EntityAI.Cast( action_data.m_Target.GetObject() );
32 EntityAI item_entity = action_data.m_MainItem;
33
34 //find inventory location for attachment
35 InventoryLocation target_location = new InventoryLocation;
36 if ( target_entity.GetInventory().FindFirstFreeLocationForNewEntity( item_entity.GetType(), FindInventoryLocationType.ATTACHMENT, target_location ) )
37 {
38 action_data.m_Player.PredictiveTakeEntityToTargetAttachmentEx( target_entity, item_entity, target_location.GetSlot() );
39 }
40 }
41
42 override void OnExecuteClient( ActionData action_data )
43 {
44 ClearInventoryReservationEx(action_data);
45 OnExecuteImpl(action_data);
46 }
47
48 override void OnExecuteServer( ActionData action_data )
49 {
50 if (g_Game.IsMultiplayer())
51 {
52 ClearActionJuncture(action_data);
53 return; // multiplayer handled on client side via OnExecuteClient
54 }
55 else
56 {
57 OnExecuteImpl(action_data); // single player
58 }
59 }
60
61 override void OnEndClient( ActionData action_data )
62 {
63 // Probably not needed since attaching is done server side.
64 /*
65 EntityAI target_entity = EntityAI.Cast( action_data.m_Target.GetObject() );
66 EntityAI item_entity = EntityAI.Cast( action_data.m_MainItem );
67
68 //find inventory location for attachment
69 InventoryLocation target_location = new InventoryLocation;
70
71 if( target_entity.GetInventory().FindFirstFreeLocationForNewEntity( item_entity.GetType(), FindInventoryLocationType.ATTACHMENT, target_location ) )
72 {
73 //target_entity.PredictiveTakeEntityToTargetAttachmentEx( target_entity, item_entity, target_location.GetSlot() );
74 target_entity.LocalTakeEntityAsAttachmentEx( item_entity, target_location.GetSlot() );
75 }
76 */
77 }
78}
string m_Text
Определения ActionBase.c:57
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
void ClearInventoryReservationEx(ActionData action_data)
Определения ActionBase.c:1120
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1207
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:18
override void OnExecuteClient(ActionData action_data)
override void OnExecuteServer(ActionData action_data)
override void CreateConditionComponents()
Определения ActionAttachPowerSourceToPanel.c:9
void OnExecuteImpl(ActionData action_data)
override void OnEndClient(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
void ActionSingleUseBase()
Определения ActionSingleUseBase.c:31
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
proto native int GetSlot()
returns slot id if current type is Attachment
InventoryLocation.
Определения InventoryLocation.c:30
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:114