DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ChatInputMenu.c
Go to the documentation of this file.
1class ChatInputMenu extends UIScriptedMenu
2{
3 private EditBoxWidget m_edit_box;
6 private ref Timer m_close_timer;
7
9 {
10 m_close_timer = new Timer();
11 }
12
13 override Widget Init()
14 {
16 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_chat_input.layout");
17 m_edit_box = EditBoxWidget.Cast(layoutRoot.FindAnyWidget("InputEditBoxWidget"));
18 m_channel_text = TextWidget.Cast(layoutRoot.FindAnyWidget("ChannelText"));
19
21 return layoutRoot;
22 }
23
24 override bool UseKeyboard()
25 {
26 return true;
27 }
28
29 override bool OnChange(Widget w, int x, int y, bool finished)
30 {
31 super.OnChange(w, x, y, finished);
32
33 if (!finished) return false;
34
35 string text = m_edit_box.GetText();
36
37 if (text != "")
38 {
39 GetGame().ChatPlayer(text);
40 if (!GetGame().IsMultiplayer())
41 {
42 string name;
44 ChatMessageEventParams chat_params = new ChatMessageEventParams(CCDirect, name, text, "");
45 MissionGameplay.Cast(GetGame().GetMission()).m_Chat.Add(chat_params);
46 }
47 }
48
49 m_close_timer.Run(0.1, this, "Close");
50
51 GetUApi().GetInputByID(UAPersonView).Supress();
52
53 return true;
54 }
55
56 override void OnShow()
57 {
58 SetFocus(m_edit_box);
59 }
60
61 override void OnHide()
62 {
63 super.OnHide();
65
66 if (!GetGame().GetMission().IsVoNActive())
68 }
69
70 override void Refresh()
71 {
72 }
73
74 override void Update(float timeslice)
75 {
77 {
78 Close();
79 }
80 }
81
83 {
84 m_channel_text.SetText(GetChannelName(/*GetGame().ChatGetChannel()*/0));
85 }
86
87 static string GetChannelName(ChatChannel channel)
88 {
89 switch (channel)
90 {
91 case CCSystem:
92 return "System";
93 case CCAdmin:
94 return "Admin";
95 case CCDirect:
96 return "Direct";
97 case CCMegaphone:
98 return "Megaphone";
99 case CCTransmitter:
100 return "Radio";
101 case CCPublicAddressSystem:
102 return "PAS";
103 }
104
105 return "";
106 }
107}
Icon x
Icon y
void Close()
string name
private UAIDWrapper m_BackInputWrapper
Definition RadialMenu.c:32
proto native UAInputAPI GetUApi()
proto native Mission GetMission()
proto native void ChatPlayer(string text)
proto void GetPlayerName(out string name)
Gets current player name.
proto native WorkspaceWidget GetWorkspace()
void HideVoiceLevelWidgets()
Definition gameplay.c:785
void HideChat()
Definition gameplay.c:782
proto native UAInput InputP()
proto native UAInput GetInputByID(int iID)
returns list of all bindable (i.e. visible) inputs from the active group ('core' by default)
proto native UAIDWrapper GetPersistentWrapper()
proto native void Supress()
proto native bool LocalPress()
override bool OnChange(Widget w, int x, int y, bool finished)
static string GetChannelName(ChatChannel channel)
private UAIDWrapper m_BackInputWrapper
override void Update(float timeslice)
override bool UseKeyboard()
override void Refresh()
override void OnShow()
void ChatInputMenu()
private EditBoxWidget m_edit_box
override void OnHide()
override Widget Init()
private ref Timer m_close_timer
private TextWidget m_channel_text
int ChatChannel
Definition gameplay.c:389
Param4< int, string, string, string > ChatMessageEventParams
channel, from, text, color config class
Definition gameplay.c:396
proto native CGame GetGame()
proto native void SetFocus(Widget w)
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.