restructure metas and add augment service support
All checks were successful
/ test (push) Successful in 24s

This commit is contained in:
Erik 2026-03-11 17:27:46 +01:00
parent af672e6a3b
commit 7a37c0d5b0
156 changed files with 32527 additions and 14558 deletions

View file

@ -1,293 +0,0 @@
~~
~~ Nalicana's Test Quest Meta
~~ Talk to Nalicana → Gurog Ice Cave → Kill Battle Lord Gregor
~~ → Loot Mnemosyne → Return to Nalicana
~~
~~ NAV FILES REQUIRED (record in-game):
~~ nav_nalicana.nav - Start location → Nalicana at Asheron's Castle
~~ nal_to_cave.nav - Nalicana → Gurog Ice Cave → first room → locked door
~~ nal_to_tomb_portal.nav - Past door → Frozen Tomb portal
~~ nal_dungeon_run.nav - Frozen Tomb → maze (hug right) → Gregor's room
~~
~~ ============================================================
~~ STATE: Default - Init and go talk to Nalicana
~~ ============================================================
STATE: {Default}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
SetOpt {enablecombat} {false}
SetOpt {enablenav} {true}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {attackdistance} {0.0125}
Chat {/vt nav load nav_nalicana}
SetState {talk_nalicana}
~~ ============================================================
~~ STATE: talk_nalicana - Navigate to Nalicana, talk to get quest
~~ ============================================================
STATE: {talk_nalicana}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded]}
NavEmpty
DO: DoAll
ClearWatchdog
Chat {/ub use Nalicana}
SetState {wait_nalicana_dialog}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded]}
SetWatchdog 10.0 300.0 {stuck}
~~ ============================================================
~~ STATE: wait_nalicana_dialog - Wait for Nalicana's quest dialog
~~ ============================================================
STATE: {wait_nalicana_dialog}
IF: Death
DO: SetState {death}
~~ Got the quest dialog
IF: ChatMatch {Gurog have emerged}
DO: DoAll
DoExpr {echo[`Got quest from Nalicana!`,1]}
SetState {nav_to_cave}
~~ On cooldown
IF: ChatMatch {You have solved this quest too recently}
DO: DoAll
DoExpr {echo[`Quest on cooldown!`,1]}
SetState {done}
~~ Timeout - maybe already have quest, try going anyway
IF: SecsInStateGE 10
DO: SetState {nav_to_cave}
~~ ============================================================
~~ STATE: nav_to_cave - Travel to cave, kill gurogs, arrive at door
~~ ============================================================
STATE: {nav_to_cave}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded2]}
NavEmpty
DO: DoAll
ClearWatchdog
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {true}
SetState {wait_key}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded2]}
Chat {/vt nav load nal_to_cave}
SetWatchdog 10.0 600.0 {stuck}
~~ ============================================================
~~ STATE: wait_key - At the door, wait for key from gurogs
~~ ============================================================
STATE: {wait_key}
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Entryway Key}
DO: DoAll
DoExpr {echo[`Got Entryway Key!`,1]}
Chat {/ub use Entryway Key on Door}
SetState {wait_door}
~~ Keep fighting, wait for key
IF: SecsInStateGE 120
DO: DoAll
DoExpr {echo[`Key taking too long...`,1]}
SetState {wait_key}
~~ ============================================================
~~ STATE: wait_door - Wait for door unlock message
~~ ============================================================
STATE: {wait_door}
IF: Death
DO: SetState {death}
~~ Door unlocked
IF: ChatMatch {Door has been unlocked}
DO: DoAll
DoExpr {echo[`Door opened!`,1]}
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetState {nav_to_tomb_portal}
~~ Retry key use
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Entryway Key on Door}
SetState {wait_door}
~~ ============================================================
~~ STATE: nav_to_tomb_portal - Navigate to Frozen Tomb portal
~~ Combat OFF during this nav
~~ ============================================================
STATE: {nav_to_tomb_portal}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded3]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {enter_frozen_tomb}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded3]}
Chat {/vt nav load nal_to_tomb_portal}
SetWatchdog 10.0 300.0 {stuck}
~~ ============================================================
~~ STATE: enter_frozen_tomb - Wait for portal transition
~~ ============================================================
STATE: {enter_frozen_tomb}
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Inside Frozen Tomb!`,1]}
SetOpt {enablecombat} {true}
SetState {dungeon_run}
~~ If we walked right into it, may already be inside
IF: SecsInStateGE 10
DO: DoAll
SetOpt {enablecombat} {true}
SetState {dungeon_run}
~~ ============================================================
~~ STATE: dungeon_run - Navigate through Frozen Tomb to Gregor
~~ ============================================================
STATE: {dungeon_run}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded4]}
NavEmpty
DO: DoAll
ClearWatchdog
SetOpt {enablelooting} {true}
SetState {kill_gregor}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded4]}
Chat {/vt nav load nal_dungeon_run}
SetOpt {enablelooting} {false}
SetWatchdog 10.0 600.0 {stuck}
~~ ============================================================
~~ STATE: kill_gregor - Kill Battle Lord Gregor
~~ ============================================================
STATE: {kill_gregor}
IF: Death
DO: SetState {death}
~~ Gregor's death speech - he's dead, stop fighting
IF: ChatMatch {Killing me will not change anything}
DO: DoAll
DoExpr {echo[`Battle Lord Gregor defeated!`,1]}
SetOpt {enablecombat} {false}
SetState {wait_loot}
~~ Got the mnemosyne already
IF: ItemCountGE 1 {Battle Lord Gregor's Mnemosyne}
DO: DoAll
DoExpr {echo[`Got the Mnemosyne!`,1]}
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
IF: SecsInStateGE 600
DO: DoAll
DoExpr {echo[`Gregor fight timeout!`,1]}
SetState {stuck}
~~ ============================================================
~~ STATE: wait_loot - Wait for VTank to pick up mnemosyne
~~ ============================================================
STATE: {wait_loot}
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Battle Lord Gregor's Mnemosyne}
DO: DoAll
DoExpr {echo[`Got the Mnemosyne! Returning to Nalicana.`,1]}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
~~ Timeout waiting for loot
IF: SecsInStateGE 30
DO: DoAll
DoExpr {echo[`Mnemosyne not looted, check loot profile!`,1]}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
~~ ============================================================
~~ STATE: return_nalicana - Nav back to Nalicana using nav_nalicana
~~ ============================================================
STATE: {return_nalicana}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded5]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {turn_in}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded5]}
Chat {/vt nav load nav_nalicana}
SetWatchdog 10.0 600.0 {stuck}
~~ ============================================================
~~ STATE: turn_in - Give mnemosyne to Nalicana
~~ ============================================================
STATE: {turn_in}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub givep Battle Lord Gregor's Mnemosyne to Nalicana}
Chat {/ub prepclick yes 3}
SetState {wait_turn_in}
~~ ============================================================
~~ STATE: wait_turn_in - Wait for turn-in dialog
~~ ============================================================
STATE: {wait_turn_in}
IF: Death
DO: SetState {death}
IF: ChatMatch {Lord Asheron should be able to learn much}
DO: DoAll
DoExpr {echo[`Nalicana's Test COMPLETE!`,1]}
SetState {done}
~~ Retry turn-in
IF: SecsInStateGE 10
DO: SetState {turn_in}
~~ ============================================================
~~ STATE: done - Quest complete
~~ ============================================================
STATE: {done}
IF: Always
DO: DoAll
DoExpr {echo[`Nalicana's Test quest finished.`,1]}
Chat {/mp}
~~ ============================================================
~~ STATE: stuck - Navigation stuck recovery
~~ ============================================================
STATE: {stuck}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub face}
DoExpr {echo[`Stuck! Check nav...`,1]}
~~ ============================================================
~~ STATE: death - Death recovery, recall and restart
~~ ============================================================
STATE: {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Died! Restarting...`,1]}
SetState {Default}

View file

@ -1,109 +0,0 @@
uTank2 NAV 1.2
4
18
4
-101.035883959134
-27.7356273174286
0.150020837783813
0
/ah
0
59.324442132314
-28.5358481725057
0.0500208298365275
0
0
59.3055089314779
-28.5401463190715
0.0500208298365275
0
0
59.2989932378133
-28.5247219721476
0.0500208298365275
0
0
59.2991608301799
-28.5027507781982
0.0583541631698608
0
6
-101.035883959134
-27.7356273174286
0.150020837783813
0
Sawato Meeting Hall Portal
14
True
59.2987999916077
-28.482691637675
0.0580708347260952
4
-101.035883959134
-27.7356273174286
0.150020837783813
0
/tell Time according to alex, cv
3
-101.035883959134
-27.7356273174286
0.150020837783813
0
10000
4
-101.035883959134
-27.7356273174286
0.150020837783813
0
/ub use Gateway
0
13.6430676460266
64.7994166374206
1.15502077738444
0
0
13.5994514783223
64.7994166374206
1.1736333211263
0
0
13.5750706036886
64.7994166374206
1.17639503479004
0
0
13.5309435844421
64.7073394457499
1.21768137613932
0
0
13.4500286897024
64.4615866204103
1.37660484313965
0
0
13.3368370691935
64.2607777277629
1.48141034444173
0
0
13.1944775263468
64.0820965131124
1.60867055257161
0
6
-101.035883959134
-27.7356273174286
0.150020837783813
0
Mountain Cavern Portal
14
True
13.1864875157674
64.0650895754496
1.62406241893768
0
-101.036203662554
-27.7340151468913
0.150020837783813
0

View file

@ -1,262 +0,0 @@
~~
~~ Empyrean Facility Aetheria Quest Meta
~~ Automates the 3-level Aetheria slot unlock dungeon
~~ Each level: kill wisps in 4 cardinal rooms, use Aligned Mana Stone at each fountain
~~ Then use stone at center fountain and take portal to next level
~~
~~ NAV FILES REQUIRED (record in-game, save to VTank folder):
~~ nav_empyrean.nav - Route TO the dungeon (already have this)
~~ emp_upper_north.nav - Upper level: start → north room fountain
~~ emp_upper_east.nav - Upper level: north room → east room fountain
~~ emp_upper_south.nav - Upper level: east room → south room fountain
~~ emp_upper_west.nav - Upper level: south room → west room fountain
~~ emp_upper_center.nav - Upper level: west room → center room fountain
~~ emp_middle_north.nav - Middle level: landing → north room fountain
~~ emp_middle_east.nav - Middle level: north room → east room fountain
~~ emp_middle_south.nav - Middle level: east room → south room fountain
~~ emp_middle_west.nav - Middle level: south room → west room fountain
~~ emp_middle_center.nav - Middle level: west room → center room fountain
~~ emp_lower_north.nav - Lower level: landing → north room fountain
~~ emp_lower_east.nav - Lower level: north room → east room fountain
~~ emp_lower_south.nav - Lower level: east room → south room fountain
~~ emp_lower_west.nav - Lower level: south room → west room fountain
~~ emp_lower_center.nav - Lower level: west room → center room fountain
~~
~~ ============================================================
~~ STATE: Default - One-time init and travel to dungeon
~~ ============================================================
STATE: {Default}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
SetOpt {enablecombat} {false}
SetOpt {enablenav} {true}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {attackdistance} {0.0125}
DoExpr {setvar[currentLevel,`upper`]}
DoExpr {setvar[currentRoom,`north`]}
DoExpr {setvar[roomsDone,0]}
Chat {/vt nav load nav_empyrean}
SetState {enter_dungeon}
~~ ============================================================
~~ STATE: enter_dungeon - Wait for nav to reach dungeon entrance
~~ ============================================================
STATE: {enter_dungeon}
IF: Death
DO: SetState {death}
IF: All
SecsInStateGE 3
NavEmpty
DO: DoAll
SetOpt {enablecombat} {true}
SetState {goto_room}
IF: Always
DO: DoAll
SetWatchdog 10.0 300.0 {stuck}
~~ ============================================================
~~ STATE: goto_room - Load nav for current level+room
~~ ============================================================
STATE: {goto_room}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
ChatExpr {\/vt nav load emp_+getvar[currentLevel]+`_`+getvar[currentRoom]}
DoExpr {clearvar[navLoaded]}
SetState {arrive_room}
~~ ============================================================
~~ STATE: arrive_room - Wait for nav to finish (arrived at room)
~~ ============================================================
STATE: {arrive_room}
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {kill_wisps}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded]}
SetWatchdog 10.0 180.0 {stuck}
~~ ============================================================
~~ STATE: kill_wisps - Wait for all mobs in room to die
~~ ============================================================
STATE: {kill_wisps}
IF: Death
DO: SetState {death}
~~ All wisps dead — proceed to use stone
IF: All
SecsInStateGE 5
NoMobsInDist 4.0
DO: SetState {use_stone}
~~ Safety timeout: if stuck fighting for 5 minutes, try stone anyway
IF: SecsInStateGE 300
DO: SetState {use_stone}
IF: Always
DO: DoAll
SetWatchdog 10.0 300.0 {stuck}
~~ ============================================================
~~ STATE: use_stone - Use Aligned Mana Stone, wait for result
~~ ============================================================
STATE: {use_stone}
IF: Death
DO: SetState {death}
~~ Success: "A shiver moves across your body"
IF: ChatMatch {A shiver moves across your body}
DO: DoAll
DoExpr {echo[`Room complete! (`+getvar[currentLevel]+` `+getvar[currentRoom]+`)`,1]}
SetState {next_room}
~~ Already done: "you feel no change"
IF: ChatMatch {no change}
DO: DoAll
DoExpr {echo[`Room already done (`+getvar[currentLevel]+` `+getvar[currentRoom]+`)`,1]}
SetState {next_room}
~~ Retry stone every 5 seconds
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Aligned Mana Stone}
SetState {use_stone}
~~ First attempt immediately
IF: Always
DO: DoAll
Chat {/ub use Aligned Mana Stone}
~~ ============================================================
~~ STATE: next_room - Advance to next room or center
~~ Route: north → east → south → west → center
~~ ============================================================
STATE: {next_room}
IF: Death
DO: SetState {death}
~~ From north → go east
IF: Expr {getvar[currentRoom]==`north`}
DO: DoAll
DoExpr {setvar[currentRoom,`east`]}
SetState {goto_room}
~~ From east → go south
IF: Expr {getvar[currentRoom]==`east`}
DO: DoAll
DoExpr {setvar[currentRoom,`south`]}
SetState {goto_room}
~~ From south → go west
IF: Expr {getvar[currentRoom]==`south`}
DO: DoAll
DoExpr {setvar[currentRoom,`west`]}
SetState {goto_room}
~~ From west → go to center
IF: Expr {getvar[currentRoom]==`west`}
DO: DoAll
DoExpr {setvar[currentRoom,`center`]}
SetState {goto_room}
~~ From center → level complete, use stone then take portal
IF: Expr {getvar[currentRoom]==`center`}
DO: SetState {use_stone_center}
~~ ============================================================
~~ STATE: use_stone_center - Use stone at center fountain, then portal
~~ ============================================================
STATE: {use_stone_center}
IF: Death
DO: SetState {death}
~~ Success at center fountain — got aetheria message
IF: ChatMatch {A shiver moves across your body}
DO: DoAll
DoExpr {echo[`Level complete! (`+getvar[currentLevel]+`)`,1]}
SetState {take_portal}
~~ Already done
IF: ChatMatch {no change}
DO: DoAll
DoExpr {echo[`Level already done (`+getvar[currentLevel]+`)`,1]}
SetState {take_portal}
~~ Retry stone every 5 seconds
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Aligned Mana Stone}
SetState {use_stone_center}
~~ First attempt immediately
IF: Always
DO: DoAll
Chat {/ub use Aligned Mana Stone}
~~ ============================================================
~~ STATE: take_portal - Take portal to next level
~~ ============================================================
STATE: {take_portal}
IF: Death
DO: SetState {death}
~~ Upper level done → take Middle portal
IF: Expr {getvar[currentLevel]==`upper`}
DO: DoAll
DoExpr {setvar[currentLevel,`middle`]}
DoExpr {setvar[currentRoom,`north`]}
Chat {/ub use Empyrean Facility Middle Level}
SetState {portal_transition}
~~ Middle level done → take Lower portal
IF: Expr {getvar[currentLevel]==`middle`}
DO: DoAll
DoExpr {setvar[currentLevel,`lower`]}
DoExpr {setvar[currentRoom,`north`]}
Chat {/ub use Empyrean Facility Lower Level}
SetState {portal_transition}
~~ Lower level done → quest complete!
IF: Expr {getvar[currentLevel]==`lower`}
DO: DoAll
DoExpr {echo[`All 3 aetheria slots unlocked!`,1]}
SetState {quest_done}
~~ ============================================================
~~ STATE: portal_transition - Wait for portal entry/exit
~~ ============================================================
STATE: {portal_transition}
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Arrived at `+getvar[currentLevel]+` level`,1]}
SetState {goto_room}
~~ Safety: if portal didn't work, retry
IF: SecsInStateGE 15
DO: SetState {take_portal}
~~ ============================================================
~~ STATE: quest_done - All 3 levels complete, recall out
~~ ============================================================
STATE: {quest_done}
IF: Always
DO: DoAll
DoExpr {echo[`Empyrean Facility quest COMPLETE! All aetheria slots unlocked.`,1]}
Chat {/mp}
~~ ============================================================
~~ STATE: stuck - Navigation stuck, try to recover
~~ ============================================================
STATE: {stuck}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub face}
DoExpr {echo[`Stuck! Trying to recover...`,1]}
SetState {goto_room}
~~ ============================================================
~~ STATE: death - Death recovery
~~ Re-enter dungeon from the beginning
~~ ============================================================
STATE: {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Died! Re-entering dungeon...`,1]}
Chat {/vt nav load nav_empyrean}
SetState {enter_dungeon}

View file

@ -1,8 +0,0 @@
uTank2 NAV 1.2
4
1
0
69.2693708399932
21.0462558110555
1.55835418701172
0

View file

@ -1,154 +1,154 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {combat} ~~ {
IF: NoMobsInDist 5
DO: DoAll
Chat {/vt opt set enablecombat false}
SetState {hunt}
IF: SecsInStateGE 180
DO: DoAll
Chat {/vt opt set enablecombat false}
SetState {hunt}
~~ }
STATE: {death} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/a ARGH I died!}
IF: ExitPortal
DO: SetState {tusker_run}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set defaultmeleeattackheight 3}
Chat {/vt opt set lootallcorpses false}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set attackdistance 0.0333333}
Chat {/vt opt set CorpseApproachRange-Max 0.05}
Chat {/vt opt set approachdistance 0}
Chat {/vt opt set idlepeacemode false}
Chat {/vt opt set stopmacroondeath false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing true}
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
~~ }
STATE: {hunt} ~~ {
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]}
IF: Death
DO: SetState {death}
IF: MobsInDist_Name 1 5 {}
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablenav false}
SetState {combat}
IF: Always
DO: SetWatchdog 10 600 {tusker_run}
IF: ItemCountLE 100 {Prismatic Taper}
DO: DoAll
SetState {out_of_comp}
IF: DistToRteGE 100
DO: SetState {tusker_run}
IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll
SetState {loot}
~~ }
STATE: {loot} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt opt set lootpriorityboost false}
Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set enablelooting true}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set enablecombat false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
~~ }
STATE: {loot_rare} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30
DO: DoAll
Chat {/vt opt set enablelooting false}
SetState {hunt}
~~ }
STATE: {out_of_comp} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Always
DO: Chat {/vt nav load ah_recomp}
IF: NavEmpty
DO: SetState {tusker_run}
~~ }
STATE: {tusker_run} ~~ {
IF: SecsInStateGE 900
DO: SetState {tusker_run}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablecombat false}
ChatExpr {\/vt nav load aphus_route+getvar[navNumber]}
IF: NavEmpty
DO: DoAll
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
SetState {hunt}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {combat} ~~ {
IF: NoMobsInDist 5
DO: DoAll
Chat {/vt opt set enablecombat false}
SetState {hunt}
IF: SecsInStateGE 180
DO: DoAll
Chat {/vt opt set enablecombat false}
SetState {hunt}
~~ }
STATE: {death} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/a ARGH I died!}
IF: ExitPortal
DO: SetState {tusker_run}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set defaultmeleeattackheight 3}
Chat {/vt opt set lootallcorpses false}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set attackdistance 0.0333333}
Chat {/vt opt set CorpseApproachRange-Max 0.05}
Chat {/vt opt set approachdistance 0}
Chat {/vt opt set idlepeacemode false}
Chat {/vt opt set stopmacroondeath false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing true}
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
~~ }
STATE: {hunt} ~~ {
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]}
IF: Death
DO: SetState {death}
IF: MobsInDist_Name 1 5 {}
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablenav false}
SetState {combat}
IF: Always
DO: SetWatchdog 10 600 {tusker_run}
IF: ItemCountLE 100 {Prismatic Taper}
DO: DoAll
SetState {out_of_comp}
IF: DistToRteGE 100
DO: SetState {tusker_run}
IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll
SetState {loot}
~~ }
STATE: {loot} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt opt set lootpriorityboost false}
Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set enablelooting true}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set enablecombat false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
~~ }
STATE: {loot_rare} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30
DO: DoAll
Chat {/vt opt set enablelooting false}
SetState {hunt}
~~ }
STATE: {out_of_comp} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Always
DO: Chat {/vt nav load ah_recomp}
IF: NavEmpty
DO: SetState {tusker_run}
~~ }
STATE: {tusker_run} ~~ {
IF: SecsInStateGE 900
DO: SetState {tusker_run}
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablecombat false}
ChatExpr {\/vt nav load aphus_route+getvar[navNumber]}
IF: NavEmpty
DO: DoAll
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
SetState {hunt}
~~ }

View file

@ -45,21 +45,21 @@ STATE: {Default} ~~ {
~~ }
STATE: {dummy} ~~ {
IF: Always
DO: DoAll
DO: DoAll
DestroyView {main}
IF: Always
DO: CreateView {state} {}
~~ }
~~ }
STATE: {stateBurdenPackSlots} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
IF: Always
DO: CreateView {stateBurdenPackSlots} {<?xml version="1.0"?><view width="300" height="260" title="Burden and Pack Slots"><control type="layout"><control type="button" name="btnMightSeventhMule" left="10" top="10" width="250" height="25" text="Might of the Seventh Mule" actionexpr="setvar[Augment,`stateMightSeventhMule`]" setstate="nav_zaikhal" /><control type="button" name="btnShadowSeventhMule" left="10" top="40" width="250" height="25" text="Shadow of the Seventh Mule" actionexpr="setvar[Augment,`stateShadowSeventhMule`]" setstate="nav_zaikhal" /><control type="button" name="btnInfusedWarMagic" left="10" top="70" width="250" height="25" text="Infused War Magic" actionexpr="setvar[Augment,`stateInfusedWarMagic`]" setstate="nav_silyun" /><control type="button" name="btnInfusedLifeMagic" left="10" top="100" width="250" height="25" text="Infused Life Magic" actionexpr="setvar[Augment,`stateInfusedLifeMagic`]" setstate="nav_hebian_to" /><control type="button" name="btnInfusedItemMagic" left="10" top="130" width="250" height="25" text="Infused Item Magic" actionexpr="setvar[Augment,`stateInfusedItemMagic`]" setstate="nav_hebian_to" /><control type="button" name="btnInfusedCreatureMagic" left="10" top="160" width="250" height="25" text="Infused Creature Magic" actionexpr="setvar[Augment,`stateInfusedCreatureMagic`]" setstate="nav_cragstone" /><control type="button" name="btnInfusedVoidMagic" left="10" top="190" width="250" height="25" text="Infused Void Magic" actionexpr="setvar[Augment,`stateInfusedVoidMagic`]" setstate="nav_candeth_keep" /><control type="button" name="btnMain" left="10" top="220" width="250" height="25" text="Main" setstate="Default" /></control></view>}
IF: Always
DO: DoAll
DestroyView {main}
IF: Always
DO: CreateView {stateBurdenPackSlots} {<?xml version="1.0"?><view width="300" height="260" title="Burden and Pack Slots"><control type="layout"><control type="button" name="btnMightSeventhMule" left="10" top="10" width="250" height="25" text="Might of the Seventh Mule" actionexpr="setvar[Augment,`stateMightSeventhMule`]" setstate="nav_zaikhal" /><control type="button" name="btnShadowSeventhMule" left="10" top="40" width="250" height="25" text="Shadow of the Seventh Mule" actionexpr="setvar[Augment,`stateShadowSeventhMule`]" setstate="nav_zaikhal" /><control type="button" name="btnInfusedWarMagic" left="10" top="70" width="250" height="25" text="Infused War Magic" actionexpr="setvar[Augment,`stateInfusedWarMagic`]" setstate="nav_silyun" /><control type="button" name="btnInfusedLifeMagic" left="10" top="100" width="250" height="25" text="Infused Life Magic" actionexpr="setvar[Augment,`stateInfusedLifeMagic`]" setstate="nav_hebianto" /><control type="button" name="btnInfusedItemMagic" left="10" top="130" width="250" height="25" text="Infused Item Magic" actionexpr="setvar[Augment,`stateInfusedItemMagic`]" setstate="nav_hebianto" /><control type="button" name="btnInfusedCreatureMagic" left="10" top="160" width="250" height="25" text="Infused Creature Magic" actionexpr="setvar[Augment,`stateInfusedCreatureMagic`]" setstate="nav_cragstone" /><control type="button" name="btnInfusedVoidMagic" left="10" top="190" width="250" height="25" text="Infused Void Magic" actionexpr="setvar[Augment,`stateInfusedVoidMagic`]" setstate="nav_candeth" /><control type="button" name="btnMain" left="10" top="220" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateDeathPenalties} ~~ {
IF: Always
DO: DoAll
DO: DoAll
DestroyView {main}
IF: Always
DO: CreateView {stateDeathPenalties} {<?xml version="1.0"?><view width="300" height="110" title="Death Penalties"><control type="layout"><control type="button" name="btnClutchMiser" left="10" top="10" width="250" height="25" text="Clutch of the Miser" actionexpr="setvar[Augment,`stateClutchMiser`]" setstate="nav_ab" /><control type="button" name="btnEnduringEnchantment" left="10" top="40" width="250" height="25" text="Enduring Enchantment" actionexpr="setvar[Augment,`stateEnduringEnchantment`]" setstate="nav_ab" /><control type="button" name="btnMain" left="10" top="70" width="250" height="25" text="Main" setstate="Default" /></control></view>}
@ -81,44 +81,44 @@ STATE: {stateHealthArmorRegen} ~~ {
STATE: {stateInnateAttribute} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateInnateAttribute} {<?xml version="1.0"?><view width="300" height="220" title="Innate Attribute"><control type="layout"><control type="button" name="btnReinforcementLugians" left="10" top="10" width="250" height="25" text="Reinforcement of the Lugians" actionexpr="setvar[Augment,`stateReinforcementLugians`]" setstate="nav_fiun" /><control type="button" name="btnBleearghFortitude" left="10" top="40" width="250" height="25" text="Bleeargh's Fortitude" actionexpr="setvar[Augment,`stateBleearghFortitude`]" setstate="nav_fiun" /><control type="button" name="btnOswaldEnhancement" left="10" top="70" width="250" height="25" text="Oswald's Enhancement" actionexpr="setvar[Augment,`stateOswaldEnhancement`]" setstate="nav_fiun" /><control type="button" name="btnSiraluunBlessing" left="10" top="100" width="250" height="25" text="Siraluun's Blessing" actionexpr="setvar[Augment,`stateSiraluunBlessing`]" setstate="nav_fiun" /><control type="button" name="btnEnduringCalm" left="10" top="130" width="250" height="25" text="Enduring Calm" actionexpr="setvar[Augment,`stateEnduringCalm`]" setstate="nav_fiun" /><control type="button" name="btnSteadfastWill" left="10" top="160" width="250" height="25" text="Steadfast Will" actionexpr="setvar[Augment,`stateSteadfastWill`]" setstate="nav_fiun" /><control type="button" name="btnMain" left="10" top="190" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateInnateResistance} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateInnateResistance} {<?xml version="1.0"?><view width="300" height="250" title="Innate Resistance"><control type="layout"><control type="button" name="btnEnhancementMaceTurner" left="10" top="10" width="250" height="25" text="Enhancement of the Mace Turner" actionexpr="setvar[Augment,`stateEnhancementMaceTurner`]" setstate="nav_hebian_to" /><control type="button" name="btnEnhancementBladeTurner" left="10" top="40" width="250" height="25" text="Enhancement of the Blade Turner" actionexpr="setvar[Augment,`stateEnhancementBladeTurner`]" setstate="nav_hebian_to" /><control type="button" name="btnEnhancementArrowTurner" left="10" top="70" width="250" height="25" text="Enhancement of the Arrow Turner" actionexpr="setvar[Augment,`stateEnhancementArrowTurner`]" setstate="nav_hebian_to" /><control type="button" name="btnStormEnhancement" left="10" top="100" width="250" height="25" text="Storm's Enhancement" actionexpr="setvar[Augment,`stateStormEnhancement`]" setstate="nav_hebian_to" /><control type="button" name="btnFieryEnhancement" left="10" top="130" width="250" height="25" text="Fiery Enhancement" actionexpr="setvar[Augment,`stateFieryEnhancement`]" setstate="nav_hebian_to" /><control type="button" name="btnIcyEnhancement" left="10" top="160" width="250" height="25" text="Icy Enhancement" actionexpr="setvar[Augment,`stateIcyEnhancement`]" setstate="nav_hebian_to" /><control type="button" name="btnCausticEnhancement" left="10" top="190" width="250" height="25" text="Caustic Enhancement" actionexpr="setvar[Augment,`stateCausticEnhancement`]" setstate="nav_hebian_to" /><control type="button" name="btnMain" left="10" top="220" width="250" height="25" text="Main" setstate="stateDefault" /></control></view>}
DO: CreateView {stateInnateResistance} {<?xml version="1.0"?><view width="300" height="250" title="Innate Resistance"><control type="layout"><control type="button" name="btnEnhancementMaceTurner" left="10" top="10" width="250" height="25" text="Enhancement of the Mace Turner" actionexpr="setvar[Augment,`stateEnhancementMaceTurner`]" setstate="nav_hebianto" /><control type="button" name="btnEnhancementBladeTurner" left="10" top="40" width="250" height="25" text="Enhancement of the Blade Turner" actionexpr="setvar[Augment,`stateEnhancementBladeTurner`]" setstate="nav_hebianto" /><control type="button" name="btnEnhancementArrowTurner" left="10" top="70" width="250" height="25" text="Enhancement of the Arrow Turner" actionexpr="setvar[Augment,`stateEnhancementArrowTurner`]" setstate="nav_hebianto" /><control type="button" name="btnStormEnhancement" left="10" top="100" width="250" height="25" text="Storm's Enhancement" actionexpr="setvar[Augment,`stateStormEnhancement`]" setstate="nav_hebianto" /><control type="button" name="btnFieryEnhancement" left="10" top="130" width="250" height="25" text="Fiery Enhancement" actionexpr="setvar[Augment,`stateFieryEnhancement`]" setstate="nav_hebianto" /><control type="button" name="btnIcyEnhancement" left="10" top="160" width="250" height="25" text="Icy Enhancement" actionexpr="setvar[Augment,`stateIcyEnhancement`]" setstate="nav_hebianto" /><control type="button" name="btnCausticEnhancement" left="10" top="190" width="250" height="25" text="Caustic Enhancement" actionexpr="setvar[Augment,`stateCausticEnhancement`]" setstate="nav_hebianto" /><control type="button" name="btnMain" left="10" top="220" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateRatings} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateRatings} {<?xml version="1.0"?><view width="300" height="180" title="Ratings"><control type="layout"><control type="button" name="btnCriticalProtection" left="10" top="10" width="250" height="25" text="Critical Protection" actionexpr="setvar[Augment,`stateCriticalProtection`]" setstate="nav_sanamar" /><control type="button" name="btnFrenzySlayer" left="10" top="40" width="250" height="25" text="Frenzy of the Slayer" actionexpr="setvar[Augment,`stateFrenzySlayer`]" setstate="nav_bandit" /><control type="button" name="btnIronSkin" left="10" top="70" width="250" height="25" text="Iron Skin of the Invincible" actionexpr="setvar[Augment,`stateIronSkin`]" setstate="nav_cragstone" /><control type="button" name="btnEyeRemorseless" left="10" top="100" width="250" height="25" text="Eye of the Remorseless" actionexpr="setvar[Augment,`stateEyeRemorseless`]" setstate="nav_ab" /><control type="button" name="btnHandRemorseless" left="10" top="130" width="250" height="25" text="Hand of the Remorseless" actionexpr="setvar[Augment,`stateHandRemorseless`]" setstate="nav_ab" /><control type="button" name="btnMain" left="10" top="160" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateSalvagingTinkering} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateSalvagingTinkering} {<?xml version="1.0"?><view width="300" height="310" title="Salvaging and Tinkering"><control type="layout"><control type="button" name="btnCiandrasFortune" left="10" top="10" width="250" height="25" text="Ciandra's Fortune" actionexpr="setvar[Augment,`stateCiandrasFortune`]" setstate="nav_cragstone" /><control type="button" name="btnCharmedSmith" left="10" top="40" width="250" height="25" text="Charmed Smith" actionexpr="setvar[Augment,`stateCharmedSmith`]" setstate="nav_oolutangasrefuge" /><control type="button" name="btnJibrilsEssence" left="10" top="70" width="250" height="25" text="Jibril's Essence" actionexpr="setvar[Augment,`stateJibrilsEssence`]" setstate="nav_cragstone" /><control type="button" name="btnYoshisEssence" left="10" top="100" width="250" height="25" text="Yoshi's Essence" actionexpr="setvar[Augment,`stateYoshisEssence`]" setstate="nav_cragstone" /><control type="button" name="btnCeldisethsEssence" left="10" top="130" width="250" height="25" text="Celdiseth's Essence" actionexpr="setvar[Augment,`stateCeldisethsEssence`]" setstate="nav_cragstone" /><control type="button" name="btnKogasEssence" left="10" top="160" width="250" height="25" text="Koga's Essence" actionexpr="setvar[Augment,`stateKogasEssence`]" setstate="nav_cragstone" /><control type="button" name="btnCiandrasEssence" left="10" top="190" width="250" height="25" text="Ciandra's Essence" actionexpr="setvar[Augment,`stateCiandrasEssence`]" setstate="nav_cragstone" /><control type="button" name="btnMain" left="10" top="220" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateSkills} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateSkills} {<?xml version="1.0"?><view width="300" height="180" title="Skills"><control type="layout"><control type="button" name="btnMasterSteelCircle" left="10" top="10" width="250" height="25" text="Master of the Steel Circle" actionexpr="setvar[Augment,`stateMasterSteelCircle`]" setstate="nav_silyun" /><control type="button" name="btnMasterFiveFoldPath" left="10" top="40" width="250" height="25" text="Master of the Five Fold Path" actionexpr="setvar[Augment,`stateMasterFiveFoldPath`]" setstate="nav_zaikhal" /><control type="button" name="btnMasterFocusedEye" left="10" top="70" width="250" height="25" text="Master of the Focused Eye" actionexpr="setvar[Augment,`stateMasterFocusedEye`]" setstate="nav_zaikhal" /><control type="button" name="btnJackTrades" left="10" top="100" width="250" height="25" text="Jack of All Trades" actionexpr="setvar[Augment,`stateJackTrades`]" setstate="nav_bandit" /><control type="button" name="btnMain" left="10" top="130" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateSpellDuration} ~~ {
IF: Always
DO: DoAll
DestroyView {main}
DestroyView {main}
IF: Always
DO: CreateView {stateSpellDuration} {<?xml version="1.0"?><view width="300" height="110" title="Spell Duration"><control type="layout"><control type="button" name="btnArchmageEndurance" left="10" top="10" width="250" height="25" text="Archmage's Endurance" actionexpr="setvar[Augment,`stateArchmageEndurance`]" setstate="nav_mayoi" /><control type="button" name="btnMain" left="10" top="40" width="250" height="25" text="Main" setstate="stateDefault" /></control></view>}
DO: CreateView {stateSpellDuration} {<?xml version="1.0"?><view width="300" height="110" title="Spell Duration"><control type="layout"><control type="button" name="btnArchmageEndurance" left="10" top="10" width="250" height="25" text="Archmage's Endurance" actionexpr="setvar[Augment,`stateArchmageEndurance`]" setstate="nav_mayoi" /><control type="button" name="btnMain" left="10" top="40" width="250" height="25" text="Main" setstate="Default" /></control></view>}
~~ }
STATE: {stateMightSeventhMule} ~~ {
IF: Always
@ -150,98 +150,84 @@ STATE: {stateInfusedLifeMagic} ~~ {
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateInfusedItemMagic} ~~ {
IF: Always
DO: Chat {/vt nav load nav_ganfo}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateInfusedCreatureMagic} ~~ {
IF: Always
DO: Chat {/vt nav load nav_gustuvlansdown}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateInfusedVoidMagic} ~~ {
IF: Always
DO: Chat {/vt nav load nav_morathe}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateClutchMiser} ~~ {
IF: Always
DO: Chat {/vt nav load nav_rohulabintludun}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEnduringEnchantment} ~~ {
IF: Always
DO: Chat {/vt nav load nav_erikfestus}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateQuickLearner} ~~ {
IF: Always
DO: Chat {/vt nav load nav_rickarddumalia}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateAsheronsLesserBenediction} ~~ {
IF: Always
DO: Chat {/vt nav load nav_donatellolinante}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateInnateRenewal} ~~ {
IF: Always
DO: Chat {/vt nav load nav_alisondulane}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateReinforcementLugians} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunluunere}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateBleearghFortitude} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunruun}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateOswaldEnhancement} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunbayaas}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateSiraluunBlessing} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunriish}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEnduringCalm} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunvasherr}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateSteadfastWill} ~~ {
IF: Always
DO: Chat {/vt nav load nav_fiunnoress}
@ -249,86 +235,76 @@ STATE: {stateSteadfastWill} ~~ {
DO: SetState {Default}
~~ }
STATE: {stateCriticalProtection} ~~ {
IF: Always
DO: Chat {/vt nav load nav_piersantilinante}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_piersantilinante}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateFrenzySlayer} ~~ {
IF: Always
DO: Chat {/vt nav load nav_neelanashua}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_neelanashua}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateIronSkin} ~~ {
IF: Always
DO: Chat {/vt nav load nav_emilyyarow}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_emilyyarow}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEyeRemorseless} ~~ {
IF: Always
DO: Chat {/vt nav load nav_anframmellow}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_anframmellow}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateHandRemorseless} ~~ {
IF: Always
DO: Chat {/vt nav load nav_alishiabintaldan}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_alishiabintaldan}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEnhancementMaceTurner} ~~ {
IF: Always
DO: Chat {/vt nav load nav_nawamaradia}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_nawamaradia}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEnhancementBladeTurner} ~~ {
IF: Always
DO: Chat {/vt nav load nav_ilinwis}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_ilinwis}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateEnhancementArrowTurner} ~~ {
IF: Always
DO: Chat {/vt nav load nav_kyujoru}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_kyujorujen}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateStormEnhancement} ~~ {
IF: Always
DO: Chat {/vt nav load nav_enliyuo}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_enliyuo}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateFieryEnhancement} ~~ {
IF: Always
DO: Chat {/vt nav load nav_rikshenri}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_rikshenri}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateIcyEnhancement} ~~ {
IF: Always
DO: Chat {/vt nav load nav_lubao}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_lubao}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateCausticEnhancement} ~~ {
IF: Always
DO: Chat {/vt nav load nav_shujiomilao}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_shujiomilao}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {nav_zaikhal} ~~ {
IF: Always
@ -347,79 +323,70 @@ STATE: {nav_fiun} ~~ {
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {stateCiandrasFortune} ~~ {
IF: Always
DO: Chat {/vt nav load nav_kriscennis}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_kriscennis}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateCharmedSmith} ~~ {
IF: Always
DO: Chat {/vt nav load nav_lug}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_lug}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateJibrilsEssence} ~~ {
IF: Always
DO: Chat {/vt nav load nav_joshunfelden}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_joshunfelden}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateYoshisEssence} ~~ {
IF: Always
DO: Chat {/vt nav load nav_briennecarlus}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_briennecarlus}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateCeldisethsEssence} ~~ {
IF: Always
DO: Chat {/vt nav load nav_burrellsammrun}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_burrellsammrun}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateKogasEssence} ~~ {
IF: Always
DO: Chat {/vt nav load nav_lenorturk}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_lenorturk}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateCiandrasEssence} ~~ {
IF: Always
DO: Chat {/vt nav load nav_robertcrow}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_robertcrow}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateMasterSteelCircle} ~~ {
IF: Always
DO: Chat {/vt nav load nav_carlitogallo}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_carlitogallo}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateMasterFiveFoldPath} ~~ {
IF: Always
DO: Chat {/vt nav load nav_rahinabintzalanis}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_rahinabintzalanis}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateMasterFocusedEye} ~~ {
IF: Always
DO: Chat {/vt nav load nav_kilaf}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_kilaf}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {stateJackTrades} ~~ {
IF: Always
DO: Chat {/vt nav load nav_ariannatheadept}
IF: NavEmpty
DO: SetState {Default}
IF: Always
DO: Chat {/vt nav load nav_ariannatheadept}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {nav_silyun} ~~ {
IF: Always
@ -429,7 +396,6 @@ STATE: {nav_silyun} ~~ {
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_hebianto} ~~ {
IF: Always
DO: Chat {/vt nav load nav_hebianto}
@ -438,7 +404,6 @@ STATE: {nav_hebianto} ~~ {
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_cragstone} ~~ {
IF: Always
DO: Chat {/vt nav load nav_cragstone}
@ -463,7 +428,6 @@ STATE: {nav_ab} ~~ {
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_bandit} ~~ {
IF: Always
DO: Chat {/vt nav load nav_bandit}
@ -472,7 +436,6 @@ STATE: {nav_bandit} ~~ {
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_sanamar} ~~ {
IF: Always
DO: Chat {/vt nav load nav_sanamar}
@ -481,7 +444,14 @@ STATE: {nav_sanamar} ~~ {
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_candeth} ~~ {
IF: Always
DO: Chat {/vt nav load nav_candeth}
IF: Always
DO: DestroyAllViews
IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ }
STATE: {nav_mayoi} ~~ {
IF: Always
DO: Chat {/vt nav load nav_mayoi}
@ -493,7 +463,7 @@ STATE: {nav_mayoi} ~~ {
STATE: {stateBella} ~~ {
IF: Always
DO: DoAll
DoExpr {echo[`OK RUNNING BELLA`,13]}
DoExpr {echo[`OK RUNNING BELLA`,13]}
DestroyView {main}
IF: ExitPortal
DO: SetState {mp_primary}
@ -560,7 +530,7 @@ STATE: {turn_in_jaw} ~~ {
STATE: {stateStipend} ~~ {
IF: Always
DO: DoAll
DoExpr {echo[`OK RUNNING STIPEND`,13]}
DoExpr {echo[`OK RUNNING STIPEND`,13]}
DestroyView {main}
Chat {/vt opt set enablenav true}
IF: Always
@ -586,4 +556,4 @@ NAV: nav0__stipend_nav once ~~ {
pnt 56.7470087051392 33.5495386441549 0.175020837783813
pnt 56.7795230229696 33.6337207794189 0.175020837783813
tlk -101.597905190786 -96.6216093699137 2.08333134651184E-05 56.7816291809082 33.6455291748047 0.175020843744278 37 {Monroe}
~~ }
~~ }

View file

@ -1,101 +1,101 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: ExitPortal
DO: SetState {mp_primary}
IF: Always
DO: Chat {/mp}
~~ }
STATE: {jaw_hunt} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablenav true}
SetState {turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll
Chat {/vt nav load to_fiun}
~~ }
STATE: {jaw_run} ~~ {
IF: NavEmpty
DO: DoAll
Chat {/vt nav load jaw_1_hunt}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
SetState {jaw_hunt}
~~ }
STATE: {kill_bella} ~~ {
IF: ChatCapture {You have solved this quest too recently!} {}
DO: DoAll
Chat {/vt nav load recallls}
Chat {/vt opt set enablelooting false}
~~ }
STATE: {mp_primary} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load mp_primary}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set NavPriorityBoost false}
Chat {/vt opt set navclosestoprange 0.008}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load jaw_1}
SetState {jaw_run}
~~ }
STATE: {mp_secondary} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt nav load to_bella}
SetState {kill_bella}
~~ }
STATE: {mp_trans} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt nav load mp_secondary}
SetState {mp_secondary}
~~ }
STATE: {turn_in_jaw} ~~ {
IF: ChatMatch {^Fiun Rehlyun.*}
DO: DoAll
Chat {/mp}
SetState {mp_trans}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: ExitPortal
DO: SetState {mp_primary}
IF: Always
DO: Chat {/mp}
~~ }
STATE: {jaw_hunt} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablenav true}
SetState {turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll
Chat {/vt nav load to_fiun}
~~ }
STATE: {jaw_run} ~~ {
IF: NavEmpty
DO: DoAll
Chat {/vt nav load jaw_1_hunt}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
SetState {jaw_hunt}
~~ }
STATE: {kill_bella} ~~ {
IF: ChatCapture {You have solved this quest too recently!} {}
DO: DoAll
Chat {/vt nav load recallls}
Chat {/vt opt set enablelooting false}
~~ }
STATE: {mp_primary} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load mp_primary}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set NavPriorityBoost false}
Chat {/vt opt set navclosestoprange 0.008}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load jaw_1}
SetState {jaw_run}
~~ }
STATE: {mp_secondary} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt nav load to_bella}
SetState {kill_bella}
~~ }
STATE: {mp_trans} ~~ {
IF: ExitPortal
DO: DoAll
Chat {/vt nav load mp_secondary}
SetState {mp_secondary}
~~ }
STATE: {turn_in_jaw} ~~ {
IF: ChatMatch {^Fiun Rehlyun.*}
DO: DoAll
Chat {/mp}
SetState {mp_trans}
~~ }

958
af/bore.af Normal file
View file

@ -0,0 +1,958 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {combat} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat true}
IF: SecsInStateGE 60
DO: SetState {ring_fail}
IF: NoMobsInDist 5
DO: SetState {hunt}
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {navbore}
~~ }
STATE: {hunt} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]}
IF: Not Expr {testvar[serviceCheckInterval]}
DO: DoExpr {setvar[serviceCheckInterval, 43200]}
IF: Not Expr {testvar[serviceClock]}
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
IF: Death
DO: DoAll
Chat {/a I died! But I will comeback!}
SetState {death}
IF: All
ItemCountLE 100 {Prismatic Taper}
NoMobsInDist 5
DO: DoAll
Chat {/a Out of tapers! Recomping.}
SetState {recomp}
IF: MainSlotsLE 4
DO: DoAll
Chat {/a Out of inventory slots! Recomping.}
SetState {recomp}
IF: All
Expr {getvar[serviceCheckInterval] > 0}
Expr {stopwatchelapsedseconds[getvar[serviceClock]]>=getvar[serviceCheckInterval]}
NoMobsInDist 5
DO: SetState {service_quest_refresh}
IF: Always
DO: SetWatchdog 3 120 {navbore}
IF: DistToRteGE 1000
DO: SetState {navbore}
IF: All
Expr {setvar[nearPortal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[nearPortal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[nearPortal]]]<=4}
Not Expr {wobjectgetname[getvar[nearPortal]]==Singularity Caul}
DO: DoAll
ChatExpr {\/me is to close to +wobjectgetname[getvar[nearPortal]]}
ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: All
Any
Expr {getvar[mobsClose] == 0}
Expr {getvar[mobsClose] == 1}
MobsInDist_Name 1 6 {}
DO: SetState {combat}
IF: All
Expr {getvar[mobsClose] == 2}
MobsInDist_Name 2 6 {}
DO: SetState {combat}
IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll
Chat {/vt opt set enablecombat true}
SetState {loot}
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8}
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
SetState {avoid_portal}
~~ }
STATE: {loot_rare} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav true}
SetState {hunt}
~~ }
STATE: {Default} ~~ {
IF: Not Expr {testvar[portalAvoidAngle]}
DO: DoExpr {setvar[portalAvoidAngle, 11.25]}
IF: Not Expr {testvar[augInnateStrengthTarget]}
DO: DoExpr {setvar[augInnateStrengthTarget, 0]}
IF: Not Expr {testvar[augInnateEnduranceTarget]}
DO: DoExpr {setvar[augInnateEnduranceTarget, 0]}
IF: Not Expr {testvar[augInnateCoordinationTarget]}
DO: DoExpr {setvar[augInnateCoordinationTarget, 0]}
IF: Not Expr {testvar[augInnateQuicknessTarget]}
DO: DoExpr {setvar[augInnateQuicknessTarget, 0]}
IF: Not Expr {testvar[augInnateFocusTarget]}
DO: DoExpr {setvar[augInnateFocusTarget, 0]}
IF: Not Expr {testvar[augInnateSelfTarget]}
DO: DoExpr {setvar[augInnateSelfTarget, 0]}
IF: Not Expr {testvar[augResistBluntTarget]}
DO: DoExpr {setvar[augResistBluntTarget, 0]}
IF: Not Expr {testvar[augResistSlashTarget]}
DO: DoExpr {setvar[augResistSlashTarget, 0]}
IF: Not Expr {testvar[augResistPierceTarget]}
DO: DoExpr {setvar[augResistPierceTarget, 0]}
IF: Not Expr {testvar[augResistLightningTarget]}
DO: DoExpr {setvar[augResistLightningTarget, 0]}
IF: Not Expr {testvar[augResistFireTarget]}
DO: DoExpr {setvar[augResistFireTarget, 0]}
IF: Not Expr {testvar[augResistFrostTarget]}
DO: DoExpr {setvar[augResistFrostTarget, 0]}
IF: Not Expr {testvar[augResistAcidTarget]}
DO: DoExpr {setvar[augResistAcidTarget, 0]}
IF: Not Expr {testvar[serviceCheckInterval]}
DO: DoExpr {setvar[serviceCheckInterval, 43200]}
IF: Not Expr {testvar[serviceClock]}
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set autocram true}
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set buffprofile_prots 2}
Chat {/vt opt set buffprofile_banes 5}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {service_quest_refresh}
~~ }
STATE: {service_quest_refresh} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/myquests}
DoExpr {touchvar[questsRequested]}
IF: All
Expr {testvar[questsRequested]}
Expr {isrefreshingquests[]==0}
SecsInStateGE 2
DO: SetState {service_pending_eval}
IF: SecsInStateGE 8
DO: SetState {service_pending_eval}
~~ }
STATE: {service_pending_eval} ~~ {
IF: Always
DO: DoAll
DoExpr {setvar[pendingAugments,0]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[230]<5,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[229]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[297]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[296]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[295]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[294]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[328]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[231]<3,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[232]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[234]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[237]<2,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[238]<5,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateStrengthTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[218]<getvar[augInnateStrengthTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateEnduranceTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[219]<getvar[augInnateEnduranceTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateCoordinationTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[220]<getvar[augInnateCoordinationTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateQuicknessTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[221]<getvar[augInnateQuicknessTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateFocusTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[222]<getvar[augInnateFocusTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateSelfTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[223]<getvar[augInnateSelfTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistBluntTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[242]<getvar[augResistBluntTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistSlashTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[240]<getvar[augResistSlashTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistPierceTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[241]<getvar[augResistPierceTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistLightningTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[246]<getvar[augResistLightningTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistFireTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[244]<getvar[augResistFireTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistFrostTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[245]<getvar[augResistFrostTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistAcidTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[243]<getvar[augResistAcidTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[233]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[309]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[310]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[298]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[299]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[235]<4,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[236]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[226]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[225]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[227]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[228]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[224]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[300]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[302]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[301]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[326]<1,1,getvar[pendingAugments]]]}
SetState {service_decide}
~~ }
STATE: {service_decide} ~~ {
IF: All
Expr {getqueststatus[`stipendtimer_0812`]==1}
DO: SetState {service_stipend}
IF: All
ItemCountGE 1 {Blank Augmentation Gem}
Expr {getvar[pendingAugments]==1}
DO: SetState {service_apply_augment}
IF: All
Expr {getqueststatus[`augmentationblankgemacquired`]==1}
Expr {getvar[pendingAugments]==1}
DO: SetState {service_bella_start}
IF: Always
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
SetState {hunt}
~~ }
STATE: {service_stipend} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: SetWatchdog 3 600 {service_reset_main}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav true}
DoExpr {touchvar[stipendNavLoaded]}
EmbedNav nav0__stipend_nav {stipend.nav}
IF: All
Expr {testvar[stipendNavLoaded]}
NavEmpty
SecsInStateGE 2
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_start} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: SetState {service_bella_mp_primary}
IF: Always
DO: Chat {/mp}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_primary} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt nav load mp_primary}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set NavPriorityBoost false}
Chat {/vt opt set navclosestoprange 0.008}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load jaw_1}
SetState {service_bella_jaw_run}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_jaw_run} ~~ {
IF: Death
DO: SetState {death}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load jaw_1_hunt}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
Chat {/vt opt set lootonlyrarecorpses false}
SetState {service_bella_jaw_hunt}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_jaw_hunt} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablenav true}
SetState {service_bella_turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll
Chat {/vt nav load to_fiun}
IF: SecsInStateGE 1200
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_turn_in_jaw} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {^Fiun Rehlyun.*}
DO: DoAll
Chat {/mp}
SetState {service_bella_mp_trans}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_trans} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load mp_secondary}
SetState {service_bella_mp_secondary}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_secondary} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Blank Augmentation Gem}
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
SetState {service_bella_escape}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_escape} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
IF: Always
DO: SetWatchdog 3 120 {service_reset_main}
IF: SecsInStateGE 1
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 4
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 6
DO: Chat {/vt opt set enablecombat false}
IF: SecsInStateGE 7
DO: Chat {/ah}
IF: SecsInStateGE 17
DO: SetState {service_apply_augment}
~~ }
STATE: {service_apply_augment} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountLE 0 {Blank Augmentation Gem}
DO: SetState {service_reset_main}
IF: Always
DO: DoAll
DoExpr {clearvar[augmentHub]}
DoExpr {clearvar[augmentHubLoaded]}
DoExpr {clearvar[augmentTargetLoaded]}
DoExpr {setvar[augmentStep,0]}
IF: Expr {getcharintprop[230]<5}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_husoon`]}
DoExpr {setvar[augmentItem,`Might of the Seventh Mule`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[229]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_dumidabintruminre`]}
DoExpr {setvar[augmentItem,`Shadow of the Seventh Mule`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[297]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rapheldetante`]}
DoExpr {setvar[augmentItem,`Infused War Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[296]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_akemifei`]}
DoExpr {setvar[augmentItem,`Infused Life Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[295]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ganfo`]}
DoExpr {setvar[augmentItem,`Infused Item Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[294]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_gustuvlansdown`]}
DoExpr {setvar[augmentItem,`Infused Creature Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[328]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_morathe`]}
DoExpr {setvar[augmentItem,`Infused Void Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[231]<3}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rohulabintludun`]}
DoExpr {setvar[augmentItem,`Clutch of the Miser`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[232]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_erikfestus`]}
DoExpr {setvar[augmentItem,`Enduring Enchantment`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[234]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rickarddumalia`]}
DoExpr {setvar[augmentItem,`Quick Learner`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[237]<2}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_alisondulane`]}
DoExpr {setvar[augmentItem,`Innate Renewal`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[238]<5}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_nawamaraujio`]}
DoExpr {setvar[augmentItem,`Archmage's Endurance`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateStrengthTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[218]<getvar[augInnateStrengthTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunluunere`]}
DoExpr {setvar[augmentItem,`Reinforcement of the Lugians`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateEnduranceTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[219]<getvar[augInnateEnduranceTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunruun`]}
DoExpr {setvar[augmentItem,`Bleeargh's Fortitude`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateCoordinationTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[220]<getvar[augInnateCoordinationTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunbayaas`]}
DoExpr {setvar[augmentItem,`Oswald's Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateQuicknessTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[221]<getvar[augInnateQuicknessTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunriish`]}
DoExpr {setvar[augmentItem,`Siraluun's Blessing`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateFocusTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[222]<getvar[augInnateFocusTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunvasherr`]}
DoExpr {setvar[augmentItem,`Enduring Calm`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateSelfTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[223]<getvar[augInnateSelfTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunnoress`]}
DoExpr {setvar[augmentItem,`Steadfast Will`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistBluntTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[242]<getvar[augResistBluntTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_nawamaradia`]}
DoExpr {setvar[augmentItem,`Enhancement of the Mace Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistSlashTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[240]<getvar[augResistSlashTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ilinwis`]}
DoExpr {setvar[augmentItem,`Enhancement of the Blade Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistPierceTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[241]<getvar[augResistPierceTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kyujorujen`]}
DoExpr {setvar[augmentItem,`Enhancement of the Arrow Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistLightningTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[246]<getvar[augResistLightningTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_enliyuo`]}
DoExpr {setvar[augmentItem,`Storm's Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistFireTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[244]<getvar[augResistFireTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rikshenri`]}
DoExpr {setvar[augmentItem,`Fiery Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistFrostTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[245]<getvar[augResistFrostTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lubao`]}
DoExpr {setvar[augmentItem,`Icy Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistAcidTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[243]<getvar[augResistAcidTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_shujiomilao`]}
DoExpr {setvar[augmentItem,`Caustic Enhancement`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[233]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_piersantilinante`]}
DoExpr {setvar[augmentItem,`Critical Protection`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[309]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_neelanashua`]}
DoExpr {setvar[augmentItem,`Frenzy of the Slayer`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[310]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_emilyyarow`]}
DoExpr {setvar[augmentItem,`Iron Skin of the Invincible`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[298]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_anframmellow`]}
DoExpr {setvar[augmentItem,`Eye of the Remorseless`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[299]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_alishiabintaldan`]}
DoExpr {setvar[augmentItem,`Hand of the Remorseless`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[235]<4}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kriscennis`]}
DoExpr {setvar[augmentItem,`Ciandra's Fortune`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[236]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lug`]}
DoExpr {setvar[augmentItem,`Charmed Smith`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[226]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_joshunfelden`]}
DoExpr {setvar[augmentItem,`Jibril's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[225]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_briennecarlus`]}
DoExpr {setvar[augmentItem,`Yoshi's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[227]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_burrellsammrun`]}
DoExpr {setvar[augmentItem,`Celdiseth's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[228]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lenorturk`]}
DoExpr {setvar[augmentItem,`Koga's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[224]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_robertcrow`]}
DoExpr {setvar[augmentItem,`Ciandra's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[300]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_carlitogallo`]}
DoExpr {setvar[augmentItem,`Master of the Steel Circle`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[302]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rahinabintzalanis`]}
DoExpr {setvar[augmentItem,`Master of the Five Fold Path`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[301]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kilaf`]}
DoExpr {setvar[augmentItem,`Master of the Focused Eye`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[326]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ariannatheadept`]}
DoExpr {setvar[augmentItem,`Jack of All Trades`]}
SetState {service_apply_augment_nav}
IF: Always
DO: SetState {service_reset_main}
~~ }
STATE: {service_apply_augment_nav} ~~ {
IF: Death
DO: SetState {death}
IF: Not Expr {testvar[augmentStep]}
DO: DoExpr {setvar[augmentStep,0]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_husoon`}
Expr {getvar[augmentNav]==`nav_dumidabintruminre`}
Expr {getvar[augmentNav]==`nav_rahinabintzalanis`}
Expr {getvar[augmentNav]==`nav_kilaf`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_zaikhal`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_rapheldetante`}
Expr {getvar[augmentNav]==`nav_rickarddumalia`}
Expr {getvar[augmentNav]==`nav_carlitogallo`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_silyun`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_akemifei`}
Expr {getvar[augmentNav]==`nav_ganfo`}
Expr {getvar[augmentNav]==`nav_nawamaradia`}
Expr {getvar[augmentNav]==`nav_ilinwis`}
Expr {getvar[augmentNav]==`nav_kyujorujen`}
Expr {getvar[augmentNav]==`nav_enliyuo`}
Expr {getvar[augmentNav]==`nav_rikshenri`}
Expr {getvar[augmentNav]==`nav_lubao`}
Expr {getvar[augmentNav]==`nav_shujiomilao`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_hebianto`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_gustuvlansdown`}
Expr {getvar[augmentNav]==`nav_emilyyarow`}
Expr {getvar[augmentNav]==`nav_kriscennis`}
Expr {getvar[augmentNav]==`nav_joshunfelden`}
Expr {getvar[augmentNav]==`nav_briennecarlus`}
Expr {getvar[augmentNav]==`nav_burrellsammrun`}
Expr {getvar[augmentNav]==`nav_lenorturk`}
Expr {getvar[augmentNav]==`nav_robertcrow`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_cragstone`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_rohulabintludun`}
Expr {getvar[augmentNav]==`nav_erikfestus`}
Expr {getvar[augmentNav]==`nav_anframmellow`}
Expr {getvar[augmentNav]==`nav_alishiabintaldan`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_ab`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_alisondulane`}
Expr {getvar[augmentNav]==`nav_neelanashua`}
Expr {getvar[augmentNav]==`nav_ariannatheadept`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_bandit`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_fiunluunere`}
Expr {getvar[augmentNav]==`nav_fiunruun`}
Expr {getvar[augmentNav]==`nav_fiunbayaas`}
Expr {getvar[augmentNav]==`nav_fiunriish`}
Expr {getvar[augmentNav]==`nav_fiunvasherr`}
Expr {getvar[augmentNav]==`nav_fiunnoress`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_fiun`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_piersantilinante`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_sanamar`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_lug`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_oolutangasrefuge`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_nawamaraujio`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_mayoi`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_morathe`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_candeth`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==1}
Expr {testvar[augmentHub]}
Not Expr {testvar[augmentHubLoaded]}
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablebuffing true}
DoExpr {touchvar[augmentHubLoaded]}
ChatExpr {\/vt nav load +getvar[augmentHub]}
Chat {/vt opt set enablenav true}
IF: All
Expr {getvar[augmentStep]==1}
Expr {testvar[augmentHubLoaded]}
NavEmpty
SecsInStateGE 2
DO: DoExpr {setvar[augmentStep,2]}
IF: All
Expr {getvar[augmentStep]==2}
Not Expr {testvar[augmentTargetLoaded]}
DO: DoAll
DoExpr {touchvar[augmentTargetLoaded]}
ChatExpr {\/vt nav load +getvar[augmentNav]}
Chat {/vt opt set enablenav true}
DoExpr {setvar[augmentStep,3]}
IF: All
Expr {getvar[augmentStep]==3}
Expr {testvar[augmentTargetLoaded]}
NavEmpty
SecsInStateGE 2
DO: SetState {service_use_augment}
IF: Always
DO: SetWatchdog 3 600 {service_reset_main}
~~ }
STATE: {service_use_augment} ~~ {
IF: Death
DO: SetState {death}
IF: Not Expr {testvar[augmentItem]}
DO: SetState {service_reset_main}
IF: Always
DO: SetWatchdog 3 120 {service_reset_main}
IF: SecsInStateGE 3
DO: Chat {/ub prepclick yes 10}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub use +getvar[augmentItem]}
IF: SecsInStateGE 15
DO: SetState {service_reset_main}
~~ }
STATE: {service_reset_main} ~~ {
IF: Always
DO: DoAll
DoExpr {clearvar[questsRequested]}
DoExpr {clearvar[stipendNavLoaded]}
DoExpr {clearvar[augmentNav]}
DoExpr {clearvar[augmentHub]}
DoExpr {clearvar[augmentHubLoaded]}
DoExpr {clearvar[augmentTargetLoaded]}
DoExpr {clearvar[augmentStep]}
DoExpr {clearvar[augmentItem]}
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
SetState {Default}
~~ }
STATE: {avoid_portal} ~~ {
IF: SecsInStateGE 1
DO: ChatExpr {\/me portalHeading \= +getvar[portalHeading]}
IF: SecsInStateGE 2
DO: ChatExpr {\/me playerHeading \= +getvar[playerHeading]}
IF: SecsInStateGE 3
DO: ChatExpr {\/me relativeAngle \= +getvar[relativeAngle]}
IF: SecsInStateGE 4
DO: ChatExpr {\/me Portal detected ahead\! Avoiding now\!}
IF: SecsInStateGE 5
DO: ChatExpr {\/me is too close to +wobjectgetname[wobjectfindnearestbyobjectclass[14]]}
IF: SecsInStateGE 6
DO: ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub face +getvar[newHeading]}
IF: SecsInStateGE 9
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 11
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 12
DO: ChatExpr {\/ub face +getvar[playerHeading]}
IF: SecsInStateGE 14
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 16
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 17
DO: ChatExpr {\/mm nextwp}
IF: SecsInStateGE 18
DO: ChatExpr {\/vt opt set enablenav true}
IF: SecsInStateGE 19
DO: ChatExpr {\/vt setmetastate hunt}
~~ }
STATE: {navbore} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set lootonlyrarecorpses true}
IF: Always
DO: ChatExpr {\/vt nav load bore_route+getvar[navNumber]}
IF: Always
DO: Chat {/vt opt set enablebuffing true}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: NavEmpty
DO: DoAll
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
SetState {hunt}
~~ }
STATE: {recomp} ~~ {
IF: NavEmpty
DO: SetState {navbore}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing false}
Chat {/vt nav load ah_rarecomp}
~~ }
STATE: {ring_fail} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
SetWatchdog 100 3 {hunt}
~~ }
STATE: {loot} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set lootpriorityboost false}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8}
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {avoid_portal}
~~ }
~~========================= ONLY NAVS APPEAR BELOW THIS LINE =========================~~
NAV: nav0__stipend_nav once ~~ {
cht -101.597905190786 -96.6216093699137 2.08333134651184E-05 {/ah}
pnt 59.3590666453044 -28.7057823816935 0.0500208298365275
pnt 59.3771680514018 -28.7152192115784 0.0500208298365275
ptl -101.597905190786 -96.6216093699137 2.08333134651184E-05 59.3936458587647 -28.7256083488464 0.0508250035345554 14 {Portal to Town Network}
pnt -101.615851815542 -96.6388638178507 2.08333134651184E-05
pnt -101.657751337687 -96.5832635879517 2.08333134651184E-05
pnt -101.658352184296 -96.5325949986776 2.08333134651184E-05
pnt -101.605949529012 -96.519695186615 2.08333134651184E-05
ptl -101.597905190786 -96.6216093699137 2.08333134651184E-05 -101.588099161784 -96.5166525046031 -0.000262499845121056 14 {Portal to Arwic}
pnt 56.6498762130737 33.416518386205 0.175020837783813
pnt 56.655900033315 33.5368880271912 0.175020837783813
pnt 56.7470087051392 33.5495386441549 0.175020837783813
pnt 56.7795230229696 33.6337207794189 0.175020837783813
tlk -101.597905190786 -96.6216093699137 2.08333134651184E-05 56.7816291809082 33.6455291748047 0.175020843744278 37 {Monroe}
~~ }

960
af/bore_enhanced.af Normal file
View file

@ -0,0 +1,960 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
~~ /ub mexec setvar[navNumber,VILKETNUMMER]
STATE: {combat} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat true}
IF: SecsInStateGE 60
DO: SetState {ring_fail}
IF: NoMobsInDist 5
DO: SetState {hunt}
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {navbore}
~~ }
STATE: {hunt} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]}
IF: Not Expr {testvar[serviceCheckInterval]}
DO: DoExpr {setvar[serviceCheckInterval, 43200]}
IF: Not Expr {testvar[serviceClock]}
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
IF: Death
DO: DoAll
Chat {/a I died! But I will comeback!}
SetState {death}
IF: All
ItemCountLE 100 {Prismatic Taper}
NoMobsInDist 5
DO: DoAll
Chat {/a Out of tapers! Recomping.}
SetState {recomp}
IF: MainSlotsLE 4
DO: DoAll
Chat {/a Out of inventory slots! Recomping.}
SetState {recomp}
IF: All
Expr {getvar[serviceCheckInterval] > 0}
Expr {stopwatchelapsedseconds[getvar[serviceClock]]>=getvar[serviceCheckInterval]}
NoMobsInDist 5
DO: SetState {service_quest_refresh}
IF: Always
DO: SetWatchdog 3 120 {navbore}
IF: DistToRteGE 1000
DO: SetState {navbore}
IF: All
Expr {setvar[nearPortal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[nearPortal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[nearPortal]]]<=4}
Not Expr {wobjectgetname[getvar[nearPortal]]==Singularity Caul}
DO: DoAll
ChatExpr {\/me is to close to +wobjectgetname[getvar[nearPortal]]}
ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: All
Any
Expr {getvar[mobsClose] == 0}
Expr {getvar[mobsClose] == 1}
MobsInDist_Name 1 6 {}
DO: SetState {combat}
IF: All
Expr {getvar[mobsClose] == 2}
MobsInDist_Name 2 6 {}
DO: SetState {combat}
IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll
Chat {/vt opt set enablecombat true}
SetState {loot}
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8}
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
SetState {avoid_portal}
~~ }
STATE: {loot_rare} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav true}
SetState {hunt}
~~ }
STATE: {Default} ~~ {
IF: Not Expr {testvar[portalAvoidAngle]}
DO: DoExpr {setvar[portalAvoidAngle, 11.25]}
IF: Not Expr {testvar[augInnateStrengthTarget]}
DO: DoExpr {setvar[augInnateStrengthTarget, 0]}
IF: Not Expr {testvar[augInnateEnduranceTarget]}
DO: DoExpr {setvar[augInnateEnduranceTarget, 0]}
IF: Not Expr {testvar[augInnateCoordinationTarget]}
DO: DoExpr {setvar[augInnateCoordinationTarget, 0]}
IF: Not Expr {testvar[augInnateQuicknessTarget]}
DO: DoExpr {setvar[augInnateQuicknessTarget, 0]}
IF: Not Expr {testvar[augInnateFocusTarget]}
DO: DoExpr {setvar[augInnateFocusTarget, 0]}
IF: Not Expr {testvar[augInnateSelfTarget]}
DO: DoExpr {setvar[augInnateSelfTarget, 0]}
IF: Not Expr {testvar[augResistBluntTarget]}
DO: DoExpr {setvar[augResistBluntTarget, 0]}
IF: Not Expr {testvar[augResistSlashTarget]}
DO: DoExpr {setvar[augResistSlashTarget, 0]}
IF: Not Expr {testvar[augResistPierceTarget]}
DO: DoExpr {setvar[augResistPierceTarget, 0]}
IF: Not Expr {testvar[augResistLightningTarget]}
DO: DoExpr {setvar[augResistLightningTarget, 0]}
IF: Not Expr {testvar[augResistFireTarget]}
DO: DoExpr {setvar[augResistFireTarget, 0]}
IF: Not Expr {testvar[augResistFrostTarget]}
DO: DoExpr {setvar[augResistFrostTarget, 0]}
IF: Not Expr {testvar[augResistAcidTarget]}
DO: DoExpr {setvar[augResistAcidTarget, 0]}
IF: Not Expr {testvar[serviceCheckInterval]}
DO: DoExpr {setvar[serviceCheckInterval, 43200]}
IF: Not Expr {testvar[serviceClock]}
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set autocram true}
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set buffprofile_prots 2}
Chat {/vt opt set buffprofile_banes 5}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {service_quest_refresh}
~~ }
STATE: {service_quest_refresh} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/myquests}
DoExpr {touchvar[questsRequested]}
IF: All
Expr {testvar[questsRequested]}
Expr {isrefreshingquests[]==0}
SecsInStateGE 2
DO: SetState {service_pending_eval}
IF: SecsInStateGE 8
DO: SetState {service_pending_eval}
~~ }
STATE: {service_pending_eval} ~~ {
IF: Always
DO: DoAll
DoExpr {setvar[pendingAugments,0]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[230]<5,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[229]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[297]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[296]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[295]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[294]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[328]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[231]<3,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[232]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[234]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[237]<2,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[238]<5,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateStrengthTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[218]<getvar[augInnateStrengthTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateEnduranceTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[219]<getvar[augInnateEnduranceTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateCoordinationTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[220]<getvar[augInnateCoordinationTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateQuicknessTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[221]<getvar[augInnateQuicknessTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateFocusTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[222]<getvar[augInnateFocusTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augInnateSelfTarget]>0,iif[getcharintprop[217]<10,iif[getcharintprop[223]<getvar[augInnateSelfTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistBluntTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[242]<getvar[augResistBluntTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistSlashTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[240]<getvar[augResistSlashTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistPierceTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[241]<getvar[augResistPierceTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistLightningTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[246]<getvar[augResistLightningTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistFireTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[244]<getvar[augResistFireTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistFrostTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[245]<getvar[augResistFrostTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getvar[augResistAcidTarget]>0,iif[getcharintprop[239]<2,iif[getcharintprop[243]<getvar[augResistAcidTarget],1,getvar[pendingAugments]],getvar[pendingAugments]],getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[233]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[309]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[310]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[298]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[299]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[235]<4,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[236]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[226]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[225]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[227]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[228]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[224]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[300]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[302]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[301]<1,1,getvar[pendingAugments]]]}
DoExpr {setvar[pendingAugments, iif[getcharintprop[326]<1,1,getvar[pendingAugments]]]}
SetState {service_decide}
~~ }
STATE: {service_decide} ~~ {
IF: All
Expr {getqueststatus[`stipendtimer_0812`]==1}
DO: SetState {service_stipend}
IF: All
ItemCountGE 1 {Blank Augmentation Gem}
Expr {getvar[pendingAugments]==1}
DO: SetState {service_apply_augment}
IF: All
Expr {getqueststatus[`augmentationblankgemacquired`]==1}
Expr {getvar[pendingAugments]==1}
DO: SetState {service_bella_start}
IF: Always
DO: DoAll
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
SetState {hunt}
~~ }
STATE: {service_stipend} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: SetWatchdog 3 600 {service_reset_main}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav true}
DoExpr {touchvar[stipendNavLoaded]}
EmbedNav nav0__stipend_nav {stipend.nav}
IF: All
Expr {testvar[stipendNavLoaded]}
NavEmpty
SecsInStateGE 2
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_start} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: SetState {service_bella_mp_primary}
IF: Always
DO: Chat {/mp}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_primary} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt nav load mp_primary}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set NavPriorityBoost false}
Chat {/vt opt set navclosestoprange 0.008}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load jaw_1}
SetState {service_bella_jaw_run}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_jaw_run} ~~ {
IF: Death
DO: SetState {death}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load jaw_1_hunt}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
Chat {/vt opt set lootonlyrarecorpses false}
SetState {service_bella_jaw_hunt}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_jaw_hunt} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablenav true}
SetState {service_bella_turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll
Chat {/vt nav load to_fiun}
IF: SecsInStateGE 1200
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_turn_in_jaw} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {^Fiun Rehlyun.*}
DO: DoAll
Chat {/mp}
SetState {service_bella_mp_trans}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_trans} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt nav load mp_secondary}
SetState {service_bella_mp_secondary}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_secondary} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Blank Augmentation Gem}
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
SetState {service_bella_escape}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
~~ }
STATE: {service_bella_escape} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
IF: Always
DO: SetWatchdog 3 120 {service_reset_main}
IF: SecsInStateGE 1
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 4
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 6
DO: Chat {/vt opt set enablecombat false}
IF: SecsInStateGE 7
DO: Chat {/ah}
IF: SecsInStateGE 17
DO: SetState {service_apply_augment}
~~ }
STATE: {service_apply_augment} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountLE 0 {Blank Augmentation Gem}
DO: SetState {service_reset_main}
IF: Always
DO: DoAll
DoExpr {clearvar[augmentHub]}
DoExpr {clearvar[augmentHubLoaded]}
DoExpr {clearvar[augmentTargetLoaded]}
DoExpr {setvar[augmentStep,0]}
IF: Expr {getcharintprop[230]<5}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_husoon`]}
DoExpr {setvar[augmentItem,`Might of the Seventh Mule`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[229]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_dumidabintruminre`]}
DoExpr {setvar[augmentItem,`Shadow of the Seventh Mule`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[297]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rapheldetante`]}
DoExpr {setvar[augmentItem,`Infused War Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[296]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_akemifei`]}
DoExpr {setvar[augmentItem,`Infused Life Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[295]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ganfo`]}
DoExpr {setvar[augmentItem,`Infused Item Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[294]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_gustuvlansdown`]}
DoExpr {setvar[augmentItem,`Infused Creature Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[328]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_morathe`]}
DoExpr {setvar[augmentItem,`Infused Void Magic`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[231]<3}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rohulabintludun`]}
DoExpr {setvar[augmentItem,`Clutch of the Miser`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[232]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_erikfestus`]}
DoExpr {setvar[augmentItem,`Enduring Enchantment`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[234]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rickarddumalia`]}
DoExpr {setvar[augmentItem,`Quick Learner`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[237]<2}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_alisondulane`]}
DoExpr {setvar[augmentItem,`Innate Renewal`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[238]<5}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_nawamaraujio`]}
DoExpr {setvar[augmentItem,`Archmage's Endurance`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateStrengthTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[218]<getvar[augInnateStrengthTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunluunere`]}
DoExpr {setvar[augmentItem,`Reinforcement of the Lugians`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateEnduranceTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[219]<getvar[augInnateEnduranceTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunruun`]}
DoExpr {setvar[augmentItem,`Bleeargh's Fortitude`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateCoordinationTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[220]<getvar[augInnateCoordinationTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunbayaas`]}
DoExpr {setvar[augmentItem,`Oswald's Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateQuicknessTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[221]<getvar[augInnateQuicknessTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunriish`]}
DoExpr {setvar[augmentItem,`Siraluun's Blessing`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateFocusTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[222]<getvar[augInnateFocusTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunvasherr`]}
DoExpr {setvar[augmentItem,`Enduring Calm`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augInnateSelfTarget]>0}
Expr {getcharintprop[217]<10}
Expr {getcharintprop[223]<getvar[augInnateSelfTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_fiunnoress`]}
DoExpr {setvar[augmentItem,`Steadfast Will`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistBluntTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[242]<getvar[augResistBluntTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_nawamaradia`]}
DoExpr {setvar[augmentItem,`Enhancement of the Mace Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistSlashTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[240]<getvar[augResistSlashTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ilinwis`]}
DoExpr {setvar[augmentItem,`Enhancement of the Blade Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistPierceTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[241]<getvar[augResistPierceTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kyujorujen`]}
DoExpr {setvar[augmentItem,`Enhancement of the Arrow Turner`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistLightningTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[246]<getvar[augResistLightningTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_enliyuo`]}
DoExpr {setvar[augmentItem,`Storm's Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistFireTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[244]<getvar[augResistFireTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rikshenri`]}
DoExpr {setvar[augmentItem,`Fiery Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistFrostTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[245]<getvar[augResistFrostTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lubao`]}
DoExpr {setvar[augmentItem,`Icy Enhancement`]}
SetState {service_apply_augment_nav}
IF: All
Expr {getvar[augResistAcidTarget]>0}
Expr {getcharintprop[239]<2}
Expr {getcharintprop[243]<getvar[augResistAcidTarget]}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_shujiomilao`]}
DoExpr {setvar[augmentItem,`Caustic Enhancement`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[233]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_piersantilinante`]}
DoExpr {setvar[augmentItem,`Critical Protection`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[309]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_neelanashua`]}
DoExpr {setvar[augmentItem,`Frenzy of the Slayer`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[310]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_emilyyarow`]}
DoExpr {setvar[augmentItem,`Iron Skin of the Invincible`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[298]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_anframmellow`]}
DoExpr {setvar[augmentItem,`Eye of the Remorseless`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[299]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_alishiabintaldan`]}
DoExpr {setvar[augmentItem,`Hand of the Remorseless`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[235]<4}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kriscennis`]}
DoExpr {setvar[augmentItem,`Ciandra's Fortune`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[236]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lug`]}
DoExpr {setvar[augmentItem,`Charmed Smith`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[226]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_joshunfelden`]}
DoExpr {setvar[augmentItem,`Jibril's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[225]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_briennecarlus`]}
DoExpr {setvar[augmentItem,`Yoshi's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[227]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_burrellsammrun`]}
DoExpr {setvar[augmentItem,`Celdiseth's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[228]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_lenorturk`]}
DoExpr {setvar[augmentItem,`Koga's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[224]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_robertcrow`]}
DoExpr {setvar[augmentItem,`Ciandra's Essence`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[300]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_carlitogallo`]}
DoExpr {setvar[augmentItem,`Master of the Steel Circle`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[302]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_rahinabintzalanis`]}
DoExpr {setvar[augmentItem,`Master of the Five Fold Path`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[301]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_kilaf`]}
DoExpr {setvar[augmentItem,`Master of the Focused Eye`]}
SetState {service_apply_augment_nav}
IF: Expr {getcharintprop[326]<1}
DO: DoAll
DoExpr {setvar[augmentNav,`nav_ariannatheadept`]}
DoExpr {setvar[augmentItem,`Jack of All Trades`]}
SetState {service_apply_augment_nav}
IF: Always
DO: SetState {service_reset_main}
~~ }
STATE: {service_apply_augment_nav} ~~ {
IF: Death
DO: SetState {death}
IF: Not Expr {testvar[augmentStep]}
DO: DoExpr {setvar[augmentStep,0]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_husoon`}
Expr {getvar[augmentNav]==`nav_dumidabintruminre`}
Expr {getvar[augmentNav]==`nav_rahinabintzalanis`}
Expr {getvar[augmentNav]==`nav_kilaf`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_zaikhal`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_rapheldetante`}
Expr {getvar[augmentNav]==`nav_rickarddumalia`}
Expr {getvar[augmentNav]==`nav_carlitogallo`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_silyun`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_akemifei`}
Expr {getvar[augmentNav]==`nav_ganfo`}
Expr {getvar[augmentNav]==`nav_nawamaradia`}
Expr {getvar[augmentNav]==`nav_ilinwis`}
Expr {getvar[augmentNav]==`nav_kyujorujen`}
Expr {getvar[augmentNav]==`nav_enliyuo`}
Expr {getvar[augmentNav]==`nav_rikshenri`}
Expr {getvar[augmentNav]==`nav_lubao`}
Expr {getvar[augmentNav]==`nav_shujiomilao`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_hebianto`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_gustuvlansdown`}
Expr {getvar[augmentNav]==`nav_emilyyarow`}
Expr {getvar[augmentNav]==`nav_kriscennis`}
Expr {getvar[augmentNav]==`nav_joshunfelden`}
Expr {getvar[augmentNav]==`nav_briennecarlus`}
Expr {getvar[augmentNav]==`nav_burrellsammrun`}
Expr {getvar[augmentNav]==`nav_lenorturk`}
Expr {getvar[augmentNav]==`nav_robertcrow`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_cragstone`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_rohulabintludun`}
Expr {getvar[augmentNav]==`nav_erikfestus`}
Expr {getvar[augmentNav]==`nav_anframmellow`}
Expr {getvar[augmentNav]==`nav_alishiabintaldan`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_ab`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_alisondulane`}
Expr {getvar[augmentNav]==`nav_neelanashua`}
Expr {getvar[augmentNav]==`nav_ariannatheadept`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_bandit`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Any
Expr {getvar[augmentNav]==`nav_fiunluunere`}
Expr {getvar[augmentNav]==`nav_fiunruun`}
Expr {getvar[augmentNav]==`nav_fiunbayaas`}
Expr {getvar[augmentNav]==`nav_fiunriish`}
Expr {getvar[augmentNav]==`nav_fiunvasherr`}
Expr {getvar[augmentNav]==`nav_fiunnoress`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_fiun`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_piersantilinante`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_sanamar`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_lug`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_oolutangasrefuge`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_nawamaraujio`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_mayoi`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==0}
Expr {getvar[augmentNav]==`nav_morathe`}
DO: DoAll
DoExpr {setvar[augmentHub,`nav_candeth`]}
DoExpr {setvar[augmentStep,1]}
IF: All
Expr {getvar[augmentStep]==1}
Expr {testvar[augmentHub]}
Not Expr {testvar[augmentHubLoaded]}
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablebuffing true}
DoExpr {touchvar[augmentHubLoaded]}
ChatExpr {\/vt nav load +getvar[augmentHub]}
Chat {/vt opt set enablenav true}
IF: All
Expr {getvar[augmentStep]==1}
Expr {testvar[augmentHubLoaded]}
NavEmpty
SecsInStateGE 2
DO: DoExpr {setvar[augmentStep,2]}
IF: All
Expr {getvar[augmentStep]==2}
Not Expr {testvar[augmentTargetLoaded]}
DO: DoAll
DoExpr {touchvar[augmentTargetLoaded]}
ChatExpr {\/vt nav load +getvar[augmentNav]}
Chat {/vt opt set enablenav true}
DoExpr {setvar[augmentStep,3]}
IF: All
Expr {getvar[augmentStep]==3}
Expr {testvar[augmentTargetLoaded]}
NavEmpty
SecsInStateGE 2
DO: SetState {service_use_augment}
IF: Always
DO: SetWatchdog 3 600 {service_reset_main}
~~ }
STATE: {service_use_augment} ~~ {
IF: Death
DO: SetState {death}
IF: Not Expr {testvar[augmentItem]}
DO: SetState {service_reset_main}
IF: Always
DO: SetWatchdog 3 120 {service_reset_main}
IF: SecsInStateGE 3
DO: Chat {/ub prepclick yes 10}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub use +getvar[augmentItem]}
IF: SecsInStateGE 15
DO: SetState {service_reset_main}
~~ }
STATE: {service_reset_main} ~~ {
IF: Always
DO: DoAll
DoExpr {clearvar[questsRequested]}
DoExpr {clearvar[stipendNavLoaded]}
DoExpr {clearvar[augmentNav]}
DoExpr {clearvar[augmentHub]}
DoExpr {clearvar[augmentHubLoaded]}
DoExpr {clearvar[augmentTargetLoaded]}
DoExpr {clearvar[augmentStep]}
DoExpr {clearvar[augmentItem]}
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
SetState {Default}
~~ }
STATE: {avoid_portal} ~~ {
IF: SecsInStateGE 1
DO: ChatExpr {\/me portalHeading \= +getvar[portalHeading]}
IF: SecsInStateGE 2
DO: ChatExpr {\/me playerHeading \= +getvar[playerHeading]}
IF: SecsInStateGE 3
DO: ChatExpr {\/me relativeAngle \= +getvar[relativeAngle]}
IF: SecsInStateGE 4
DO: ChatExpr {\/me Portal detected ahead\! Avoiding now\!}
IF: SecsInStateGE 5
DO: ChatExpr {\/me is too close to +wobjectgetname[wobjectfindnearestbyobjectclass[14]]}
IF: SecsInStateGE 6
DO: ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub face +getvar[newHeading]}
IF: SecsInStateGE 9
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 11
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 12
DO: ChatExpr {\/ub face +getvar[playerHeading]}
IF: SecsInStateGE 14
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 16
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 17
DO: ChatExpr {\/mm nextwp}
IF: SecsInStateGE 18
DO: ChatExpr {\/vt opt set enablenav true}
IF: SecsInStateGE 19
DO: ChatExpr {\/vt setmetastate hunt}
~~ }
STATE: {navbore} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set lootonlyrarecorpses true}
IF: Always
DO: ChatExpr {\/vt nav load bore_route+getvar[navNumber]}
IF: Always
DO: Chat {/vt opt set enablebuffing true}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: NavEmpty
DO: DoAll
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
SetState {hunt}
~~ }
STATE: {recomp} ~~ {
IF: NavEmpty
DO: SetState {navbore}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing false}
Chat {/vt nav load ah_rarecomp}
~~ }
STATE: {ring_fail} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
SetWatchdog 100 3 {hunt}
~~ }
STATE: {loot} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set lootpriorityboost false}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8}
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {avoid_portal}
~~ }
~~========================= ONLY NAVS APPEAR BELOW THIS LINE =========================~~
NAV: nav0__stipend_nav once ~~ {
cht -101.597905190786 -96.6216093699137 2.08333134651184E-05 {/ah}
pnt 59.3590666453044 -28.7057823816935 0.0500208298365275
pnt 59.3771680514018 -28.7152192115784 0.0500208298365275
ptl -101.597905190786 -96.6216093699137 2.08333134651184E-05 59.3936458587647 -28.7256083488464 0.0508250035345554 14 {Portal to Town Network}
pnt -101.615851815542 -96.6388638178507 2.08333134651184E-05
pnt -101.657751337687 -96.5832635879517 2.08333134651184E-05
pnt -101.658352184296 -96.5325949986776 2.08333134651184E-05
pnt -101.605949529012 -96.519695186615 2.08333134651184E-05
ptl -101.597905190786 -96.6216093699137 2.08333134651184E-05 -101.588099161784 -96.5166525046031 -0.000262499845121056 14 {Portal to Arwic}
pnt 56.6498762130737 33.416518386205 0.175020837783813
pnt 56.655900033315 33.5368880271912 0.175020837783813
pnt 56.7470087051392 33.5495386441549 0.175020837783813
pnt 56.7795230229696 33.6337207794189 0.175020837783813
tlk -101.597905190786 -96.6216093699137 2.08333134651184E-05 56.7816291809082 33.6455291748047 0.175020843744278 37 {Monroe}
~~ }

View file

@ -1,231 +1,58 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
~~ /ub mexec setvar[navNumber,VILKETNUMMER]
STATE: {combat} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat true}
IF: SecsInStateGE 60
DO: SetState {ring_fail}
IF: NoMobsInDist 5
DO: SetState {hunt}
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {navbore}
~~ }
STATE: {hunt} ~~ {
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]}
IF: Death
DO: DoAll
Chat {/a I died! But I will comeback!}
SetState {death}
IF: All
ItemCountLE 100 {Prismatic Taper}
NoMobsInDist 5
DO: DoAll
Chat {/a Out of tapers! Recomping.}
SetState {recomp}
IF: MainSlotsLE 4
DO: DoAll
Chat {/a Out of inventory slots! Recomping.}
SetState {recomp}
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Not Expr {testvar[navNumber]}
DO: DoExpr {setvar[navNumber, 1]}
IF: Not Expr {testvar[debugPortalRange]}
DO: DoExpr {setvar[debugPortalRange, 8]}
IF: Not Expr {testvar[debugAngle]}
DO: DoExpr {setvar[debugAngle, 20]}
IF: Always
DO: SetWatchdog 3 120 {navbore}
IF: DistToRteGE 1000
DO: SetState {navbore}
IF: All
Expr {setvar[nearPortal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[nearPortal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[nearPortal]]]<=4}
Not Expr {wobjectgetname[getvar[nearPortal]]==Singularity Caul}
DO: DoAll
ChatExpr {\/me is to close to +wobjectgetname[getvar[nearPortal]]}
ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: All
Any
Expr {getvar[mobsClose] == 0}
Expr {getvar[mobsClose] == 1}
MobsInDist_Name 1 6 {}
DO: SetState {combat}
IF: All
Expr {getvar[mobsClose] == 2}
MobsInDist_Name 2 6 {}
DO: SetState {combat}
IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll
Chat {/vt opt set enablecombat true}
SetState {loot}
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
Expr {coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8}
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
SetState {avoid_portal}
~~ }
STATE: {loot_rare} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30
DO: DoAll
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav true}
SetState {hunt}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set autocram true}
Chat {/vt opt set enablecombat false}
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set buffprofile_prots 2}
Chat {/vt opt set buffprofile_banes 5}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
~~ }
STATE: {avoid_portal} ~~ {
IF: SecsInStateGE 1
DO: ChatExpr {\/me portalHeading \= +getvar[portalHeading]}
IF: SecsInStateGE 2
DO: ChatExpr {\/me playerHeading \= +getvar[playerHeading]}
IF: SecsInStateGE 3
DO: ChatExpr {\/me relativeAngle \= +getvar[relativeAngle]}
IF: SecsInStateGE 4
DO: ChatExpr {\/me Portal detected ahead\! Avoiding now\!}
IF: SecsInStateGE 5
DO: ChatExpr {\/me is too close to +wobjectgetname[wobjectfindnearestbyobjectclass[14]]}
IF: SecsInStateGE 6
DO: ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub face +getvar[newHeading]}
IF: SecsInStateGE 9
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 11
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 12
DO: ChatExpr {\/ub face +getvar[playerHeading]}
IF: SecsInStateGE 14
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 16
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 17
DO: ChatExpr {\/mm nextwp}
IF: SecsInStateGE 18
DO: ChatExpr {\/vt opt set enablenav true}
IF: SecsInStateGE 19
DO: ChatExpr {\/vt setmetastate hunt}
~~ }
STATE: {navbore} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
IF: Always
DO: ChatExpr {\/vt nav load bore_route+getvar[navNumber]}
IF: Always
DO: Chat {/vt opt set enablebuffing true}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: NavEmpty
DO: DoAll
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
SetState {hunt}
~~ }
STATE: {recomp} ~~ {
IF: NavEmpty
DO: SetState {navbore}
IF: Always
DO: SetWatchdog 3 300 {navbore}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing false}
Chat {/vt nav load ah_rarecomp}
~~ }
STATE: {ring_fail} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
SetWatchdog 100 3 {hunt}
~~ }
STATE: {loot} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablelooting true}
Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set lootpriorityboost false}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt}
Chat {/a [portal-debug] started}
SetState {watch_portal}
~~ }
STATE: {watch_portal} ~~ {
IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]}
@ -233,19 +60,53 @@ STATE: {loot} ~~ {
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {avoid_portal}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= getvar[debugAngle]}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
SetState {avoid_portal}
IF: SecsInStateGE 5
DO: SetState {watch_portal}
IF: Always
DO: SetWatchdog 1 120 {watch_portal}
~~ }
STATE: {avoid_portal} ~~ {
IF: SecsInStateGE 1
DO: ChatExpr {\/me portalHeading \= +getvar[portalHeading]}
IF: SecsInStateGE 2
DO: ChatExpr {\/me playerHeading \= +getvar[playerHeading]}
IF: SecsInStateGE 3
DO: ChatExpr {\/me relativeAngle \= +getvar[relativeAngle]}
IF: SecsInStateGE 4
DO: ChatExpr {\/me Portal detected ahead\! Avoiding now\!}
IF: SecsInStateGE 5
DO: ChatExpr {\/me is too close to +wobjectgetname[wobjectfindnearestbyobjectclass[14]]}
IF: SecsInStateGE 6
DO: ChatExpr {\/me at +coordinatetostring[getplayercoordinates[]]}
IF: SecsInStateGE 7
DO: ChatExpr {\/ub face +getvar[newHeading]}
IF: SecsInStateGE 9
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 11
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 12
DO: ChatExpr {\/ub face +getvar[playerHeading]}
IF: SecsInStateGE 14
DO: ChatExpr {\/ub setmotion forward 1}
IF: SecsInStateGE 16
DO: ChatExpr {\/ub setmotion forward 0}
IF: SecsInStateGE 17
DO: ChatExpr {\/mm nextwp}
IF: SecsInStateGE 18
DO: ChatExpr {\/vt opt set enablenav true}
IF: SecsInStateGE 19
DO: ChatExpr {\/vt setmetastate watch_portal}
IF: Always
DO: SetWatchdog 1 30 {watch_portal}
~~ }

