DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionWritePaper.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
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))
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
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
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};
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
ERPCs
Определения ERPCs.c:2
int m_StanceMask
Определения ActionBase.c:62
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool m_FullBody
Определения ActionBase.c:61
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override void RequestEndAction()
Определения ActionManagerClient.c:266
override void OnUpdate(ActionData action_data)
Определения ActionWritePaper.c:92
const float TARGET_DISTANCE
Определения ActionWritePaper.c:40
void ActionWritePaper()
Определения ActionWritePaper.c:42
override void OnStartServer(ActionData action_data)
Определения ActionWritePaper.c:78
override void CreateConditionComponents()
Определения ActionWritePaper.c:51
override void OnEndRequest(ActionData action_data)
Определения ActionWritePaper.c:105
override void OnStartClient(ActionData action_data)
Определения ActionWritePaper.c:66
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionWritePaper.c:57
override void EndActionComponent()
Определения ActionWritePaper.c:9
override void OnStateChange(int pOldState, int pCurrentState)
Определения ActionWritePaper.c:13
override void CreateActionComponent()
Определения ActionWritePaper.c:3
int m_CommandUID
Определения AnimatedActionBase.c:143
Определения CCINonRuined.c:2
Определения CCTNone.c:2
proto native UIManager GetUIManager()
override WrittenNoteData GetWrittenNoteData()
Определения Paper.c:30
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
UIScriptedMenu FindMenu(int id)
Returns menu with specific ID if it is open (see MenuID)
Определения UIManager.c:160
void InitNoteInfo(ItemBase pen=null, ItemBase paper=null)
Определения WrittenNoteData.c:58
string GetNoteText()
Определения WrittenNoteData.c:73
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
const int MENU_NOTE
Определения constants.c:190
const int UA_FINISHED
Определения constants.c:464
static const int STATE_NONE
undef state - not running anymore
Определения human.c:349
proto native void EnableStateChangeCallback()
enables state change callback OnStateChange
static const int STATE_LOOP_LOOP
Определения human.c:353