-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathautomapper.cmd
More file actions
2365 lines (2209 loc) · 91.2 KB
/
automapper.cmd
File metadata and controls
2365 lines (2209 loc) · 91.2 KB
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
# automapper.cmd
var autoversion 8.2023-12-27
# use '.automapper help' from the command line for variables and more
# debug 5 is for outlander; genie debuglevel 10
# debuglevel 10
# debug 5
#2023-12-15
# Hanryu
# added handling to ACTION.MAPPER.ON for running a script in each room
# essentially removes the fall-thru matchwait timeout if $automapper.UserWalkAction contains a . or a #
#2023-12-3
# Shroom - Fixed bug in Bag Check
#2023-10-6
# Shroom
# Removed RETURN: label and changed usage for it to Move.Done
# Fixed bug in Dark Room Checks / Light Usage
#2023-09-10
# Shroom
# added missing match for Moving while invisible
# robustified dropping INVIS logic
#2023-07-25
# Hanryu
# added variable automapper.seekhealing, will stop at vela'thor plants and fully heal
#2023-07-03
# Hanryu
# added match for entering shard at night with a warrant
#2023-06-17
# Jon
# changed confirmation wait variable to typeahead 0
#2023-04-15
# Hanryu
# goal was to address hangups on map 123; nextroom was used in ice rooms
# Swapped "nextroom" for depth decay because of a genie inconsistancy that Jon found
# "checked" var to "skatechecked" for clarity
# finding instances of negated vars that might not be booleans and changing them
#2023-04-11
# Hanryu
# change to mistwood forest handling, if you end up in room 9 will move you to room 8 since that's where mapper wants to put you
#2023-03-12
# Shroom
# Added preliminary LIGHT SOURCE / DARKVISION checks - when in Dark Room should auto check for and try to activate a light source
# MUCH testing was done to make sure it activates & properly continues on the path - but rarely stalls after activating (can't figure out how)
# UNCommented Parses after 3 Move Fails (some scripts rely on that to restart Automapper)
# Added new SUBSCRIPT for escaping from Oshu Manor Embalming Chamber Automatically
# Fixed Subscript going into Misenseor Abbey
#2023-03-06
# Nazaruss
# Added cyclic variable to toggle turning off cyclics before moving
#2023-02-24
# Hanryu
# working to address Shard gate error messages that go to the whole rooom
# adding $citizenship global based on title affiliation list
#2023-02-19
# Shroom
# Added better logic for Handling the Theren Keep tunnels
# Added SUBSCRIPT for getting in and out of Dragon's Spine ( Fixed clunky ass movements )
# Added Thires Broom mechanic for traversing Ice road
# Fixed clunky climb movement on creeper to/from Beisswurms
# Added more matches for MOVE_WAIT which was causing hangups in some instances
#2023-02-18
# Shroom
# Fixed a bug with STOW.FEET not properly rolling prayer mats causing it to go in infinite loop
#2023-02-03
# Hanryu
# A better way to retry
# swap out . for " for Outlander crap in action/match
#2023-01-08
# Hanryu
# Outlander has $client now, so adjusting for that
#2023-01-05
# Hanryu
# Sigil walking *would* keep plowing on for the 2nd sigil even if you're locked, now fixt
#2022-12-31
# Shroom
# Added SUBSCRIPTS for movement into / out of Gate of Souls
# Default movement was VERY clunky and didn't work properly, now MUCH better - Should not hang up or error
# Fixed MOVE.RETRY issue that could cause infinite hang if starting in RT
# waitfor_action updated
# Added counter to Action sub as failsafe
#2022-12-18
# Shroom
# Fix in startup for rogue automapper.typeahead var being set - (will auto-set to 1 if NOT set a NUMBER)
# Merged Hanryu changes
# Athletics check for Thieves Khri for climbing - Will skip khri at higher Athletics
#2022-12-15
# Hanryu
# Sigil walking
# walk help
# belly crawl room for shard wgate favors
# changed send to put in MOVE.TORCH
# commented out race condition with ggbypass
# added a pause at the end of "script" execution
# moved move.invis out of the middle of fatigue block (boy that's a mess)
#2022-12-10
# Hanryu
# unixtime instead of gametime, checks for genie version
# delay iff !first depth, also check for RT so the loop is not going nuts while RT is ticking down
# added drag by current handling for low swimming ranks
# leaving some notes on USERWALK
# USERWALK implimentation
# adding feature hiding mask
# removed s from rocks
# ^\s*[\[\(]?[rR]oundtime\s*\:? for all RT matches
# retry now zero's everything out and heads back to wave.do
# Jon's got a new MOVE.RT for us and I like it
#2022-11-30
# Hanryu
# separated out MOVE.WAIT:
#2022-11-16
# Hanryu
# dealing with an outlander bug where 2 "when"s in an action line mess it up
# searching xala path
# >= 1750 for exp checks, yea I am undoing something I messed up
#2022-11-04
# Shroom
# - Added additional FAIL catches to ACTION sub
# - Added a hard STOW FEET at end of STOW.FEET sub
# - To fix a endless loop in rare cases where false positives on a "cloth/rug" at feet that CANNOT be rolled
# - Should not really effect anything in normal stow feet logic other than firing the command twice
#
#2022-11-03
# Hanryu
# issue with shard a night... yet again! New subscript
# fall-thru message for PP walk if you're playing zills
# added a timeout to MOVE.RT evalwait depth drops based on VTCifer's code
#2022-11-02
# Hanryu
# addressing issue 33 and 32, mono echo and missing fancy characters
# working toward a better retry
#2022-10-30 to 11-01
# Shroom - Fixing several bugs
# Fixed several no gosubs to return to errors
# Re-commented rope bridge as still in use in TF for now
# Even though Travel detects whether bridge or rope is up - Automapper still used as a backup method
# Added more fail messages to ACTION
# NEW - Added a STOW.ALT module as a backup to regular STOWING
# IF "STOW" fails and does not empty hands - will check inv for others bags and try putting in those bags
# Will attempt up to 4 containers - Auto-Scans inventory for the most common containers
# Anchored JAILED triggers
# Hanryu - cleaned up echos to use new echo tech
# Added check for "are you in RT when you start"
# Added bridge in adanf as a place to wait
# deleted move_DIVE since it was undefined, commented out the action for move.dive
# ^\s*[\[\(]?Roundtime\s*\:? for all RT matches
#2022-10-22 thru 27
# Hanryu, with a strong assist from TenderVittles
# working on afordances for different system speeds on RT generating moves (MOVE.RT label)
# added a wait in retry if waitfor_action = 1
# Added inviso drop message on "get skates"
# add verbose flag to toggle next move echo
# still fighting run conditions at the shard gates at night when powerwalking
# changed echo and added globals to make updates preserve prefs
# commenting out the rope bridge, sorry TF
# unify move.retry: and move.retry.go:
#2022-10-14
# Shroom - Increased default genie pause slightly
# Added additional match for move_OK to fix hangup at Crystalline Gorge (You move effortlessly through the shard/wall!)
# Cleaned up some bad regex (unnecessary \')
# Slightly increased matchwait timeout for Action to fix issues with skates
#2022-10-10
# Hanryu - integrating Jon's WAVE
# it's a pretty big refactor that is all @Jon#0664 fault
# the wave loop is a lot more readable and more compact
# also a fix for searches that create RT
# fixed "matchre (" and "replacere ("
# fixed trailing white space
# unified indent to " " (two spaces)
# added paren's to lots of if statements
# infiniteLoopProtection variable based on FE
# fixed a run condition between being inviso at the shard gate (STOP.INVIS) and (MOVE.INVIS)
#2022-09-22
# Hanryu - powerwalk smoother/ranger blend
# - if you're powerwalking, set typeahead to 0, once you're done powerwalking, set it back to $automapper.typeahead global
# - added release blend for rangers
# - added ...wait checkes to a few matches that were missing them
# - fixed trigger for dropping your feature hiding cloak
# - moved a bunch of the pauses to >pause %command_pause
# June 25, 2022 - TenderVittle's Touches:
# Added variable action gosub to handle doing commands you really want to make sure are done right. This is a toggle.
# Added a toggle for collecting rocks on the ice road vs. just waiting.
# Redid skate/footwear logic from scratch. Tested a lot. Does not take skates off if you stop at room 45 (going north) or only move one room (so don't do that.)
# Removed broom/carpet messaging from retry action, and removed double from fail action. Now its only a fail action. Not sure if that breaks things for broom/carpet users, sorry.
# Removed unused MOVE.POWER routine.
# Removed unused MOVE.PAUSE routine and action.
# Adjusted tab spacing throughout the whole script.
# Set all labels to caps for half-blind people like me to tell them apart. Also added spacing between labels.
# Compressed single-line code blocks { } where it seemed safe to do so.
# Made MOVE.RETRY.GO's stunned check return to MOVE.RETRY.GO instead of MOVE.RETRY
# Moved some labels around for flow.
# Added Steps of Vuan to Moon Mage spell release for invisibility movement
# Redid feature-hiding cloak logic for Shard gates. Now supports multiple nouns and will attempt to re-hide your face and such after passing through/before detouring.
# Added echo to short pause movements like the root in the southwest of Leth Deriel's map, to indicate the script/Genie is not freezing there.
# Re-wrote and absorbed many helper scripts. Not all thoroughly tested, however. "sharddetour", "peerchurch", "infusionentry" and "crossingtrainerfix" are still required in your scripts folder.
# Added logic for Misenseor Abbey's secret hatchway. Needs more testing, and the map updated to replace "go secret hatchway" with "script abbeyhatch".
#
# - Updated Stow Foot logic trigger - Removed Old Obsolete Regex Trigger since stow foot logic now in game
# - Added missing match for MOVE_RETRY (for climbing in Abandoned Mine)
# - Updated stow foot logic to handle prayer mats
# - Added move_PAUSE routine for better handling of walking through areas with long RT causing automapper to trip up on itself
# - Added support for getting ice skates from portal bag as a secondary check
# Shroom - Updated matches for closed shops in Shard
# 1 - to work with shops in Shard that let you in at night when you ARE a citizen (was exiting out before instead of continuing)
# 2 - to properly exit out when you get the message and are NOT a citizen
# Added standing checks before quitting automapper
# Increased wait time on Ice as was going too fast in some cases
# Added Special Support for the Stone Wall in Cragstone Vale
# Fixed a bug in the Retry Logic
# July 17 2022 - Shroom
# Fixed bug in Move_Stow
# Added standing checks before moving wall in gear gate bypass
# VTCifer - Changed default debug level at the top to be more useful
# Fixed whitespace
# Added match for powerwalk
# Added missing script label
# Fixed wait time for ice
#
# 2019-09-25 - Shroom - Robustified Shard gate logic - should take detour if rejected by guard (requires .sharddetour script)
# Cleaned up the ice skate logic
# 2019-08-6 Shroom - Added several missing matches
# Dasffion - Added in a waiteval for depth on climbing to allow the script to catch up on type aheads.
# 2019-07-06 - VTCifer - Reverted most "send" commands to "put", to prevent out of order commands
# 2019-06-19 - VTCifer - Updated foot slot routine from Dasffion
# Changed default typeahead to 1 (standard for accounts) and cleaned up documentation of setting
# 2019-4-20 - Shroom - Cleaned up retry logic - added micro pauses to reduce errors
# Added trigger logic for being invisible and unable to enter certain areas - should drop invis and retry
# 2018-7-21 - Shroom - Fixed stowfootitem routine, fixed powerwalking routine
# Cleaned up some matchres, spacing, optimized some code with help of Pelic
# 2018-7-28 - Added missing match for closed shop. Cleaned up some RegEx thanks to Ataeleos
# 2017-11-13 - Shroom - Synced changes and updates from TF and Prime versions - To make compatible across both instances
# Added ICE SKATE support for Ice Road - Checks for ice skates and wears them during ice road, also checks your footwear and puts it back on after
# Added support for Stowing foot item when you have an item stuck at your feet
# Added missing web catch - Noobs were getting stuck on the web to Leth
# Modified handling of dropping invisibility depending on guild
# Added catches for getting thrown in Jail to properly abort automapper
# 2016-12-01 - Shroom - Added updates and optimizations
# Added more catches for stunned or tripping over roots
# Added additional catches for closed shops
# Added support for knocking on a town gate (Shard) during Night to get in. (Need to add checks for Non-Citizens, may cause problems with non-citizens)
# Added catches for trying to go through gate while invisible or with a cloak concealing face.
# Added support for climbing with ropes
# Added matches for Theren tunnels so script does not get stuck in infinite loop trying to stand
# Added catch for Shard citizens now being able to enter closed shops at night
# Added stamina support for Aesry stairs - Will cast fatigue recovery buffs if possible and pause to wait for stamina
# 2013-07-24 - Funk - - Merged back in previous changes + updates
# Waiting for the galley to show up - var move_BOAT ^The galley has just left|^You look around in vain for the galley
# added "^You'll need to stand up first" to move_STAND var
# added "^You almost make it to the top" to climb_FAIL
# added "^You find yourself stuck in the mud" to move_MUCK var
# added support for stowing to climb - var move_STOW ^You'll need to free up your hands first|^Not while carrying something in your hands
# Added handler for attempting to enter closed shops from Shroomism
# Added web retry support from Dasffion
# Added caravan support from Jailwatch
# Added swimming retry from Jailwatch
# Added search and objsearch handling from BakedMage
# Added enhanced climbing and muck support from BakedMage
# VTCifer - Added "room" type movement - used for loong command strings that need to be done in one room
# VTCifer - Added "ice" type movement - will collect rocks when needs to slow down
# VTCifer - Added more matches for muck (black apes)
# Fixed timings
# Added "treasure map" mode from Isharon
# Replaced "tattered map" with "map" (because the adjective varies)
# VTCifer - Added additional catches for roots
# VTCifer - Added additional catch for Reaver mine -> Non-standard stand up message. Fixed minor issue with RT and roots.
#
#
# Related macros
# ---------------
# Add the following macro for toggling powerwalking:
# #macro {P, Control} {#if {$powerwalk = 1}{#tvar powerwalk 0;#echo *** Powerwalking off}{#tvar powerwalk 1;#echo *** Powerwalking on}}
#
# Add the following macro for toggling Caravans:
# #macro {C, Control} {#if {$caravan = 1}{#tvar caravan 0;#echo *** Caravan Following off}{#tvar caravan 1;#echo *** Caravan Following on}}
#
# Related aliases
# ---------------
# Add the following aliases for toggling dragging:
# #alias {drag0} {#tvar drag 0;#unvar drag.target}
# #alias {drag1} {#tvar drag 1;#tvar drag.target $0}
# Add the following aliases for toggling treasure map mode:
# #alias {map0} {#tvar mapwalk 0}
# #alias {map1} {#tvar mapwalk 1}
#
## use me for if you need an input
# checks for outlander v. genie, outlander does not suppor the `mono` flag
if matchre("$client", "Genie") then var helpecho #33CC99 mono
if matchre("$client", "Outlander") then var helpecho #33CC99
if matchre("%1", "help|HELP|Help|^$") then {
put #echo %helpecho <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
put #echo %helpecho << Welcome to automapper Setup! (version %autoversion) >>
put #echo %helpecho << Use the command line to set the following preferences: >>
put #echo %helpecho << Typeahead >>
put #echo %helpecho << Standard Account = 1, Premium Account = 2, LTB Premium = 3 >>
put #echo %helpecho << 0: wait for correct confirmation of sent commands >>
put #echo %helpecho << #var automapper.typeahead 1 >>
put #echo %helpecho << Pause >>
put #echo %helpecho << Time to pause before sending a "put x" command >>
put #echo %helpecho << #var automapper.pause 0.01 >>
put #echo %helpecho << Infinite Loop Protection >>
put #echo %helpecho << Increase if you get infinte loop errors >>
put #echo %helpecho << #var automapper.loop 0.001 >>
put #echo %helpecho << Echoes >>
put #echo %helpecho << how verbose do you want automapper to be? >>
put #echo %helpecho << #var automapper.verbose 1 >>
put #echo %helpecho << Ice Road Behavior >>
put #echo %helpecho << 1: collect rocks on the ice road when lacking skates >>
put #echo %helpecho << 0: just wait 15 seconds with no RT instead >>
put #echo %helpecho << #var automapper.iceroadcollect 1 >>
put #echo %helpecho << Cyclic Spells >>
put #echo %helpecho << 1: Turn off cyclic spells before moving >>
put #echo %helpecho << 0: Leave cyclic spells running while moving >>
put #echo %helpecho << #var automapper.cyclic 1 >>
put #echo %helpecho << Color >>
put #echo %helpecho << What should the default automapper echo color be? >>
put #echo %helpecho << #var automapper.color #33CC99 >>
put #echo %helpecho << Class >>
put #echo %helpecho << Which classes should automapper turn on and off? >>
put #echo %helpecho << #var automapper.class -arrive -combat -joust -racial -rp >>
put #echo %helpecho << Now save! (#save vars for Genie | cmd-s for Outlander) >>
put #echo %helpecho << >>
put #echo %helpecho << try `.automapper walk` for help with the various walk types >>
put #echo %helpecho <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
exit
}
if matchre("%1", "^walk$") then {
put #echo %helpecho <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
put #echo %helpecho << Welcome to automapper walk help! >>
put #echo %helpecho << Caravan Walking >>
put #echo %helpecho << wait for your caravan >>
put #echo %helpecho << #var caravan 0/1 >>
put #echo %helpecho << Drag >>
put #echo %helpecho << drag a target around >>
put #echo %helpecho << #var drag 0/1 >>
put #echo %helpecho << #var drag.target name/item >>
put #echo %helpecho << Map Walking >>
put #echo %helpecho << study a map for treasure >>
put #echo %helpecho << #var mapwalk 0/1 >>
put #echo %helpecho << Power Walking >>
put #echo %helpecho << percieve the mana until locked >>
put #echo %helpecho << #var powerwalk 0/1 >>
put #echo %helpecho << Sigil Walking >>
put #echo %helpecho << find both sigils in each room >>
put #echo %helpecho << trains: Scholarship, Arcana, Outdoorsmanship >>
put #echo %helpecho << #var automapper.sigilwalk 0/1 >>
put #echo %helpecho << Search Walking >>
put #echo %helpecho << search in every room >>
put #echo %helpecho << #var searchwalk 0/1 >>
put #echo %helpecho << USER Walking >>
put #echo %helpecho << this can do whatever you'd like! >>
put #echo %helpecho << you MUST define globals automapper.UserWalkAction >>
put #echo %helpecho << you MUST define globals automapper.UserWalkSuccess >>
put #echo %helpecho << you MAY define globals automapper.UserWalkRetry >>
put #echo %helpecho << #var automapper.userwalk 0/1 >>
put #echo %helpecho << Stop and heal at vela'thor plants >>
put #echo %helpecho << #var automapper.seekhealing 1 >>
put #echo %helpecho << >>
put #echo %helpecho << Please search automapper.cmd for "Related macros" >>
put #echo %helpecho <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
exit
}
ABSOLUTE.TOP:
# ---------------
#USER VARS:
# Type ahead declaration
# The following will use a global to set it by character. This helps when you have both premium and standard accounts.
# Standard Account = 1, Premium Account = 2, LTB Premium = 3
# 0: wait for correct confirmation of sent commands
# automapper.typeahead FIX - Some users had a rogue variable set for automapper.typeahead
# This sets automapper.typeahead to 1 if the variable is NOT present at all
# This will auto reset it back to 1 IF the automapper.typeahead is ~NOT~ set to a number
if ((!def(automapper.typeahead)) || (!matchre("$automapper.typeahead", "^\d$"))) then put #var automapper.typeahead 1
var typeahead.max $automapper.typeahead
# Time to pause before sending a "put x" command
if !def(automapper.pause) then var command_pause 0.01
else var command_pause $automapper.pause
# echo next move? 1 = YES, 0 = NO
if !def(automapper.verbose) then var verbose 1
else var verbose $automapper.verbose
# what color do you want for echos?
if !def(automapper.color) then var color #33CC99
else var color $automapper.color
# Decrease at your own risk, increase if you get infinte loop errors
#default is 0.1 for Outlander, 0.001 for Genie
if !def(automapper.loop) then
{
if def(client) then
{
if matchre("$client", "Genie") then var infiniteLoopProtection 0.001
if matchre("$client", "Outlander") then var infiniteLoopProtection 0.1
}
else var infiniteLoopProtection 0.1
}
else var infiniteLoopProtection $automapper.loop
# 1: collect rocks on the ice road when lacking skates; 0; just wait 15 seconds with no RT instead
if !def(automapper.iceroadcollect) then var ice_collect 0
else var ice_collect $automapper.iceroadcollect
if !def(automapper.cyclic) then var cyclic 0
else var cyclic $automapper.cyclic
if !def(broom_carpet) then put #tvar broom_carpet 0
if !def(caravan) then put #tvar caravan 0
if !def(drag) then put #tvar drag 0
if !def(mapwalk) then put #tvar mapwalk 0
if !def(powerwalk) then put #tvar powerwalk 0
if !def(automapper.sigilwalk) then put #tvar automapper.sigilwalk 0
if !def(searchwalk) then put #tvar searchwalk 0
if !def(automapper.userwalk) then put #tvar automapper.userwalk 0
if !def(automapper.seekhealing) then put #tvar automapper.seekhealing 0
# check citizenship for shard
if !def(citizenship) then {
put #var citizenship none
action (citizenship) put #var citizenship $1 when "^\s*\d\)\s+of (Aesry Surlaenis'a|Forfedhdar|Ilithi|M'Riss|Ratha|Therengia|Velaka|Zoluren|Acenamacra|Arthe Dale|Crossing|Dirge|Ilaya Taipa|Kaerna Village|Leth Deriel|Fornsted|Hvaral|Langenfirth|Riverhaven|Rossman's Landing|Siksraja|Therenborough|Fayrin's Rest|Shard|Steelclaw Clan|Zaldi Taipa|Ain Ghazal|Boar Clan|Hibarnhvidar|Raven's Point|Mer'Kresh|Muspar'i)"
put title affiliation list
send encumbrance
waitfor Encumbrance :
action (citizenship) off
}
# release cyclics if defined
if $automapper.cyclic=1 then send release cyclic
# turn off classes to speed movment
if def(automapper.class) then put #class $automapper.class
# ---------------
if ($mapwalk) then
{
if !matchre("$righthand|$lefthand", "\bmap\b") then gosub GET.MAP
}
var skatechecked 0
var slow_on_ice 0
var wearing_skates 0
var skate.container 0
var footwear 0
var action_retry ^0$
var cloak_off 0
var cloak_worn 0
var cloaknouns cloak|shroud|scarf|aldamdin mask|0
var closed 0
var darkroom 0
var darkchecked 0
var startingStam $stamina
var failcounter 0
var depth 0
var movewait 0
var TryGoInsteadOfClimb 0
var move_OK ^Obvious (paths|exits)|^It's pitch dark|The shop appears to be closed, but you catch the attention of a night attendant inside,|^You move effortlessly through the|^Your? stare into the shadows and see\.\.\.$
var move_FAIL ^You can't swim in that direction\.$|^You can't go there\.$|^A powerful blast of wind blows you to the|^What were you referring to\?|^I could not find what you were referring to\.|^You can't sneak in that direction|^You can't ride your.+(broom|carpet) in that direction|^You can't ride that way\.$
var move_RETRY ^\.\.\.wait|^Sorry, |^The weight of all|^You quickly step around the exposed roots, but you lose your balance during the effort|^You are still stunned|^You're still recovering from your recent|^The mud gives way beneath your feet as you attempt to climb higher, sending you sliding back down the slope instead\!|^You're not sure you can
var move_RETREAT ^You are engaged to|^You try to move, but you're engaged|^While in combat|^You can't do that while engaged|^You can't do that\! You're in combat\!|^Retreat to where\?
var move_WEB ^You can't do that while entangled in a web|^As you start to move, you find yourself snared
var move_WAIT ^You continue climbing|^You begin climbing|^You really should concentrate on your journey|^You step onto a massive stairway|^You start the slow journey across the bridge\.$|^Wriggling on your stomach, you crawl into a low opening\.$|^After climbing up the rope ladder for several long moments|^You scamper up and over the rock face\.$
var move_END_DELAY ^You reach|you reach\.\.\.$|^Finally the bridge comes to an end|^After a seemingly interminible length of time, you crawl out of the passage into
var move_STAND ^You must be standing to do that|^You can't do that while (lying down|kneeling|sitting)|You try to quickly step from root to root, but slip and drop to your knees|you trip over an exposed root|^Stand up first\.|^You must stand first\.|^You'll need to stand up|^A few exposed roots wrench free from the ground after catching on your feet as you pass, a particularly sturdy one finally brings you to your knees\.$|You try to roll through the fall but end up on your back\.$|^Perhaps you might accomplish that if you were standing\.$|^You can't do that while lying down\.$
var move_NO_SNEAK ^You can't do that here|^In which direction are you trying to sneak|^Sneaking is an inherently stealthy|^You can't sneak that way|^You can't sneak in that direction
var move_GO ^Please rephrase that command
var move_MUCK ^You fall into the .+ with a loud \*SPLUT\*|^You slip in .+ and fall flat on your back\!|^The .+ holds you tightly, preventing you from making much headway\.|^You make no progress in the mud|^You struggle forward, managing a few steps before ultimately falling short of your goal\.|^You find yourself stuck in the mud
var climb_FAIL ^Trying to judge the climb, you peer over the edge\. A wave of dizziness hits you, and you back away from .+\.|^You start down .+, but you find it hard going\. Rather than risking a fall, you make your way back up\.|^You attempt to climb down .+, but you can't seem to find purchase\.|^You pick your way up .+, but reach a point where your footing is questionable\. Reluctantly, you climb back down\.|^You make your way up .+\. Partway up, you make the mistake of looking down\. Struck by vertigo, you cling to .+ for a few moments, then slowly climb back down\.|^You approach .+, but the steepness is intimidating\.|^The ground approaches you at an alarming rate|^You start up .+, but slip after a few feet and fall to the ground\! You are unharmed but feel foolish\.|^You almost make it to the top|^You start the climb and slip|^You start to climb .+, but then stop to reconsider\.
var move_CLOSED ^The door is locked up tightly for the night|^You stop as you realize that the|^(?:\w+ )+I'm sorry, but you need to be a citizen|^BONK\! You smash your nose|^Bonk\! You smash your nose|^(?:\w+ )+I'm sorry, I can only allow citizens in at night|^(?:\w+ )+shop is closed for the night|^A guard appears and says, .I'm sorry,|The shop appears to be closed, but you catch the attention of a night attendant inside, and he says, .I'm sorry, I can only allow citizens in at night\..?
var swim_FAIL ^You struggle (?!to maintain)|^You work(?! your way (?:up|down) the cliff)|^You slap|^You flounder
var move_DRAWBRIDGE ^The guard yells, .Lower the bridge|^The guard says, .You'll have to wait|^A guard yells, .Hey|^The guard yells, .Hey
var move_ROPE.BRIDGE is already on the rope\.|You'll have to wait
var move_STOW ^You need to empty your hands|^You should empty your hands first\!|^You can't possibly manage to cross|^You'll need to free up your hands|^Not while carrying something in your hands|^You must first free up your hands\.|^The going gets quite difficult and highlights the need to free up your hands|^You must have your hands free
var move_FATIGUE ^You're too tired to try climbing|^You need to rest
var move_BOAT ^The galley has just left|^You look around in vain for the galley
var move_INVIS ^The .* can't see you\!|^But no one can see you\!|^How can you .* can't even see you\?|^You can't move in that direction while unseen\.
var climb_mount_FAIL climb what?
ACTIONS:
action (mapper) action (mapper) off;goto DRAGGED when ^The current drags you
action (mapper) if (%movewait = 0) then shift;if (%movewait = 0) then math depth subtract 1;if ((%verbose) && (len("%2") > 0)) then put #echo %color Next move: %2 when %move_OK
action (mapper) goto MOVE.FAILED when %move_FAIL
action (mapper) var TryGoInsteadOfClimb 1 when ^You can't climb that\.$
action (mapper) goto MOVE.RETRY when %move_RETRY|%move_WEB|^You can't climb that\.$
action (mapper) goto MOVE.STAND when %move_STAND
action (mapper) var movewait 1;goto MOVE.WAIT when %move_WAIT
action (mapper) goto MOVE.RETREAT when %move_RETREAT
action (mapper) var movewait 0 when %move_END_DELAY
action (mapper) var closed 1;goto MOVE.CLOSED when %move_CLOSED
action (mapper) goto MOVE.NOSNEAK when %move_NO_SNEAK
action (mapper) goto MOVE.GO when %move_GO
action (mapper) goto MOVE.INVIS when %move_INVIS
action (mapper) goto MOVE.MUCK when %move_MUCK
action (mapper) goto MOVE.STOW when %move_STOW
action (mapper) goto MOVE.BOAT when %move_BOAT
action (mapper) put #echo %color Will re-attempt climb in 5 seconds...;send 5 $lastcommand when ^All this climbing back and forth is getting a bit tiresome\. You need to rest a bit before you continue\.$
action (mapper) goto MOVE.RETRY when %swim_FAIL
action (mapper) goto MOVE.DRAWBRIDGE when %move_DRAWBRIDGE
action (mapper) goto MOVE.KNOCK when The gate is closed\. Try KNOCKing instead
action (mapper) goto MOVE.ROPE.BRIDGE when %move_ROPE.BRIDGE
action (mapper) goto MOVE.FATIGUE when %move_FATIGUE
action (mapper) goto MOVE.CLIMB.MOUNT.FAIL when %climb_mount_FAIL
action (mapper) goto MOVE.KNEEL when maybe if you knelt down first\?
action (mapper) goto MOVE.LIE when ^The passage is too small to walk that way\. You'll have to get down and crawl\.|^There's just barely enough room here to squeeze through, and no more|^You look down at the low opening, furrowing your brow dubiously
action (mapper) var footitem $1;goto STOW.FOOT.ITEM when ^You notice (?:an |a )?(.+) at your feet, and do not wish to leave it behind\.
action (skates) var wearing_skates 1 when ^You slide your ice skates on your feet and tightly tie the laces\.|^Your ice skates help you traverse the frozen terrain\.|^Your movement is hindered .* by your ice skates\.|^You tap some.*\bskates\b.*that you are wearing
action (skates) var wearing_skates 0 when ^You untie your skates and slip them off of your feet\.
action (healing) var plant $1;goto HEALING when an ethereal (vela'tohr thicket|vela'tohr plant)
action (healing) off
# if (($automapper.seekhealing = 1) && ($guild != Necromancer)) then action (healing) on
if ($automapper.seekhealing = 1) then action (healing) on
action var darkroom 1 when ^It's pitch dark and you can't see a thing\!
action var slow_on_ice 1;if (%verbose) then put #echo %color Ice detected! when ^You had better slow down\! The ice is|^At the speed you are traveling
action goto JAILED when ^You slowly wake up again to find that all your belongings have been stripped and you are in a jail cell wearing a set of heavy manacles\.|^The \w+ brings you to the jail, where several companions aid to hold you down and strip you of all your possessions\.|^The town guard, with the help of several others, wrestle you to the ground, bind you in chains, and drag you off to jail\.|^\w+ you awake some time later, your possessions have been stripped from you, and you lay in a musty pile of straw\.|^The door slams shut, a sound not unlike that of a tomb closing\.
action goto DEAD.DONE when ^You are a ghost\!
# Are you starting the script while in RT?
if ($roundtime > 0) then pause $roundtime
if (!$standing) then gosub STAND
MAIN.LOOP.CLEAR:
gosub clear
#### JON's MAIN LOOP ####
MAIN.LOOP:
if_1 goto WAVE_DO
goto DONE
WAVE_DO:
if (%depth > 0) then {
delay %infiniteLoopProtection
if ($roundtime > 0) then pause $roundtime
}
evalmath MDepth (%depth + 1)
if ((%typeahead.max >= %depth) && ("%%MDepth" != "")) then gosub MOVE %%MDepth
if ((%typeahead.max <= %depth) || ("%%MDepth" = "")) then goto MAIN.LOOP
else goto WAVE_DO
DONE:
if (!$standing) then gosub STAND
DEAD.DONE:
put #parse YOU HAVE ARRIVED!
if def(automapper.class) then
{
eval classON replacere("$automapper.class", "-", "+")
put #class %classON
}
exit
MOVE:
math depth add 1
var movement $0
var type real
if ($drag) then
{
var type drag
if matchre("%movement", "(swim|climb|web|muck|rt|wait|stairs|slow|go|script|room) ([\S ]+)") then
{
var movement drag $drag.target $2
}
else
{
var movement drag $drag.target %movement
}
if matchre("%movement", "^(swim|climb|web|muck|rt|wait|slow|drag|script|room|dive) ") then
{
var type $1
eval movement replacere("%movement", "^(swim|web|muck|rt|wait|slow|script|room|dive) ", "")
}
}
else
{
if ($hidden) then
{
var type sneak
if !matchre("%movement", "climb|go gate") then
{
if matchre("%movement", "go ([\S ]+)") then var movement sneak $1
else var movement sneak %movement
}
}
else
{
if ("%type" = "real") then
{
if matchre("%movement", "^(search|swim|climb|web|muck|rt|wait|slow|drag|script|room|ice|dive) ") then
{
var type $1
eval movement replacere("%movement", "^(search|swim|web|muck|rt|wait|slow|script|room|ice|dive) ", "")
}
if matchre("%movement", "^(objsearch) (\S+) (.+)") then
{
var type objsearch
var searchObj $2
var movement $3
}
}
}
}
# I think we should bug "some rocks" movements in game instead of trying to handle it this way
# if matchre("%movement", "rock") && matchre("$roomobjs", "a pile of rocks") then {
# var action kick pile
# var success ^Now what did the|^You take a step back and run up to the pile|^I could not find
# gosub ACTION
# }
#
eval type toupper(%type)
goto MOVE.%type
MOVE.REAL:
if (%wearing_skates) then gosub REMOVE.SKATES
if (("$zoneid" = "62") && ("$game" = "DRF")) then
{
if (("$roomid" = "41") && ("%movement" = "southwest")) then
{
pause %command_pause
move southwest
move south
math depth subtract 2
goto MOVE.DONE
}
}
DO.MOVE:
put %movement
goto MOVE.DONE
MOVE.ROOM:
if (%depth > 1) then waiteval (1 = %depth)
put %movement
if (%depth > 0) then waiteval (0 = %depth)
goto MOVE.DONE
MOVE.STOW:
if !matchre("Empty", "$lefthand") then gosub STOW.LEFT
if !matchre("Empty", "$righthand") then gosub STOW.RIGHT
if matchre("$righthand", "khuj|staff|atapwi") then put wear $righthandnoun
if (!matchre("Empty", "$lefthand") || !matchre("Empty", "$righthand")) then gosub STOW.ALT
pause %command_pause
put %movement
pause %command_pause
goto MOVE.DONE
MOVE.BOAT:
matchre MOVE.BOAT.ARRIVED ^The galley (\w*) glides into the dock
matchwait 60
put look
goto MOVE.BOAT
MOVE.BOAT.ARRIVED:
put %movement
pause %command_pause
goto MOVE.DONE
MOVE.ICE:
if (!$broom_carpet) then
{
action (skates) on
if (%depth > 1) then waiteval (1 = %depth)
if (!%skatechecked) then gosub FIND.SKATES
if (%slow_on_ice) then gosub ICE.COLLECT
}
put %movement
if (%depth > 0) then waiteval (0 = %depth)
goto MOVE.DONE
SKATE.NO:
var slow_on_ice 1
var wearing_skates 0
if (%verbose) then gosub echo Could not find ice skates!
if ((%ice_collect) && (%verbose)) then gosub echo Collecting rocks in every room like the other peasants
SKATE.YES:
return
ICE.COLLECT:
if (!%ice_collect) then goto ICE.PAUSE
var action collect rock
var success ^You manage to collect a pile
gosub ACTION
var action kick rock
var success ^Now what did the|^You take a step back and run up to the pile|^I could not find
gosub ACTION
var slow_on_ice 0
pause %command_pause
return
ICE.PAUSE:
action (mapper) off
pause %command_pause
if (%verbose) then gosub echo Pausing 15 seconds to regain footing on slippery ice.
pause 15
var slow_on_ice 0
pause %command_pause
action (mapper) on
return
MOVE.KNOCK:
action (mapper) off
if ($roundtime > 0) then pause %command_pause
if (%depth > 1) then waiteval (1 = %depth)
if !matchre("$citizenship", "Ilithi|Fayrin's Rest|Shard|Steelclaw Clan|Zaldi Taipa") then goto SHARD.FAILED
var movement knock gate
matchre MOVE.KNOCK ^\.\.\.wait|^Sorry,|^You are still stun|^You can't do that while entangled
matchre KNOCK.DONE %move_OK
matchre SHARD.FAILED Hey, you're $charactername, a wanted criminal
# matchre SHARD.FAILED Sorry, you're not a citizen
#^ this message goes to everyone in the room and screws things up
matchre CLOAK.LOGIC ^You turn away, disappointed\.
#^ this message is the same for non-citizen error as well as feature hidden error, so need to branch at CLOAK.LOGIC
matchre KNOCK.INVIS ^The gate guard can't see you
put %movement
matchwait
# this garbage is here for Outlander inconsistant matchwait bug
debug 5
pause
put #echo >talk #ffff00,#ff0000 MOVE.KNOCK failure
pause
goto KNOCK.DONE
#### end outlander bug handling
SHARD.FAILED:
if ((%cloak_off) && matchre("$lefthand $righthand", "%cloaknouns")) then gosub WEAR.CLOAK
if ((!%cloak_off) && (%cloak_worn)) then gosub RAISE.CLOAK
if !matchre("$zoneid", "(66|67|68|69)") then goto MOVE.FAILED
matchre KNOCK.DONE YOU HAVE ARRIVED\!
put .sharddetour
matchwait 45
goto MOVE.DONE
KNOCK.INVIS:
action (mapper) on
goto MOVE.INVIS
KNOCK.DONE:
action (mapper) on
shift
math depth subtract 1
goto MOVE.DONE
CLOAK.LOGIC:
if (((%cloak_off) && matchre("$lefthand $righthand", "%cloaknouns")) || ((!%cloak_off) && (%cloak_worn))) then goto SHARD.FAILED
gosub FIND.CLOAK
goto MOVE.KNOCK
MOVE.DRAG:
MOVE.SNEAK:
MOVE.SWIM:
MOVE.RT:
####added this to stop trainer
eval movement replacere("%movement", "script crossingtrainerfix ", "")
if (%depth > 1) then waiteval (1 = %depth)
put %movement
waitforre ^(?:Obvious|Ship) (?:paths|exits):|^\.\.\.wait|^Sorry, you may only type
if ($roundtime > 0) then pause %command_pause
goto MOVE.DONE
MOVE.WEB:
if ($webbed) then waiteval (!$webbed)
pause %command_pause
put %movement
pause %command_pause
goto MOVE.DONE
MOVE.MUCK:
action (mapper) off
pause %command_pause
if (!$standing) then put stand
matchre MOVE.MUCK ^\.\.\.wait|^Sorry,|^You are still stun|^You can't do that while entangled|^You struggle to dig|^Maybe you can reach better that way, but you'll need to stand up for that to really do you any good\.
matchre RETURN.CLEAR ^You manage to dig|^You will have to kneel closer|^You stand back up.|^You fruitlessly dig
put dig
matchwait
MOVE.SLOW:
if (%verbose) then gosub echo Slow and steady here to avoid mishaps...
pause 3
goto MOVE.REAL
MOVE.CLIMB:
matchre MOVE.DONE %move_OK
matchre MOVE.CLIMB.MOUNT.FAIL climb what\?
matchre MOVE.CLIMB.WITH.ROPE %climb_FAIL
if ($broom_carpet) then eval movement replacere("%movement", "climb ", "go ")
put %movement
matchwait
MOVE.CLIMB.MOUNT.FAIL:
matchre move.done %move_OK
if ($broom_carpet) then eval movement replacere("%movement", "climb ", "go ")
put %movement
matchwait
MOVE.CLIMB.WITH.ROPE:
action (mapper) off
if !matchre("$righthand|$lefthand", "braided heavy rope") then
{
pause %command_pause
put get my braided rope
pause %command_pause
}
if !matchre("$righthand|$lefthand", "heavy rope") then
{
pause %command_pause
put get my heavy rope
pause %command_pause
}
action (mapper) on
if (("$guild" = "Thief") && ($concentration > 50) && ($Athletics.Ranks < 600)) then
{
pause %command_pause
send khri flight focus
}
pause %command_pause
if matchre("$righthand|$lefthand", "heavy rope") then goto MOVE.CLIMB.WITH.APP.AND.ROPE
pause %command_pause
matchre STOW.ROPE %move_OK
matchre MOVE.CLIMB.WITH.APP.AND.ROPE %climb_FAIL
put %movement with my rope
matchwait
MOVE.CLIMB.WITH.APP.AND.ROPE:
eval climbobject replacere("%movement", "climb ", "")
put appraise %climbobject quick
waitforre ^\s*[\[\(]?Roundtime\s*\:?|^You cannot appraise that when you are in combat
if (("$guild" = "Thief") && ($concentration > 50) && ($Athletics.Ranks < 600)) then
{
pause %command_pause
send khri flight focus
pause %command_pause
}
matchre STOW.ROPE %move_OK
matchre MOVE.CLIMB.WITH.APP.AND.ROPE %climb_FAIL
put %movement with my rope
matchwait
STOW.ROPE:
if matchre("$righthandnoun|$lefthandnoun", "rope") then
{
pause %command_pause
send stow my rope
pause %command_pause
}
goto MOVE.DONE
MOVE.SEARCH:
if (%depth > 1) then waiteval (1 = %depth)
put search
waitforre ^You|^After|^Just
if ($roundtime > 0) then pause %command_pause
put %movement
goto MOVE.DONE
MOVE.OBJSEARCH:
put search %searchObj
pause %command_pause
if ($broom_carpet) then eval movement replacere("%movement", "climb ", "go ")
put %movement
pause %command_pause
goto MOVE.DONE
MOVE.SCRIPT:
var subscript 1
if (%depth > 1) then waiteval (1 = %depth)
action (mapper) off
if ("%movement" = "oshumanor") then goto OSHUMANOR
if ("%movement" = "dragonspine") then goto DRAGONSPINE
if ("%movement" = "abbeyhatch") then goto ABBEY.HATCH
if ("%movement" = "gateofsouls") then goto GATE.OF.SOULS
if ("%movement" = "gateleave") then goto GATE.OF.SOULS.LEAVE
if ("%movement" = "ggbypass") then goto GEAR.GATE.BYPASS
if ("%movement" = "autoclimbup") then goto AUTOCLIMB.UP
if ("%movement" = "autoclimbdown") then goto AUTOCLIMB.DOWN
if ("%movement" = "armoire") then goto ARMOIRE
if ("%movement" = "mistwoodcliff") then goto MISTWOOD.CLIFF
if ("%movement" = "sandspit") then goto SANDSPIT.TAVERN
if ("%movement" = "hibintelligence") then goto HIB.INTELLIGENCE
if ("%movement" = "automoveenterdobeks") then goto ENTER.DOBEKS
matchre MOVE.SCRIPT.DONE ^MOVE SUCCESSFUL
matchre MOVE.FAILED ^MOVE FAILED
put .%movement
matchwait
MOVE.SCRIPT.DONE:
# lets room load before turning on triggers for genie
if matchre("$client", "Genie") then delay 0.25
var subscript 0
shift
math depth subtract 1
if ((len("%2") > 0) && (%verbose)) then put #echo %color Next move: %2
action (mapper) on
goto MOVE.DONE
MOVE.FATIGUE:
if (%verbose) then gosub echo TOO FATIGUED TO CLIMB!
pause 0.5
if ("$guild" = "Barbarian") then
{
put berserk avalanche
pause 2
}
if ("$guild" = "Bard") then
{
put prep hodi 20
pause 18
put -cast;-2 gesture
pause
}
if ("$guild" = "Empath") then
{
put prep refresh 20
pause 18
put -cast;-2 gesture
pause
}
if ("$guild" = "Warrior Mage") then
{
put prep zephyr 20
pause 18
put -cast;-2 gesture
pause
}
if ("$guild" = "Cleric") then
{
put prep EF 20
pause 18
put -cast;-2 gesture
pause
}
pause
FATIGUE.WAIT:
if ($stamina > 55) then
{
put %movement
pause %command_pause
goto MOVE.DONE
}
if (%verbose) then gosub echo Pausing to recover stamina
pause 10
goto FATIGUE.WAIT
MOVE.INVIS:
if (%depth > 1) then waiteval (1 = %depth)
if ("$guild" = "Necromancer") then
{
put release EOTB
pause 0.1
}
if ("$guild" = "Thief") then
{
put khri stop silence vanish
pause 0.1
}
if ("$guild" = "Ranger") then
{
put release BLEND
pause 0.1
}
if matchre("$guild", "(Moon Mage|Moon)") then
{
put release RF
pause 0.2
put release SOV
pause 0.1
}
pause 0.01
if ($invisible = 1) then
{
if ($SpellTimer.RefractiveField.active = 1) then put release RF
if ($SpellTimer.StepsofVuan.active = 1) then put release SOV
if ($SpellTimer.EyesoftheBlind.active = 1) then put release EOTB
if ($SpellTimer.Blend.active = 1) then put release BLEND
if ($SpellTimer.KhriSilence.active = 1) then put khri stop silence
if ($SpellTimer.KhriVanish.active = 1) then put khri stop vanish
pause 0.0001
}
if ($hidden) then send unhide
pause %command_pause