186
af/bore_quest.af Normal file
View file

@ -0,0 +1,186 @@
~~
~~ Bore Dungeon Quest Meta
~~ Navigates to the Bore dungeon, fights through to the boss,
~~ loots the quest item, returns to town to turn in.
~~ Includes death recovery.
~~
STATE: {Default}
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Bore Trophy}
DO: SetState {TurnIn}
IF: ItemCountLE 50 {Prismatic Taper}
DO: DoAll
Chat {Running low on tapers, restocking.}
SetState {Restock}
IF: Always
DO: DoAll
EmbedNav navToBore {Navigate to Bore dungeon entrance}
SetWatchdog 10.0 180.0 {Stuck}
STATE: {EnterDungeon}
IF: Death
DO: SetState {Death}
IF: IntoPortal
DO: SetState {InsideDungeon}
IF: SecsInStateGE 30
DO: SetState {Default}
STATE: {InsideDungeon}
IF: Death
DO: SetState {Death}
IF: ExitPortal
DO: DoAll
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {true}
EmbedNav navDungeonRoute {Run through dungeon to boss}
SetWatchdog 10.0 120.0 {Stuck}
STATE: {BossRoom}
IF: Death
DO: SetState {Death}
IF: MobsInDist_Name 1 30.0 {Bore Boss}
DO: DoAll
SetOpt {enablecombat} {true}
SetState {Fighting}
IF: All
NavEmpty
NoMobsInDist 25.0
DO: SetState {LootBoss}
IF: Always
DO: None
STATE: {Fighting}
IF: Death
DO: SetState {Death}
IF: NoMobsInDist 25.0
DO: SetState {LootBoss}
IF: SecsInStateGE 300
DO: SetState {BossRoom}
STATE: {LootBoss}
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Bore Trophy}
DO: SetState {ExitDungeon}
IF: SecsInStateGE 30
DO: DoAll
Chat {No trophy found, exiting anyway.}
SetState {ExitDungeon}
IF: Always
DO: DoAll
SetOpt {enablelooting} {true}
None
STATE: {ExitDungeon}
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
DO: DoAll
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetState {TurnIn}
IF: Always
DO: DoAll
EmbedNav navExitDungeon {Exit the dungeon}
SetWatchdog 10.0 120.0 {Stuck}
STATE: {TurnIn}
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
DO: DoAll
Chat {/ub givep Bore Trophy to Bore Quest NPC}
Chat {/ub prepclick yes 3}
SetState {WaitTurnIn}
IF: Always
DO: DoAll
EmbedNav navToNPC {Go to turn-in NPC}
SetWatchdog 10.0 120.0 {Stuck}
STATE: {WaitTurnIn}
IF: ChatMatch {^Bore Quest NPC tells you,}
DO: SetState {TurnInComplete}
IF: ChatCapture {You have solved this quest too recently!} {}
DO: SetState {QuestCooldown}
IF: SecsInStateGE 15
DO: SetState {TurnIn}
STATE: {TurnInComplete}
IF: Always
DO: DoAll
Chat {Quest turn-in complete! Restarting.}
SetState {Default}
STATE: {QuestCooldown}
IF: Always
DO: DoAll
Chat {Quest on cooldown, waiting...}
SetState {Default}
STATE: {Restock}
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
VendorOpen
DO: SetState {Selling}
IF: Always
DO: DoAll
EmbedNav navRestock {Go to vendor to restock}
SetWatchdog 10.0 120.0 {Stuck}
STATE: {Selling}
IF: VendorClosed
DO: SetState {Default}
IF: SecsInStateGE 30
DO: SetState {Default}
STATE: {Stuck}
IF: Always
DO: DoAll
Chat {/ub face}
SetState {Default}
STATE: {Death}
IF: ExitPortal
DO: SetState {Default}
~~ ============================================================
~~ NAV ROUTES
~~ ============================================================
NAV: navToBore once
~~ Route from lifestone to Bore dungeon entrance
rcl 0.0 0.0 0.0 {Lifestone Recall}
pnt 0.0 0.0 0.0
pnt 0.0 0.0 0.0
ptl 0.0 0.0 0.0 0.0 0.0 0.0 14 {Bore Dungeon}
NAV: navDungeonRoute once
~~ Route through dungeon to boss room
pnt 0.0 0.0 0.0
pnt 0.0 0.0 0.0
pnt 0.0 0.0 0.0
pnt 0.0 0.0 0.0
NAV: navExitDungeon once
~~ Route from boss room back to exit portal
pnt 0.0 0.0 0.0
pnt 0.0 0.0 0.0
ptl 0.0 0.0 0.0 0.0 0.0 0.0 14 {Exit Portal}
NAV: navToNPC once
~~ Route to quest turn-in NPC
rcl 0.0 0.0 0.0 {Lifestone Recall}
pnt 0.0 0.0 0.0
tlk 0.0 0.0 0.0 0.0 0.0 0.0 37 {Bore Quest NPC}
NAV: navRestock once
~~ Route to vendor for restocking tapers
rcl 0.0 0.0 0.0 {Lifestone Recall}
pnt 0.0 0.0 0.0
vnd 0.0 0.0 0.0 00000000 {Vendor}

