Client Upload Part 2

RD Core / Commit #5

Commit Client Upload Part 2

Alex Alex committed 19/10/2026 00:06 main Patch
1,244 files +271,215 -0
A RD_Client/modules/game_chat/chat.otui +458-0 View file
@@ -0,0 +1,458 @@
1+ConsoleLabel < UITextEdit
2+ font: sono_medium_border_14
3+ height: 14
4+ text-wrap: true
5+ text-auto-resize: true
6+ selection-color: #111416
7+ selection-background-color: #999999
8+ change-cursor-image: false
9+ cursor-visible: false
10+ editable: false
11+ focusable: false
12+
13+EmotesButtonUI < UIButton
14+ size: 14 14
15+ font: sono_medium_border_14
16+ image-color: #ffffff
17+ change-cursor-image: true
18+ cursor: pointer
19+ $hover:
20+ image-color: #c1c1c1
21+ $pressed:
22+ image-color: #cccccc
23+ $disabled:
24+ image-color: #dfdfdf88
25+ opacity: 0.8
26+ change-cursor-image: false
27+
28+ConsolePhantomLabel < UILabel
29+ font: sono_medium_border_14
30+ height: 14
31+ color: yellow
32+ text-wrap: true
33+ text-auto-resize: true
34+ selection-color: #111416
35+ selection-background-color: #999999
36+
37+ConsoleTabBar < MoveableTabBar
38+ height: 28
39+
40+ConsoleTabBar < MoveableTabBar
41+ height: 28
42+
43+ConsoleTabBarPanel < MoveableTabBarPanel
44+ id: consoleTab
45+
46+//TextPanel
47+ ScrollablePanel
48+ id: consoleBuffer
49+ anchors.fill: parent
50+ margin-right: 28
51+ margin-left: 30
52+ margin-bottom: 8
53+ vertical-scrollbar: consoleScrollBar
54+ layout:
55+ type: verticalBox
56+ align-bottom: true
57+ inverted-scroll: true
58+ padding: 1
59+
60+ UIWidget
61+ size: 16 160
62+ image-source: /images/game/chat/scrollBar
63+ image-border: 5
64+ image-border-top: 5
65+ image-border-bottom: 5
66+ anchors.top: consoleScrollBar.top
67+ anchors.bottom: consoleScrollBar.bottom
68+ anchors.right: consoleScrollBar.right
69+ margin-top: 12
70+ margin-bottom: 12
71+ VerticalScrollBar
72+ id: consoleScrollBar
73+ anchors.top: parent.top
74+ anchors.bottom: parent.bottom
75+ anchors.right: parent.right
76+ step: 78
77+ margin-top: -10
78+ margin-bottom: -4
79+ margin-right: 9
80+
81+ConsoleTabBarButton < MoveableTabBarButton
82+ size: 20 21
83+ font: sono_medium_border_14
84+ image-source: /images/game/chat/channelButtons
85+ image-clip: 0 0 200 21
86+ image-border: 10
87+ color: #aaaaaa
88+ opacity: 0.6
89+
90+ $hover !checked:
91+ opacity: 0.9
92+ image-clip: 0 0 200 21
93+ color: #D8E7F0
94+
95+ $disabled:
96+ icon-color: #888888
97+
98+ $checked:
99+ image-clip: 0 21 200 21
100+ opacity: 1.0
101+ color: white
102+
103+TabChatButton < UIButton
104+ size: 20 21
105+ font: sono_medium_border_14
106+ image-source: /images/game/chat/channelButtons
107+ image-clip: 0 0 200 21
108+ image-border: 10
109+ color: #aaaaaa
110+ opacity: 0.6
111+
112+ $hover !checked:
113+ opacity: 0.9
114+ image-clip: 0 0 200 21
115+ color: #D8E7F0
116+
117+ $disabled:
118+ icon-color: #888888
119+
120+ $checked:
121+ image-clip: 0 21 200 21
122+ opacity: 1.0
123+ color: white
124+
125+UIWindow
126+ id: chat
127+ focusable: false
128+ phantom: true
129+ anchors.bottom: parent.bottom
130+ anchors.left: parent.left
131+ visible: false
132+ margin-bottom: 50
133+ size: 560 200
134+ ResizeBorder
135+ id: rB
136+ anchors.right: parent.right
137+ anchors.top: parent.top
138+ anchors.bottom: parent.bottom
139+ enabled: true
140+ maximum: 100
141+
142+ ResizeBorder
143+ id: rB2
144+ anchors.right: parent.right
145+ anchors.bottom: parent.bottom
146+ anchors.left: parent.left
147+ enabled: true
148+ maximum: 100
149+
150+ ResizeBorder
151+ id: rB3
152+ anchors.right: parent.right
153+ anchors.top: parent.top
154+ anchors.left: parent.left
155+ enabled: true
156+ maximum: 100
157+
158+ ResizeBorder
159+ id: rB4
160+ anchors.bottom: parent.bottom
161+ anchors.top: parent.top
162+ anchors.left: parent.left
163+ enabled: true
164+ maximum: 100
165+
166+ UIWindow
167+ id: background
168+ focusable: false
169+ size: 600 255
170+ image-border: 80
171+ image-source: /images/game/chat/background
172+ anchors.fill: parent
173+ phantom: true
174+ opacity: 0.8
175+
176+ UIWindow
177+ id: backgroundkeys
178+ focusable: false
179+ size: 600 255
180+ image-border: 10
181+ anchors.fill: parent
182+ phantom: true
183+ opacity: 0.8
184+
185+ Panel
186+ id: textLineWindow
187+ image-source: /images/game/chat/textLineWindow
188+ image-border: 15
189+ size: 100 100
190+ anchors.verticalCenter: parent.verticalCenter
191+ anchors.left: parent.left
192+ margin-left: 30
193+ opacity: 0.8
194+ phantom: true
195+
196+ UIButton
197+ id: lockButton
198+ size: 12 14
199+ !tooltip: tr('Bloquear movimiento del chat')
200+ anchors.left: parent.left
201+ anchors.top: parent.top
202+ margin-left: 12
203+ margin-top: 15
204+ @onClick: clickLockButton()
205+ change-cursor-image: true
206+ cursor: pointer
207+ $disabled:
208+ change-cursor-image: false
209+
210+ UIButton
211+ id: configButton
212+ anchors.left: lockButton.left
213+ anchors.top: lockButton.bottom
214+ margin-top: 8
215+ margin-left: 0
216+ focusable: false
217+ image-color: #ffffff
218+ change-cursor-image: true
219+ cursor: pointer
220+ @onClick: clickConfigButton()
221+ $hover:
222+ image-color: #c1c1c1
223+ $pressed:
224+ image-color: #cccccc
225+ $disabled:
226+ image-color: #dfdfdf88
227+ change-cursor-image: false
228+
229+ TabChatButton
230+ id: prevChannelButton
231+ icon: /images/game/chat/icons/leftarrow
232+ anchors.left: parent.left
233+ anchors.top: parent.top
234+ margin-left: 32
235+ margin-top: 10
236+ change-cursor-image: true
237+ cursor: pointer
238+ $pressed:
239+ change-cursor-image: false
240+
241+ ConsoleTabBar
242+ id: consoleTabBar
243+ anchors.left: prev.right
244+ anchors.top: parent.top
245+ anchors.right: next.left
246+ margin-left: 3
247+ margin-top: 12
248+ margin-right: 3
249+ moveable: true
250+ phantom: true
251+
252+ TabChatButton
253+ id: nextChannelButton
254+ icon: /images/game/chat/icons/rightarrow
255+ anchors.right: next.left
256+ anchors.top: parent.top
257+ margin-right: 2
258+ margin-top: 10
259+ change-cursor-image: true
260+ cursor: pointer
261+ $pressed:
262+ change-cursor-image: false
263+
264+ TabChatButton
265+ id: closeChannelButton
266+ icon: /images/game/chat/icons/closechannel
267+ anchors.right: next.left
268+ anchors.top: parent.top
269+ enabled: false
270+ margin-right: 3
271+ margin-top: 10
272+ @onClick: removeCurrentTab()
273+ change-cursor-image: true
274+ cursor: pointer
275+ $disabled:
276+ change-cursor-image: false
277+
278+ TabChatButton
279+ id: clearChannelButton
280+ icon: /images/game/chat/icons/clearchannel
281+ anchors.right: next.left
282+ anchors.top: parent.top
283+ margin-right: 2
284+ margin-top: 10
285+ @onClick: |
286+ local consoleTabBar = self:getParent():getChildById('consoleTabBar')
287+ clearChannel(consoleTabBar)
288+ change-cursor-image: true
289+ cursor: pointer
290+ $disabled:
291+ change-cursor-image: false
292+
293+ TabChatButton
294+ id: channelsButton
295+ icon: /images/game/chat/icons/channels
296+ anchors.right: next.left
297+ anchors.top: parent.top
298+ margin-right: 2
299+ margin-top: 10
300+ @onClick: g_game.requestChannels()
301+ change-cursor-image: true
302+ cursor: pointer
303+ $disabled:
304+ change-cursor-image: false
305+
306+ TabChatButton
307+ id: ignoreButton
308+ icon: /images/game/chat/icons/ignore
309+ anchors.right: parent.right
310+ anchors.top: parent.top
311+ margin-right: 10
312+ margin-top: 10
313+ @onClick: onClickIgnoreButton()
314+ change-cursor-image: true
315+ cursor: pointer
316+ $disabled:
317+ change-cursor-image: false
318+
319+ Panel
320+ id: contentPanel
321+ anchors.top: prev.bottom
322+ anchors.left: parent.left
323+ anchors.right: parent.right
324+ anchors.bottom: textEdit.top
325+ margin-left: 6
326+ margin-right: 6
327+ margin-bottom: 4
328+ margin-top: 6
329+ padding: 1
330+ focusable: false
331+
332+ UIWidget
333+ id: enterBackground
334+ focusable: false
335+ image-source: /images/game/chat/textBackground
336+ image-border: 10
337+ size: 515 20
338+ anchors.bottom: parent.bottom
339+ anchors.right: parent.right
340+ anchors.left: parent.left
341+ margin-bottom: 5
342+ margin-right: 35
343+ margin-left: 35
344+
345+ UIButton
346+ id: send
347+ size: 18 18
348+ image-source: /images/game/chat/send
349+ anchors.top: enterBackground.top
350+ anchors.left: enterBackground.right
351+ margin-right: 0
352+ margin-top: 1
353+ margin-left: 5
354+ image-color: #ffffff
355+ change-cursor-image: true
356+ cursor: pointer
357+ @onClick: doSendCurrentMessageBtn()
358+ $hover:
359+ image-color: #c1c1c1
360+ $pressed:
361+ image-color: #cccccc
362+ $disabled:
363+ image-color: #dfdfdf88
364+ opacity: 0.8
365+ change-cursor-image: false
366+
367+ UITextEdit
368+ id: textEdit
369+ focusable: true
370+ font: sono_medium_border_14
371+ color: #aaaaaa
372+ size: 86 18
373+ anchors.left: enterBackground.left
374+ anchors.right: enterBackground.right
375+ anchors.bottom: parent.bottom
376+ margin-left: 5
377+ margin-right: 5
378+ margin-bottom: 8
379+ shift-navigation: true
380+ max-length: 255
381+ onEnter: doSendCurrentMessageBtn()
382+
383+ UIButton
384+ id: sayModeButton
385+ size: 14 14
386+ &sayMode: 2
387+ image-source: /images/game/chat/icons/say
388+ anchors.left: configButton.left
389+ anchors.top: configButton.bottom
390+ margin-left: 0
391+ margin-top: 8
392+ image-color: #ffffff
393+ change-cursor-image: true
394+ cursor: pointer
395+ @onClick: sayModeChange()
396+ $hover:
397+ image-color: #c1c1c1
398+ $pressed:
399+ image-color: #cccccc
400+ $disabled:
401+ image-color: #dfdfdf88
402+ change-cursor-image: false
403+
404+ UIButton
405+ id: EmotesButton
406+ image-source: /images/game/chat/icons/emotes
407+ anchors.top: enterBackground.top
408+ anchors.right: enterBackground.left
409+ margin-top: 2
410+ margin-right: 8
411+ focusable: false
412+ image-color: #ffffff
413+ change-cursor-image: true
414+ cursor: pointer
415+ @onClick: doToggleWindowEmoticons()
416+ $pressed:
417+ image-color: #cccccc
418+ $disabled:
419+ image-color: #dfdfdf88
420+ change-cursor-image: false
421+
422+ UIWindow
423+ id: backgroundEmotes
424+ size: 242 132
425+ phantom: true
426+ visible: false
427+ image-source: /images/game/chat/emoticon_background
428+ anchors.top: EmotesButton.top
429+ anchors.left: EmotesButton.right
430+ margin-top: -115
431+ margin-left: -5
432+ ScrollablePanel
433+ id: Emotes
434+ layout:
435+ type: grid
436+ cell-size: 32 32
437+ flow: true
438+ auto-spacing: true
439+ vertical-scrollbar: scrollBar
440+ anchors.top: parent.top
441+ anchors.left: parent.left
442+ anchors.right: scrollBar.left
443+ anchors.bottom: parent.bottom
444+ margin-top: 10
445+ margin-left: 7
446+ margin-bottom: 20
447+ VerticalScrollBar
448+ id: scrollBar
449+ pixels-scroll: true
450+ anchors.top: parent.top
451+ anchors.right: parent.right
452+ anchors.bottom: parent.bottom
453+ margin-top: 0
454+ margin-bottom: 8
455+ margin-right: 10
456+ step: 78
457+ $!on:
458+ width: 15
A RD_Client/modules/game_chat/check_modes.lua +4-0 View file
@@ -0,0 +1,4 @@
1+print("MessageModes.Channel = " .. tostring(MessageModes.Channel))
2+print("MessageModes.Say = " .. tostring(MessageModes.Say))
3+print("MessageModes.Whisper = " .. tostring(MessageModes.Whisper))
4+print("MessageModes.Yell = " .. tostring(MessageModes.Yell))
A RD_Client/modules/game_chat/communicationwindow.otui +206-0 View file
@@ -0,0 +1,206 @@
1+IgnoreListLabel < Label
2+ font: verdana-11px-monochrome
3+ background-color: alpha
4+ text-offset: 2 0
5+ focusable: true
6+ phantom: false
7+
8+ $focus:
9+ background-color: #ffffff22
10+ color: #ffffff
11+
12+WhiteListLabel < Label
13+ font: verdana-11px-monochrome
14+ background-color: alpha
15+ text-offset: 2 0
16+ focusable: true
17+ phantom: false
18+
19+ $focus:
20+ background-color: #ffffff22
21+ color: #ffffff
22+
23+
24+MainWindow
25+ id: communicationWindow
26+ !text: tr('Ignore List')
27+ size: 515 410
28+ @onEscape: self:destroy()
29+
30+ CheckBox
31+ id: checkboxUseIgnoreList
32+ !text: tr('Activate ignorelist')
33+ anchors.left: parent.left
34+ anchors.top: parent.top
35+ width: 180
36+
37+ Label
38+ !text: tr('Ignored Players:')
39+ anchors.left: parent.left
40+ anchors.top: prev.bottom
41+ margin-top: 10
42+
43+ TextList
44+ id: ignoreList
45+ vertical-scrollbar: ignoreListScrollBar
46+ anchors.left: parent.left
47+ anchors.top: prev.bottom
48+ height: 150
49+ width: 230
50+ margin-bottom: 10
51+ margin-top: 3
52+ padding: 1
53+ focusable: false
54+
55+ TextEdit
56+ id: ignoreNameEdit
57+ anchors.top: prev.bottom
58+ anchors.left: parent.left
59+ width: 110
60+ margin-top: 5
61+
62+ Button
63+ id: buttonIgnoreAdd
64+ !text: tr('Add')
65+ width: 48
66+ height: 20
67+ margin-left: 5
68+ anchors.top: prev.top
69+ anchors.left: prev.right
70+
71+ Button
72+ id: buttonIgnoreRemove
73+ !text: tr('Remove')
74+ width: 64
75+ height: 20
76+ margin-left: 5
77+ anchors.top: prev.top
78+ anchors.left: prev.right
79+
80+ Label
81+ !text: tr('Global ignore settings')
82+ anchors.left: parent.left
83+ anchors.top: prev.bottom
84+ margin-top: 20
85+
86+ CheckBox
87+ id: checkboxIgnorePrivateMessages
88+ !text: tr('Ignore Private Messages')
89+ anchors.left: parent.left
90+ anchors.top: prev.bottom
91+ width: 180
92+ margin-top: 5
93+
94+ CheckBox
95+ id: checkboxIgnoreYelling
96+ !text: tr('Ignore Yelling')
97+ anchors.left: parent.left
98+ anchors.top: prev.bottom
99+ width: 180
100+ margin-top: 5
101+
102+ CheckBox
103+ id: checkboxUseWhiteList
104+ !text: tr('Activate whitelist')
105+ anchors.top: parent.top
106+ anchors.left: ignoreList.right
107+ margin-left: 20
108+ width: 180
109+
110+ Label
111+ !text: tr('Allowed Players:')
112+ anchors.top: prev.bottom
113+ anchors.left: prev.left
114+ margin-top: 10
115+
116+ TextList
117+ id: whiteList
118+ vertical-scrollbar: whiteListScrollBar
119+ anchors.left: prev.left
120+ anchors.top: prev.bottom
121+ height: 150
122+ width: 230
123+ margin-bottom: 10
124+ margin-top: 3
125+ padding: 1
126+ focusable: false
127+
128+ TextEdit
129+ id: whitelistNameEdit
130+ anchors.top: prev.bottom
131+ anchors.left: prev.left
132+ width: 110
133+ margin-top: 5
134+
135+ Button
136+ id: buttonWhitelistAdd
137+ !text: tr('Add')
138+ width: 48
139+ height: 20
140+ margin-left: 5
141+ anchors.top: prev.top
142+ anchors.left: prev.right
143+
144+ Button
145+ id: buttonWhitelistRemove
146+ !text: tr('Remove')
147+ width: 64
148+ height: 20
149+ margin-left: 5
150+ anchors.top: prev.top
151+ anchors.left: prev.right
152+
153+ Label
154+ !text: tr('Global whitelist settings')
155+ anchors.left: whiteList.left
156+ anchors.top: prev.bottom
157+ margin-top: 20
158+
159+ CheckBox
160+ id: checkboxAllowVIPs
161+ !text: tr('Allow VIPs to message you')
162+ anchors.left: prev.left
163+ anchors.top: prev.bottom
164+ width: 180
165+ margin-top: 5
166+
167+ Panel
168+ anchors.bottom: parent.bottom
169+ anchors.left: parent.left
170+ anchors.right: parent.right
171+ height: 30
172+
173+ Panel
174+ size: 160 30
175+ anchors.horizontalCenter: parent.horizontalCenter
176+
177+ Button
178+ id: buttonSave
179+ !text: tr('Save')
180+ width: 75
181+ anchors.top: parent.top
182+ anchors.left: parent.left
183+
184+ Button
185+ id: buttonCancel
186+ !text: tr('Cancel')
187+ width: 75
188+ anchors.top: parent.top
189+ anchors.left: prev.right
190+ margin-left: 10
191+
192+ VerticalScrollBar
193+ id: ignoreListScrollBar
194+ anchors.top: ignoreList.top
195+ anchors.bottom: ignoreList.bottom
196+ anchors.right: ignoreList.right
197+ step: 14
198+ pixels-scroll: true
199+
200+ VerticalScrollBar
201+ id: whiteListScrollBar
202+ anchors.top: whiteList.top
203+ anchors.bottom: whiteList.bottom
204+ anchors.right: whiteList.right
205+ step: 14
206+ pixels-scroll: true
A RD_Client/modules/game_chat/config.otui +64-0 View file
@@ -0,0 +1,64 @@
1+ChatOptionCheckBox < CheckBox
2+ @onCheckChange: modules.game_chat.setOption(self:getId(), self:isChecked())
3+ height: 16
4+ font: lucida-11px-rounded
5+
6+ $first:
7+ anchors.left: parent.left
8+ anchors.right: parent.right
9+ anchors.top: parent.top
10+
11+ $!first:
12+ anchors.left: parent.left
13+ anchors.right: parent.right
14+ anchors.top: prev.bottom
15+ margin-top: 2
16+
17+MainWindow
18+ id: configWindow
19+ size: 350 180
20+ focusable: true
21+ font: lucida-11px-rounded
22+ !text: tr('Chat Configs')
23+ //@onEscape: modules.game_interface.hideDropWindow()
24+ //@onClose: modules.game_viplist.onMiniWindowClose()
25+ &save: true
26+
27+ Panel
28+ id: configsContent
29+ anchors.top: parent.top
30+ anchors.left: parent.left
31+ anchors.right: parent.right
32+ anchors.bottom: parent.bottom
33+ ChatOptionCheckBox
34+ id: backgroundAlwaysVisible
35+ !text: tr('Ativar configuraciones extras')
36+ ChatOptionCheckBox
37+ id: classicChat
38+ !text: tr('Chat clasico')
39+ margin-left: 6
40+ ChatOptionCheckBox
41+ id: chatAlwaysActive
42+ !text: tr('Chat siempre activo(?)')
43+ margin-left: 6
44+ ChatOptionCheckBox
45+ id: chatAlwaysActiveEnableWASD
46+ !text: tr('Ativar WASD con el chat ativo.')
47+ margin-left: 6
48+ ChatOptionCheckBox
49+ id: showPrivateMessagesOnScreen
50+ !text: tr('Mostrar alerta de mensaje privado')
51+ margin-left: 6
52+ ChatOptionCheckBox
53+ id: showAllChat
54+ !text: tr('Mostrar historial de chat flotante')
55+ margin-left: 6
56+
57+ Button
58+ id: okButton
59+ !text: tr('Ok')
60+ width: 64
61+ font: lucida-11px-rounded
62+ anchors.horizontalCenter: parent.horizontalCenter
63+ anchors.bottom: parent.bottom
64+ @onClick: modules.game_chat.hideConfigs()
A RD_Client/modules/game_chat/emotes_convertion.lua +80-0 View file
@@ -0,0 +1,80 @@
1+emotesTable = {
2+ {
3+ type = "\x80"
4+ },
5+ {
6+ type = "\x83"
7+ },
8+ {
9+ type = "\xd1"
10+ },
11+ {
12+ type = "\xc4"
13+ },
14+ {
15+ type = "\x9a"
16+ },
17+ {
18+ type = "\x9e"
19+ },
20+ {
21+ type = "\x9f"
22+ },
23+ {
24+ type = "\xc4"
25+ },
26+ {
27+ type = "\xc5"
28+ },
29+ {
30+ type = "\xc6"
31+ },
32+ {
33+ type = "\xcb"
34+ },
35+ {
36+ type = "\xce"
37+ },
38+ {
39+ type = "\xcf"
40+ },
41+ {
42+ type = "\xd1"
43+ },
44+ {
45+ type = "\xd6"
46+ },
47+ {
48+ type = "\x9c"
49+ },
50+ {
51+ type = "\xd0"
52+ },
53+ {
54+ type = "\xdc"
55+ },
56+ {
57+ type = "\xdd"
58+ },
59+ {
60+ type = "\xe4"
61+ },
62+ {
63+ type = "\xe5"
64+ },
65+ {
66+ type = "\xe6"
67+ },
68+ {
69+ type = "\xeb"
70+ },
71+ {
72+ type = "\xef"
73+ },
74+ {
75+ type = "\xf1"
76+ },
77+ {
78+ type = "\xfc"
79+ }
80+}
A RD_Client/modules/game_chat/violationwindow.otui +40-0 View file
@@ -0,0 +1,40 @@
1+MainWindow
2+ id: ignoreWindow
3+ !text: tr('Report Rule Violation')
4+ size: 300 240
5+
6+ Label
7+ !text: tr('Please state the rule violation in one clear sentence and wait for a reply from a gamemaster. Please note that your message will disappear if you close the channel.')
8+ text-wrap: true
9+ text-auto-resize: true
10+ anchors.left: parent.left
11+ anchors.right: parent.right
12+ anchors.top: parent.top
13+
14+ TextEdit
15+ id: text
16+ text-wrap: true
17+ multiline: true
18+ anchors.top: prev.bottom
19+ anchors.bottom: next.top
20+ anchors.left: parent.left
21+ anchors.right: parent.right
22+ margin: 8 0
23+ max-length: 255
24+
25+ Button
26+ id: buttonOk
27+ !text: tr('Ok')
28+ width: 64
29+ anchors.right: next.left
30+ anchors.bottom: parent.bottom
31+ margin-right: 10
32+ @onClick: self:getParent():onEnter()
33+
34+ Button
35+ id: buttonCancel
36+ !text: tr('Cancel')
37+ width: 64
38+ anchors.right: parent.right
39+ anchors.bottom: parent.bottom
40+ @onClick: self:getParent():onEscape()
A RD_Client/modules/game_console/channelswindow.otui +86-0 View file
@@ -0,0 +1,86 @@
1+ChannelListLabel < Label
2+ font: verdana-11px-monochrome
3+ background-color: alpha
4+ text-offset: 2 0
5+ focusable: true
6+ color: #ffffff
7+
8+ $focus:
9+ background-color: #ffffff22
10+ color: #ffffff
11+
12+MainWindow
13+ id: channelsWindow
14+ !text: tr('Channels')
15+ size: 200 300
16+ @onEscape: self:destroy()
17+ background-color: #2e2e2e
18+ border-width: 2
19+ border-color: #1e1e1e
20+ padding: 10
21+
22+ TextList
23+ id: channelList
24+ vertical-scrollbar: channelsScrollBar
25+ anchors.fill: parent
26+ anchors.bottom: next.top
27+ margin-bottom: 10
28+ padding: 1
29+ focusable: false
30+ background-color: #3e3e3e
31+ border-width: 1
32+ border-color: #1e1e1e
33+
34+ Label
35+ id: openPrivateChannelWithLabel
36+ !text: tr('Open a private message channel:')
37+ anchors.left: parent.left
38+ anchors.right: parent.right
39+ anchors.bottom: next.top
40+ text-align: center
41+ margin-bottom: 2
42+ color: #ffffff
43+
44+ TextEdit
45+ id: openPrivateChannelWith
46+ anchors.left: parent.left
47+ anchors.right: parent.right
48+ anchors.bottom: next.top
49+ margin-bottom: 10
50+ background-color: #3e3e3e
51+ border-width: 1
52+ border-color: #1e1e1e
53+ color: #ffffff
54+
55+ Button
56+ id: buttonOpen
57+ !text: tr('Open')
58+ width: 64
59+ anchors.right: next.left
60+ anchors.bottom: parent.bottom
61+ margin-right: 10
62+ @onClick: self:getParent():onEnter()
63+ background-color: #4e4e4e
64+ border-width: 1
65+ border-color: #1e1e1e
66+ color: #ffffff
67+
68+ Button
69+ id: buttonCancel
70+ !text: tr('Cancel')
71+ width: 64
72+ anchors.right: parent.right
73+ anchors.bottom: parent.bottom
74+ @onClick: self:getParent():destroy()
75+ background-color: #4e4e4e
76+ border-width: 1
77+ border-color: #1e1e1e
78+ color: #ffffff
79+
80+ VerticalScrollBar
81+ id: channelsScrollBar
82+ anchors.top: channelList.top
83+ anchors.bottom: channelList.bottom
84+ anchors.right: channelList.right
85+ step: 14
86+ pixels-scroll: true
A RD_Client/modules/game_console/communicationwindow.otui +258-0 View file
@@ -0,0 +1,258 @@
1+IgnoreListLabel < Label
2+ font: verdana-11px-monochrome
3+ background-color: alpha
4+ text-offset: 2 0
5+ focusable: true
6+ phantom: false
7+ color: #ffffff
8+
9+ $focus:
10+ background-color: #ffffff22
11+ color: #ffffff
12+
13+WhiteListLabel < Label
14+ font: verdana-11px-monochrome
15+ background-color: alpha
16+ text-offset: 2 0
17+ focusable: true
18+ phantom: false
19+ color: #ffffff
20+
21+ $focus:
22+ background-color: #ffffff22
23+ color: #ffffff
24+
25+MainWindow
26+ id: communicationWindow
27+ !text: tr('Ignore List')
28+ size: 315 310
29+ @onEscape: self:destroy()
30+ background-color: #2e2e2e
31+ border-width: 2
32+ border-color: #1e1e1e
33+ padding: 10
34+
35+ CheckBox
36+ id: checkboxUseIgnoreList
37+ !text: tr('Activate ignorelist')
38+ anchors.left: parent.left
39+ anchors.top: parent.top
40+ width: 180
41+ color: #ffffff
42+
43+ Label
44+ !text: tr('Ignored Players:')
45+ anchors.left: parent.left
46+ anchors.top: prev.bottom
47+ margin-top: 10
48+ color: #ffffff
49+
50+ TextList
51+ id: ignoreList
52+ vertical-scrollbar: ignoreListScrollBar
53+ anchors.left: parent.left
54+ anchors.top: prev.bottom
55+ height: 150
56+ width: 230
57+ margin-bottom: 10
58+ margin-top: 3
59+ padding: 1
60+ focusable: false
61+ background-color: #3e3e3e
62+ border-width: 1
63+ border-color: #1e1e1e
64+
65+ TextEdit
66+ id: ignoreNameEdit
67+ anchors.top: prev.bottom
68+ anchors.left: parent.left
69+ width: 110
70+ margin-top: 5
71+ background-color: #3e3e3e
72+ border-width: 1
73+ border-color: #1e1e1e
74+ color: #ffffff
75+
76+ Button
77+ id: buttonIgnoreAdd
78+ !text: tr('Add')
79+ width: 48
80+ height: 20
81+ margin-left: 5
82+ anchors.top: prev.top
83+ anchors.left: prev.right
84+ background-color: #4e4e4e
85+ border-width: 1
86+ border-color: #1e1e1e
87+ color: #ffffff
88+
89+ Button
90+ id: buttonIgnoreRemove
91+ !text: tr('Remove')
92+ width: 64
93+ height: 20
94+ margin-left: 5
95+ anchors.top: prev.top
96+ anchors.left: prev.right
97+ background-color: #4e4e4e
98+ border-width: 1
99+ border-color: #1e1e1e
100+ color: #ffffff
101+
102+ Label
103+ !text: tr('Global ignore settings')
104+ anchors.left: parent.left
105+ anchors.top: prev.bottom
106+ margin-top: 20
107+ color: #ffffff
108+
109+ CheckBox
110+ id: checkboxIgnorePrivateMessages
111+ !text: tr('Ignore Private Messages')
112+ anchors.left: parent.left
113+ anchors.top: prev.bottom
114+ width: 180
115+ margin-top: 5
116+ color: #ffffff
117+
118+ CheckBox
119+ id: checkboxIgnoreYelling
120+ !text: tr('Ignore Yelling')
121+ anchors.left: parent.left
122+ anchors.top: prev.bottom
123+ width: 180
124+ margin-top: 5
125+ color: #ffffff
126+
127+ CheckBox
128+ id: checkboxUseWhiteList
129+ !text: tr('Activate whitelist')
130+ anchors.top: parent.top
131+ anchors.left: ignoreList.right
132+ margin-left: 20
133+ width: 180
134+ color: #ffffff
135+
136+ Label
137+ !text: tr('Allowed Players:')
138+ anchors.top: prev.bottom
139+ anchors.left: prev.left
140+ margin-top: 10
141+ color: #ffffff
142+
143+ TextList
144+ id: whiteList
145+ vertical-scrollbar: whiteListScrollBar
146+ anchors.left: prev.left
147+ anchors.top: prev.bottom
148+ height: 150
149+ width: 230
150+ margin-bottom: 10
151+ margin-top: 3
152+ padding: 1
153+ focusable: false
154+ background-color: #3e3e3e
155+ border-width: 1
156+ border-color: #1e1e1e
157+
158+ TextEdit
159+ id: whitelistNameEdit
160+ anchors.top: prev.bottom
161+ anchors.left: prev.left
162+ width: 110
163+ margin-top: 5
164+ background-color: #3e3e3e
165+ border-width: 1
166+ border-color: #1e1e1e
167+ color: #ffffff
168+
169+ Button
170+ id: buttonWhitelistAdd
171+ !text: tr('Add')
172+ width: 48
173+ height: 20
174+ margin-left: 5
175+ anchors.top: prev.top
176+ anchors.left: prev.right
177+ background-color: #4e4e4e
178+ border-width: 1
179+ border-color: #1e1e1e
180+ color: #ffffff
181+
182+ Button
183+ id: buttonWhitelistRemove
184+ !text: tr('Remove')
185+ width: 64
186+ height: 20
187+ margin-left: 5
188+ anchors.top: prev.top
189+ anchors.left: prev.right
190+ background-color: #4e4e4e
191+ border-width: 1
192+ border-color: #1e1e1e
193+ color: #ffffff
194+
195+ Label
196+ !text: tr('Global whitelist settings')
197+ anchors.left: whiteList.left
198+ anchors.top: prev.bottom
199+ margin-top: 20
200+ color: #ffffff
201+
202+ CheckBox
203+ id: checkboxAllowVIPs
204+ !text: tr('Allow VIPs to message you')
205+ anchors.left: prev.left
206+ anchors.top: prev.bottom
207+ width: 180
208+ margin-top: 5
209+ color: #ffffff
210+
211+ Panel
212+ anchors.bottom: parent.bottom
213+ anchors.left: parent.left
214+ anchors.right: parent.right
215+ height: 30
216+
217+ Panel
218+ size: 160 30
219+ anchors.horizontalCenter: parent.horizontalCenter
220+
221+ Button
222+ id: buttonSave
223+ !text: tr('Save')
224+ width: 75
225+ anchors.top: parent.top
226+ anchors.left: parent.left
227+ background-color: #4e4e4e
228+ border-width: 1
229+ border-color: #1e1e1e
230+ color: #ffffff
231+
232+ Button
233+ id: buttonCancel
234+ !text: tr('Cancel')
235+ width: 75
236+ anchors.top: parent.top
237+ anchors.left: prev.right
238+ margin-left: 10
239+ background-color: #4e4e4e
240+ border-width: 1
241+ border-color: #1e1e1e
242+ color: #ffffff
243+
244+ VerticalScrollBar
245+ id: ignoreListScrollBar
246+ anchors.top: ignoreList.top
247+ anchors.bottom: ignoreList.bottom
248+ anchors.right: ignoreList.right
249+ step: 14
250+ pixels-scroll: true
251+
252+ VerticalScrollBar
253+ id: whiteListScrollBar
254+ anchors.top: whiteList.top
255+ anchors.bottom: whiteList.bottom
256+ anchors.right: whiteList.right
257+ step: 14
258+ pixels-scroll: true
A RD_Client/modules/game_console/console.otmod +9-0 View file
@@ -0,0 +1,9 @@
1+Module
2+ name: game_console
3+ description: Manage chat window
4+ author: edubart, andrefaramir, baxnie, sn4ake, BeniS
5+ website: https://github.com/edubart/otclient
6+ sandboxed: true
7+ scripts: [ console ]
8+ @onLoad: init()
9+ @onUnload: terminate()
A RD_Client/modules/game_console/console.otui +16-0 View file
@@ -0,0 +1,16 @@
1+ConsolePanel
2+ id: consolePanel
3+ phantom: false
4+ focusable: true
5+ draggable: false
6+ resizable: false
7+ background-color: #2e2e2e
8+ border-width: 2
9+ border-color: #1e1e1e
10+ padding: 10
11+ width: 800
12+ height: 600
13+ min-width: 800
14+ max-width: 800
15+ min-height: 600
16+ max-height: 600
A RD_Client/modules/game_console/violationwindow.otui +57-0 View file
@@ -0,0 +1,57 @@
1+MainWindow
2+ id: ignoreWindow
3+ !text: tr('Report Rule Violation')
4+ size: 300 240
5+ background-color: #2e2e2e
6+ border-width: 2
7+ border-color: #1e1e1e
8+ padding: 10
9+
10+ Label
11+ !text: tr('Please state the rule violation in one clear sentence and wait for a reply from a gamemaster. Please note that your message will disappear if you close the channel.')
12+ text-wrap: true
13+ text-auto-resize: true
14+ anchors.left: parent.left
15+ anchors.right: parent.right
16+ anchors.top: parent.top
17+ color: #ffffff
18+
19+ TextEdit
20+ id: text
21+ text-wrap: true
22+ multiline: true
23+ anchors.top: prev.bottom
24+ anchors.bottom: next.top
25+ anchors.left: parent.left
26+ anchors.right: parent.right
27+ margin: 8 0
28+ max-length: 255
29+ background-color: #3e3e3e
30+ border-width: 1
31+ border-color: #1e1e1e
32+ color: #ffffff
33+
34+ Button
35+ id: buttonOk
36+ !text: tr('Ok')
37+ width: 64
38+ anchors.right: next.left
39+ anchors.bottom: parent.bottom
40+ margin-right: 10
41+ @onClick: self:getParent():onEnter()
42+ background-color: #4e4e4e
43+ border-width: 1
44+ border-color: #1e1e1e
45+ color: #ffffff
46+
47+ Button
48+ id: buttonCancel
49+ !text: tr('Cancel')
50+ width: 64
51+ anchors.right: parent.right
52+ anchors.bottom: parent.bottom
53+ @onClick: self:getParent():onEscape()
54+ background-color: #4e4e4e
55+ border-width: 1
56+ border-color: #1e1e1e
57+ color: #ffffff
Top