Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
writtennotedata.c
Go to the documentation of this file.
2{
4 protected ItemBase m_Paper;
5 //protected int m_Handwriting = -1;
6 protected string m_SimpleText;
7
9 {
10
11 }
12
13 void OnRPC( PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
14 {
15 Param1<string> param = new Param1<string>("");
16
17 //sent from server, executed on client
18 if (rpc_type == ERPCs.RPC_WRITE_NOTE)
19 {
20 if (ctx.Read(param))
21 {
22 SetNoteText(param.param1);
23 }
24
25 g_Game.GetMission().SetNoteMenu(g_Game.GetUIManager().EnterScriptedMenu(MENU_NOTE, g_Game.GetUIManager().GetMenu())); //NULL means no parent
26
27 ItemBase pen;
28 ItemBase paper;
29 //int handwriting;
30
31 if (GetNoteInfo(pen,paper))
32 {
33 g_Game.GetMission().GetNoteMenu().InitNoteWrite(paper,pen,m_SimpleText);
34 }
35 }
36 //sent from client (NoteMenu), executed on server
37 if (rpc_type == ERPCs.RPC_WRITE_NOTE_CLIENT)
38 {
39 if (ctx.Read(param))
40 {
41 string old_string = m_SimpleText;
42 SetNoteText(param.param1);
44 }
45 }
46 if (rpc_type == ERPCs.RPC_READ_NOTE)
47 {
48 if (ctx.Read(param))
49 {
50 SetNoteText(param.param1);
51 }
52
53 g_Game.GetMission().SetNoteMenu(g_Game.GetUIManager().EnterScriptedMenu(MENU_NOTE, g_Game.GetUIManager().GetMenu())); //NULL means no parent
54 g_Game.GetMission().GetNoteMenu().InitNoteRead(m_SimpleText);
55 }
56 }
57
58 void InitNoteInfo(ItemBase pen = null, ItemBase paper = null)
59 {
61 m_Paper = paper;
62 //m_Handwriting = handwriting;
63 }
64
65 bool GetNoteInfo(out ItemBase pen, out ItemBase paper)
66 {
68 paper = m_Paper;
69 //handwriting = m_Handwriting;
70 return pen && paper;
71 }
72
73 string GetNoteText()
74 {
75 return m_SimpleText;
76 }
77
78 void SetNoteText(string text)
79 {
80 m_SimpleText = MiscGameplayFunctions.SanitizeString(text);
81 }
82
83 void DepleteWritingImplement(notnull ItemBase pen,string old_text,string new_text)
84 {
85 float qty_per_char = 1.0;
86 float decrease = Math.Clamp((new_text.Length() - old_text.Length()),0,pen.GetQuantityMax());
87 pen.AddQuantity(-(qty_per_char * decrease));
88 }
89}
90
91//-----------------------
Definition enmath.c:7
The class that will be instanced (moddable).
Definition gameplay.c:389
proto bool Read(void value_in)
void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
void InitNoteInfo(ItemBase pen=null, ItemBase paper=null)
ItemBase m_WritingImplement
void DepleteWritingImplement(notnull ItemBase pen, string old_text, string new_text)
void WrittenNoteData(ItemBase parent)
void SetNoteText(string text)
bool GetNoteInfo(out ItemBase pen, out ItemBase paper)
DayZGame g_Game
Definition dayzgame.c:3942
ERPCs
Definition erpcs.c:2
Serializer ParamsReadContext
Definition gameplay.c:15
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
const int MENU_NOTE
Definition constants.c:190
proto native int Length()
Returns length of string.