217
af/empyrean_facility.af Normal file
View file

@ -0,0 +1,217 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
SetOpt {enablecombat} {false}
SetOpt {enablenav} {true}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {attackdistance} {0.0125}
DoExpr {setvar[currentLevel,`upper`]}
DoExpr {setvar[currentRoom,`north`]}
DoExpr {setvar[roomsDone,0]}
Chat {/vt nav load nav_empyrean}
SetState {enter_dungeon}
~~ }
STATE: {enter_dungeon} ~~ {
IF: Death
DO: SetState {death}
IF: All
SecsInStateGE 3
NavEmpty
DO: DoAll
SetOpt {enablecombat} {true}
SetState {goto_room}
IF: Always
DO: DoAll
SetWatchdog 10 300 {stuck}
~~ }
STATE: {goto_room} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
ChatExpr {\/vt nav load emp_+getvar[currentLevel]+`_`+getvar[currentRoom]}
DoExpr {clearvar[navLoaded]}
SetState {arrive_room}
~~ }
STATE: {arrive_room} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {kill_wisps}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded]}
SetWatchdog 10 180 {stuck}
~~ }
STATE: {kill_wisps} ~~ {
IF: Death
DO: SetState {death}
IF: All
SecsInStateGE 5
NoMobsInDist 4
DO: SetState {use_stone}
IF: SecsInStateGE 300
DO: SetState {use_stone}
IF: Always
DO: DoAll
SetWatchdog 10 300 {stuck}
~~ }
STATE: {use_stone} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {A shiver moves across your body}
DO: DoAll
DoExpr {echo[`Room complete! (`+getvar[currentLevel]+` `+getvar[currentRoom]+`)`,1]}
SetState {next_room}
IF: ChatMatch {no change}
DO: DoAll
DoExpr {echo[`Room already done (`+getvar[currentLevel]+` `+getvar[currentRoom]+`)`,1]}
SetState {next_room}
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Aligned Mana Stone}
SetState {use_stone}
IF: Always
DO: DoAll
Chat {/ub use Aligned Mana Stone}
~~ }
STATE: {next_room} ~~ {
IF: Death
DO: SetState {death}
IF: Expr {getvar[currentRoom]==`north`}
DO: DoAll
DoExpr {setvar[currentRoom,`east`]}
SetState {goto_room}
IF: Expr {getvar[currentRoom]==`east`}
DO: DoAll
DoExpr {setvar[currentRoom,`south`]}
SetState {goto_room}
IF: Expr {getvar[currentRoom]==`south`}
DO: DoAll
DoExpr {setvar[currentRoom,`west`]}
SetState {goto_room}
IF: Expr {getvar[currentRoom]==`west`}
DO: DoAll
DoExpr {setvar[currentRoom,`center`]}
SetState {goto_room}
IF: Expr {getvar[currentRoom]==`center`}
DO: SetState {use_stone_center}
~~ }
STATE: {use_stone_center} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {A shiver moves across your body}
DO: DoAll
DoExpr {echo[`Level complete! (`+getvar[currentLevel]+`)`,1]}
SetState {take_portal}
IF: ChatMatch {no change}
DO: DoAll
DoExpr {echo[`Level already done (`+getvar[currentLevel]+`)`,1]}
SetState {take_portal}
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Aligned Mana Stone}
SetState {use_stone_center}
IF: Always
DO: DoAll
Chat {/ub use Aligned Mana Stone}
~~ }
STATE: {take_portal} ~~ {
IF: Death
DO: SetState {death}
IF: Expr {getvar[currentLevel]==`upper`}
DO: DoAll
DoExpr {setvar[currentLevel,`middle`]}
DoExpr {setvar[currentRoom,`north`]}
Chat {/ub use Empyrean Facility Middle Level}
SetState {portal_transition}
IF: Expr {getvar[currentLevel]==`middle`}
DO: DoAll
DoExpr {setvar[currentLevel,`lower`]}
DoExpr {setvar[currentRoom,`north`]}
Chat {/ub use Empyrean Facility Lower Level}
SetState {portal_transition}
IF: Expr {getvar[currentLevel]==`lower`}
DO: DoAll
DoExpr {echo[`All 3 aetheria slots unlocked!`,1]}
SetState {quest_done}
~~ }
STATE: {portal_transition} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Arrived at `+getvar[currentLevel]+` level`,1]}
SetState {goto_room}
IF: SecsInStateGE 15
DO: SetState {take_portal}
~~ }
STATE: {quest_done} ~~ {
IF: Always
DO: DoAll
DoExpr {echo[`Empyrean Facility quest COMPLETE! All aetheria slots unlocked.`,1]}
Chat {/mp}
~~ }
STATE: {stuck} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub face}
DoExpr {echo[`Stuck! Trying to recover...`,1]}
SetState {goto_room}
~~ }
STATE: {death} ~~ {
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Died! Re-entering dungeon...`,1]}
Chat {/vt nav load nav_empyrean}
SetState {enter_dungeon}
~~ }

