Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actionwritepaper.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 EnableStateChangeCallback();
6 m_ActionData.m_ActionComponent = new CAContinuousTime(-1.0);
7 }
8
9 override void EndActionComponent()
10 {
11 }
12
13 override void OnStateChange(int pOldState, int pCurrentState)
14 {
15 if (pCurrentState == STATE_NONE && (!GetGame().IsDedicatedServer()))
16 {
17 if (GetGame().GetUIManager() && GetGame().GetUIManager().IsMenuOpen(MENU_NOTE))
18 GetGame().GetUIManager().FindMenu(MENU_NOTE).Close();
19 }
20 else if (pCurrentState == STATE_LOOP_LOOP && pOldState != STATE_LOOP_LOOP && (!GetGame().IsMultiplayer() || GetGame().IsServer()))
21 {
22 ItemBase paper_item;
23 if (m_ActionData.m_MainItem.ConfigIsExisting("writingColor"))
24 {
25 paper_item = ItemBase.Cast(m_ActionData.m_Target.GetObject());
26 }
27 else
28 {
29 paper_item = ItemBase.Cast(m_ActionData.m_MainItem);
30 }
31 Param1<string> text = new Param1<string>(paper_item.GetWrittenNoteData().GetNoteText());
32 paper_item.RPCSingleParam(ERPCs.RPC_WRITE_NOTE, text, true,m_ActionData.m_Player.GetIdentity());
33 }
34 }
35};
36
39{
40 const float TARGET_DISTANCE = 2;
41
42 void ActionWritePaper()
43 {
45 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_VIEWNOTE;
46 m_FullBody = true;
47 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_PRONE;
48 m_Text = "#write_note";
49 }
50
51 override void CreateConditionComponents()
52 {
54 m_ConditionTarget = new CCTNone;//CCTNonRuined(TARGET_DISTANCE);
55 }
56
57 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
58 {
59 if ((item && item.ConfigIsExisting("writingColor") && target.GetObject() && Paper.Cast(target.GetObject())) || (target.GetObject() && target.GetObject().ConfigIsExisting("writingColor") && item && Paper.Cast(item)))
60 {
61 return true;
62 }
63 return false;
64 }
65
66 override void OnStartClient( ActionData action_data )
67 {
68 if (action_data.m_Target.GetObject().ConfigIsExisting("writingColor"))
69 {
70 action_data.m_MainItem.GetWrittenNoteData().InitNoteInfo(ItemBase.Cast(action_data.m_Target.GetObject()),action_data.m_MainItem);
71 }
72 else
73 {
74 ItemBase.Cast(action_data.m_Target.GetObject()).GetWrittenNoteData().InitNoteInfo(action_data.m_MainItem,ItemBase.Cast(action_data.m_Target.GetObject()));
75 }
76 }
77
78 override void OnStartServer( ActionData action_data )
79 {
80 super.OnStartServer(action_data);
81
82 if (action_data.m_Target.GetObject().ConfigIsExisting("writingColor"))
83 {
84 action_data.m_MainItem.GetWrittenNoteData().InitNoteInfo(ItemBase.Cast(action_data.m_Target.GetObject()),action_data.m_MainItem);
85 }
86 else
87 {
88 ItemBase.Cast(action_data.m_Target.GetObject()).GetWrittenNoteData().InitNoteInfo(action_data.m_MainItem,ItemBase.Cast(action_data.m_Target.GetObject()));
89 }
90 }
91
92 override void OnUpdate(ActionData action_data)
93 {
94 super.OnUpdate(action_data);
95
96 if(!GetGame().IsDedicatedServer())
97 {
98 if (action_data.m_State == UA_FINISHED && GetGame().GetUIManager() && !GetGame().GetUIManager().IsMenuOpen(MENU_NOTE))
99 {
100 ActionManagerClient.Cast(action_data.m_Player.GetActionManager()).RequestEndAction();
101 }
102 }
103 }
104
105 override void OnEndRequest(ActionData action_data)
106 {
107 if (action_data.m_Callback)
108 {
109 action_data.m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
110 }
111 }
112};
ActionData m_ActionData
int m_StanceMask
Definition actionbase.c:62
string m_Text
Definition actionbase.c:58
ref CCIBase m_ConditionItem
Definition actionbase.c:64
bool m_FullBody
Definition actionbase.c:61
ref CCTBase m_ConditionTarget
Definition actionbase.c:65
override void RequestEndAction()
override WrittenNoteData GetWrittenNoteData()
Definition paper.c:30
void InitNoteInfo(ItemBase pen=null, ItemBase paper=null)
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
ERPCs
Definition erpcs.c:2
proto native CGame GetGame()
const int MENU_NOTE
Definition constants.c:190
const int UA_FINISHED
Definition constants.c:466