-
Notifications
You must be signed in to change notification settings - Fork 0
/
tom.lua
4643 lines (4407 loc) · 167 KB
/
tom.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-- ===============================================================================================================
--
-- TOM - Tamriel Online Messenger
-- ------------------------------
--
--
-- Nie wieder eine wichtige Nachricht verpassen!
--
-- Elder Scrolls Online hatte bisher in allen Versionen eine Schwäche im Bereich Chatsystem.
-- TOM will hier in die Bresche springen und die eingehenden Nachrichten sortiert speichern
--
-- Entscheide selbst, was TOM für Dich aufbewahren soll und wie lange.
-- TOM zeigt Dir, wenn wichtige Nachrichten für Dich eingegangen sind, so dass Du nicht mehr
-- andauernd an den Bildschirm gefesselt bist.
--
-- Ich hoffe, TOM wird auch Dir helfen und Dich begeistern...
--
--
-- Bis bald, wir sehen uns... irgendwo in Tamriel!
--
-- (c) November 2015 - Dezember 2024 by @Sternentau
--
-- ===============================================================================================================
tomUI={}
local tom={}
tom.name="tom"
tom.version="4.31"
tom.isDebug=false
tom.loaded=false
tom.PlayerReady=false
function tom.LoadLocalization(locKey)
tom.LocTxt={}
if string.upper(locKey)=="DE" then
tom.locTxt={
{"Hauptfenster ein-/ausblenden","Gildenfunktionen ein-/ausblenden","Katakomben ein-/ausblenden","Magische Nachrichten ein-/ausblenden","Spieler Scan ein-/ausblenden","ungesendete Nachrichten anzeigen"},
"Tamriel Online Messenger (TOM) version #1 - #2 Nachrichten, #3 Empfänger - heute ist der #4. Tag meines Lebens",
"Willkommen zurück, Du warst #1 offline",
"Einstellungen",
"automatisch öffnen",
"TOM automatisch öffnen, wenn eine wichtige Nachricht eintrifft",
"Verschiebbare Fenster",
"Das TOM Hauptfenster und der Alerter sind frei verschiebbar",
"Aufbewahrungszeiten",
"Flüsternachrichten", --10
"Aufbewahrungszeit für Flüsternachrichten in Tagen",
"Gruppennachrichten",
"Aufbewahrungszeit für Gruppennachrichten in Tagen",
"Gilde #1",
"Aufbewahrungszeit für Gildennachrichten #1 in Tagen",
"Sprachnachrichten",
"Aufbewahrungszeit für Sagen, Brüllen und Emotes",
"Allgemeine Zone",
"Aufbewahrungszeit für Nachrichten in der allgemeinen Zone",
"Deutsche Zone", --20
"Aufbewahrungszeit für Nachrichten der deutschsprachigen Zone (/zde)",
"Französische Zone",
"Aufbewahrungszeit für Nachrichten der französischsprachigen Zone (/zfr)",
"Englische Zone",
"Aufbewahrungszeit für Nachrichten der englischsprachigen Zone (/zen)",
"TOM verbergen",
"#1 verwaltete Nachrichten, #2 bekannte Empfänger",
"Fensterhöhe",
"Höhe des Hauptfensters in Zeilen",
"Fensterbreite", --30
"Breite des Hauptfensters in Einheiten",
"Gruppe",
"Sprache",
"Allgemeine Zone",
"Deutsche Zone",
"Französische Zone",
"Englische Zone",
"Du hast die Gilde \"#1\" verlassen",
"Du bist der Gilde \"#1\" beigetreten",
"Namen in Gilden", --40
"in Gilden Charakternamen (Kurzform), Accountnamen (Adresse) oder beides (Langform) anzeigen",
{"1-Kurzform", "2-Adresse", "3-Langform"},
"Dieser Gruppe kann nicht geantwortet werden",
"Linksklick=Der aktuellen Gruppe antworten, Rechtsklick=Alarm-Popup umschalten",
"Linksklick=Die aktuelle Gruppe löschen, Rechtsklick=Letzte Nachrichten zum Clipboard",
"#1 Nachricht(en) aus Gruppe \"#2\" gelöscht",
"Sonstiges",
"24-Stunden Anzeige",
"Die übliche 24-stündige Anzeige anstatt der 12-stündigen Anzeige (am/pm) benutzen",
"Nachrichtenbehandlung", --50
"Aktion bei eingehenden Flüsternachrichten",
"1-Ignorieren: Die eingehenden Nachrichten werden nicht gespeichert oder angezeigt, 2-Speichern: Eingehende Nachrichten werden gespeichert und angezeigt, 3-Alarmieren: Eingehende Nachrichten werden gespeichert, angezeigt und der Benutzer alarmiert (ggf. das Hauptfenster geöffnet)",
{"1-Ignorieren", "2-Speichern/anzeigen", "3-Alarmieren"},
"Aktion bei eingehenden Gruppennachrichten",
"Aktion bei Nachrichten #1", --55
"Aktion für Sagen, Brüllen und Emotes",
"Aktion bei allgemeinen Zonennachrichten",
"Aktion bei deutschen Zonennachrichten",
"Aktion bei französischen Zonennachrichten",
"Aktion bei englischen Zonennachrichten", --60
"Höhe ungedockter Fenster",
"Höhe ungedockter Fenster in Zeilen",
"Breite ungedockter Fenster",
"Breite ungedockter Fenster in Einheiten",
"Interface neu laden (/reloadui)",
"Abmelden (/logout)",
"ESOTU verlassen (/quit)",
"Hintergrundtransparenz in %",
"Die aktuelle Gruppe abdocken",
"[Systemnachricht]", --70
"Herzlich willkommen, ich bin Tom!\nEs freut mich sehr, dass Du dieses AddON ausprobieren möchtest. Als erstes solltest Du vielleicht in den Einstellungen (Steuerung -> Tastenbelegung) eine Taste festlegen um mich schnell öffnen oder schliessen zu können\nViel Freude mit TOM - dem Tamriel Online Messenger",
"Du benutzt soeben zum ersten Mal die Sprache TOMish - herzlichen Glückwunsch!\nDiese Sprache kann von Spielern ohne TOM nicht gelesen werden, benutze sie daher mit Bedacht und überwiegend in Gruppen- und/oder Gildenchats um niemanden zu belästigen. Viel Spass mit TOMish",
{"Handel", "Handelsangebote", true, "wts", "wtb", "", "", "", "", "drogen", ""},
"Gruppe \"#1\" deaktiviert (Magische Nachrichten verwenden, um sie wieder anzuzeigen)",
"TOM - Magische Nachrichten",
"Magische Nachrichten öffnen",
"Magische Nachrichten sind Nachrichten, welche über Suchbegriffe aus allen Kanälen herausgefiltert und in eigens hierfür bereitgestellten Gruppen angezeigt werden.\nGeben Sie bis zu 6 Wörter an, nach welchen gesucht wird, und bis zu 2 Worte, welche NICHT enthalten sein dürfen",
"Suchworte",
"Ausschlüsse",
"Titel", --80
{"aktiv","inaktiv"},
"Neue magische Regel hinzufügen",
"Die aktuelle magische Regel löschen",
"Magische Nachrichten schliessen und die Regeln auf alle Nachrichten anwenden",
"Klicken, um den Status der Regel zu ändern",
{"TOM - Katakomben", "Katakomben schliessen","Ziel (%t), an welches gesendet wird:","%t=Ziel, %c=Charactername, %a=Accountname, %o=Standort","Ziel-Scanner starten/schliessen","Codierung:","Seite","Linksklick=Neue Schriftrolle einfügen, Rechtsklick=Diese Schriftrolle löschen","Linksklicken um an das Ziel zu senden, Rechtsklicken zum Bereitstellen an das Gildenfenster, Mittlere Maustaste zum Senden direkt an den Chat","Klicken, um diese Schriftrolle zu bearbeiten","HIER klicken, um diese Schriftrolle zu benennen"},
{"Seid herzlich gegrüsst, werter Freund aus Tamriel","Ich bin %c, ein Heiler aus %o - darf ich es wagen, Euch anzusprechen?","Gildennachricht;Wir müssen weiter wachsen - bitte versucht neue Seelen an unsere Feuer zu bringen","Verkauft jemand |H1:item:45192:101:50:5365:81:50:0:0:0:0:0:0:0:0:0:9:0:0:0:0:0|h|h?"},
"Katakomben öffnen",
"Kein Platz zum Einfügen - die letzte Zeile dieser Seite ist nicht frei",
{"Standard","TOMish"}, --90
"Klicken, um die Sprache der Schriftrollen zu ändern",
"TOM - Gildenfunktionen",
"Gildenfunktionen schliessen",
"nächste Gilde",
{"Status ausgeben","zu Spieler reisen","Mail senden","Betreff flüstern","Nachricht flüstern","aus Gilde entfernen","Mail>angezeigte","Betreff>Gildenchat","Nachricht>Gildenchat"},
"Aktion bei linker Maustaste - klicken, um eine andere Funktion für die linke Maustaste zu definieren",
"Aktion bei rechter Maustaste - klicken, um eine andere Funktion für die rechte Maustaste zu definieren",
"Accountnamen umschalten",
"Anzeige aktualisieren",
"Du bist in keiner Gilde", --100
{"suche",{"*ALLE","*ONLINE","*OFFLINE",},"wobei offline seit",{">","<"},{"Minuten","Stunden","Tagen","Monaten"},{"erforderlich ist","nicht erforderlich ist"}},
"# Mitglieder angezeigt",
"Gildenfunktionen öffnen",
"Betreff",
"Spieler #1, #2(#3), #4, Account #5, in Gebiet #6, ",
{"Aldmeri Dominion","Ebenherz-Pakt","Dolchsturz Bündnis"},
{"Drachenritter","Magier","Nachtklinge","Templer"},
"links- oder rechtsklicken, um die unten eingestellte Aktion für diese Maustaste auszuführen",
"den Nachrichtentext entfernen",
"Nachricht unvollständig - Betreff oder Text fehlt", --110
"Die Nachricht \"#2\" an \"#1\" wurde fehlerfrei versandt",
"Die Nachricht \"#2\" an \"#1\" konnte nicht versandt werden: #3",
{"1-Ungelesene", "2-Gelesen/Gesamt", "3-Nichts"},
"Anzeige der Nachrichten pro Gruppe",
"Anzeige der Nachrichtenanzahl",
"Begrüssung anzeigen",
"Begrüssung beim Eintritt in die Welt im Chat anzeigen",
"Ihr könnt keine Mail an Euch selbst senden",
"Mailbox des Empfängers ist voll",
"Zu wenig Geld, um die Nachricht zu senden", --120
"Spielerscan",
"Spielerscan schliessen",
"Liste löschen",
{"Katakomben","Entfernen"},
"abgedocktes Fenster verwerfen",
"dieser Gruppe antworten",
"TOM - nicht gesendete Nachrichten",
"nicht gesendete Nachrichten schliessen",
"erneut senden mit Linksklick, löschen mit Rechtsklick",
"nicht gesendete Nachrichten öffnen", --130
"TIM wurde nicht gefunden (muss während des Imports aktiv sein)",
"kein Platz frei, um Daten aus TIM einzufügen",
"#1 Schriftrollen aus TIM importiert und in den Katakomben abgelegt",
"Beide Warteschlangen sind leer - alle Mail vesandt",
"#1 Nachricht(en) warten noch darauf, versandt zu werden, #2 Nachricht(en) konnten nicht versandt werden",
"zur Alarmnachricht wechseln",
"automatisch zur letzten eingegangenen Nachricht wechseln, wenn diese zu einer Gruppe gehört, welche auf \"alarmieren\" steht",
"und einem Gildenrang von",
"mit einem Level von",
"TOM - Clipboard", -- 140
"Clipboard schliessen",
"(Kapazität ca. 1024 Zeichen)",
"Onlinesymbol anzeigen",
"Zeigt Euren Onlinestatus in der Titelleiste, wenn dieser \"abwesend\", \"nicht stören\" oder \"offline\" ist",
"Alerter anzeigen",
"Zeigt ein verschiebbares Icon, um bei eingehenden Nachrichten optisch alarmieren zu können falls das Hauptfenster aktuell nicht dargestellt wird (empfohlen)",
"Allgemeines",
"Schriftgröße",
"Größe der Texte in den Nachrichtenfenstern",
"#1 Nachrichten zur Variablen \"msgdump\" ausgegeben - verlasse das Spiel um dies zu untersuchen. Die Variable wird beim nächsten Eintritt in die Welt zerstört um Speicher zu sparen", -- 150
"TOM wird temporär nicht mehr öffnen - auch, wenn Nachrichten auf ALARM gestellt sind (nicht stoeren)",
"TOM wird auf normale Alarmbehandlung zurückgestellt",
"Window Font",
"The font to use for the TOM windows.",
"Font Options",
}
else
tom.locTxt={
{"show/hide main window","show/hide guild functions","show/hide catacombs","show/hide magic messages","show/hide player scan","show unsent mail"},
"Tamriel Online Messenger (TOM) version #1 - #2 messages, #3 recipients - today is the #4th day of my life",
"Welcome back, you were offline for #1",
"Settings",
"auto open TOM",
"auto open TOM if an important message is received",
"moveable windows",
"the TOM main window and the alerter are freely moveable",
"Retention times",
"whispers",
"retention time (days) for whispers",
"party",
"retention time (days) for party messages",
"guild #1",
"retention time (days) for guild messages #1",
"common messages",
"retention time for say, yell and emote messages",
"common zone",
"retention time for the common zone (/z)",
"german zone",
"retention time for the german spoken zone (/zde)",
"french zone",
"retention time for the french spoken zone (/zfr)",
"english zone",
"retention time for the english spoken zone (/zen)",
"Hide TOM",
"#1 managed messages, #2 known recipients",
"window height",
"height of the main window in lines",
"window width",
"width of the message window in units",
"party",
"say",
"common zone",
"german zone",
"french zone",
"english zone",
"You have left guild \"#1\"",
"You have joined guild \"#1\"",
"names in guild",
"display charactername (short form), account names (address) or both (long form) in guilds",
{"1-short", "2-address", "3-long"},
"Unable to answer this group",
"left click=answer the current group, right click=last messages into clipboard",
"left click=delete messages from the current group, right click=toggle alert-popup",
"#1 message(s) deleted from group #2",
"other settings",
"24 hour clock",
"use the 24-hour clock display rather than the 12-hour (am/pm) display",
"Message handling",
"action on incoming whispers",
"1-ignore: incoming messages are to be ignored, 2-save: incoming messages are saved and displayed, 3-alert: incoming messages are saved, displayed and the user will be alerted (the main window is opened dependent on your settings)",
{"1-ignore", "2-save/display", "3-alert"},
"action on incoming party messages",
"action on #1",
"action on say, yell or emote",
"action on incoming common zone messages",
"action on incoming german zone messages",
"action on incoming french zone messages",
"action on incoming english zone messages",
"undocked window height",
"undocked window height in lines",
"undocked window width",
"undocked window width in units",
"reload the interface (/reloadui)",
"logout (/logout)",
"leave ESOTU (/quit)",
"background transparency in %",
"undock the current group",
"[core system]",
"Hello, I'm TOM!\nThankyou for using this addon. I recommend binding a key (controls > keybindings) so you can toggle TOM with one click.\nI hope you enjoy using TOM - Tamriel Online Messenger.",
"Congratulations on learning to speak TOMish!\nTOMish is a coded language that only other TOM users can see as decoded in their addon chatbox. This feature is ideal for roleplay or holding private conversations. Have fun talking TOMish",
{"Trade", "Trade offers", true, "wts", "wtb", "", "", "", "", "drugs", ""},
"Group \"#1\" inactivated (use magic messages to get them back)",
"TOM - magic messages",
"open magic messages",
"Magic messages filter posts from all channels using custom keywords\nYou can select up to 6 words to search in all messages and up to 2 words which can be omitted",
"select words",
"omit words",
"Title",
{"active","inactive"},
"add a new magic rule",
"delete the current rule",
"close the magic messages window and apply the rules to all messages",
"click to change the rule state",
{"TOM - Catacombs","close catacombs","Messages will be sent to this target (%t):","%t=target, %c=charactername, %a=accountname, %o=position","open/close player scan","coding:","page","leftclick to insert a new scroll, rightclick to delete this scroll","leftclick to send to target, rightclick to send to guild functions, middle mousekey to send direct to chat","click to edit this scroll","click HERE to name this page"},
{"VR16 DD LFG","WTB |H1:item:45192:101:50:5365:81:50:0:0:0:0:0:0:0:0:0:9:0:0:0:0:0|h|h","Hey, I'm %c. Welcome.","Members are always welcome to invite their friends to the guild - press G then E to invite them."},
"open catacombs",
"no room to insert - the last row of this page is not empty",
{"Common","TOMish"},
"click to toggle the scroll language",
"TOM - guild functions",
"close guild functions",
"next guild",
{"list status","travel to player","send mail","whisper subject","whisper message","dismiss from guild", "mail>selected","subject>guildchat","message>guildchat"},
"action for left mousebutton - click to define another action for the left mousebutton",
"action for right mousebutton - click to define another action for the right mousebutton",
"toggle accountnames",
"refresh list",
"you don't belong to a guild",
{"select",{"*ALL","*ONLINE","*OFFLINE",},"where offline",{">","<"},{"minutes","hours","days","months"},{"is mandatory","is not mandatory"}},
"# members displayed",
"open guild functions",
"subject",
"Guildmember #1, #2(#3), #4, account #5, in zone #6, ",
{"Aldmeri Dominion","Ebonheart Pact","Daggerfall Covenant"},
{"Dragonknight","Sorcerer","Nightblade","Templar"},
"left- or right click to execute the predefined action for this mousekey",
"clear text",
"message incomplete - missing subject or text",
"Your mail \"#2\" to \"#1\" was sent successfully",
"The message \"#2\" to \"#1\" could not be sent: #3",
{"1-unread", "2-unread/count", "3-nothing"},
"display of messages per group",
"group messagecount",
"display greeting",
"display welcome message on login",
"you're not able to mail to yourself",
"recipient's mailbox is full",
"you don't have enough gold to send send this mail",
"playerscan",
"close scanner",
"clear the list",
{"catacombs","remove"},
"discard undocked window",
"answer this group",
"TOM - unsent mail",
"close unsent mail",
"leftclick to resend, rightclick to delete",
"open unsent mail",
"TIM was not found (must be active to start the import)",
"no room to insert data from TIM",
"#1 scrolls imported from TIM and stored to the catacombs",
"both queues are empty - all mail sent",
"#1 message(s) waiting to be sent, #2 message(s) could not be sent",
"switch to alert message",
"auto switch to the last incoming message if its group is set to \"alert\"",
"and a guild rank between",
"with a level between",
"TOM - clipboard",
"close clipboard",
"(capacity 1024 chars about)",
"display onlineicon",
"shows your onlinestate within the titlebar, if it is \"away\", \"do not disturb\" oder \"offline\"",
"display alerter",
"displays an (moveable) icon to give you an optical alert on incoming messages if the main window is not shown (recommended)",
"common",
"fontsize",
"size of the characters within the message windows",
"#1 messages dumped into variable \"msgdump\" - exit the game to investigate. The variable will be destroyed while entering the world next time to save memory", --150
"TOM will now temporary stay closed - even, if messages set to ALERT (do not disturb mode)",
"TOM returned to normal alert handling",
"windows font",
"the font to use for the TOM windows",
"Font Options",
}
end
end
function tom.zeitDisvergenz()
local timeStamp=GetTimeStamp()
local days=math.floor(timeStamp/tom.oneDay)
local seconds=timeStamp-days*tom.oneDay
local disvergenz=GetSecondsSinceMidnight()-seconds
return disvergenz
end
function tom.timeFromMidnight(timeStamp)
local days=math.floor(timeStamp/tom.oneDay)
local seconds=timeStamp-days*tom.oneDay
return seconds
end
function tom.to2string(wert)
local swert=tostring(wert)
if string.len(swert)<2 then swert="0"..swert end
return swert
end
function tom.locMsg(msgKey,msgP1,msgP2,msgP3,msgP4,msgP5,msgP6)
local temp=""
temp=tom.locTxt[msgKey]
if msgP1~=nil then temp=tom.msgReplace(temp,"#1",msgP1) end
if msgP2~=nil then temp=tom.msgReplace(temp,"#2",msgP2) end
if msgP3~=nil then temp=tom.msgReplace(temp,"#3",msgP3) end
if msgP4~=nil then temp=tom.msgReplace(temp,"#4",msgP4) end
if msgP5~=nil then temp=tom.msgReplace(temp,"#5",msgP5) end
if msgP6~=nil then temp=tom.msgReplace(temp,"#6",msgP6) end
return temp
end
function tom.msgReplace(msgTxt,msgLit,Replacement)
local temp=msgTxt
local xpos=0
if Replacement~=nil then
repeat
xpos = string.find(temp,msgLit)
if xpos~=nil then
if xpos==1 then
temp=Replacement .. string.sub(temp,3)
else
temp=string.sub(temp,1,xpos-1) .. Replacement .. string.sub(temp,xpos+2)
end
end
until xpos==nil
end
return temp
end
function tom.encodeTOMish(svar)
local temp=""
local looper=0
local isInLink=0
while looper<string.len(svar) do
looper=looper+1
tempc=string.sub(svar,looper,looper)
if tempc=="|" then
-- ist ein Link-Escapezeichen
if isInLink==0 then
-- kann der Beginn eines Links sein
if string.sub(svar,looper,looper+1)=="|H" then
isInLink=2
temp=temp..string.sub(svar,looper,looper+1)
looper=looper+1
else
-- war nur eine normale Pipe, die ohnehin nicht übersetzt wird
temp=temp..tempc
end
else
-- eines der Abschlusszeichen von zweien...
if string.sub(svar,looper,looper+1)=="|h" then
isInLink=isInLink-1
temp=temp..string.sub(svar,looper,looper+1)
looper=looper+1
else
-- war nur eine normale Pipe, die ohnehin nicht übersetzt wird
temp=temp..tempc
end
end
else
-- normale encodierung
if isInLink==0 then
local pos=string.find(tom.code1,tempc,1,true)
if pos then tempc=string.sub(tom.code2,pos,pos) end
end
temp=temp..tempc
end
end
return temp
end
function tom.decodeTOMish(svar)
local temp=""
local looper=0
local isInLink=0
while looper<string.len(svar) do
looper=looper+1
tempc=string.sub(svar,looper,looper)
if tempc=="|" then
-- ist ein Link-Escapezeichen
if isInLink==0 then
-- kann der Beginn eines Links sein
if string.sub(svar,looper,looper+1)=="|H" then
isInLink=2
temp=temp..string.sub(svar,looper,looper+1)
looper=looper+1
else
-- war nur eine normale Pipe, die ohnehin nicht übersetzt wird
temp=temp..tempc
end
else
-- eines der Abschlusszeichen von zweien...
if string.sub(svar,looper,looper+1)=="|h" then
isInLink=isInLink-1
temp=temp..string.sub(svar,looper,looper+1)
looper=looper+1
else
-- war nur eine normale Pipe, die ohnehin nicht übersetzt wird
temp=temp..tempc
end
end
else
-- normale encodierung
if isInLink==0 then
local pos=string.find(tom.code2,tempc,1,true)
if pos then tempc=string.sub(tom.code1,pos,pos) end
end
temp=temp..tempc
end
end
return temp
end
function tom.sendMessage(message,bPrefixed)
local msgToSend="|c"..tom.chatcolor..message.."|r"
if bPrefixed==true then msgToSend="|cFCFCFCTOM> |r" .. msgToSend end
if (CHAT_SYSTEM) then CHAT_SYSTEM:AddMessage(msgToSend) end
end
function tom.sendDebugMessage(message)
if tom.isDebug==true then
tom.sendMessage("DEBUG> "..message,false)
end
end
function tom.sendSystemMessage(message)
tom.IncomingMessage(0,tom.systemCoreType,tom.systemAccount,message)
end
function tom.sendSystemStatus()
local lifeDay=GetDiffBetweenTimeStamps(GetTimeStamp(),tom.dayofBirth)
lifeDay=math.floor(lifeDay/tom.oneDay)+1
tom.sendSystemMessage(tom.locMsg(2,tom.version,tom.vars.msgCount,tom.vars.personCount,lifeDay),false)
end
function tom.sendChatMessage(message,encode)
if (CHAT_SYSTEM) then
-- an das Chatsystem weitergeben
local msgToSend=message
if encode==true then
msgToSend=tom.codeTrigger1 .. tom.encodeTOMish(message)
if tom.vars.sentTOMish<1 then tom.sendSystemMessage(tom.locMsg(72)) end
tom.vars.sentTOMish=tom.vars.sentTOMish+1
end
CHAT_SYSTEM:StartTextEntry(msgToSend)
ZO_ChatWindowTextEntry:SetAlpha(1)
ZO_ChatWindowTextEntryEditBox:SelectAll()
ZO_ChatWindowTextEntryEditBox:TakeFocus()
end
end
function tom.removeDeletedMessages()
local Target=1
for Looper=1,tom.vars.msgCount,1 do
if tom.vars.msgDltd[Looper]==nil then
if Target<Looper then
tom.vars.msgType[Target]=tom.vars.msgType[Looper]
tom.vars.msgFrom[Target]=tom.vars.msgFrom[Looper]
tom.vars.msgText[Target]=tom.vars.msgText[Looper]
tom.vars.msgTime[Target]=tom.vars.msgTime[Looper]
tom.vars.msgRead[Target]=tom.vars.msgRead[Looper]
tom.vars.msgDltd[Target]=tom.vars.msgDltd[Looper]
end
Target=Target+1
end
end
local Deleted=0
for Looper=Target,tom.vars.msgCount,1 do
tom.vars.msgType[Looper]=nil
tom.vars.msgFrom[Looper]=nil
tom.vars.msgText[Looper]=nil
tom.vars.msgTime[Looper]=nil
tom.vars.msgRead[Looper]=nil
tom.vars.msgDltd[Looper]=nil
Deleted=Deleted+1
end
tom.vars.msgCount=Target-1
return Deleted
end
function tom.deleteExpiredMessages()
local temp=0
local Expire=0
local isNow=GetTimeStamp()
for Looper=1,tom.vars.msgCount,1 do
temp=tom.messageTypTranslate(tom.vars.msgType[Looper],tom.vars.msgFrom[Looper])
if temp==tom.mmtgrp then Expire=tom.vars.mltgrp
elseif ((temp==tom.mmtg01) or (temp==tom.mmto01)) then Expire=tom.vars.mltg[1]
elseif ((temp==tom.mmtg02) or (temp==tom.mmto02)) then Expire=tom.vars.mltg[2]
elseif ((temp==tom.mmtg03) or (temp==tom.mmto03)) then Expire=tom.vars.mltg[3]
elseif ((temp==tom.mmtg04) or (temp==tom.mmto04)) then Expire=tom.vars.mltg[4]
elseif ((temp==tom.mmtg05) or (temp==tom.mmto05)) then Expire=tom.vars.mltg[5]
elseif temp==tom.mmtsay then Expire=tom.vars.mltsay
elseif temp==tom.mmtzzz then Expire=tom.vars.mltzzz
elseif temp==tom.mmtzde then Expire=tom.vars.mltzde
elseif temp==tom.mmtzfr then Expire=tom.vars.mltzfr
elseif temp==tom.mmtzen then Expire=tom.vars.mltzen
elseif temp==tom.mmtsys then Expire=tom.vars.mltsys
else
Expire=tom.vars.mltwsp
end
-- Verfallszeit in Sekunden
Expire=Expire*tom.oneDay
-- Verfallszeit der Nachricht
Expire=tom.vars.msgTime[Looper]+Expire
local willExpire=GetDiffBetweenTimeStamps(Expire,isNow)
if willExpire<0 then
tom.messageDelete(Looper)
end
end
end
function tom.messageDelete(msgNum)
if msgNum>0 and msgNum<=tom.vars.msgCount then
tom.vars.msgRead[msgNum]=nil
tom.vars.msgDltd[msgNum]=true
end
end
function tom.isLOMmessage(msgText,msgFrom,lomElement)
local bfound=false
if tom.vars.lom[lomElement][3]==true then
-- Nur aktive Elemente
local chkMsgText=string.lower(msgText)
local chkFromText=string.lower(msgFrom)
for looper=4,9,1 do
if (tom.vars.lom[lomElement][looper]~="") and ((string.find(chkMsgText,tom.vars.lom[lomElement][looper],1,true)~=nil) or (string.find(chkFromText,tom.vars.lom[lomElement][looper],1,true)~=nil)) then
bfound=true --select
end
end
for looper=10,11,1 do
if (tom.vars.lom[lomElement][looper]~="") and ((string.find(chkMsgText,tom.vars.lom[lomElement][looper],1,true)~=nil) or (string.find(chkFromText,tom.vars.lom[lomElement][looper],1,true)~=nil)) then
bfound=false --omit
end
end
end
return bfound
end
function tom.messageAddMMT(Index)
local temp=0
local MMTchanged=false
if tom.vars.msgDltd[Index]==nil then
-- die MMT prüfen, ob ein neuer Eintrag erstellt werden muss
temp=tom.messageTypTranslate(tom.vars.msgType[Index],tom.vars.msgFrom[Index])
if tom.mmt[temp]==nil then
tom.mmt[temp]={}
tom.mmtCount=tom.mmtCount+1
MMTchanged=true
end
table.insert(tom.mmt[temp],Index)
if tom.mmt[temp].Readed==nil then tom.mmt[temp].Readed=0 end
if tom.mmt[temp].Unreaded==nil then tom.mmt[temp].Unreaded=0 end
-- in alle Rollen der Fenster einfügen
for looper=1,tom.vars.twtCount,1 do
local twtKey=tom.windowName .. tom.to2string(looper)
if ((tom.vars.twt[twtKey].act==true) and (temp==tom.vars.twt[twtKey].gom)) then
-- diese GOM ist connected zur Rolle - direkt durchgeben und auf gelesen setzen
tom.vars.msgRead[Index]=nil
local addingMessage=tom.formatRolleMsg(Index,false)
tom.AddmsgToRolle(addingMessage,twtKey,Index)
end
end
if tom.vars.msgRead[Index]==nil then tom.mmt[temp].Readed=tom.mmt[temp].Readed+1 else tom.mmt[temp].Unreaded=tom.mmt[temp].Unreaded+1 end
-- die LOMs prüfen, ob es eine magische Nachricht ist
for Element=1,tom.vars.lomCount do
local lomID=tom.mmtlom+Element-1
if tom.isLOMmessage(tom.vars.msgText[Index],tom.vars.persons[tom.vars.msgFrom[Index]],Element)==true then
-- die MMT prüfen, ob ein neuer Eintrag erstellt werden muss
if tom.mmt[lomID]==nil then
tom.mmt[lomID]={}
tom.mmtCount=tom.mmtCount+1
MMTchanged=true
end
table.insert(tom.mmt[lomID],Index)
if tom.mmt[lomID].Readed==nil then tom.mmt[lomID].Readed=0 end
if tom.mmt[lomID].Unreaded==nil then tom.mmt[lomID].Unreaded=0 end
-- in alle Rollen der Fenster einfügen
for looper=1,tom.vars.twtCount,1 do
local twtKey=tom.windowName .. tom.to2string(looper)
if ((tom.vars.twt[twtKey].act==true) and (lomID==tom.vars.twt[twtKey].gom)) then
-- diese GOM ist connected zur Rolle - direkt durchgeben und auf gelesen setzen
tom.vars.msgRead[Index]=nil
local addingMessage=tom.formatRolleMsg(Index,false)
tom.AddmsgToRolle(addingMessage,twtKey,Index)
end
end
if tom.vars.msgRead[Index]==nil then tom.mmt[lomID].Readed=tom.mmt[lomID].Readed+1 else tom.mmt[lomID].Unreaded=tom.mmt[lomID].Unreaded+1 end
end
end
end
return MMTchanged,temp
end
function tom.resetOverides(force)
if force==true then
if tom.ovrChatter==true then tom.ovrChatter=false end
if tom.ovrCombat==true then tom.ovrCombat=false end
if tom.ovrStrip==true then tom.ovrStrip=false end
else
if ((tom.isChattering==false) and (tom.ovrChatter==true)) then tom.ovrChatter=false end
if ((IsUnitInCombat("player")==false) and (tom.ovrCombat==true)) then tom.ovrCombat=false end
if ((tom.isInStrip()==false) and (tom.ovrStrip==true)) then tom.ovrStrip=false end
end
end
function tom.alertHandler(action)
if action==0 then
-- alarmierung fahren
if tom.alrStatus==1 then
if tom.alrPhase==0 then
tom.alrPhase=1
tomAlerterBubble:SetTexture("/esoui/art/chatwindow/chat_notification_up.dds")
else
tom.alrPhase=0
tomAlerterBubble:SetTexture("/esoui/art/chatwindow/chat_notification_down.dds")
end
end
-- Überschreibungen löschen
tom.resetOverides(false)
elseif action==1 then
-- alarm start
if tom.alrStatus~=1 then
tom.alrStatus=1
tom.alrPhase=0
tom.alertHandler(0)
end
elseif action==2 then
-- alarm stop
if tom.alrStatus==1 then
tom.alrPhase=1
tom.alertHandler(0)
tom.alrStatus=0
end
elseif action==3 then
-- alarm check
if tom.alrStatus==1 then
-- den Alarm stoppen, wenn das Fenster geöffnet wird
if tom.windowState==true then
tom.alertHandler(2)
else
-- Fenster öffnen anfordern, wenn eingestellt
if tom.vars.openOnAlarm==true then
-- NICHT öffnen, wenn überschrieben
if tom.overrideAlert==false then
tom.vars.requestedWindowState=true
end
end
end
end
tom.alertHandler(0)
end
end
function tom.guildLookup(guildNo,sID)
local temp=sID
local guildID=GetGuildId(guildNo)
local memberIndex=GetGuildMemberIndexFromDisplayName(guildID,sID)
local xhasCharacter, xCharacterName=GetGuildMemberCharacterInfo(guildID,memberIndex)
temp=tom.truncatMale(xCharacterName) .. sID
return temp
end
function tom.messageAdd(messageType, messageFrom, messageText)
local messageFromX=tom.truncatMale(messageFrom)
if messageType>=CHAT_CHANNEL_GUILD_1 and messageType<=CHAT_CHANNEL_GUILD_5 then
messageFromX=tom.guildLookup(messageType-CHAT_CHANNEL_GUILD_1+1,messageFrom)
elseif messageType>=CHAT_CHANNEL_OFFICER_1 and messageType<=CHAT_CHANNEL_OFFICER_5 then
messageFromX=tom.guildLookup(messageType-CHAT_CHANNEL_OFFICER_1+1,messageFrom)
end
tom.vars.msgCount=tom.vars.msgCount+1
tom.vars.msgType[tom.vars.msgCount]=messageType
tom.vars.msgFrom[tom.vars.msgCount]=tom.addPerson(messageFromX)
tom.vars.msgText[tom.vars.msgCount]=messageText
tom.vars.msgTime[tom.vars.msgCount]=GetTimeStamp()
tom.vars.msgRead[tom.vars.msgCount]=false
tom.vars.msgDltd[tom.vars.msgCount]=nil
end
function tom.getMMTname(key)
local temp=""
if key~=nil then
if ((key>0) and (key<tom.mmtgrp)) then
if tom.vars.persons[key]~=nil then
temp=tom.vars.persons[key]
end
elseif key==tom.mmtgrp then temp=tom.locMsg(32)
elseif key==tom.mmtg01 then temp=tom.vars.Guilds[1]
elseif key==tom.mmtg02 then temp=tom.vars.Guilds[2]
elseif key==tom.mmtg03 then temp=tom.vars.Guilds[3]
elseif key==tom.mmtg04 then temp=tom.vars.Guilds[4]
elseif key==tom.mmtg05 then temp=tom.vars.Guilds[5]
elseif key==tom.mmto01 then temp="{" .. tom.vars.Guilds[1] .. "}"
elseif key==tom.mmto02 then temp="{" .. tom.vars.Guilds[2] .. "}"
elseif key==tom.mmto03 then temp="{" .. tom.vars.Guilds[3] .. "}"
elseif key==tom.mmto04 then temp="{" .. tom.vars.Guilds[4] .. "}"
elseif key==tom.mmto05 then temp="{" .. tom.vars.Guilds[5] .. "}"
elseif key==tom.mmtsay then temp=tom.locMsg(33)
elseif key==tom.mmtzzz then temp=tom.locMsg(34)
elseif key==tom.mmtzde then temp=tom.locMsg(35)
elseif key==tom.mmtzfr then temp=tom.locMsg(36)
elseif key==tom.mmtzen then temp=tom.locMsg(37)
elseif key==tom.mmtsys then temp=tom.locMsg(70)
elseif key>=tom.mmtlom then temp="*" .. tom.vars.lom[key-tom.mmtlom+1][1]
end
end
return temp
end
function tom.messageTypTranslate(nType,msgFrom)
local temp=0
if nType==CHAT_CHANNEL_PARTY then temp=tom.mmtgrp
elseif nType==CHAT_CHANNEL_GUILD_1 then temp=tom.mmtg01
elseif nType==CHAT_CHANNEL_GUILD_2 then temp=tom.mmtg02
elseif nType==CHAT_CHANNEL_GUILD_3 then temp=tom.mmtg03
elseif nType==CHAT_CHANNEL_GUILD_4 then temp=tom.mmtg04
elseif nType==CHAT_CHANNEL_GUILD_5 then temp=tom.mmtg05
elseif nType==CHAT_CHANNEL_OFFICER_1 then temp=tom.mmto01
elseif nType==CHAT_CHANNEL_OFFICER_2 then temp=tom.mmto02
elseif nType==CHAT_CHANNEL_OFFICER_3 then temp=tom.mmto03
elseif nType==CHAT_CHANNEL_OFFICER_4 then temp=tom.mmto04
elseif nType==CHAT_CHANNEL_OFFICER_5 then temp=tom.mmto05
elseif ((nType==CHAT_CHANNEL_SAY) or (nType==CHAT_CHANNEL_YELL) or (nType==CHAT_CHANNEL_EMOTE)) then temp=tom.mmtsay
elseif nType==CHAT_CHANNEL_ZONE then temp=tom.mmtzzz
elseif nType==CHAT_CHANNEL_ZONE_LANGUAGE_1 then temp=tom.mmtzen
elseif nType==CHAT_CHANNEL_ZONE_LANGUAGE_2 then temp=tom.mmtzfr
elseif nType==CHAT_CHANNEL_ZONE_LANGUAGE_3 then temp=tom.mmtzde
elseif nType==tom.systemCoreType then temp=tom.mmtsys
elseif ((nType==CHAT_CHANNEL_WHISPER) or (nType==CHAT_CHANNEL_WHISPER_SENT)) then temp=msgFrom
end
return temp
end
function tom.messageHandling(nType)
local group=tom.messageTypTranslate(nType,1)
local temp="1"
if ((group>0) and (group<tom.mmtgrp)) then temp=tom.vars.alrwsp
elseif group==tom.mmtgrp then temp=tom.vars.alrgrp
elseif ((group==tom.mmtg01) or (group==tom.mmto01)) then temp=tom.vars.alrg[1]
elseif ((group==tom.mmtg02) or (group==tom.mmto02)) then temp=tom.vars.alrg[2]
elseif ((group==tom.mmtg03) or (group==tom.mmto03)) then temp=tom.vars.alrg[3]
elseif ((group==tom.mmtg04) or (group==tom.mmto04)) then temp=tom.vars.alrg[4]
elseif ((group==tom.mmtg05) or (group==tom.mmto05)) then temp=tom.vars.alrg[5]
elseif group==tom.mmtsay then temp=tom.vars.alrsay
elseif group==tom.mmtzzz then temp=tom.vars.alrzzz
elseif group==tom.mmtzde then temp=tom.vars.alrzde
elseif group==tom.mmtzfr then temp=tom.vars.alrzfr
elseif group==tom.mmtzen then temp=tom.vars.alrzen
elseif group==tom.mmtsys then temp=tom.vars.alrsys
end
return string.sub(temp,1,1)
end
function tom.IncomingMessage(eventcode, messageType, messageFrom, messageText)
if tom.PlayerReady==true then
-- npc ignorieren
if (messageType~=8) and (messageType~=7) then
-- ignorierte Nachrichten nicht beachten
local messageHandling=tom.messageHandling(messageType)
if messageHandling>="2" then
-- eine verschlüsselte Nachricht entschlüsseln
local msgText=messageText
local trigger=((string.sub(messageText,1,string.len(tom.codeTrigger1))==tom.codeTrigger1) or (string.sub(messageText,1,string.len(tom.codeTrigger2))==tom.codeTrigger2))
if trigger==true then
msgText=tom.decodeTOMish(string.sub(msgText,string.len(tom.codeTrigger1)+1))
end
-- diese Nachricht speichern
tom.messageAdd(messageType,messageFrom,msgText)
-- die gespeicherte Nachricht in die MMT einfügen
local MMTchanged,MMTkey=tom.messageAddMMT(tom.vars.msgCount)
tom.refreshUI(MMTchanged)
if messageHandling=="3" then
-- alarmieren
tom.alertHandler(1)
tom.activateAlertGOM(MMTkey)
end
if tom.vars.msgCount==1 then
-- die erste angelegte Gruppe anklicken
tom.GOMclick(1,1)
end
end
end
end
end
function tom.activateAlertGOM(MMTkey)
if tom.vars.activateAlertgroup==true then
if tom.hasToClose()==false then
if tom.vars.twt[tom.windowNameMain].gom~=MMTkey then
-- nachsehen, ob es schon ein abgedocktes Fenster gibt
if tom.searchUndockedWindow(MMTkey,true)=="" then
-- einen Click auf die GOM simulieren, wenn eine Alarmnachricht eintrifft
tom.connectGOMtoRolle(MMTkey,tom.windowNameMain)
end
end
end
end
end
function tom.rebuildMMT()
tom.mmt=nil
tom.mmt={}
tom.mmtCount=0
for Looper=1,tom.vars.msgCount,1 do
tom.messageAddMMT(Looper)
end
tom.rebuildMDT()
end
function tom.rebuildMDT()
tom.mdt=nil
tom.mdt={}
for Element in pairs(tom.mmt) do
table.insert(tom.mdt, Element)
end
table.sort(tom.mdt)
for Element in pairs(tom.mdt) do
if tom.mdt[Element]==tom.vars.twt[tom.windowNameMain].gom then tom.lastMDTindex=Element end
end
end
function tom.adjustGOMbutton(buttonNo,Index)
local bName=tom.windowNameMain.."B"..tom.to2string(buttonNo)
local gBC=GetControl(bName)
local gBCBG=GetControl(bName .. "BG")
local MMTkey=tom.mdt[Index]
if MMTkey==nil then
gBC:SetText(tostring(buttonNo))
gBC:SetHidden(true)
else
local grpRead=tom.mmt[MMTkey].Readed
local grpUnread=tom.mmt[MMTkey].Unreaded
local temp=tom.getMMTname(MMTkey)
if string.sub(tom.vars.gomMessageNotifier,1,1)=="1" then
if grpUnread>0 then temp=temp .. " (" .. grpUnread .. ")" end
elseif string.sub(tom.vars.gomMessageNotifier,1,1)=="2" then
if grpUnread>0 then temp=temp .. " (" .. grpUnread .. "/" .. grpRead+grpUnread .. ")" else temp=temp .. " (" .. grpRead+grpUnread .. ")" end
end
gBC:SetText(temp)
gBC:SetHidden(false)
if grpUnread>0 then gBC:SetColor(1,1,0.7,1) else gBC:SetColor(0.9,0.9,0.6,0.6) end
if MMTkey~=tom.vars.twt[tom.windowNameMain].gom then gBCBG:SetAlpha(0) else
gBCBG:SetAlpha(0.2)
gBC:SetColor(0.9,0.9,0.9,1)
end
end
end
function tom.adjustLOMbutton(buttonNo,Index)
local bName="tomMagicB"..tom.to2string(buttonNo)
local gBC=GetControl(bName)
local gBCBG=GetControl(bName .. "BG")
local MMTkey=tom.vars.lom[Index]
if MMTkey==nil then
gBC:SetText(tostring(buttonNo))
gBC:SetHidden(true)
else
local temp=tom.vars.lom[Index][1]
gBC:SetText(temp)
gBC:SetHidden(false)
gBC:SetColor(1,1,0.7,1)
if Index~=tom.vars.shownLOM then gBCBG:SetAlpha(0) else
gBCBG:SetAlpha(0.2)
gBC:SetColor(0.9,0.9,0.9,1)
tom.magicLomTransport(Index,true)
end
end
end
function tom.refreshUI(doRebuild)
if doRebuild==true then tom.rebuildMDT() end
local shownGOM=tom.getMMTname(tom.vars.twt[tom.windowNameMain].gom)
tomWindow01Gom:SetText(shownGOM)
-- Hauptfensteranzeige
for looper=1,tom.vars.gomButtons,1 do
tom.adjustGOMbutton(looper,tom.firstGOMbutton+looper-1)
end
tomWindow01SL1:SetMinMax(1,tom.mmtCount-tom.vars.gomButtons+1)
tomWindow01SL1:SetValue(tom.firstGOMbutton)
if tom.mmtCount>tom.vars.gomButtons then
tomWindow01SL1:SetHidden(false)
else
tomWindow01SL1:SetHidden(true)
end
end
function tom.refreshFailedUI()
-- failMail Fensteranzeige
for looper=1,tom.fmButtons,1 do
tom.adjustFMbutton(looper,tom.firstFMbutton+looper-1)
end
tomfailMailSL1:SetMinMax(1,tom.vars.failedMailQueueindex-tom.fmButtons+1)
tomfailMailSL1:SetValue(tom.firstFMbutton)
if tom.vars.failedMailQueueindex>tom.fmButtons then
tomfailMailSL1:SetHidden(false)
else
tomfailMailSL1:SetHidden(true)
end
end
function tom.refreshCatacombUI()
tom.loadCatacombScrollPage()
tomCatacombCoding:SetText(tom.locTxt[90][tom.vars.CatacombCoding])
tomCatacombNameText:SetText(tom.vars.CatacombNames[tom.vars.CatacombScrollsPage])
end
function tom.refreshMagicUI()
for looper=1,tom.lomButtons,1 do
tom.adjustLOMbutton(looper,tom.firstLOMbutton+looper-1)
end
tomMagicSL1:SetMinMax(1,tom.vars.lomCount-tom.lomButtons+1)
tomMagicSL1:SetValue(tom.firstLOMbutton)
if tom.vars.lomCount>tom.lomButtons then
tomMagicSL1:SetHidden(false)
else
tomMagicSL1:SetHidden(true)
end
end
function tom.refreshGuildUI()
tomGuildBetreff:SetText(tom.vars.GuildSubject)
tomGuildNachricht:SetText(tom.vars.GuildMessage)
tom.UpdateGuildList()
tom.UpdateGuildButtons(1)
tom.guildSetGuildWindow()
tom.slider3:SetValue(1)