218
af/follower.af Normal file
View file

@ -0,0 +1,218 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
~~ Follower Meta: Follows group leader, responds to chat commands, death recovery
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablelooting false}
DoExpr {setvar[leaderName,]}
DoExpr {setvar[deathCount, 0]}
SetState {idle}
~~ }
STATE: {idle} ~~ {
~~ Wait for leader assignment via chat command
IF: ChatMatch {.+tells you, "follow me"}
DO: DoAll
DoExpr {setvar[leaderName, getregexmatch[(.+) tells you, 1]]}
ChatExpr {\/t +getvar[leaderName]+, Following you now\!}
SetState {following}
IF: ChatMatch {.+tells you, "follow (.+)"}
DO: DoAll
DoExpr {setvar[leaderName, getregexmatch[.+tells you, "follow (.+)", 1]]}
ChatExpr {\/t +getvar[leaderName]+, Following you now\!}
SetState {following}
IF: Death
DO: SetState {death_recovery}
IF: NeedToBuff
DO: SetState {buffing}
IF: Always
DO: Chat {/vt opt set enablecombat false}
~~ }
STATE: {following} ~~ {
~~ Main follow state - follow the leader
IF: Always
DO: Chat {/vt opt set enablecombat false}
IF: Always
DO: Chat {/vt opt set enablenav false}
IF: Always
DO: ChatExpr {\/ub follow +getvar[leaderName]}
~~ Death handling
IF: Death
DO: DoAll
DoExpr {setvar[deathCount, getvar[deathCount] + 1]}
ChatExpr {\/t +getvar[leaderName]+, I died\! Death count: +cstr[getvar[deathCount]]+. Recovering...}
SetState {death_recovery}
~~ Chat command: buff
IF: ChatMatch {.+tells you, "buff"}
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {buffing}
~~ Chat command: recall
IF: ChatMatch {.+tells you, "recall"}
DO: DoAll
ChatExpr {\/t +getvar[leaderName]+, Recalling now\!}
SetState {recalling}
~~ Chat command: stop
IF: ChatMatch {.+tells you, "stop"}
DO: DoAll
ChatExpr {\/t +getvar[leaderName]+, Stopping follow\.}
DoExpr {setvar[leaderName,]}
Chat {/ub follow off}
SetState {idle}
~~ Chat command: combat on
IF: ChatMatch {.+tells you, "combat on"}
DO: DoAll
Chat {/vt opt set enablecombat true}
ChatExpr {\/t +getvar[leaderName]+, Combat enabled\!}
~~ Chat command: combat off
IF: ChatMatch {.+tells you, "combat off"}
DO: DoAll
Chat {/vt opt set enablecombat false}
ChatExpr {\/t +getvar[leaderName]+, Combat disabled\!}
~~ Need to rebuff
IF: NeedToBuff
DO: DoAll
Chat {/ub follow off}
SetState {buffing}
~~ Watchdog - if stuck for too long, try to recover
IF: Always
DO: SetWatchdog 3 300 {stuck_recovery}
~~ }
STATE: {buffing} ~~ {
~~ Buff up then return to following
IF: Always
DO: DoAll
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablecombat false}
IF: Death
DO: DoAll
DoExpr {setvar[deathCount, getvar[deathCount] + 1]}
SetState {death_recovery}
IF: All
Not NeedToBuff
SecsInStateGE 5
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {rejoin_leader}
IF: SecsInStateGE 120
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {rejoin_leader}
~~ }
STATE: {death_recovery} ~~ {
~~ Wait at lifestone after death, then rebuff and rejoin
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablebuffing false}
~~ Wait a few seconds at lifestone before doing anything
IF: SecsInStateGE 10
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {death_rebuff}
~~ }
STATE: {death_rebuff} ~~ {
~~ Rebuff after death before rejoining
IF: Always
DO: Chat {/vt opt set enablebuffing true}
IF: Death
DO: DoAll
DoExpr {setvar[deathCount, getvar[deathCount] + 1]}
SetState {death_recovery}
IF: All
Not NeedToBuff
SecsInStateGE 10
DO: SetState {rejoin_leader}
IF: SecsInStateGE 180
DO: SetState {rejoin_leader}
~~ }
STATE: {rejoin_leader} ~~ {
~~ Rejoin the leader after buffing or death recovery
IF: Expr {getvar[leaderName] == 0}
DO: SetState {idle}
IF: Expr {cstr[getvar[leaderName]] == cstr[]}
DO: SetState {idle}
IF: Always
DO: DoAll
ChatExpr {\/t +getvar[leaderName]+, Rejoining you now\!}
ChatExpr {\/ub follow +getvar[leaderName]}
SetState {following}
~~ }
STATE: {recalling} ~~ {
~~ Recall to lifestone
IF: Always
DO: DoAll
Chat {/ub follow off}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav false}
IF: SecsInStateGE 2
DO: Chat {/lifestone}
IF: Death
DO: DoAll
DoExpr {setvar[deathCount, getvar[deathCount] + 1]}
SetState {death_recovery}
IF: SecsInStateGE 15
DO: DoAll
ChatExpr {\/t +getvar[leaderName]+, Recalled to lifestone\. Tell me to follow you when ready\.}
SetState {idle}
~~ }
STATE: {stuck_recovery} ~~ {
~~ Try to recover from being stuck
IF: Always
DO: DoAll
Chat {/ub follow off}
Chat {/vt opt set enablecombat false}
ChatExpr {\/t +getvar[leaderName]+, I appear to be stuck\. Trying to recover\.}
IF: SecsInStateGE 3
DO: Chat {/lifestone}
IF: Death
DO: DoAll
DoExpr {setvar[deathCount, getvar[deathCount] + 1]}
SetState {death_recovery}
IF: SecsInStateGE 15
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {death_rebuff}
~~ }

