-
Notifications
You must be signed in to change notification settings - Fork 19
/
sphere_dialog.scp
1516 lines (1228 loc) · 42.8 KB
/
sphere_dialog.scp
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
//****************************************************************************
// SPHERE by : Menasoft ©1997-2020
// www.sphereserver.net
// All SPHERE script files and formats are copyright Menasoft & Partners.
// This file may be freely edited for personal use, but may not be distributed
// in whole or in part, in any format without express written permission from
// Menasoft & Partners. All donations and contributions
// become the property of Menasoft & Partners.
//****************************************************************************
// FILE LAST UPDATED: Wednesday, Dec 2, 2020
//
VERSION=0.56d
[COMMENT dialog_help_section]
FLAGS
noclose // Dialog can't be closed with right click
nodispose // Dialog can't be closed with closegump macro
nomove // Dialog can't be moved
GENERAL
page id // Set dialog page id to switch between pages
dorigin x,y // Set X,Y origin point to be able to use relative X,Y values on dialog objects (eg: +10 -5 will turn into originX+10, originY-5)
tooltip clilocid // Add mouse-over tooltip on dialog object (required client >= 4.0.0)
BACKGROUNDS
resizepic x,y,gump,width,height // Add resized background gump
checkertrans x,y,width,height // Add transparency layer (required client >= 4.0.0)
PICTURES
gumppic x,y,gump,hue // Add gump picture (required client >= 3.0.0 to use 'hue' value)
gumppictiled x,y,width,height,gump // Add repeated gump pictures to fill the given area
picinpic x,y,gump,spritex,spritey,width,height // Add sprite picture (required client >= 7.0.80.0)
tilepic x,y,itemid // Add item picture from tiledata.mul
tilepichue x,y,itemid,hue // Add hued item picture from tiledata.mul
TEXTS
text x,y,color,index (OBSOLETE) // Add text (index-based)
dtext x,y,color,text // Add text
croppedtext x,y,width,height,color,index (OBSOLETE) // Add text which will be cropped if it exceed given area (index-based)
dcroppedtext x,y,width,height,color,text // Add text which will be cropped if it exceed given area
textentry x,y,width,height,color,id,index (OBSOLETE) // Add text entry area (index-based)
dtextentry x,y,width,height,color,id,text // Add text entry area
textentrylimited x,y,width,height,color,id,limit,index (OBSOLETE) // Add text entry area limited to N chars (required client >= 5.0.0)(index-based)
dtextentrylimited x,y,width,height,color,id,limit,text // Add text entry area limited to N chars (required client >= 5.0.0)
htmlgump x,y,width,height,hasbackground,hasscrollbar,index (OBSOLETE) // Add text using HTML format (index-based)
dhtmlgump x,y,width,height,hasbackground,hasscrollbar,text // Add text using HTML format
xmfhtmlgump x,y,width,height,clilocid,hasbackground,hasscrollbar // Add cliloc text
xmfhtmlgumpcolor x,y,width,height,clilocid,hasbackground,hasscrollbar,color // Add hued cliloc text (color should be RGB decimal value)
xmfhtmltok x,y,width,height,hasbackground,hasscrollbar,color,clilocid,@args@ // Add hued cliloc text with arguments (args seperator should be '@', eg: @arg1@arg2@)
BUTTONS
button x,y,unpressed_gump,pressed_gump,ispressable,destpage,id // Add button
buttontileart x,y,unpressed_gump,pressed_gump,ispressable,destpage,id,tileid,tilehue,tilex,tiley // Add button with tilepic on top
radio x,y,unchecked_gump,checked_gump,ispressed,id // Add radio button
checkbox x,y,unchecked_gump,checked_gump,ispressed,checkid // Add checkbox button
group id // Group a bunch of radios/checkboxes
//NOTE: ID 0 on buttons is reserved for CANCEL (close dialog) command
[DIALOG d_charprop1]
50,50
page 0
resizepic 0 0 5054 605 445
gumppictiled 10 10 585 20 2624
gumppictiled 10 35 480 400 2624
gumppictiled 495 35 100 100 2624
gumppictiled 490 140 105 295 2624
checkertrans 10 10 585 425
dhtmlgump 10 11 585 20 0 0 <DEF.BFONT_WHITE><DEF.CENTER>CHARACTER PROPERTIES<DEF.CENTERE><DEF.BFONTE>
tilepichue 525 60 <DISPIDDEC> <eval <COLOR> &~ 08000|04000>
page 1
button 490 140 4008 4010 0 0 0
dtext 525 140 193 GENERAL
button 490 160 4026 4028 0 2 0
dtext 525 160 1000 STATS
button 490 180 4011 4013 0 3 0
dtext 525 180 1000 SKILLS
button 490 200 4029 4031 0 4 0
dtext 525 200 1000 FLAGS
button 10 35 4020 4022 0 0 0
dtext 45 35 2048 Action
dcroppedtext 120 35 125 20 1000 <ACTION> (<GetCharActionName>)
button 10 55 4005 4007 1 0 100
dtext 45 55 2048 Body
dcroppedtext 120 55 125 20 1000 <BODY>
button 10 75 4005 4007 1 0 101
dtext 45 75 2048 Color
dcroppedtext 120 75 125 20 1000 <COLOR>
button 10 95 4020 4022 0 0 0
dtext 45 95 2048 Created
dcroppedtext 120 95 125 20 1000 <FormatMinutes <eval <CREATE>/60>> ago
button 10 115 4005 4007 1 0 102
dtext 45 115 2048 Flags
dcroppedtext 120 115 125 20 1000 <FLAGS>
button 10 135 4005 4007 1 0 103
dtext 45 135 2048 Food
dcroppedtext 120 135 125 20 1000 <FOOD> (<FOOD>/<MAXFOOD>)
button 10 155 4005 4007 1 0 104
dtext 45 155 2048 Name
dcroppedtext 120 155 125 20 1000 <NAME>
button 10 175 4005 4007 1 0 105
dtext 45 175 2048 P
dcroppedtext 120 175 125 20 1000 <P>
button 10 195 4005 4007 1 0 106
dtext 45 195 2048 Title
dcroppedtext 120 195 125 20 1000 <TITLE>
button 10 215 4020 4022 0 0 0
dtext 45 215 2048 UID
dcroppedtext 120 215 125 20 1000 <UID>
button 10 235 4020 4022 0 0 0
dtext 45 235 2048 Weight
dcroppedtext 120 235 125 20 1000 <fval <WEIGHT>>/<fval <MAXWEIGHT>>
button 10 275 4005 4007 1 0 107
dtext 45 275 2048 Fame
dcroppedtext 120 275 125 20 1000 <FAME>
button 10 295 4005 4007 1 0 108
dtext 45 295 2048 Karma
dcroppedtext 120 295 125 20 1000 <KARMA>
IF (<SERV.ExperienceSystem>)
button 10 335 4005 4007 1 0 109
dtext 45 335 2048 Exp
dcroppedtext 120 335 125 20 1000 <EXP>
ENDIF
IF (<SERV.LevelSystem>)
button 10 355 4005 4007 1 0 110
dtext 45 355 2048 Level
dcroppedtext 120 355 125 20 1000 <LEVEL>
ENDIF
IF (<ISPLAYER>)
dtext 250 35 193 Player properties
button 250 55 4020 4022 0 0 0
dtext 285 55 2048 Account
dcroppedtext 360 55 125 20 1000 <ACCOUNT>
button 250 75 4020 4022 0 0 0
dtext 285 75 2048 LastUsed
dcroppedtext 360 75 125 20 1000 <FormatMinutes <eval <LASTUSED>/60>> ago
button 250 115 4020 4022 0 0 0
dtext 285 115 2048 Gold
dcroppedtext 360 115 125 20 1000 <QVAL (<SERV.FeatureTOL> & 02)? <VIRTUALGOLD> : <GOLD>> //FEATURE_TOL_VIRTUALGOLD
button 250 135 4020 4022 0 0 0
dtext 285 135 2048 Guild
IF (<GUILD>)
dcroppedtext 360 135 125 20 1000 <GUILD> (<GUILDABBREV>)
ENDIF
button 250 155 4005 4007 1 0 120
dtext 285 155 2048 Profile
dcroppedtext 360 155 125 20 1000 <PROFILE>
button 250 175 4005 4007 1 0 121
dtext 285 175 2048 RefuseTrade
dcroppedtext 360 175 125 20 1000 <REFUSETRADES>
button 250 215 4005 4007 1 0 122
dtext 285 215 2048 Kills
dcroppedtext 360 215 125 20 1000 <KILLS>
button 250 235 4005 4007 1 0 123
dtext 285 235 2048 Deaths
dcroppedtext 360 235 125 20 1000 <DEATHS>
IF (<SERV.OptionFlags> & 010) //OF_PetSlots
button 250 275 4020 4022 0 0 0
dtext 285 275 2048 Followers
dcroppedtext 360 275 125 20 1000 <CURFOLLOWER>/<MAXFOLLOWER>
ENDIF
ELSE
dtext 250 35 193 NPC properties
button 250 55 4005 4007 1 0 130
dtext 285 55 2048 Brain
dcroppedtext 360 55 125 20 1000 <NPC> (<DEF.NPCBrain.<NPC>>)
button 250 75 4005 4007 1 0 131
dtext 285 75 2048 Home
dcroppedtext 360 75 125 20 1000 <HOME>
button 250 95 4005 4007 1 0 132
dtext 285 95 2048 HomeDist
dcroppedtext 360 95 125 20 1000 <HOMEDIST>
button 250 115 4020 4022 0 0 0
dtext 285 115 2048 Owner
IF (<OWNER>)
dcroppedtext 360 115 125 20 1000 <OWNER> (<OWNER.NAME>)
ENDIF
button 250 135 4020 4022 0 0 0
dtext 285 135 2048 SpawnItem
IF (<FLAGS> & statf_spawned)
dcroppedtext 360 135 125 20 1000 <SPAWNITEM>
ENDIF
button 250 175 4005 4007 1 0 133
dtext 285 175 2048 Bonded
dcroppedtext 360 175 125 20 1000 <BONDED>
IF (<SERV.OptionFlags> & 010) //OF_PetSlots
button 250 195 4005 4007 1 0 134
dtext 285 195 2048 FollowerSlot
dcroppedtext 360 195 125 20 1000 <FOLLOWERSLOTS>
ENDIF
ENDIF
page 2
button 490 140 4008 4010 0 1 0
dtext 525 140 1000 GENERAL
button 490 160 4026 4028 0 0 0
dtext 525 160 193 STATS
button 490 180 4011 4013 0 3 0
dtext 525 180 1000 SKILLS
button 490 200 4029 4031 0 4 0
dtext 525 200 1000 FLAGS
button 10 35 4005 4007 1 0 200
dtext 45 35 333 STR
dcroppedtext 120 35 125 20 1000 <STR>
button 10 55 4005 4007 1 0 201
dtext 45 55 353 DEX
dcroppedtext 120 55 125 20 1000 <DEX>
button 10 75 4005 4007 1 0 202
dtext 45 75 393 INT
dcroppedtext 120 75 125 20 1000 <INT>
button 10 115 4005 4007 1 0 203
dtext 45 115 333 Hits
dcroppedtext 120 115 125 20 1000 <HITS>
button 10 135 4005 4007 1 0 204
dtext 45 135 353 Stam
dcroppedtext 120 135 125 20 1000 <STAM>
button 10 155 4005 4007 1 0 205
dtext 45 155 393 Mana
dcroppedtext 120 155 125 20 1000 <MANA>
button 10 195 4005 4007 1 0 206
dtext 45 195 2048 Dam
dcroppedtext 120 195 125 20 1000 <DAM>
IF (<SERV.CombatFlags> & 08) //COMBATF_ELEMENTAL_ENGINE
button 10 215 4005 4007 1 0 207
dtext 45 215 903 DamPhysical
dcroppedtext 120 215 125 20 1000 <DAMPHYSICAL>%
button 10 235 4005 4007 1 0 208
dtext 45 235 333 DamFire
dcroppedtext 120 235 125 20 1000 <DAMFIRE>%
button 10 255 4005 4007 1 0 209
dtext 45 255 393 DamCold
dcroppedtext 120 255 125 20 1000 <DAMCOLD>%
button 10 275 4005 4007 1 0 210
dtext 45 275 363 DamPoison
dcroppedtext 120 275 125 20 1000 <DAMPOISON>%
button 10 295 4005 4007 1 0 211
dtext 45 295 323 DamEnergy
dcroppedtext 120 295 125 20 1000 <DAMENERGY>%
ENDIF
button 250 35 4005 4007 1 0 212
dtext 285 35 333 ModSTR
dcroppedtext 360 35 125 20 1000 <MODSTR>
button 250 55 4005 4007 1 0 213
dtext 285 55 353 ModDEX
dcroppedtext 360 55 125 20 1000 <MODDEX>
button 250 75 4005 4007 1 0 214
dtext 285 75 393 ModINT
dcroppedtext 360 75 125 20 1000 <MODINT>
button 250 115 4005 4007 1 0 215
dtext 285 115 333 MaxHits
dcroppedtext 360 115 125 20 1000 <MAXHITS>
button 250 135 4005 4007 1 0 216
dtext 285 135 353 MaxStam
dcroppedtext 360 135 125 20 1000 <MAXSTAM>
button 250 155 4005 4007 1 0 217
dtext 285 155 393 MaxMana
dcroppedtext 360 155 125 20 1000 <MAXMANA>
IF (<SERV.CombatFlags> & 08) //COMBATF_ELEMENTAL_ENGINE
button 250 215 4005 4007 1 0 218
dtext 285 215 903 ResPhysical
dcroppedtext 360 215 125 20 1000 <RESPHYSICAL>%
button 250 235 4005 4007 1 0 219
dtext 285 235 333 ResFire
dcroppedtext 360 235 125 20 1000 <RESFIRE>%
button 250 255 4005 4007 1 0 220
dtext 285 255 393 ResCold
dcroppedtext 360 255 125 20 1000 <RESCOLD>%
button 250 275 4005 4007 1 0 221
dtext 285 275 363 ResPoison
dcroppedtext 360 275 125 20 1000 <RESPOISON>%
button 250 295 4005 4007 1 0 222
dtext 285 295 323 ResEnergy
dcroppedtext 360 295 125 20 1000 <RESENERGY>%
ELSE
button 250 195 4020 4022 0 0 0
dtext 285 195 2048 AR
dcroppedtext 360 195 125 20 1000 <AR>
button 250 215 4005 4007 1 0 223
dtext 285 215 2048 ModAR
dcroppedtext 360 215 125 20 1000 <MODAR>
ENDIF
page 3
button 490 140 4008 4010 0 1 0
dtext 525 140 1000 GENERAL
button 490 160 4026 4028 0 2 0
dtext 525 160 1000 STATS
button 490 180 4011 4013 0 0 0
dtext 525 180 193 SKILLS
button 490 200 4029 4031 0 4 0
dtext 525 200 1000 FLAGS
FOR 0 57
IF (<SERV.SKILL.<LOCAL._FOR>>)
button <eval 10+((<LOCAL._FOR>/20)*160)> <eval 35+((<LOCAL._FOR>%20)*20)> 4005 4007 1 0 <eval 300+<LOCAL._FOR>>
dcroppedtext <eval 45+((<LOCAL._FOR>/20)*160)> <eval 35+((<LOCAL._FOR>%20)*20)> 70 20 2048 <SERV.SKILL.<LOCAL._FOR>.KEY>
dcroppedtext <eval 120+((<LOCAL._FOR>/20)*160)> <eval 35+((<LOCAL._FOR>%20)*20)> 45 20 1000 <I.<LOCAL._FOR>>
ENDIF
ENDFOR
button 330 415 4005 4007 1 0 360
dtext 365 415 2048 All Skills
dcroppedtext 440 415 45 20 1000 <fval <SKILLTOTAL>>
page 4
button 490 140 4008 4010 0 1 0
dtext 525 140 1000 GENERAL
button 490 160 4026 4028 0 2 0
dtext 525 160 1000 STATS
button 490 180 4011 4013 0 3 0
dtext 525 180 1000 SKILLS
button 490 200 4029 4031 0 0 0
dtext 525 200 193 FLAGS
LOCAL.Flag=01
FOR 0 38
IF !(<isempty <DEF.CharFlag.<eval <LOCAL._FOR>+1>>>)
checkbox <eval 10+((<LOCAL._FOR>/20)*240)> <eval 35+((<LOCAL._FOR>%20)*20)> 210 211 <hval (<FLAGS> & <LOCAL.Flag>)> <eval 400+<LOCAL._FOR>>
dtext <eval 35+((<LOCAL._FOR>/20)*240)> <eval 35+((<LOCAL._FOR>%20)*20)> 1000 <DEF0.CharFlag.<eval <LOCAL._FOR>+1>>
ENDIF
// Workaround: LOCAL.Flag=<hval <LOCAL.Flag> << 1> doesn't evaluate << correctly
LOCAL.Flag="<LOCAL.Flag> << 1"
LOCAL.Flag=<hval <LOCAL.Flag>>
ENDFOR
button 250 415 4005 4006 1 0 400
dtext 285 415 2048 Set flags
[DIALOG d_charprop1 BUTTON]
ON=0
IF (<SRC.CTAG0.Dialog.Admin.Clients>)
DIALOG d_admin_player_tweak
ENDIF
ON=100
TRYP 4 INPDLG BODY 30
ON=101
TRYP 4 INPDLG COLOR 16
ON=102
TRYP 4 INPDLG FLAGS 9
ON=103
TRYP 3 INPDLG FOOD 4
ON=104
TRYP 3 INPDLG NAME 30
ON=105
TRYP 3 INPDLG P 16
ON=106
TRYP 4 INPDLG TITLE 30
ON=107
TRYP 4 INPDLG FAME 6
ON=108
TRYP 4 INPDLG KARMA 6
ON=109
TRYP 4 INPDLG EXP 10
ON=110
TRYP 4 INPDLG LEVEL 10
ON=120
TRYP 4 INPDLG PROFILE 4096
ON=121
TRYP 3 INPDLG REFUSETRADES 1
ON=122
TRYP 4 INPDLG KILLS 5
ON=123
TRYP 4 INPDLG DEATHS 5
ON=130
TRYP 4 INPDLG NPC 20
ON=131
TRYP 3 INPDLG HOME 16
ON=132
TRYP 3 INPDLG HOMEDIST 16
ON=133
TRYP 4 INPDLG BONDED 1
ON=134
TRYP 4 INPDLG FOLLOWERSLOTS 1
ON=200
TRYP 4 INPDLG STR 5
ON=201
TRYP 4 INPDLG DEX 5
ON=202
TRYP 4 INPDLG INT 5
ON=203
TRYP 4 INPDLG HITS 5
ON=204
TRYP 4 INPDLG STAM 5
ON=205
TRYP 4 INPDLG MANA 5
ON=206
TRYP 4 INPDLG DAM 9
ON=207
TRYP 4 INPDLG DAMPHYSICAL 4
ON=208
TRYP 4 INPDLG DAMFIRE 4
ON=209
TRYP 4 INPDLG DAMCOLD 4
ON=210
TRYP 4 INPDLG DAMPOISON 4
ON=211
TRYP 4 INPDLG DAMENERGY 4
ON=212
TRYP 4 INPDLG MODSTR 5
ON=213
TRYP 4 INPDLG MODDEX 5
ON=214
TRYP 4 INPDLG MODINT 5
ON=215
TRYP 4 INPDLG MAXHITS 5
ON=216
TRYP 4 INPDLG MAXSTAM 5
ON=217
TRYP 4 INPDLG MAXMANA 5
ON=218
TRYP 4 INPDLG RESPHYSICAL 4
ON=219
TRYP 4 INPDLG RESFIRE 4
ON=220
TRYP 4 INPDLG RESCOLD 4
ON=221
TRYP 4 INPDLG RESPOISON 4
ON=222
TRYP 4 INPDLG RESENERGY 4
ON=223
TRYP 4 INPDLG MODAR 3
ON=300 357
TRYP 4 INPDLG <SERV.SKILL.<eval <ARGN>-300>.KEY> 5
ON=360
TRYP 4 INPDLG ALLSKILLS 5
ON=400
LOCAL.Flag=01
FOR 0 38
IF !(<isempty <DEF.CharFlag.<eval <LOCAL._FOR>+1>>>)
IF (<ARGCHK[<eval <LOCAL._FOR>+400>]>)
FLAGS |= <LOCAL.Flag>
ELSE
FLAGS &= ~<LOCAL.Flag>
ENDIF
ENDIF
// Workaround: LOCAL.Flag=<hval <LOCAL.Flag> << 1> doesn't evaluate << correctly
LOCAL.Flag="<LOCAL.Flag> << 1"
LOCAL.Flag=<hval <LOCAL.Flag>>
ENDFOR
DIALOG d_charprop1 4
SRC.SYSMESSAGE Flags modified
[DEFNAME CharFlagNames]
CharFlag.1 "Invulnerable"
CharFlag.2 "Dead"
CharFlag.3 "Frozen"
CharFlag.4 "Invisible"
CharFlag.5 "Freeze cast"
CharFlag.6 "Warmode"
CharFlag.7 "Reactive Armor"
CharFlag.8 "Poisoned"
CharFlag.9 "Nightsight"
CharFlag.10 "Magic Reflect"
CharFlag.11 "Polymorphed"
CharFlag.12 "Incognito"
CharFlag.13 "Spirit Speak"
CharFlag.14 "Insubstantial"
CharFlag.15 "Emote actions"
CharFlag.16 "Communication crystal"
CharFlag.17 "Has shield"
CharFlag.18 "Can move with bow"
CharFlag.19 "Stoned"
CharFlag.20 "Hovering"
CharFlag.21 "Flying"
CharFlag.23 "Hallucinated"
CharFlag.24 "Hidden"
CharFlag.25 "Indoors"
CharFlag.26 "Criminal"
CharFlag.27 "Summoned"
CharFlag.28 "Pet"
CharFlag.29 "Spawned"
CharFlag.30 "Save parity"
CharFlag.31 "Ridden"
CharFlag.32 "Mounted on horseback"
[DEFNAME NPCBrainNames]
NPCBrain.0 brain_none
NPCBrain.1 brain_animal
NPCBrain.2 brain_human
NPCBrain.3 brain_healer
NPCBrain.4 brain_guard
NPCBrain.5 brain_banker
NPCBrain.6 brain_vendor
NPCBrain.7 brain_animal_trainer
NPCBrain.8 brain_monster
NPCBrain.9 brain_berserk
NPCBrain.10 brain_dragon
[FUNCTION GetCharActionName]
IF ((<ACTION> >= skill_anatomy) && (<ACTION> <= skill_throwing)) //1 ~ 57
return <DEFMSG.skillact_using> <SERV.SKILL.<eval <ACTION> & 0ff>.KEY>
ELIF (<ACTION> == 100)
return <DEFMSG.skillact_following>
ELIF (<ACTION> == 101)
return <DEFMSG.skillact_staying>
ELIF (<ACTION> == 102)
return <DEFMSG.skillact_goingto>
ELIF (<ACTION> == 103)
return <DEFMSG.skillact_wandering>
ELIF (<ACTION> == 104)
return <DEFMSG.skillact_looking>
ELIF (<ACTION> == 105)
return <DEFMSG.skillact_fleeing>
ELIF (<ACTION> == 106)
return <DEFMSG.skillact_talking>
ELIF (<ACTION> == 107)
return <DEFMSG.skillact_talkfollow>
ELIF (<ACTION> == 108)
return <DEFMSG.skillact_guarding>
ELIF (<ACTION> == 109)
return <DEFMSG.skillact_goinghome>
ELIF (<ACTION> == 110)
return <DEFMSG.skillact_breathing>
ELIF (<ACTION> == 111)
return <DEFMSG.skillact_ridden>
ELIF (<ACTION> == 112)
return <DEFMSG.skillact_throwing>
ELIF (<ACTION> == 113)
return <DEFMSG.skillact_training>
ELIF (<ACTION> == 114)
return <DEFMSG.skillact_searchingfood>
ELIF (<ACTION> == 115)
return <DEFMSG.skillact_runningto>
ELSE
return <DEFMSG.skillact_idling>
ENDIF
[FUNCTION FormatMinutes]
IF (<ARGN1> >= 518400)
return <eval <ARGN1> / 518400>y <eval (<ARGN1> % 518400) / 43200>m <eval ((<ARGN1> % 518400) % 43200) / 1440>d <eval (((<ARGN1> % 518400) % 43200) % 1440) / 60>h <eval (((<ARGN1> % 518400) % 43200) % 1440) % 60>m
ELIF (<ARGN1> >= 43200)
return <eval <ARGN1> / 43200>m <eval (<ARGN1> % 43200) / 1440>d <eval ((<ARGN1> % 43200) % 1440) / 60>h <eval ((<ARGN1> % 43200) % 1440) % 60>m
ELIF (<ARGN1> >= 1440)
return <eval <ARGN1> / 1440>d <eval (<ARGN1> % 1440) / 60>h <eval (<ARGN1> % 1440) % 60>m
ELIF (<ARGN1> >= 60)
return <eval <ARGN1> / 60>h <eval <ARGN1> % 60>m
ELSE
return <ARGN1>m
ENDIF
[DIALOG d_itemprop1]
50,50
page 0
resizepic 0 0 5054 605 345
gumppictiled 10 10 585 20 2624
gumppictiled 10 35 480 300 2624
gumppictiled 495 35 100 100 2624
gumppictiled 490 140 105 195 2624
checkertrans 10 10 585 325
dhtmlgump 10 11 585 20 0 0 <DEF.BFONT_WHITE><DEF.CENTER>ITEM PROPERTIES<DEF.CENTERE><DEF.BFONTE>
tilepichue 525 70 <DISPIDDEC> <dCOLOR>
button 490 140 4017 4019 1 0 1
dtext 525 140 137 DELETE
page 1
button 10 35 4005 4007 1 0 100
dtext 45 35 2048 Amount
dcroppedtext 120 35 125 20 1000 <AMOUNT>
button 10 55 4005 4007 1 0 101
dtext 45 55 2048 Attr
dcroppedtext 120 55 125 20 1000 <ATTR>
button 10 75 4005 4007 1 0 102
dtext 45 75 2048 BaseID
dcroppedtext 120 75 125 20 1000 <BASEID>
button 10 95 4005 4007 1 0 103
dtext 45 95 2048 Color
dcroppedtext 120 95 125 20 1000 <COLOR>
button 10 115 4005 4007 1 0 104
dtext 45 115 2048 DispID
dcroppedtext 120 115 125 20 1000 <DISPID>
button 10 135 4020 4022 0 0 0
dtext 45 135 2048 Dye
dcroppedtext 120 135 125 20 1000 <DYE>
button 10 155 4020 4022 0 0 0
dtext 45 155 2048 Instances
dcroppedtext 120 155 125 20 1000 <INSTANCES>
button 10 175 4020 4022 0 0 0
dtext 45 175 2048 Layer
dcroppedtext 120 175 125 20 1000 <LAYER>
button 10 195 4005 4007 1 0 105
dtext 45 195 2048 Link
dcroppedtext 120 195 125 20 1000 <LINK> <QVAL (<LINK.UID>)? (<LINK.NAME>):>
button 10 215 4005 4007 1 0 106
dtext 45 215 2048 More1
dcroppedtext 120 215 125 20 1000 <MORE1> <QVAL (<MORE1>)? (<MORE1L>/<MORE1H>):>
button 10 235 4005 4007 1 0 107
dtext 45 235 2048 More2
dcroppedtext 120 235 125 20 1000 <MORE2> <QVAL (<MORE2>)? (<MORE2L>/<MORE2H>):>
button 10 255 4005 4007 1 0 108
dtext 45 255 2048 MoreP
dcroppedtext 120 255 125 20 1000 <MOREP>
button 10 275 4005 4007 1 0 109
dtext 45 275 2048 Name
dcroppedtext 120 275 125 20 1000 <NAME>
button 10 295 <QVAL (<CONT>)? 4020 4022 0 0 0 : 4005 4007 1 0 110>
dtext 45 295 2048 P
dcroppedtext 120 295 125 20 1000 <QVAL (<CONT>)? <TOPOBJ.P> : <P>>
button 10 315 4005 4007 1 0 111
dtext 45 315 2048 Timer
dcroppedtext 120 315 125 20 1000 <TIMER>
button 250 35 4005 4007 1 0 112
dtext 285 35 2048 Type
dcroppedtext 360 35 125 20 1000 <TYPE>
button 250 55 4020 4022 0 0 0
dtext 285 55 2048 UID
dcroppedtext 360 55 125 20 1000 <UID>
button 250 75 4020 4022 0 0 0
dtext 285 75 2048 Value
dcroppedtext 360 75 125 20 1000 <VALUE>
button 250 95 4020 4022 0 0 0
dtext 285 95 2048 Weight
IF (<AMOUNT> > 1)
ARGS = "(<fval <BASEWEIGHT>> x <AMOUNT>)"
ELIF (<WEIGHT> != <BASEWEIGHT>)
ARGS = "(<fval <BASEWEIGHT>> + <fval <WEIGHT>-<BASEWEIGHT>>)"
ENDIF
dcroppedtext 360 95 125 20 1000 <fval <WEIGHT>> <ARGS>
IF (<ISARMOR>)
dtext 250 135 193 Armor properties
IF (<SERV.CombatFlags> & 08) //COMBATF_ELEMENTAL_ENGINE
button 250 155 4005 4007 1 0 120
dtext 285 155 903 ResPhysical
dcroppedtext 360 155 125 20 1000 <RESPHYSICAL>%
button 250 175 4005 4007 1 0 121
dtext 285 175 333 ResFire
dcroppedtext 360 175 125 20 1000 <RESFIRE>%
button 250 195 4005 4007 1 0 122
dtext 285 195 393 ResCold
dcroppedtext 360 195 125 20 1000 <RESCOLD>%
button 250 215 4005 4007 1 0 123
dtext 285 215 363 ResPoison
dcroppedtext 360 215 125 20 1000 <RESPOISON>%
button 250 235 4005 4007 1 0 124
dtext 285 235 323 ResEnergy
dcroppedtext 360 235 125 20 1000 <RESENERGY>%
ELSE
button 250 155 4005 4007 1 0 125
dtext 285 155 2048 Armor
dcroppedtext 360 155 125 20 1000 <ARMOR>
button 250 175 4005 4007 1 0 126
dtext 285 175 2048 ModAR
dcroppedtext 360 175 125 20 1000 <MODAR>
ENDIF
ELIF (<ISWEAPON>)
dtext 250 135 193 Weapon properties
button 250 155 4005 4007 1 0 130
dtext 285 155 2048 Range
dcroppedtext 360 155 125 20 1000 <RANGE>
button 250 175 4020 4022 0 0 0
dtext 285 175 2048 Speed
dcroppedtext 360 175 125 20 1000 <SPEED>
button 250 195 4005 4007 1 0 131
dtext 285 195 2048 Dam
dcroppedtext 360 195 125 20 1000 <DAM>
IF (<SERV.CombatFlags> & 08) //COMBATF_ELEMENTAL_ENGINE
button 250 215 4005 4007 1 0 132
dtext 285 215 903 DamPhysical
dcroppedtext 360 215 125 20 1000 <DAMPHYSICAL>%
button 250 235 4005 4007 1 0 133
dtext 285 235 333 DamFire
dcroppedtext 360 235 125 20 1000 <DAMFIRE>%
button 250 255 4005 4007 1 0 134
dtext 285 255 393 DamCold
dcroppedtext 360 255 125 20 1000 <DAMCOLD>%
button 250 275 4005 4007 1 0 135
dtext 285 275 363 DamPoison
dcroppedtext 360 275 125 20 1000 <DAMPOISON>%
button 250 295 4005 4007 1 0 136
dtext 285 295 323 DamEnergy
dcroppedtext 360 295 125 20 1000 <DAMENERGY>%
ENDIF
ENDIF
[DIALOG d_itemprop1 BUTTON]
ON=1
TRYP 4 REMOVE
ON=100
TRYP 4 INPDLG AMOUNT 5
ON=101
TRYP 4 INPDLG ATTR 9
ON=102
TRYP 4 INPDLG ID 30
ON=103
TRYP 4 INPDLG COLOR 16
ON=104
TRYP 4 INPDLG DISPID 30
ON=105
TRYP 4 INPDLG LINK 10
ON=106
TRYP 4 INPDLG MORE1 32
ON=107
TRYP 4 INPDLG MORE2 32
ON=108
TRYP 4 INPDLG MOREP 16
ON=109
TRYP 4 INPDLG NAME 30
ON=110
IF !(<CONT>)
TRYP 4 INPDLG P 16
ENDIF
ON=111
TRYP 4 INPDLG TIMER 9
ON=112
TRYP 4 INPDLG TYPE 30
ON=120
TRYP 4 INPDLG RESPHYSICAL 4
ON=121
TRYP 4 INPDLG RESFIRE 4
ON=122
TRYP 4 INPDLG RESCOLD 4
ON=123
TRYP 4 INPDLG RESPOISON 4
ON=124
TRYP 4 INPDLG RESENERGY 4
ON=125
TRYP 4 INPDLG ARMOR 9
ON=126
TRYP 4 INPDLG MODAR 3
ON=130
TRYP 4 INPDLG RANGE 2
ON=131
TRYP 4 INPDLG DAM 9
ON=132
TRYP 4 INPDLG DAMPHYSICAL 4
ON=133
TRYP 4 INPDLG DAMFIRE 4
ON=134
TRYP 4 INPDLG DAMCOLD 4
ON=135
TRYP 4 INPDLG DAMPOISON 4
ON=136
TRYP 4 INPDLG DAMENERGY 4
[FUNCTION HelpPage]
// This function is called when client press "Help" button on paperdoll
SDIALOG d_helppage
[DIALOG d_helppage]
50,25
resizepic 0 0 2600 540 345
dhtmlgump 90 25 360 20 0 0 <DEF.CENTER><DEF.U>Ultima Online Help Menu<DEF.UE><DEF.CENTERE>
button 400 308 2073 2072 1 0 0
button 30 50 5540 5541 1 0 1
dhtmlgump 60 50 450 60 1 1 <DEF.U>General question about Ultima Online<DEF.UE>: Select this option if you are having difficulties learning to use a skill, if you have a general gameplay question, or you would like to search the UO Knowledge Base.
button 30 115 5540 5541 1 0 2
dhtmlgump 60 115 450 60 1 1 <DEF.U>My character is physically stuck<DEF.UE>: This choice only covers cases where your character is physically stuck in a location they cannot move out of.
button 30 180 5540 5541 1 0 3
dhtmlgump 60 180 450 60 1 1 <DEF.U>Other<DEF.UE>: If you are experiencing a problem in the game that does not fall into one of the other categories or is not addressed on the Support web page (located at <DEF.A>href="<SERV.URL>"><SERV.URL><DEF.AE>) and requires in-game assistance please use this option.
button 30 245 5540 5541 1 0 4
dhtmlgump 60 245 450 60 1 1 <DEF.U>Cancel pending request<DEF.UE>: Remove my pending help request from the queue.
[DIALOG d_helppage BUTTON]
ON=0
SYSMESSAGE @035 Help request aborted.
ON=1
WEBLINK www.uo.com/wiki/ultima-online-wiki/
ON=2
REF1=<FINDID.i_memory_helppage_stuck>
IF (<REF1>)
SYSMESSAGE You choose not to go to any city.
REF1.REMOVE
ELSE
SYSMESSAGE Please choose your destination.
CAN |= mt_nonmover
SDIALOG d_helppage_stuck
ENDIF
ON=3
SDIALOG d_gmpage_prompt
ON=4
SYSMESSAGE @035 Removed help request.
IF (<SERV.GMPAGES>)
FOR 0 <eval <SERV.GMPAGES>-1>
IF !STRCMP("<SERV.GMPAGE.<LOCAL._FOR>.ACCOUNT>","<ACCOUNT>")
GMPageDelete <LOCAL._FOR>
return 1
ENDIF
ENDFOR
ENDIF
[DIALOG d_helppage_stuck]
150,50
nomove
noclose
nodispose
resizepic 0 0 2600 270 320
dhtmlgump 50 20 250 35 0 0 Choose a town:
FOR 1 6
ARGS=<DEF.HelpPage.Teleport.<dLOCAL._FOR>>
button 50 <eval 20+(<LOCAL._FOR>*35)> 208 209 1 0 <LOCAL._FOR>
dhtmlgump 75 <eval 20+(<LOCAL._FOR>*35)> 145 20 0 0 <SERV.MAP(<dARGV[0]>,<dARGV[1]>,<dARGV[3]>).REGION.NAME>
ENDFOR
button 55 263 4005 4007 1 0 0
dhtmlgump 90 265 200 20 0 0 CANCEL
[DIALOG d_helppage_stuck BUTTON]
ON=0
SYSMESSAGE You choose not to go to any city.
CAN &= ~mt_nonmover
ON=1 6
IF (<HOUSEDESIGN>) || (<STONE>) || (<ACCOUNT.JAIL>)
CAN &= ~mt_nonmover
return 1
ENDIF
SYSMESSAGE You will be teleported within the next two minutes.
SERV.NEWITEM i_memory_helppage_stuck
NEW.MOREP=<DEF.HelpPage.Teleport.<ARGN>>
NEW.TIMER=<eval 10+<R110>>
NEW.EQUIP
[DEFNAME HelpPageTeleports]
HelpPage.Teleport.1 1519,1619,10 //Britain
HelpPage.Teleport.2 1993,2827 //Trinsic
HelpPage.Teleport.3 2910,727 //Vesper
HelpPage.Teleport.4 2433,541 //Minoc
HelpPage.Teleport.5 536,979 //Yew
HelpPage.Teleport.6 2247,1194 //Cove