View file

@ -1,75 +1,75 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {run_back}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: None
IF: Death
DO: SetState {death}
~~ }
STATE: {just_run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {run_back}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: None
IF: Death
DO: SetState {death}
~~ }
STATE: {just_run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }

View file

@ -1,175 +1,175 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {all_run_back} ~~ {
IF: Always
DO: Chat {/ub bc /vt setmetastate just_run_back}
~~ }
STATE: {strength} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Surging Strength}
SetState {Default}
~~ }
STATE: {closestportal} ~~ {
IF: Always
DO: Chat {/ub bc /ub closestportal}
IF: Always
DO: SetState {Default}
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {run_back}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: None
IF: Death
DO: SetState {death}
~~ }
STATE: {defence} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Towering Defense}
SetState {Default}
~~ }
STATE: {dispell} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Black Market Gem of Dispelling}
SetState {Default}
~~ }
STATE: {follow} ~~ {
IF: Always
DO: DoAll
ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {jump} ~~ {
IF: Always
DO: Chat {/ub bc /ub jumpsw 400}
IF: Always
DO: SetState {Default}
~~ }
STATE: {just_run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {load_follow} ~~ {
IF: Always
DO: Chat {/ub bc /vt meta load gauntlet_follower}
IF: Always
DO: SetState {Default}
~~ }
STATE: {nav_false} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set enablenav false}
IF: Always
DO: SetState {Default}
~~ }
STATE: {nav_true} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {setup} ~~ {
IF: Always
DO: ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
IF: Always
DO: Chat {/ub bc /vt opt set enablelooting false}
IF: Always
DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: Chat {/ub bc /vt opt set enablebuffing true}
IF: Always
DO: Chat {/ub bc /vt opt set enablecombat true}
IF: Always
DO: Chat {/ub bc /vt opt set attackdistance 0.125}
IF: Always
DO: Chat {/ub bc /vt opt set navpriorityboost true}
IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_prots 2}
IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_banes 2}
IF: Always
DO: Chat {/ub bc /vt forcebuff}
IF: Always
DO: Chat {/ub bc /vt start}
IF: Always
DO: Chat {/ub bc /vt opt set enablemeta true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {summon_false} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set SummonPets false}
IF: Always
DO: SetState {Default}
~~ }
STATE: {summon_true} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set SummonPets true}
IF: Always
DO: SetState {Default}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {all_run_back} ~~ {
IF: Always
DO: Chat {/ub bc /vt setmetastate just_run_back}
~~ }
STATE: {strength} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Surging Strength}
SetState {Default}
~~ }
STATE: {closestportal} ~~ {
IF: Always
DO: Chat {/ub bc /ub closestportal}
IF: Always
DO: SetState {Default}
~~ }
STATE: {death} ~~ {
IF: Always
DO: Chat {/vt nav load death_pause}
IF: Always
DO: Chat {/vt opt set enablenav true}
IF: NavEmpty
DO: SetState {run_back}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: None
IF: Death
DO: SetState {death}
~~ }
STATE: {defence} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Towering Defense}
SetState {Default}
~~ }
STATE: {dispell} ~~ {
IF: Always
DO: DoAll
Chat {/ub bc /ub use Black Market Gem of Dispelling}
SetState {Default}
~~ }
STATE: {follow} ~~ {
IF: Always
DO: DoAll
ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {jump} ~~ {
IF: Always
DO: Chat {/ub bc /ub jumpsw 400}
IF: Always
DO: SetState {Default}
~~ }
STATE: {just_run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {load_follow} ~~ {
IF: Always
DO: Chat {/ub bc /vt meta load gauntlet_follower}
IF: Always
DO: SetState {Default}
~~ }
STATE: {nav_false} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set enablenav false}
IF: Always
DO: SetState {Default}
~~ }
STATE: {nav_true} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {run_back} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true}
IF: NavEmpty
DO: SetState {Default}
~~ }
STATE: {setup} ~~ {
IF: Always
DO: ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
IF: Always
DO: Chat {/ub bc /vt opt set enablelooting false}
IF: Always
DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always
DO: Chat {/ub bc /vt opt set enablebuffing true}
IF: Always
DO: Chat {/ub bc /vt opt set enablecombat true}
IF: Always
DO: Chat {/ub bc /vt opt set attackdistance 0.125}
IF: Always
DO: Chat {/ub bc /vt opt set navpriorityboost true}
IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_prots 2}
IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_banes 2}
IF: Always
DO: Chat {/ub bc /vt forcebuff}
IF: Always
DO: Chat {/ub bc /vt start}
IF: Always
DO: Chat {/ub bc /vt opt set enablemeta true}
IF: Always
DO: SetState {Default}
~~ }
STATE: {summon_false} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set SummonPets false}
IF: Always
DO: SetState {Default}
~~ }
STATE: {summon_true} ~~ {
IF: Always
DO: Chat {/ub bc /vt opt set SummonPets true}
IF: Always
DO: SetState {Default}
~~ }

220
af/hunting.af Normal file
View file

@ -0,0 +1,220 @@
~~ {
~~ Hunting Meta - Solo lifestone grinding with death recovery, restock, and stuck detection
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set lootpriorityboost true}
Chat {/vt nav load hunt_circuit}
SetState {Hunt}
~~ }
STATE: {Hunt} ~~ {
IF: Death
DO: SetState {Death}
IF: All
ItemCountLE 20 {Prismatic Taper}
NoMobsInDist 5
DO: DoAll
Chat {/a Low on tapers, heading to vendor.}
SetState {Restock}
IF: All
ItemCountLE 20 {Scarab}
NoMobsInDist 5
DO: DoAll
Chat {/a Low on scarabs, heading to vendor.}
SetState {Restock}
IF: MainSlotsLE 3
DO: DoAll
Chat {/a Inventory full, heading to vendor.}
SetState {Restock}
IF: NeedToBuff
DO: DoAll
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
SetState {Buffing}
IF: Always
DO: SetWatchdog 3 120 {Stuck}
IF: DistToRteGE 500
DO: SetState {Stuck}
IF: MobsInDist_Name 1 12 {}
DO: DoAll
Chat {/vt opt set enablecombat true}
IF: NoMobsInDist 12
DO: DoAll
Chat {/vt opt set enablecombat false}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load hunt_circuit}
Chat {/vt opt set enablenav true}
~~ }
STATE: {Death} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav false}
Chat {/a I died! Recovering...}
IF: SecsInStateGE 5
DO: DoAll
Chat {/vt opt set enablebuffing true}
SetState {DeathRecovery}
~~ }
STATE: {DeathRecovery} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load ls_to_hunt}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat false}
IF: NeedToBuff
DO: DoAll
Chat {/vt opt set enablenav false}
SetState {Buffing}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load hunt_circuit}
Chat {/vt opt set enablecombat true}
SetState {Hunt}
IF: Always
DO: SetWatchdog 3 300 {Stuck}
~~ }
STATE: {Buffing} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav false}
IF: All
Not NeedToBuff
NoMobsInDist 5
DO: DoAll
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true}
SetState {Hunt}
IF: SecsInStateGE 180
DO: DoAll
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true}
SetState {Hunt}
~~ }
STATE: {Restock} ~~ {
IF: Death
DO: SetState {Death}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt nav load hunt_to_vendor}
Chat {/vt opt set enablenav true}
IF: Always
DO: SetWatchdog 3 300 {Stuck}
IF: NavEmpty
DO: SetState {AtVendor}
~~ }
STATE: {AtVendor} ~~ {
IF: Death
DO: SetState {Death}
IF: VendorOpen
DO: DoAll
Chat {/vt opt set enablenav false}
IF: All
VendorClosed
ItemCountGE 200 {Prismatic Taper}
ItemCountGE 200 {Scarab}
DO: DoAll
Chat {/a Restocked, heading back to hunt.}
Chat {/vt nav load vendor_to_hunt}
Chat {/vt opt set enablenav true}
SetState {ReturnToHunt}
IF: SecsInStateGE 120
DO: DoAll
Chat {/a Vendor timeout, returning to hunt.}
Chat {/vt nav load vendor_to_hunt}
Chat {/vt opt set enablenav true}
SetState {ReturnToHunt}
~~ }
STATE: {ReturnToHunt} ~~ {
IF: Death
DO: SetState {Death}
IF: Always
DO: DoAll
Chat {/vt opt set enablecombat false}
IF: Always
DO: SetWatchdog 3 300 {Stuck}
IF: NeedToBuff
DO: DoAll
Chat {/vt opt set enablenav false}
SetState {Buffing}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load hunt_circuit}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
SetState {Hunt}
~~ }
STATE: {Stuck} ~~ {
IF: Always
DO: DoAll
Chat {/a I appear to be stuck, attempting recovery.}
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablecombat false}
IF: SecsInStateGE 3
DO: DoAll
Chat {/vt nav load ls_to_hunt}
Chat {/vt opt set enablenav true}
SetState {StuckRecovery}
~~ }
STATE: {StuckRecovery} ~~ {
IF: Death
DO: SetState {Death}
IF: Always
DO: SetWatchdog 3 300 {Stuck}
IF: NeedToBuff
DO: DoAll
Chat {/vt opt set enablenav false}
SetState {Buffing}
IF: NavEmpty
DO: DoAll
Chat {/vt nav load hunt_circuit}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true}
SetState {Hunt}
~~ }

View file

@ -1,74 +1,73 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true}
IF: All
MainSlotsLE 4
DO: SetState {go_to_chests}
~~ }
STATE: {go_to_chests} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {LootChest}
~~ }
STATE: {LootChest} ~~ {
IF: All
ItemCountLE 0 {Aged Legendary Key}
DO: DoAll
Chat {/mm stoploot}
SetState {recall}
~~ }
STATE: {recall} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests_ah}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Default}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true}
IF: All
MainSlotsLE 4
DO: SetState {go_to_chests}
~~ }
STATE: {go_to_chests} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {LootChest}
~~ }
STATE: {LootChest} ~~ {
IF: All
ItemCountLE 0 {Aged Legendary Key}
DO: DoAll
Chat {/mm stoploot}
SetState {recall}
~~ }
STATE: {recall} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests_ah}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Default}
~~ }

View file

@ -1,85 +1,84 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Check} ~~ {
IF: Any
ItemCountGE 1 {Aged Legendary Key}
DO: SetState {LootChest}
IF: All
ItemCountLE 0 {Aged Legendary Key}
DO: SetState {recall}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true}
IF: All
MainSlotsLE 4
DO: SetState {go_to_chests}
~~ }
STATE: {go_to_chests} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Check}
~~ }
STATE: {LootChest} ~~ {
IF: Always
DO: Chat {/ub usep Aged Legendary key on Legendary Chest}
IF: SecsInStateGE 4
DO: Chat {/ub usep Legendary Chest}
IF: SecsInStateGE 5
DO: SetState {Check}
IF: SecsInStateGE 1
DO: Chat {/ub usep Legendary Chest}
~~ }
STATE: {recall} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests_ah}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Default}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Check} ~~ {
IF: Any
ItemCountGE 1 {Aged Legendary Key}
DO: SetState {LootChest}
IF: All
ItemCountLE 0 {Aged Legendary Key}
DO: SetState {recall}
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true}
IF: All
MainSlotsLE 4
DO: SetState {go_to_chests}
~~ }
STATE: {go_to_chests} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Check}
~~ }
STATE: {LootChest} ~~ {
IF: Always
DO: Chat {/ub usep Aged Legendary key on Legendary Chest}
IF: SecsInStateGE 4
DO: Chat {/ub usep Legendary Chest}
IF: SecsInStateGE 5
DO: SetState {Check}
IF: SecsInStateGE 1
DO: Chat {/ub usep Legendary Chest}
~~ }
STATE: {recall} ~~ {
IF: Always
DO: DoAll
Chat {/vt nav load legendary_chests_ah}
SetWatchdog 10 300 {recall}
IF: NavEmpty
DO: SetState {Default}
~~ }

View file

@ -1,162 +1,162 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set NavCloseStopRange 0.00625}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav true}
IF: Always
DO: Chat {/vt nav load asherons_castle_lumi_stuff}
IF: NavEmpty
DO: SetState {pickup_damage_boost}
~~ }
STATE: {pickup_damage_boost} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Armor Damage Boost V}
DO: Chat {/ub use Token of Rare Armor Damage Boost V}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_damage_reduction}
~~ }
STATE: {pickup_damage_reduction} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Damage Reduction V}
DO: Chat {/ub use Token of Rare Damage Reduction V}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_healkit}
~~ }
STATE: {pickup_healkit} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 15 {Light Infused Healing Kit}
DO: Chat {/ub use Token of the Light Infused Healing Kit}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_revitalization}
~~ }
STATE: {pickup_revitalization} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_surging_strength}
IF: All
NavEmpty
ItemCountLE 50 {Draught of Revitalization}
DO: Chat {/ub use Token of the Draught of Revitalization}
~~ }
STATE: {pickup_surging_strength} ~~ {
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Surging Strength}
DO: Chat {/ub use Token of the Luminous Crystal of Surging Strength}
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_towering_defense}
~~ }
STATE: {pickup_towering_defense} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Towering Defense}
DO: Chat {/ub use Token of the Luminous Crystal of Towering Defense}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_vitality}
~~ }
STATE: {pickup_vitality} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Vitality}
DO: Chat {/ub use Token of the Luminous Crystal of Vitality}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {token_give}
~~ }
STATE: {token_give} ~~ {
IF: Always
DO: Chat {/vt nav load token_give_point}
IF: All
NavEmpty
Any
ItemCountGE 1 {Token of Rare Armor Damage Boost V}
ItemCountGE 1 {Token of Rare Damage Reduction V}
ItemCountGE 1 {Token of the Draught of Revitalization}
ItemCountGE 1 {Token of the Light Infused Healing Kit}
ItemCountGE 1 {Token of the Luminous Crystal of Vitality}
ItemCountGE 1 {Token of the Luminous Crystal of Towering Defense}
ItemCountGE 1 {Token of the Luminous Crystal of Surging Strength}
DO: DoAll
Chat {/ub prepclick yes 3}
Chat {/ub givep Token of to Nalicana}
IF: All
NavEmpty
Any
ItemCountLE 0 {Token of Rare Armor Damage Boost V}
ItemCountLE 0 {Token of Rare Damage Reduction V}
ItemCountLE 0 {Token of the Draught of Revitalization}
ItemCountLE 0 {Token of the Light Infused Healing Kit}
ItemCountLE 0 {Token of the Luminous Crystal of Vitality}
ItemCountLE 0 {Token of the Luminous Crystal of Towering Defense}
ItemCountLE 0 {Token of the Luminous Crystal of Surging Strength}
DO: SetState {pickup_damage_boost}
~~ }
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Always
DO: DoAll
Chat {/vt opt set NavCloseStopRange 0.00625}
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav true}
IF: Always
DO: Chat {/vt nav load asherons_castle_lumi_stuff}
IF: NavEmpty
DO: SetState {pickup_damage_boost}
~~ }
STATE: {pickup_damage_boost} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Armor Damage Boost V}
DO: Chat {/ub use Token of Rare Armor Damage Boost V}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_damage_reduction}
~~ }
STATE: {pickup_damage_reduction} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Damage Reduction V}
DO: Chat {/ub use Token of Rare Damage Reduction V}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_healkit}
~~ }
STATE: {pickup_healkit} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 15 {Light Infused Healing Kit}
DO: Chat {/ub use Token of the Light Infused Healing Kit}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_revitalization}
~~ }
STATE: {pickup_revitalization} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_surging_strength}
IF: All
NavEmpty
ItemCountLE 50 {Draught of Revitalization}
DO: Chat {/ub use Token of the Draught of Revitalization}
~~ }
STATE: {pickup_surging_strength} ~~ {
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Surging Strength}
DO: Chat {/ub use Token of the Luminous Crystal of Surging Strength}
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_towering_defense}
~~ }
STATE: {pickup_towering_defense} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Towering Defense}
DO: Chat {/ub use Token of the Luminous Crystal of Towering Defense}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {pickup_vitality}
~~ }
STATE: {pickup_vitality} ~~ {
IF: Always
DO: Chat {/vt nav load token_take_point}
IF: All
NavEmpty
ItemCountLE 5 {Luminous Crystal of Vitality}
DO: Chat {/ub use Token of the Luminous Crystal of Vitality}
IF: All
NavEmpty
SecsInStateGE 6
DO: SetState {token_give}
~~ }
STATE: {token_give} ~~ {
IF: Always
DO: Chat {/vt nav load token_give_point}
IF: All
NavEmpty
Any
ItemCountGE 1 {Token of Rare Armor Damage Boost V}
ItemCountGE 1 {Token of Rare Damage Reduction V}
ItemCountGE 1 {Token of the Draught of Revitalization}
ItemCountGE 1 {Token of the Light Infused Healing Kit}
ItemCountGE 1 {Token of the Luminous Crystal of Vitality}
ItemCountGE 1 {Token of the Luminous Crystal of Towering Defense}
ItemCountGE 1 {Token of the Luminous Crystal of Surging Strength}
DO: DoAll
Chat {/ub prepclick yes 3}
Chat {/ub givep Token of to Nalicana}
IF: All
NavEmpty
Any
ItemCountLE 0 {Token of Rare Armor Damage Boost V}
ItemCountLE 0 {Token of Rare Damage Reduction V}
ItemCountLE 0 {Token of the Draught of Revitalization}
ItemCountLE 0 {Token of the Light Infused Healing Kit}
ItemCountLE 0 {Token of the Luminous Crystal of Vitality}
ItemCountLE 0 {Token of the Luminous Crystal of Towering Defense}
ItemCountLE 0 {Token of the Luminous Crystal of Surging Strength}
DO: SetState {pickup_damage_boost}
~~ }

190
af/motes_converted.af Normal file
View file

@ -0,0 +1,190 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Not Expr {testvar[batchThreshold]}
DO: DoExpr {setvar[batchThreshold, 50]}
IF: Not Expr {testvar[maxHandInRetries]}
DO: DoExpr {setvar[maxHandInRetries, 120]}
IF: Not Expr {testvar[beachNav]}
DO: DoExpr {setvar[beachNav, `beach_fort`]}
IF: Not Expr {testvar[returnNav]}
DO: DoExpr {setvar[returnNav, `return`]}
IF: All
ChatCapture {(^(\[[A-z]+?\] |)You|.*\<Tell:IIDString:.+:(?<who>[^\<]*)\>.+\<\\Tell\>) .*, \"diamond (?<num>[0-9]+)\"$} {}
Expr {cnumber[getvar[capturegroup_num]]>0}
DO: DoAll
ChatExpr {\/ub give +getvar[capturegroup_num]+` Diamond Scarab to `+getvar[capturegroup_who]}
Chat {/a [motes] Diamond request fulfilled.}
SetState {Default}
IF: ItemCountGE 1 {Pyreal Nugget}
DO: DoAll
DoExpr {setvar[isProcessing, 1]}
DoExpr {setvar[handInRetries, 0]}
ChatExpr {\/vt nav load +getvar[beachNav]}
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
SetState {go_to_beach}
IF: All
ItemCountGE 50 {Pyreal Sliver}
ItemCountLE 0 {Pyreal Nugget}
DO: DoAll
DoExpr {setvar[isProcessing, 1]}
Chat {/a [motes] Starting batch: sliver -> nugget.}
SetState {nugget}
IF: All
ItemCountGE 50 {Pyreal Mote}
ItemCountLE 49 {Pyreal Sliver}
ItemCountLE 0 {Pyreal Nugget}
DO: DoAll
DoExpr {setvar[isProcessing, 1]}
Chat {/a [motes] Starting batch: mote -> sliver.}
SetState {sliver}
IF: Always
DO: DoAll
DoExpr {setvar[isProcessing, 0]}
DoExpr {clearvar[handInRetries]}
Chat {/vt opt set enablebuffing false}
Chat {/vt opt set enablenav false}
~~ }
STATE: {go_to_beach} ~~ {
IF: Death
DO: SetState {Default}
IF: NavEmpty
DO: DoAll
Chat {/a [motes] Arrived at beach turn-in.}
SetState {at_beach}
IF: SecsInStateGE 300
DO: DoAll
Chat {/a [motes] Timeout reaching beach. Resetting.}
SetState {Default}
IF: Always
DO: DoAll
Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true}
~~ }
STATE: {at_beach} ~~ {
IF: Death
DO: SetState {Default}
IF: ItemCountGE 1 {Pyreal Nugget}
DO: SetState {hand_in_nugget}
IF: ItemCountLE 0 {Pyreal Nugget}
DO: DoAll
Chat {/a [motes] Beach turn-in complete. Returning.}
ChatExpr {\/vt nav load +getvar[returnNav]}
Chat {/vt opt set enablenav true}
SetState {go_return}
~~ }
STATE: {go_return} ~~ {
IF: Death
DO: SetState {Default}
IF: NavEmpty
DO: DoAll
Chat {/a [motes] Return nav complete. Idle.}
SetState {Default}
IF: SecsInStateGE 300
DO: DoAll
Chat {/a [motes] Timeout on return nav. Resetting.}
SetState {Default}
IF: Always
DO: Chat {/vt opt set enablenav true}
~~ }
STATE: {hand_in_nugget} ~~ {
IF: Death
DO: SetState {Default}
IF: ItemCountLE 0 {Pyreal Nugget}
DO: DoAll
DoExpr {clearvar[handInRetries]}
SetState {at_beach}
IF: Expr {getvar[handInRetries]>=getvar[maxHandInRetries]}
DO: DoAll
Chat {/a [motes] Max hand-in retries reached. Returning.}
DoExpr {clearvar[handInRetries]}
ChatExpr {\/vt nav load +getvar[returnNav]}
SetState {go_return}
IF: All
ItemCountGE 1 {Pyreal Nugget}
SecsInStateGE 1
DO: DoAll
DoExpr {setvar[handInRetries, getvar[handInRetries]+1]}
Chat {/ub give Pyreal Nugget to Feruza ibn Salaq}
SetState {hand_in_nugget}
IF: Always
DO: SetWatchdog 1 90 {Default}
~~ }
STATE: {nugget} ~~ {
IF: Death
DO: SetState {Default}
IF: ItemCountGE 2 {Pyreal Sliver}
DO: SetState {make_nugget}
IF: ItemCountLE 1 {Pyreal Sliver}
DO: DoAll
Chat {/a [motes] Sliver -> nugget stage complete.}
SetState {Default}
IF: Always
DO: SetWatchdog 1 120 {Default}
~~ }
STATE: {make_nugget} ~~ {
IF: Death
DO: SetState {Default}
IF: Always
DO: DoAll
Chat {/ub use Pyreal Sliver on Pyreal Sliver}
SetState {nugget}
~~ }
STATE: {sliver} ~~ {
IF: Death
DO: SetState {Default}
IF: ItemCountGE 2 {Pyreal Mote}
DO: SetState {make_sliver}
IF: ItemCountLE 1 {Pyreal Mote}
DO: DoAll
Chat {/a [motes] Mote -> sliver stage complete.}
SetState {Default}
IF: Always
DO: SetWatchdog 1 120 {Default}
~~ }
STATE: {make_sliver} ~~ {
IF: Death
DO: SetState {Default}
IF: Always
DO: DoAll
Chat {/ub use Pyreal Mote on Pyreal Mote}
SetState {sliver}
~~ }

258
af/nalicana_test.af Normal file
View file

@ -0,0 +1,258 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators:
~~ STATE: DO:
~~ IF: NAV:
~~
~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~
~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~ }
STATE: {Default} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
SetOpt {enablecombat} {false}
SetOpt {enablenav} {true}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {attackdistance} {0.0125}
Chat {/vt nav load nav_nalicana}
SetState {talk_nalicana}
~~ }
STATE: {talk_nalicana} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded]}
NavEmpty
DO: DoAll
ClearWatchdog
Chat {/ub use Nalicana}
SetState {wait_nalicana_dialog}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded]}
SetWatchdog 10 300 {stuck}
~~ }
STATE: {wait_nalicana_dialog} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {Gurog have emerged}
DO: DoAll
DoExpr {echo[`Got quest from Nalicana!`,1]}
SetState {nav_to_cave}
IF: ChatMatch {You have solved this quest too recently}
DO: DoAll
DoExpr {echo[`Quest on cooldown!`,1]}
SetState {done}
IF: SecsInStateGE 10
DO: SetState {nav_to_cave}
~~ }
STATE: {nav_to_cave} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded2]}
NavEmpty
DO: DoAll
ClearWatchdog
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {true}
SetState {wait_key}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded2]}
Chat {/vt nav load nal_to_cave}
SetWatchdog 10 600 {stuck}
~~ }
STATE: {wait_key} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Entryway Key}
DO: DoAll
DoExpr {echo[`Got Entryway Key!`,1]}
Chat {/ub use Entryway Key on Door}
SetState {wait_door}
IF: SecsInStateGE 120
DO: DoAll
DoExpr {echo[`Key taking too long...`,1]}
SetState {wait_key}
~~ }
STATE: {wait_door} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {Door has been unlocked}
DO: DoAll
DoExpr {echo[`Door opened!`,1]}
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetState {nav_to_tomb_portal}
IF: SecsInStateGE 5
DO: DoAll
Chat {/ub use Entryway Key on Door}
SetState {wait_door}
~~ }
STATE: {nav_to_tomb_portal} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded3]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {enter_frozen_tomb}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded3]}
Chat {/vt nav load nal_to_tomb_portal}
SetWatchdog 10 300 {stuck}
~~ }
STATE: {enter_frozen_tomb} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Inside Frozen Tomb!`,1]}
SetOpt {enablecombat} {true}
SetState {dungeon_run}
IF: SecsInStateGE 10
DO: DoAll
SetOpt {enablecombat} {true}
SetState {dungeon_run}
~~ }
STATE: {dungeon_run} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded4]}
NavEmpty
DO: DoAll
ClearWatchdog
SetOpt {enablelooting} {true}
SetState {kill_gregor}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded4]}
Chat {/vt nav load nal_dungeon_run}
SetOpt {enablelooting} {false}
SetWatchdog 10 600 {stuck}
~~ }
STATE: {kill_gregor} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {Killing me will not change anything}
DO: DoAll
DoExpr {echo[`Battle Lord Gregor defeated!`,1]}
SetOpt {enablecombat} {false}
SetState {wait_loot}
IF: ItemCountGE 1 {Battle Lord Gregor's Mnemosyne}
DO: DoAll
DoExpr {echo[`Got the Mnemosyne!`,1]}
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
IF: SecsInStateGE 600
DO: DoAll
DoExpr {echo[`Gregor fight timeout!`,1]}
SetState {stuck}
~~ }
STATE: {wait_loot} ~~ {
IF: Death
DO: SetState {death}
IF: ItemCountGE 1 {Battle Lord Gregor's Mnemosyne}
DO: DoAll
DoExpr {echo[`Got the Mnemosyne! Returning to Nalicana.`,1]}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
IF: SecsInStateGE 30
DO: DoAll
DoExpr {echo[`Mnemosyne not looted, check loot profile!`,1]}
SetOpt {enablelooting} {false}
SetState {return_nalicana}
~~ }
STATE: {return_nalicana} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {testvar[navLoaded5]}
NavEmpty
DO: DoAll
ClearWatchdog
SetState {turn_in}
IF: Always
DO: DoAll
DoExpr {touchvar[navLoaded5]}
Chat {/vt nav load nav_nalicana}
SetWatchdog 10 600 {stuck}
~~ }
STATE: {turn_in} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub givep Battle Lord Gregor's Mnemosyne to Nalicana}
Chat {/ub prepclick yes 3}
SetState {wait_turn_in}
~~ }
STATE: {wait_turn_in} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {Lord Asheron should be able to learn much}
DO: DoAll
DoExpr {echo[`Nalicana's Test COMPLETE!`,1]}
SetState {done}
IF: SecsInStateGE 10
DO: SetState {turn_in}
~~ }
STATE: {done} ~~ {
IF: Always
DO: DoAll
DoExpr {echo[`Nalicana's Test quest finished.`,1]}
Chat {/mp}
~~ }
STATE: {stuck} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoAll
Chat {/ub face}
DoExpr {echo[`Stuck! Check nav...`,1]}
~~ }
STATE: {death} ~~ {
IF: ExitPortal
DO: DoAll
DoExpr {echo[`Died! Restarting...`,1]}
SetState {Default}
~~ }

View file

@ -0,0 +1,47 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators in a NAV-ONLY file:
~~ NAV:
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~
~~
~~ REMEMBER THAT NAV-ONLY FILES MUST CONTAIN EXACTLY ONE NAV!
~~ }
NAV: nav0 once ~~ {
pnt 0.697347180048625 13.4823081334432 0.516687520345052
pnt 0.666687456766764 13.503111521403 0.516687520345052
pnt 0.646260070800781 13.5503058433533 0.516687520345052
pnt 0.639286915461222 13.6518357594808 0.516687520345052
pnt 0.638853899637858 13.6711349487305 0.516687520345052
pnt 0.619450457890828 13.8956347147624 0.516687520345052
pnt 0.617654943466187 13.9232676823934 0.516687520345052
pnt 0.623617633183797 13.9128150304159 0.516687520345052
pnt 0.626908508936564 13.9084334055583 0.516687520345052
pnt 0.641702699661255 13.9089775721232 0.521687507629395
pnt 0.639892339706421 13.9309638977051 0.533354187011719
pnt 0.639045921961466 13.9339604695638 0.533354187011719
pnt 0.632732566197713 13.9385066986084 0.533354187011719
pnt 0.62224858601888 13.9390266418457 0.533354187011719
pnt 0.603840287526449 13.9379925409953 0.540843137105306
pnt 0.586502106984456 13.936896387736 0.551687494913737
pnt 0.585404109954834 13.9124701182048 0.553354136149089
cht 0.585082006454468 13.9138682047526 0.553354136149089 {/ub give Blank Augmentation Gem to Dumida bint Ruminre}
~~ }

1378
af/neftet.af Normal file

File diff suppressed because it is too large Load diff

31
af/recallls.af Normal file
View file

@ -0,0 +1,31 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators in a NAV-ONLY file:
~~ NAV:
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~
~~
~~ REMEMBER THAT NAV-ONLY FILES MUST CONTAIN EXACTLY ONE NAV!
~~ }
NAV: nav0 once ~~ {
pau 59.3695845603943 -28.744246006012 0.0500250021616618 5000
cht 59.3695845603943 -28.744246006012 0.0500250021616618 {/ah}
~~ }

53
af/to_bella.af Normal file
View file

@ -0,0 +1,53 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators in a NAV-ONLY file:
~~ NAV:
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~
~~
~~ REMEMBER THAT NAV-ONLY FILES MUST CONTAIN EXACTLY ONE NAV!
~~ }
NAV: nav0 once ~~ {
pnt -101.390033086141 -34.0253916422526 -0.0249791661898295
cht -101.328641001383 -33.2287128210068 -0.149979162216187 {/ub jumpsw 300}
pnt -101.366710281372 -34.0219579060872 -0.149979162216187
pnt -101.366858164469 -33.8953051884969 -0.149979162216187
pnt -101.321553548177 -33.9012914657593 -0.149979162216187
pnt -101.323536745707 -33.8343835830688 -0.149979162216187
pnt -101.353078460693 -33.8121692021688 -0.149979162216187
pnt -101.404804865519 -33.7821842829386 -0.149979162216187
pnt -101.424748166402 -33.7638031005859 -0.149979162216187
pnt -101.445881970723 -33.7280899047852 -0.149979162216187
pnt -101.451853593191 -33.690558942159 -0.149979162216187
pnt -101.449750614166 -33.6623808542887 -0.149979162216187
pnt -101.438445281982 -33.6300983428955 -0.149979162216187
pnt -101.423911094666 -33.6047841389974 -0.149979162216187
pnt -101.403232828776 -33.5813950856527 -0.149979162216187
pnt -101.376367441813 -33.5687754631042 -0.149979162216187
pnt -101.333241081238 -33.5651614507039 -0.149979162216187
pnt -101.326871236165 -33.5639857610067 -0.149979162216187
pnt -101.326964759827 -33.5253623962402 -0.149979162216187
pnt -101.32373790741 -33.4787105560303 -0.164920441309611
pnt -101.323082987467 -33.4038849989573 -0.174979162216187
pnt -101.324518013 -33.3609972953796 -0.163745148976644
pnt -101.325564702352 -33.3339033285777 -0.149979162216187
pnt -101.328641001383 -33.2287128210068 -0.149979162216187
~~ }

55
af/to_fiun.af Normal file
View file

@ -0,0 +1,55 @@
~~ {
~~ FOR AUTO-COMPLETION ASSISTANCE: testvar getvar setvar touchvar clearallvars clearvar getcharintprop getchardoubleprop getcharquadprop getcharboolprop getcharstringprop getisspellknown getcancastspell_hunt getcancastspell_buff getcharvital_base getcharvital_current getcharvital_buffedmax getcharskill_traininglevel getcharskill_base getcharskill_buffed getplayerlandcell getplayercoordinates coordinategetns coordinategetwe coordinategetz coordinatetostring coordinateparse coordinatedistancewithz coordinatedistanceflat wobjectgetphysicscoordinates wobjectgetname wobjectgetobjectclass wobjectgettemplatetype wobjectgetisdooropen wobjectfindnearestmonster wobjectfindnearestdoor wobjectfindnearestbyobjectclass wobjectfindininventorybytemplatetype wobjectfindininventorybyname wobjectfindininventorybynamerx wobjectgetselection wobjectgetplayer wobjectfindnearestbynameandobjectclass actiontryselect actiontryuseitem actiontryapplyitem actiontrygiveitem actiontryequipanywand actiontrycastbyid actiontrycastbyidontarget chatbox chatboxpaste statushud statushudcolored uigetcontrol uisetlabel isfalse istrue iif randint cstr strlen getobjectinternaltype cstrf stopwatchcreate stopwatchstart stopwatchstop stopwatchelapsedseconds cnumber floor ceiling round abs getworldname getitemcountininventorybyname getheading getitemcountininventorybynamerx getheadingto actiontrygiveprofile vitae getfellowshipstatus getfellowshipname getfellowshipisopen getfellowshipisleader getfellowshipleaderid getfellowshipcanrecruit getfellowid getfellowshipcount getfellowshiplocked getfellowname getfellowshipisfull sin cos tan sqrt asin acos atan atan2 sinh cosh tanh vtsetmetastate getregexmatch echo chr ord wobjectgetid wobjectgethealth wobjectfindbyid wobjectgetintprop wobjectfindnearestbytemplatetype wobjectgetopencontainer testquestflag getquestktprogress isrefreshingquests getquestktrequired getqueststatus getisday getgamehour getgamehourname getisnight getgameday getgameticks getminutesuntilday getgamemonth getgamemonthname getminutesuntilnight getgameyear uisetvisible uiviewvisible uiviewexists getgvar touchgvar getpvar touchpvar setgvar cleargvar setpvar clearpvar testgvar clearallgvars testpvar clearallpvars dictgetitem dictcreate dicthaskey dictadditem dictkeys dictremovekey dictvalues dictclear dictsize dictcopy listgetitem listpop listcreate listcontains listremove listadd listindexof listremoveat listinsert listlastindexof listclear listcopy listcount listreverse
~~
~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/
~~
~~ All recognized structural designators in a NAV-ONLY file:
~~ NAV:
~~
~~ All recognized NAV types:
~~ circular follow
~~ linear once
~~
~~ All recognized NAV NODE types:
~~ flw vnd
~~ pnt ptl
~~ rcl tlk
~~ pau chk
~~ cht jmp
~~ prt (deprecated in VTank)
~~
~~
~~ REMEMBER THAT NAV-ONLY FILES MUST CONTAIN EXACTLY ONE NAV!
~~ }
NAV: nav0 once ~~ {
pau 59.3259333292643 -28.520225016276 0.0500208298365275 2000
cht 59.3259333292643 -28.520225016276 0.0500208298365275 {/ah}
pau 59.3259333292643 -28.520225016276 0.0500208298365275 10000
pnt 59.3297518730164 -28.7442257563273 0.0500208298365275
pnt 59.3718955357869 -28.729271697998 0.0500208298365275
ptl 59.3259333292643 -28.520225016276 0.0500208298365275 59.3936458587647 -28.7256083488464 0.0508250035345554 14 {Portal to Town Network}
pnt -101.626594352722 -96.6541770299276 2.08333134651184E-05
pnt -101.65105082194 -96.684996064504 2.08333134651184E-05
pnt -101.656385644277 -96.6919414202372 2.08333134651184E-05
pnt -101.658911323547 -96.7065850257873 2.08333134651184E-05
pnt -101.657806046804 -96.7835428237915 2.08333134651184E-05
pnt -101.657771333059 -96.819224357605 2.08333134651184E-05
pnt -101.657725207011 -96.8666128794352 2.08333134651184E-05
pnt -101.669049962362 -96.9007548014323 2.08333134651184E-05
pnt -101.680845673879 -96.9425307591756 2.08333134651184E-05
pnt -101.683536847432 -96.9889544169108 2.08333134651184E-05
pnt -101.690975729624 -97.0222402572632 2.08333134651184E-05
pnt -101.70106344223 -97.0450640996297 2.08333134651184E-05
pnt -101.711457236608 -97.0529806772868 2.08333134651184E-05
ptl 59.3259333292643 -28.520225016276 0.0500208298365275 -101.725833336512 -97.0584083557129 -0.000262499845121056 14 {Fiun Outpost}
pnt -56.7886938095093 95.8784626324971 -0.000395833204189936
pnt -56.8631035486857 95.8860682805379 -0.000395833204189936
pnt -56.9247075398763 95.8729653358459 -0.000395833204189936
pnt -56.9869157632192 95.8636669476827 -0.000395833204189936
cht 59.3259333292643 -28.520225016276 0.0500208298365275 {/ub give Insatiable Eater Jaw to Fiun Rehlyun}
pau 59.3259333292643 -28.520225016276 0.0500208298365275 10000
~~ }

View file

@ -1,216 +0,0 @@
uTank2 NAV 1.2
4
39
0
59.3238444010417
-28.5963200251261
0.0500208298365275
0
0
59.3491148948669
-28.6641467094421
0.0500208298365275
0
0
59.3766745567322
-28.7037879625956
0.0500208298365275
0
6
-20.1567346890767
69.6993536631266
0.317356459299723
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.624867598216
-96.6313321431478
2.08333134651184E-05
0
0
-101.650300121307
-96.5992829958598
2.08333134651184E-05
0
0
-101.658966318766
-96.5680073897044
2.08333134651184E-05
0
0
-101.658739980062
-96.5141520659129
2.08333134651184E-05
0
0
-101.658615048726
-96.4844156901042
2.08333134651184E-05
0
0
-101.644858868917
-96.4508747021357
2.08333134651184E-05
0
0
-101.62797349294
-96.4283237934113
2.08333134651184E-05
0
0
-101.62197488149
-96.3871853431066
2.08333134651184E-05
0
6
-20.1567346890767
69.6993536631266
0.317356459299723
0
Stonehold Portal
14
True
-101.616920820872
-96.3639541665713
-0.000262499845121056
0
-21.6851238250732
68.6658351103465
0.325020853678385
0
0
-21.6289395014445
68.6506710529327
0.325020853678385
0
0
-21.5721336364746
68.6411833763123
0.325020853678385
0
0
-21.5097707430522
68.6396075884501
0.325020853678385
0
0
-21.453425470988
68.6498824437459
0.325020853678385
0
0
-21.3994089126587
68.6714050134023
0.325020853678385
0
0
-21.3288564682007
68.724674542745
0.317972977956136
0
0
-21.2169948577881
68.7905727068583
0.301200071970622
0
0
-21.1142587741216
68.8473822593689
0.311114470163981
0
0
-20.9858016173045
68.9242629051209
0.327141539255778
0
0
-20.9161176522573
68.964368057251
0.349729251861572
0
0
-20.8470240910848
69.0071477254232
0.368622779846191
0
0
-20.7915863672892
69.0421974182129
0.388323815663656
0
0
-20.7150138537089
69.1274105707804
0.403556219736735
0
0
-20.6669180552165
69.2083913803101
0.381966876983643
0
0
-20.6537384033203
69.2881316184998
0.362513001759847
0
0
-20.645511341095
69.3518469174703
0.34843692779541
0
0
-20.5783939361572
69.4900629202525
0.308775520324707
0
0
-20.5159432093302
69.594264793396
0.289700126647949
0
0
-20.4655660629272
69.6328755378723
0.284651343027751
0
0
-20.346146206061
69.6796534538269
0.291088676452637
0
0
-20.2466309626897
69.7156423886617
0.311803499857585
0
0
-20.2082561810811
69.7301380475362
0.316519196828206
0
0
-20.1890452543894
69.7202436765035
0.316567325592041
0
0
-20.1567623615265
69.6993715286255
0.317355791727702
0
6
-20.1567346890767
69.6993536631266
0.317356459299723
0
Desolation Beach Portal
14
True
-20.1682483355204
69.6802124977112
0.32122278213501

View file

@ -1,44 +0,0 @@
uTank2 NAV 1.2
4
8
0
-70.5150861899058
87.4011634190877
0.333354187011719
0
0
-70.5137316226959
87.4172266642253
0.333354187011719
0
0
-70.5388644059499
87.4116279602051
0.333354187011719
0
8
-70.5349495887756
87.4159286499023
0.333354187011719
0
8
-70.5355544408162
87.4350578943888
0.341687488555908
0
0
-70.5217122077942
87.4340560277303
0.350020853678385
0
0
-70.4775682767232
87.4305627187093
0.351791667938232
0
4
-70.4775682767232
87.4305627187093
0.351791667938232
0
/ub give Blank Augmentation Gem to Donatello Linante

View file

@ -1,3 +0,0 @@
uTank2 NAV 1.2
1
0

View file

@ -1,3 +0,0 @@
uTank2 NAV 1.2
1
0

View file

@ -1,3 +0,0 @@
uTank2 NAV 1.2
1
0

View file

@ -1,3 +0,0 @@
uTank2 NAV 1.2
1
0

View file

@ -1,80 +0,0 @@
uTank2 NAV 1.2
4
13
0
59.3238444010417
-28.5963200251261
0.0500208298365275
0
0
59.3491148948669
-28.6641467094421
0.0500208298365275
0
0
59.3766745567322
-28.7037879625956
0.0500208298365275
0
6
-101.621842416128
-96.3862769524256
2.08333134651184E-05
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.624867598216
-96.6313321431478
2.08333134651184E-05
0
0
-101.650300121307
-96.5992829958598
2.08333134651184E-05
0
0
-101.658966318766
-96.5680073897044
2.08333134651184E-05
0
0
-101.658739980062
-96.5141520659129
2.08333134651184E-05
0
0
-101.658615048726
-96.4844156901042
2.08333134651184E-05
0
0
-101.644858868917
-96.4508747021357
2.08333134651184E-05
0
0
-101.62797349294
-96.4283237934113
2.08333134651184E-05
0
0
-101.62197488149
-96.3871853431066
2.08333134651184E-05
0
6
-101.621842416128
-96.3862769524256
2.08333134651184E-05
0
Stonehold Portal
14
True
-101.616920820872
-96.3639541665713
-0.000262499845121056

View file

@ -1,15 +0,0 @@
uTank2 NAV 1.2
4
2
3
59.3695845603943
-28.744246006012
0.0500250021616618
0
5000
4
59.3695845603943
-28.744246006012
0.0500250021616618
0
/ls

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

8778
met/bore.met Normal file

File diff suppressed because it is too large Load diff

737
met/bore_portal_debug.met Normal file
View file

@ -0,0 +1,737 @@
1
CondAct
5
CType
AType
CData
AData
State
n
n
n
n
n
23
i
21
i
7
TABLE
2
K
V
n
n
1
i
26
TABLE
2
k
v
n
n
1
s
e
s
testvar[navNumber]
TABLE
2
k
v
n
n
1
s
e
s
setvar[navNumber, 1]
s
Default
i
21
i
7
TABLE
2
K
V
n
n
1
i
26
TABLE
2
k
v
n
n
1
s
e
s
testvar[debugPortalRange]
TABLE
2
k
v
n
n
1
s
e
s
setvar[debugPortalRange, 8]
s
Default
i
21
i
7
TABLE
2
K
V
n
n
1
i
26
TABLE
2
k
v
n
n
1
s
e
s
testvar[debugAngle]
TABLE
2
k
v
n
n
1
s
e
s
setvar[debugAngle, 20]
s
Default
i
1
i
3
i
0
TABLE
2
K
V
n
n
5
i
2
s
/vt opt set enablecombat false
i
8
TABLE
2
k
v
n
n
1
s
e
s
\/vt nav load bore_circuit+getvar[navNumber]
i
2
s
/vt opt set enablenav true
i
2
s
/a [portal-debug] started
i
1
s
watch_portal
s
Default
i
2
i
3
TABLE
2
K
V
n
n
13
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[portal, wobjectfindnearestbyobjectclass[14]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
istrue[getvar[portal]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
coordinatedistancewithz[getplayercoordinates[], wobjectgetphysicscoordinates[getvar[portal]]] <= 8
i
21
TABLE
2
K
V
n
n
1
i
26
TABLE
2
k
v
n
n
1
s
e
s
wobjectgetname[getvar[portal]]==Singularity Caul
i
21
TABLE
2
K
V
n
n
1
i
26
TABLE
2
k
v
n
n
1
s
e
s
wobjectgetname[getvar[portal]]#Destroyed.*
i
26
TABLE
2
k
v
n
n
1
s
e
s
wobjectisvalid[getvar[portal]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[portalHeading, getheadingto[getvar[portal]]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[playerHeading, getheading[wobjectgetplayer[]]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]
i
26
TABLE
2
k
v
n
n
1
s
e
s
getvar[relativeAngle] <= getvar[debugAngle]
i
26
TABLE
2
k
v
n
n
1
s
e
s
setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]
TABLE
2
K
V
n
n
3
i
2
s
/vt opt set enablenav false
i
2
s
/vt opt set enablecombat false
i
1
s
avoid_portal
s
watch_portal
i
6
i
1
i
5
s
watch_portal
s
watch_portal
i
1
i
9
i
0
TABLE
2
k
v
n
n
3
s
s
s
watch_portal
s
r
d
1
s
t
d
120
s
watch_portal
i
6
i
8
i
1
TABLE
2
k
v
n
n
1
s
e
s
\/me portalHeading \= +getvar[portalHeading]
s
avoid_portal
i
6
i
8
i
2
TABLE
2
k
v
n
n
1
s
e
s
\/me playerHeading \= +getvar[playerHeading]
s
avoid_portal
i
6
i
8
i
3
TABLE
2
k
v
n
n
1
s
e
s
\/me relativeAngle \= +getvar[relativeAngle]
s
avoid_portal
i
6
i
8
i
4
TABLE
2
k
v
n
n
1
s
e
s
\/me Portal detected ahead\! Avoiding now\!
s
avoid_portal
i
6
i
8
i
5
TABLE
2
k
v
n
n
1
s
e
s
\/me is too close to +wobjectgetname[wobjectfindnearestbyobjectclass[14]]
s
avoid_portal
i
6
i
8
i
6
TABLE
2
k
v
n
n
1
s
e
s
\/me at +coordinatetostring[getplayercoordinates[]]
s
avoid_portal
i
6
i
8
i
7
TABLE
2
k
v
n
n
1
s
e
s
\/ub face +getvar[newHeading]
s
avoid_portal
i
6
i
8
i
9
TABLE
2
k
v
n
n
1
s
e
s
\/ub setmotion forward 1
s
avoid_portal
i
6
i
8
i
11
TABLE
2
k
v
n
n
1
s
e
s
\/ub setmotion forward 0
s
avoid_portal
i
6
i
8
i
12
TABLE
2
k
v
n
n
1
s
e
s
\/ub face +getvar[playerHeading]
s
avoid_portal
i
6
i
8
i
14
TABLE
2
k
v
n
n
1
s
e
s
\/ub setmotion forward 1
s
avoid_portal
i
6
i
8
i
16
TABLE
2
k
v
n
n
1
s
e
s
\/ub setmotion forward 0
s
avoid_portal
i
6
i
8
i
17
TABLE
2
k
v
n
n
1
s
e
s
\/mm nextwp
s
avoid_portal
i
6
i
8
i
18
TABLE
2
k
v
n
n
1
s
e
s
\/vt opt set enablenav true
s
avoid_portal
i
6
i
8
i
19
TABLE
2
k
v
n
n
1
s
e
s
\/vt setmetastate watch_portal
s
avoid_portal
i
1
i
9
i
0
TABLE
2
k
v
n
n
3
s
s
s
watch_portal
s
r
d
1
s
t
d
30
s
avoid_portal

12024
met/neftet.met Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,47 +1,59 @@
uTank2 NAV 1.2
4
8
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ah
0
59.3589282353719
-28.5375727335612
0.0500208298365275
0
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Aged Legendary Key to Nyckelmonster
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Pyreal Mote to Nyckelmonster has leprosy
0
59.3230502764384
-28.538701693217
0.0500208298365275
0
0
59.3176423708598
-28.6058857599894
0.0500208298365275
0
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Desert Flower to Town Crier
0
59.3417902310689
-28.558572324117
0.0500208298365275
0
uTank2 NAV 1.2
4
10
3
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
2000
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ah
3
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
10000
0
59.3589282353719
-28.5375727335612
0.0500208298365275
0
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Aged Legendary Key to Nyckelmonster
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Pyreal Mote to Nyckelmonster has leprosy
0
59.3230502764384
-28.538701693217
0.0500208298365275
0
0
59.3176423708598
-28.6058857599894
0.0500208298365275
0
4
-20.6627984364827
-41.8583373387655
2.08333134651184E-05
0
/ub give Desert Flower to Town Crier
0
59.3417902310689
-28.558572324117
0.0500208298365275
0

View file

@ -1,6 +1,6 @@
uTank2 NAV 1.2
4
34
37
4
59.5416052500407
-28.4145641962687
@ -37,6 +37,24 @@ uTank2 NAV 1.2
0.0500208298365275
0
14000
3
59.5416052500407
-28.4145641962687
0.0500208298365275
0
2000
4
59.5416052500407
-28.4145641962687
0.0500208298365275
0
/vt opt set enablecombat false
3
59.5416052500407
-28.4145641962687
0.0500208298365275
0
2000
4
59.5416052500407
-28.4145641962687

View file

@ -1,94 +1,106 @@
uTank2 NAV 1.2
4
16
2
-66.9188193003337
-87.4330533027649
0.200020837783813
0
1635
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
10000
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ah
0
59.3654500325521
-28.5106864929199
0.0500208298365275
0
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Crystal to Dunking Rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Pearl to Dunking Rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver Pearl of.* to Dunking rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Jewel to Dunking Rares
0
59.4073295593262
-28.4914850870768
0.0500208298365275
0
0
59.4451384862264
-28.4686969121297
0.0500208298365275
0
0
59.4916469573975
-28.4406655629476
0.0500208298365275
0
0
59.5331707000732
-28.4156383514404
0.0500208298365275
0
0
59.5553661346436
-28.4022606531779
0.0500208298365275
0
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
2000
5
-66.9188193003337
-87.4330533027649
0.200020837783813
0
2090184732
Archmage Tawa Matema
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
15000
uTank2 NAV 1.2
4
18
2
-66.9188193003337
-87.4330533027649
0.200020837783813
0
1635
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
10000
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
2000
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ah
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
10000
0
59.3654500325521
-28.5106864929199
0.0500208298365275
0
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Crystal to Dunking Rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Pearl to Dunking Rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver Pearl of.* to Dunking rares
4
-66.9188193003337
-87.4330533027649
0.200020837783813
0
/ub giver .*s Jewel to Dunking Rares
0
59.4073295593262
-28.4914850870768
0.0500208298365275
0
0
59.4451384862264
-28.4686969121297
0.0500208298365275
0
0
59.4916469573975
-28.4406655629476
0.0500208298365275
0
0
59.5331707000732
-28.4156383514404
0.0500208298365275
0
0
59.5553661346436
-28.4022606531779
0.0500208298365275
0
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
2000
5
-66.9188193003337
-87.4330533027649
0.200020837783813
0
2090184732
Archmage Tawa Matema
3
-66.9188193003337
-87.4330533027649
0.200020837783813
0
15000

View file

@ -1,166 +1,178 @@
uTank2 NAV 1.2
4
30
4
0.290325609842936
12.8991326014201
0.505020840962728
0
/ah
0
59.3391182581584
-28.5698016484578
0.0500208298365275
0
0
59.3474183400472
-28.642045211792
0.0500208298365275
0
0
59.3728528340658
-28.7127680460612
0.0500208298365275
0
6
0.290325609842936
12.8991326014201
0.505020840962728
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.616666666667
-96.6416666666667
2.08333134651184E-05
0
0
-101.64253505071
-96.6452861785889
0.0016500249505043
0
0
-101.662716706594
-96.6559891382853
0.00165002482632796
0
0
-101.675818443298
-96.6448277155558
0.0016500249505043
0
0
-101.719348303477
-96.6424158732096
2.08333134651184E-05
0
0
-101.774861923854
-96.6412211418152
2.08333134651184E-05
0
0
-101.821700763702
-96.6269437154134
2.08333134651184E-05
0
0
-101.862150184313
-96.6113576730092
2.08333134651184E-05
0
0
-101.89187712272
-96.5944122632345
2.08333134651184E-05
0
0
-101.902640759945
-96.5855490207672
2.08333134651184E-05
0
6
0.290325609842936
12.8991326014201
0.505020840962728
0
Portal to Zaikhal
14
True
-101.90858749946
-96.5742208321889
-0.000262499845121056
0
0.720262495676676
13.4820291678111
0.516687520345052
0
0
0.713395754496256
13.4727714061737
0.516687520345052
0
0
0.665600776672363
13.4083341916402
0.516687520345052
0
0
0.62157408396403
13.3489774068197
0.516687520345052
0
0
0.56314689318339
13.2702057222525
0.516687520345052
0
0
0.506190089384715
13.1934164047241
0.516687520345052
0
0
0.458754703402519
13.1184103647868
0.516687520345052
0
0
0.410221227010091
13.0219042460124
0.516687520345052
0
0
0.369902928670247
12.9343770980835
0.516687520345052
0
0
0.356616465250651
12.9035316467285
0.516687520345052
0
0
0.342600440979004
12.9009261131287
0.516687520345052
0
0
0.335803922017415
12.8996931393941
0.513216876983643
0
0
0.307551638285319
12.9003104527791
0.505020840962728
0
0
0.291769409179688
12.8996525764465
0.505020840962728
0
uTank2 NAV 1.2
4
32
3
0.290325609842936
12.8991326014201
0.505020840962728
0
2000
4
0.290325609842936
12.8991326014201
0.505020840962728
0
/ah
3
0.290325609842936
12.8991326014201
0.505020840962728
0
10000
0
59.3391182581584
-28.5698016484578
0.0500208298365275
0
0
59.3474183400472
-28.642045211792
0.0500208298365275
0
0
59.3728528340658
-28.7127680460612
0.0500208298365275
0
6
0.290325609842936
12.8991326014201
0.505020840962728
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.616666666667
-96.6416666666667
2.08333134651184E-05
0
0
-101.64253505071
-96.6452861785889
0.0016500249505043
0
0
-101.662716706594
-96.6559891382853
0.00165002482632796
0
0
-101.675818443298
-96.6448277155558
0.0016500249505043
0
0
-101.719348303477
-96.6424158732096
2.08333134651184E-05
0
0
-101.774861923854
-96.6412211418152
2.08333134651184E-05
0
0
-101.821700763702
-96.6269437154134
2.08333134651184E-05
0
0
-101.862150184313
-96.6113576730092
2.08333134651184E-05
0
0
-101.89187712272
-96.5944122632345
2.08333134651184E-05
0
0
-101.902640759945
-96.5855490207672
2.08333134651184E-05
0
6
0.290325609842936
12.8991326014201
0.505020840962728
0
Portal to Zaikhal
14
True
-101.90858749946
-96.5742208321889
-0.000262499845121056
0
0.720262495676676
13.4820291678111
0.516687520345052
0
0
0.713395754496256
13.4727714061737
0.516687520345052
0
0
0.665600776672363
13.4083341916402
0.516687520345052
0
0
0.62157408396403
13.3489774068197
0.516687520345052
0
0
0.56314689318339
13.2702057222525
0.516687520345052
0
0
0.506190089384715
13.1934164047241
0.516687520345052
0
0
0.458754703402519
13.1184103647868
0.516687520345052
0
0
0.410221227010091
13.0219042460124
0.516687520345052
0
0
0.369902928670247
12.9343770980835
0.516687520345052
0
0
0.356616465250651
12.9035316467285
0.516687520345052
0
0
0.342600440979004
12.9009261131287
0.516687520345052
0
0
0.335803922017415
12.8996931393941
0.513216876983643
0
0
0.307551638285319
12.9003104527791
0.505020840962728
0
0
0.291769409179688
12.8996525764465
0.505020840962728
0

View file

@ -1,268 +1,280 @@
uTank2 NAV 1.2
4
49
4
69.2576966335376
21.0394041061401
1.55835838317871
0
/ah
0
59.33140001297
-28.5141708374023
0.0500208298365275
0
0
59.3367788632711
-28.5514219919841
0.0500208298365275
0
0
59.3438238461812
-28.6002114613851
0.0500208298365275
0
0
59.3501054128011
-28.643714427948
0.0500208298365275
0
0
59.3678607940674
-28.6857304573059
0.0500208298365275
0
0
59.3781589190165
-28.7052095731099
0.0500208298365275
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.616666666667
-96.6416666666667
2.08333134651184E-05
0
0
-101.630543899536
-96.624179204305
2.08333134651184E-05
0
0
-101.648587163289
-96.6014418125153
2.08333134651184E-05
0
0
-101.657457033793
-96.5852226257324
2.08333134651184E-05
0
0
-101.657742754618
-96.5714865366618
2.08333134651184E-05
0
0
-101.658627955119
-96.528927119573
2.08333134651184E-05
0
0
-101.656057039897
-96.4864250183105
2.08333134651184E-05
0
0
-101.647886689504
-96.4689997673035
2.08333134651184E-05
0
0
-101.632481352488
-96.4561146179835
2.08333134651184E-05
0
0
-101.614096387227
-96.4407372872035
2.08333134651184E-05
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Eastham Portal
14
True
-101.5896220843
-96.4334579149882
-0.000262499845121056
0
63.4793874740601
16.9192083358765
0.072571873664856
0
0
63.4928064982096
16.9372613271077
0.0764649232228597
0
0
63.5366132100423
16.9968217213949
0.0833541631698608
0
0
63.5774626413981
17.05239721934
0.0810656150182088
0
0
63.620875676473
17.1114593505859
0.0774478594462077
0
0
63.6814796229204
17.193909072876
0.0750208298365275
0
0
63.7291743755341
17.2587953905265
0.0750208298365275
0
0
63.7789425134659
17.3265012264252
0.0750208298365275
0
0
63.8227389335632
17.3860832850138
0.0750208298365275
0
0
63.8672392845154
17.4466229438782
0.0735842227935791
0
0
63.909312470754
17.5038606325785
0.0700781265894572
0
0
63.9519573847453
17.5618748346965
0.0665243824323018
0
0
63.9905928929647
17.6144162495931
0.0637221852938334
0
0
64.0450474739075
17.6655643463135
0.0688688437143962
0
0
64.1041604995728
17.7130848884583
0.0772016445795695
0
0
64.1742481549581
17.7613271077474
0.0833541631698608
0
0
64.2320023854574
17.8033490498861
0.0833541631698608
0
0
64.288756942749
17.8422618865967
0.0833541631698608
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Asheron's Island
14
True
64.3230124791463
17.8632041931152
0.0830708369612694
0
69.3268124977748
16.1235166549683
-0.000395833204189936
0
0
69.3279716571172
16.1466807365417
-0.000395833204189936
0
0
69.3342680931091
16.1837696711222
-0.000395833204189936
0
4
69.2576966335376
21.0394041061401
1.55835838317871
0
/ub use Asheron's Castle
0
69.1869384765625
21.251341688633
1.55779927571615
0
0
69.1874025344849
21.2262962341309
1.55835838317871
0
0
69.1707539876302
21.2072292327881
1.55835838317871
0
0
69.1871993382772
21.181037457784
1.55835838317871
0
0
69.1883096059163
21.1546599706014
1.55835838317871
0
0
69.218355623881
21.1047309239705
1.55835838317871
0
0
69.2576473236084
21.0394859949748
1.55835838317871
0
uTank2 NAV 1.2
4
51
3
69.2576966335376
21.0394041061401
1.55835838317871
0
2000
4
69.2576966335376
21.0394041061401
1.55835838317871
0
/ah
3
69.2576966335376
21.0394041061401
1.55835838317871
0
10000
0
59.33140001297
-28.5141708374023
0.0500208298365275
0
0
59.3367788632711
-28.5514219919841
0.0500208298365275
0
0
59.3438238461812
-28.6002114613851
0.0500208298365275
0
0
59.3501054128011
-28.643714427948
0.0500208298365275
0
0
59.3678607940674
-28.6857304573059
0.0500208298365275
0
0
59.3781589190165
-28.7052095731099
0.0500208298365275
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Portal to Town Network
14
True
59.3936458587647
-28.7256083488464
0.0508250035345554
0
-101.616666666667
-96.6416666666667
2.08333134651184E-05
0
0
-101.630543899536
-96.624179204305
2.08333134651184E-05
0
0
-101.648587163289
-96.6014418125153
2.08333134651184E-05
0
0
-101.657457033793
-96.5852226257324
2.08333134651184E-05
0
0
-101.657742754618
-96.5714865366618
2.08333134651184E-05
0
0
-101.658627955119
-96.528927119573
2.08333134651184E-05
0
0
-101.656057039897
-96.4864250183105
2.08333134651184E-05
0
0
-101.647886689504
-96.4689997673035
2.08333134651184E-05
0
0
-101.632481352488
-96.4561146179835
2.08333134651184E-05
0
0
-101.614096387227
-96.4407372872035
2.08333134651184E-05
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Eastham Portal
14
True
-101.5896220843
-96.4334579149882
-0.000262499845121056
0
63.4793874740601
16.9192083358765
0.072571873664856
0
0
63.4928064982096
16.9372613271077
0.0764649232228597
0
0
63.5366132100423
16.9968217213949
0.0833541631698608
0
0
63.5774626413981
17.05239721934
0.0810656150182088
0
0
63.620875676473
17.1114593505859
0.0774478594462077
0
0
63.6814796229204
17.193909072876
0.0750208298365275
0
0
63.7291743755341
17.2587953905265
0.0750208298365275
0
0
63.7789425134659
17.3265012264252
0.0750208298365275
0
0
63.8227389335632
17.3860832850138
0.0750208298365275
0
0
63.8672392845154
17.4466229438782
0.0735842227935791
0
0
63.909312470754
17.5038606325785
0.0700781265894572
0
0
63.9519573847453
17.5618748346965
0.0665243824323018
0
0
63.9905928929647
17.6144162495931
0.0637221852938334
0
0
64.0450474739075
17.6655643463135
0.0688688437143962
0
0
64.1041604995728
17.7130848884583
0.0772016445795695
0
0
64.1742481549581
17.7613271077474
0.0833541631698608
0
0
64.2320023854574
17.8033490498861
0.0833541631698608
0
0
64.288756942749
17.8422618865967
0.0833541631698608
0
6
69.2576966335376
21.0394041061401
1.55835838317871
0
Asheron's Island
14
True
64.3230124791463
17.8632041931152
0.0830708369612694
0
69.3268124977748
16.1235166549683
-0.000395833204189936
0
0
69.3279716571172
16.1466807365417
-0.000395833204189936
0
0
69.3342680931091
16.1837696711222
-0.000395833204189936
0
4
69.2576966335376
21.0394041061401
1.55835838317871
0
/ub use Asheron's Castle
0
69.1869384765625
21.251341688633
1.55779927571615
0
0
69.1874025344849
21.2262962341309
1.55835838317871
0
0
69.1707539876302
21.2072292327881
1.55835838317871
0
0
69.1871993382772
21.181037457784
1.55835838317871
0
0
69.1883096059163
21.1546599706014
1.55835838317871
0
0
69.218355623881
21.1047309239705
1.55835838317871
0
0
69.2576473236084
21.0394859949748
1.55835838317871
0

View file

@ -1,216 +1,228 @@
uTank2 NAV 1.2
4
39
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/ah
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
5000
0
59.3230046590169
-28.5345523198446
0.0500208298365275
0
0
59.3193101882935
-28.5619935353597
0.0500208298365275
0
0
59.3131786346436
-28.5862298329671
0.0500208298365275
0
0
59.2979978561401
-28.6134601593018
0.0500208298365275
0
0
59.2851696014404
-28.6385901133219
0.0500208298365275
0
0
59.2723521868388
-28.6662947018941
0.0500208298365275
0
0
59.2498823801676
-28.690824508667
0.0500208298365275
0
0
59.2364237785339
-28.7100222269694
0.0500208298365275
0
0
59.2199646949768
-28.7288571357727
0.0500208298365275
0
0
59.1952438036601
-28.7293816248576
0.0500208298365275
0
0
59.1777567227681
-28.7301217714945
0.0500208298365275
0
0
59.1478868166606
-28.7315408388774
0.0500208298365275
0
0
59.1143533070882
-28.7364347457886
0.0500208298365275
0
0
59.0816901365916
-28.7412015914917
0.0500208298365275
0
0
59.0604732990265
-28.7589333852132
0.0500208298365275
0
0
59.0547447681427
-28.7738886515299
0.0500208298365275
0
0
59.053876320521
-28.7911163330078
0.0500208298365275
0
0
59.058607562383
-28.8055153210958
0.0500208298365275
0
0
59.0652321497599
-28.8127133369446
0.0500208298365275
0
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/ub give 1 A'nekshay Gem of Lesser Knowledge to Agent of the Arcanum
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
3000
2
59.0599030017853
-28.8052037556966
0.0500208298365275
0
2645
0
0.73098045984904
13.4349609375
0.516687520345052
0
0
0.755778630574544
13.3196397225062
0.516687520345052
0
0
0.74760258992513
13.2350578308105
0.516687520345052
0
0
0.737128639221191
13.1514392217
0.516687520345052
0
0
0.729373168945312
13.0487908045451
0.516687520345052
0
0
0.719842878977458
12.9712547302246
0.516687520345052
0
0
0.712120008468628
12.8991107622782
0.516687520345052
0
0
0.708513228098551
12.8574991226196
0.516687520345052
0
0
0.710257911682129
12.8318621953328
0.516687520345052
0
6
59.0599030017853
-28.8052037556966
0.0500208298365275
0
Radiant Blood Gauntlet
14
True
0.727877902984619
12.8103116671244
0.516404211521149
0
-30.2602673212687
-16.387560971578
2.08333134651184E-05
0
0
-30.2920483907064
-16.3728627920151
2.08333134651184E-05
0
6
59.0599030017853
-28.8052037556966
0.0500208298365275
0
Gauntlet Arena
37
True
-30.3333333333333
-16.35
0
0
-30.4160812695821
-22.1452540397644
2.29167441527049E-05
0
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/a Knock knock!
uTank2 NAV 1.2
4
41
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
2000
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/ah
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
10000
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
5000
0
59.3230046590169
-28.5345523198446
0.0500208298365275
0
0
59.3193101882935
-28.5619935353597
0.0500208298365275
0
0
59.3131786346436
-28.5862298329671
0.0500208298365275
0
0
59.2979978561401
-28.6134601593018
0.0500208298365275
0
0
59.2851696014404
-28.6385901133219
0.0500208298365275
0
0
59.2723521868388
-28.6662947018941
0.0500208298365275
0
0
59.2498823801676
-28.690824508667
0.0500208298365275
0
0
59.2364237785339
-28.7100222269694
0.0500208298365275
0
0
59.2199646949768
-28.7288571357727
0.0500208298365275
0
0
59.1952438036601
-28.7293816248576
0.0500208298365275
0
0
59.1777567227681
-28.7301217714945
0.0500208298365275
0
0
59.1478868166606
-28.7315408388774
0.0500208298365275
0
0
59.1143533070882
-28.7364347457886
0.0500208298365275
0
0
59.0816901365916
-28.7412015914917
0.0500208298365275
0
0
59.0604732990265
-28.7589333852132
0.0500208298365275
0
0
59.0547447681427
-28.7738886515299
0.0500208298365275
0
0
59.053876320521
-28.7911163330078
0.0500208298365275
0
0
59.058607562383
-28.8055153210958
0.0500208298365275
0
0
59.0652321497599
-28.8127133369446
0.0500208298365275
0
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/ub give 1 A'nekshay Gem of Lesser Knowledge to Agent of the Arcanum
3
59.0599030017853
-28.8052037556966
0.0500208298365275
0
3000
2
59.0599030017853
-28.8052037556966
0.0500208298365275
0
2645
0
0.73098045984904
13.4349609375
0.516687520345052
0
0
0.755778630574544
13.3196397225062
0.516687520345052
0
0
0.74760258992513
13.2350578308105
0.516687520345052
0
0
0.737128639221191
13.1514392217
0.516687520345052
0
0
0.729373168945312
13.0487908045451
0.516687520345052
0
0
0.719842878977458
12.9712547302246
0.516687520345052
0
0
0.712120008468628
12.8991107622782
0.516687520345052
0
0
0.708513228098551
12.8574991226196
0.516687520345052
0
0
0.710257911682129
12.8318621953328
0.516687520345052
0
6
59.0599030017853
-28.8052037556966
0.0500208298365275
0
Radiant Blood Gauntlet
14
True
0.727877902984619
12.8103116671244
0.516404211521149
0
-30.2602673212687
-16.387560971578
2.08333134651184E-05
0
0
-30.2920483907064
-16.3728627920151
2.08333134651184E-05
0
6
59.0599030017853
-28.8052037556966
0.0500208298365275
0
Gauntlet Arena
37
True
-30.3333333333333
-16.35
0
0
-30.4160812695821
-22.1452540397644
2.29167441527049E-05
0
4
59.0599030017853
-28.8052037556966
0.0500208298365275
0
/a Knock knock!

View file

@ -1,271 +1,271 @@
uTank2 NAV 1.2
4
53
0
-101.643393707275
17.8825289090474
2.08333134651184E-05
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.592045052846
17.8805678685506
-0.0999791701634725
0
0
-101.554651578267
17.8813594023387
-0.0999791701634725
0
0
-101.533706283569
17.8833907604218
-0.0999791701634725
0
0
-101.534181054433
17.8413492997487
-0.0999791701634725
0
0
-101.48626130422
17.841304953893
-0.0999791701634725
0
0
-101.490094470978
17.8813687324524
-0.0999791701634725
0
0
-101.407286643982
17.884686867396
-0.124979170163473
0
0
-101.441320260366
17.801603158315
-0.124979170163473
0
0
-101.466675154368
17.7969429810842
-0.124979170163473
0
0
-101.516472848256
17.8459821859996
-0.124979170163473
0
0
-101.531043752035
17.8853654225667
-0.124979170163473
0
0
-101.575432650248
17.8846518675486
-0.124979170163473
0
0
-101.575820668538
17.7591938654582
-0.149979162216187
0
0
-101.529988797506
17.7609985669454
-0.149979162216187
0
0
-101.53424466451
17.8423960208893
-0.174979162216187
0
0
-101.583576202393
17.8416724999746
-0.174979162216187
0
0
-101.57072356542
17.8728516896566
-0.174979162216187
0
0
-101.595848846436
17.8807149728139
-0.174979162216187
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.622127024333
17.8804373105367
-0.274979146321615
0
0
-101.616229724884
17.9339917182922
-0.274979146321615
0
0
-101.612587674459
17.9819168567657
-0.296296882629395
0
0
-101.615892442067
18.0119011123975
-0.299979146321615
0
0
-101.590025297801
18.0101968288422
-0.303131580352783
0
0
-101.529243914286
18.0071381568909
-0.324979146321615
0
0
-101.53581682841
17.9724334478378
-0.324979146321615
0
0
-101.572706063588
17.9642690896988
-0.324979146321615
0
0
-101.578296979268
17.9251905759176
-0.324979146321615
0
0
-101.61803188324
17.9257889827093
-0.324979146321615
0
0
-101.620800844828
17.9667853593826
-0.324979146321615
0
0
-101.617472012838
18.0454295317332
-0.349979146321615
0
0
-101.660903453827
18.0499082385407
-0.349979146321615
0
0
-101.658096440633
17.9865849812826
-0.374979146321615
0
0
-101.658587837219
17.9719900369644
-0.374979146321615
0
0
-101.69858379364
17.9644167820613
-0.374979146321615
0
0
-101.706780131658
17.9288707415263
-0.374979146321615
0
0
-101.743702141444
17.921234814326
-0.374979146321615
0
0
-101.775855763753
17.9226232131322
-0.374979146321615
0
0
-101.784734662374
17.9344542185465
-0.374979146321615
0
0
-101.78315264384
18.0072518110275
-0.349979146321615
0
0
-101.86580046018
18.008648399512
-0.374979146321615
0
0
-101.888455645243
18.0071597099304
-0.374979146321615
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.913387115796
18.0075169881185
-0.474979146321615
0
0
-101.889330867926
18.0084470907847
-0.474979146321615
0
0
-101.844996301333
17.9643644889196
-0.474979146321615
0
0
-101.825047651927
17.9635365645091
-0.474979146321615
0
0
-101.821242467562
17.9419899145762
-0.474979146321615
0
0
-101.786994679769
17.9041363716125
-0.474979146321615
0
0
-101.782102791468
17.8818953514099
-0.474979146321615
0
0
-101.747181431452
17.8816454569499
-0.474979146321615
0
uTank2 NAV 1.2
4
53
0
-101.643393707275
17.8825289090474
2.08333134651184E-05
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.592045052846
17.8805678685506
-0.0999791701634725
0
0
-101.554651578267
17.8813594023387
-0.0999791701634725
0
0
-101.533706283569
17.8833907604218
-0.0999791701634725
0
0
-101.534181054433
17.8413492997487
-0.0999791701634725
0
0
-101.48626130422
17.841304953893
-0.0999791701634725
0
0
-101.490094470978
17.8813687324524
-0.0999791701634725
0
0
-101.407286643982
17.884686867396
-0.124979170163473
0
0
-101.441320260366
17.801603158315
-0.124979170163473
0
0
-101.466675154368
17.7969429810842
-0.124979170163473
0
0
-101.516472848256
17.8459821859996
-0.124979170163473
0
0
-101.531043752035
17.8853654225667
-0.124979170163473
0
0
-101.575432650248
17.8846518675486
-0.124979170163473
0
0
-101.575820668538
17.7591938654582
-0.149979162216187
0
0
-101.529988797506
17.7609985669454
-0.149979162216187
0
0
-101.53424466451
17.8423960208893
-0.174979162216187
0
0
-101.583576202393
17.8416724999746
-0.174979162216187
0
0
-101.57072356542
17.8728516896566
-0.174979162216187
0
0
-101.595848846436
17.8807149728139
-0.174979162216187
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.622127024333
17.8804373105367
-0.274979146321615
0
0
-101.616229724884
17.9339917182922
-0.274979146321615
0
0
-101.612587674459
17.9819168567657
-0.296296882629395
0
0
-101.615892442067
18.0119011123975
-0.299979146321615
0
0
-101.590025297801
18.0101968288422
-0.303131580352783
0
0
-101.529243914286
18.0071381568909
-0.324979146321615
0
0
-101.53581682841
17.9724334478378
-0.324979146321615
0
0
-101.572706063588
17.9642690896988
-0.324979146321615
0
0
-101.578296979268
17.9251905759176
-0.324979146321615
0
0
-101.61803188324
17.9257889827093
-0.324979146321615
0
0
-101.620800844828
17.9667853593826
-0.324979146321615
0
0
-101.617472012838
18.0454295317332
-0.349979146321615
0
0
-101.660903453827
18.0499082385407
-0.349979146321615
0
0
-101.658096440633
17.9865849812826
-0.374979146321615
0
0
-101.658587837219
17.9719900369644
-0.374979146321615
0
0
-101.69858379364
17.9644167820613
-0.374979146321615
0
0
-101.706780131658
17.9288707415263
-0.374979146321615
0
0
-101.743702141444
17.921234814326
-0.374979146321615
0
0
-101.775855763753
17.9226232131322
-0.374979146321615
0
0
-101.784734662374
17.9344542185465
-0.374979146321615
0
0
-101.78315264384
18.0072518110275
-0.349979146321615
0
0
-101.86580046018
18.008648399512
-0.374979146321615
0
0
-101.888455645243
18.0071597099304
-0.374979146321615
0
4
-101.742709143957
17.8811597506205
-0.474979146321615
0
/ub jumpsw 300
0
-101.913387115796
18.0075169881185
-0.474979146321615
0
0
-101.889330867926
18.0084470907847
-0.474979146321615
0
0
-101.844996301333
17.9643644889196
-0.474979146321615
0
0
-101.825047651927
17.9635365645091
-0.474979146321615
0
0
-101.821242467562
17.9419899145762
-0.474979146321615
0
0
-101.786994679769
17.9041363716125
-0.474979146321615
0
0
-101.782102791468
17.8818953514099
-0.474979146321615
0
0
-101.747181431452
17.8816454569499
-0.474979146321615
0

View file

@ -1,18 +1,18 @@
uTank2 NAV 1.2
2
3
0
-101.742507108053
17.8811453342438
-0.474979146321615
0
0
-101.743644094467
17.9669194221497
-0.474979146321615
0
0
-101.740604893366
17.7961617628733
-0.474979146321615
0
uTank2 NAV 1.2
2
3
0
-101.742507108053
17.8811453342438
-0.474979146321615
0
0
-101.743644094467
17.9669194221497
-0.474979146321615
0
0
-101.740604893366
17.7961617628733
-0.474979146321615
0

View file

@ -1,109 +1,109 @@
uTank2 NAV 1.2
4
20
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/ls
0
56.7849270820618
33.5499019304911
0.175027084350586
0
0
56.8555516878764
33.5573837280273
0.175027084350586
0
0
56.8688308080037
33.5700054804484
0.175027084350586
0
0
56.8913924535116
33.5747497240702
0.175027084350586
0
0
56.8944530804952
33.5924549102783
0.175027084350586
0
0
56.8896083196004
33.5994212468465
0.175027084350586
0
0
56.88939037323
33.609014860789
0.175027084350586
0
0
56.8965542793274
33.6094929377238
0.175027084350586
0
0
56.9181836128235
33.6086446762085
0.175027084350586
0
0
56.9212248484294
33.6120755195618
0.175027084350586
0
0
56.9192909558614
33.6253411610921
0.175027084350586
0
0
56.901512781779
33.6277666091919
0.175027084350586
0
0
56.8828212738037
33.6292119026184
0.175027084350586
0
0
56.8678261756897
33.6242294629415
0.175027084350586
0
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm setkey Aged Legendary Key
3
56.8759250640869
33.6262591044108
0.175027084350586
0
1000
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm setchest Legendary Chest
3
56.8759250640869
33.6262591044108
0.175027084350586
0
1000
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm lootchest
uTank2 NAV 1.2
4
20
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/ls
0
56.7849270820618
33.5499019304911
0.175027084350586
0
0
56.8555516878764
33.5573837280273
0.175027084350586
0
0
56.8688308080037
33.5700054804484
0.175027084350586
0
0
56.8913924535116
33.5747497240702
0.175027084350586
0
0
56.8944530804952
33.5924549102783
0.175027084350586
0
0
56.8896083196004
33.5994212468465
0.175027084350586
0
0
56.88939037323
33.609014860789
0.175027084350586
0
0
56.8965542793274
33.6094929377238
0.175027084350586
0
0
56.9181836128235
33.6086446762085
0.175027084350586
0
0
56.9212248484294
33.6120755195618
0.175027084350586
0
0
56.9192909558614
33.6253411610921
0.175027084350586
0
0
56.901512781779
33.6277666091919
0.175027084350586
0
0
56.8828212738037
33.6292119026184
0.175027084350586
0
0
56.8678261756897
33.6242294629415
0.175027084350586
0
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm setkey Aged Legendary Key
3
56.8759250640869
33.6262591044108
0.175027084350586
0
1000
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm setchest Legendary Chest
3
56.8759250640869
33.6262591044108
0.175027084350586
0
1000
4
56.8759250640869
33.6262591044108
0.175027084350586
0
/mm lootchest

View file

@ -1,37 +1,37 @@
uTank2 NAV 1.2
4
6
3
-101.033671673139
-65.3833518981934
0.0250270823637644
0
5000
2
-101.033671673139
-65.3833518981934
0.0250270823637644
0
2647
3
-101.033671673139
-65.3833518981934
0.0250270823637644
0
5000
0
-101.025
-65.4
0.0250270823637644
0
0
-101.033671673139
-65.3833518981934
0.0250270823637644
0
4
-101.033671673139
-65.3833518981934
0.0250270823637644
0
/ub face 180
uTank2 NAV 1.2
4
6
3
-101.033671673139
-65.3833518981934
0.0250270823637644
0
5000
2
-101.033671673139
-65.3833518981934
0.0250270823637644
0
2647
3
-101.033671673139
-65.3833518981934
0.0250270823637644
0
5000
0
-101.025
-65.4
0.0250270823637644
0
0
-101.033671673139
-65.3833518981934
0.0250270823637644
0
4
-101.033671673139
-65.3833518981934
0.0250270823637644
0
/ub face 180

View file

@ -1,26 +1,26 @@
uTank2 NAV 1.2
4
4
0
-100.903506819407
-15.7145868619283
2.08333134651184E-05
0
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/tell brycter's tinker, primary
3
59.305216662089
-28.7897483189901
0.0500208298365275
0
15000
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/ub portal Gateway
uTank2 NAV 1.2
4
4
0
-100.903506819407
-15.7145868619283
2.08333134651184E-05
0
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/tell brycter's tinker, primary
3
59.305216662089
-28.7897483189901
0.0500208298365275
0
15000
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/ub portal Gateway

View file

@ -1,26 +1,26 @@
uTank2 NAV 1.2
4
4
0
-100.903506819407
-15.7145868619283
2.08333134651184E-05
0
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/tell brycter's tinker, secondary
3
59.305216662089
-28.7897483189901
0.0500208298365275
0
15000
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/ub portal Gateway
uTank2 NAV 1.2
4
4
0
-100.903506819407
-15.7145868619283
2.08333134651184E-05
0
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/tell brycter's tinker, secondary
3
59.305216662089
-28.7897483189901
0.0500208298365275
0
15000
4
59.305216662089
-28.7897483189901
0.0500208298365275
0
/ub portal Gateway

View file

@ -1,12 +1,24 @@
uTank2 NAV 1.2
4
59
61
3
-7.01842756271362
85.16130250295
0.370020866394043
0
2000
4
-7.01842756271362
85.16130250295
0.370020866394043
0
/ah
3
-7.01842756271362
85.16130250295
0.370020866394043
0
10000
0
59.3384010632833
-28.6191628138224

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2
4
20
24
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
2000
4
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
/vt opt set enablecombat false
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
2000
4
-100.944974994659
-15.6830624977748
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-15.6830624977748
2.08333134651184E-05
0
10000
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
22000
4
-100.944974994659

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2
4
5
9
3
59.3687468528748
-28.5195071538289
0.0500208298365275
0
2000
4
59.3687468528748
-28.5195071538289
0.0500208298365275
0
/vt opt set enablecombat false
3
59.3687468528748
-28.5195071538289
0.0500208298365275
0
2000
4
59.3687468528748
-28.5195071538289
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-28.5195071538289
0.0500208298365275
0
10000
3
59.3687468528748
-28.5195071538289
0.0500208298365275
0
15000
4
59.3687468528748

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2
4
19
23
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
2000
4
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
/vt opt set enablecombat false
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
2000
4
-100.944974994659
-15.6830624977748
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-15.6830624977748
2.08333134651184E-05
0
10000
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
20000
0
-100.925855763753

View file

@ -1,12 +1,36 @@
uTank2 NAV 1.2
4
20
24
3
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
2000
4
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
/vt opt set enablecombat false
3
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
2000
4
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
/ah
3
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
10000
0
59.3255796750387
-28.5361920038859

Some files were not shown because too many files have changed in this diff Show more