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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {combat} ~~ { STATE: {combat} ~~ {
IF: NoMobsInDist 5 IF: NoMobsInDist 5
DO: DoAll DO: DoAll
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
SetState {hunt} SetState {hunt}
IF: SecsInStateGE 180 IF: SecsInStateGE 180
DO: DoAll DO: DoAll
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
SetState {hunt} SetState {hunt}
~~ } ~~ }
STATE: {death} ~~ { STATE: {death} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
Chat {/a ARGH I died!} Chat {/a ARGH I died!}
IF: ExitPortal IF: ExitPortal
DO: SetState {tusker_run} DO: SetState {tusker_run}
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true} Chat {/ub opt set VTank.PatchExpressionEngine true}
Chat {/vt opt set defaultmeleeattackheight 3} Chat {/vt opt set defaultmeleeattackheight 3}
Chat {/vt opt set lootallcorpses false} Chat {/vt opt set lootallcorpses false}
Chat {/vt opt set lootonlyrarecorpses true} Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set lootpriorityboost true} Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set navpriorityboost false} Chat {/vt opt set navpriorityboost false}
Chat {/vt opt set attackdistance 0.0333333} Chat {/vt opt set attackdistance 0.0333333}
Chat {/vt opt set CorpseApproachRange-Max 0.05} Chat {/vt opt set CorpseApproachRange-Max 0.05}
Chat {/vt opt set approachdistance 0} Chat {/vt opt set approachdistance 0}
Chat {/vt opt set idlepeacemode false} Chat {/vt opt set idlepeacemode false}
Chat {/vt opt set stopmacroondeath false} Chat {/vt opt set stopmacroondeath false}
Chat {/vt opt set enablelooting false} Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]} ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
DoExpr {setvar[lootclock,stopwatchcreate[]]} DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]} DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt} SetState {hunt}
~~ } ~~ }
STATE: {hunt} ~~ { STATE: {hunt} ~~ {
IF: Always IF: Always
DO: Chat {/vt opt set enablenav true} DO: Chat {/vt opt set enablenav true}
IF: Expr {getvar[lootTime] == 0} IF: Expr {getvar[lootTime] == 0}
DO: DoExpr {setvar[lootTime, 21600]} DO: DoExpr {setvar[lootTime, 21600]}
IF: Death IF: Death
DO: SetState {death} DO: SetState {death}
IF: MobsInDist_Name 1 5 {} IF: MobsInDist_Name 1 5 {}
DO: DoAll DO: DoAll
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablenav false} Chat {/vt opt set enablenav false}
SetState {combat} SetState {combat}
IF: Always IF: Always
DO: SetWatchdog 10 600 {tusker_run} DO: SetWatchdog 10 600 {tusker_run}
IF: ItemCountLE 100 {Prismatic Taper} IF: ItemCountLE 100 {Prismatic Taper}
DO: DoAll DO: DoAll
SetState {out_of_comp} SetState {out_of_comp}
IF: DistToRteGE 100 IF: DistToRteGE 100
DO: SetState {tusker_run} DO: SetState {tusker_run}
IF: All IF: All
Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]} Expr {stopwatchelapsedseconds[getvar[lootclock]]>getvar[lootTime]}
DO: DoAll DO: DoAll
SetState {loot} SetState {loot}
~~ } ~~ }
STATE: {loot} ~~ { STATE: {loot} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
Chat {/vt opt set lootpriorityboost false} Chat {/vt opt set lootpriorityboost false}
Chat {/vt opt set lootonlyrarecorpses false} Chat {/vt opt set lootonlyrarecorpses false}
Chat {/vt opt set enablelooting true} Chat {/vt opt set enablelooting true}
IF: SecsInStateGE 300 IF: SecsInStateGE 300
DO: DoAll DO: DoAll
Chat {/vt opt set enablelooting false} Chat {/vt opt set enablelooting false}
Chat {/vt opt set lootpriorityboost true} Chat {/vt opt set lootpriorityboost true}
Chat {/vt opt set lootonlyrarecorpses true} Chat {/vt opt set lootonlyrarecorpses true}
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
DoExpr {setvar[lootclock,stopwatchcreate[]]} DoExpr {setvar[lootclock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[lootclock]]} DoExpr {stopwatchstart[getvar[lootclock]]}
SetState {hunt} SetState {hunt}
~~ } ~~ }
STATE: {loot_rare} ~~ { STATE: {loot_rare} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt opt set enablelooting true} Chat {/vt opt set enablelooting true}
Chat {/vt opt set enablenav false} Chat {/vt opt set enablenav false}
IF: SecsInStateGE 30 IF: SecsInStateGE 30
DO: DoAll DO: DoAll
Chat {/vt opt set enablelooting false} Chat {/vt opt set enablelooting false}
SetState {hunt} SetState {hunt}
~~ } ~~ }
STATE: {out_of_comp} ~~ { STATE: {out_of_comp} ~~ {
IF: Always IF: Always
DO: Chat {/vt opt set enablecombat false} DO: Chat {/vt opt set enablecombat false}
IF: Always IF: Always
DO: Chat {/vt nav load ah_recomp} DO: Chat {/vt nav load ah_recomp}
IF: NavEmpty IF: NavEmpty
DO: SetState {tusker_run} DO: SetState {tusker_run}
~~ } ~~ }
STATE: {tusker_run} ~~ { STATE: {tusker_run} ~~ {
IF: SecsInStateGE 900 IF: SecsInStateGE 900
DO: SetState {tusker_run} DO: SetState {tusker_run}
IF: Death IF: Death
DO: SetState {death} DO: SetState {death}
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
ChatExpr {\/vt nav load aphus_route+getvar[navNumber]} ChatExpr {\/vt nav load aphus_route+getvar[navNumber]}
IF: NavEmpty IF: NavEmpty
DO: DoAll DO: DoAll
ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]} ChatExpr {\/vt nav load aphus_circuit+getvar[navNumber]}
SetState {hunt} SetState {hunt}
~~ } ~~ }

View file

@ -45,21 +45,21 @@ STATE: {Default} ~~ {
~~ } ~~ }
STATE: {dummy} ~~ { STATE: {dummy} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always IF: Always
DO: CreateView {state} {} DO: CreateView {state} {}
~~ } ~~ }
STATE: {stateBurdenPackSlots} ~~ { STATE: {stateBurdenPackSlots} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateDeathPenalties} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateInnateAttribute} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateInnateResistance} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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} ~~ { STATE: {stateRatings} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateSalvagingTinkering} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateSkills} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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>} 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} ~~ { STATE: {stateSpellDuration} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DestroyView {main} DestroyView {main}
IF: Always 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} ~~ { STATE: {stateMightSeventhMule} ~~ {
IF: Always IF: Always
@ -150,98 +150,84 @@ STATE: {stateInfusedLifeMagic} ~~ {
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateInfusedItemMagic} ~~ { STATE: {stateInfusedItemMagic} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_ganfo} DO: Chat {/vt nav load nav_ganfo}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateInfusedCreatureMagic} ~~ { STATE: {stateInfusedCreatureMagic} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_gustuvlansdown} DO: Chat {/vt nav load nav_gustuvlansdown}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateInfusedVoidMagic} ~~ { STATE: {stateInfusedVoidMagic} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_morathe} DO: Chat {/vt nav load nav_morathe}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateClutchMiser} ~~ { STATE: {stateClutchMiser} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_rohulabintludun} DO: Chat {/vt nav load nav_rohulabintludun}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEnduringEnchantment} ~~ { STATE: {stateEnduringEnchantment} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_erikfestus} DO: Chat {/vt nav load nav_erikfestus}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateQuickLearner} ~~ { STATE: {stateQuickLearner} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_rickarddumalia} DO: Chat {/vt nav load nav_rickarddumalia}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateAsheronsLesserBenediction} ~~ { STATE: {stateAsheronsLesserBenediction} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_donatellolinante} DO: Chat {/vt nav load nav_donatellolinante}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateInnateRenewal} ~~ { STATE: {stateInnateRenewal} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_alisondulane} DO: Chat {/vt nav load nav_alisondulane}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateReinforcementLugians} ~~ { STATE: {stateReinforcementLugians} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunluunere} DO: Chat {/vt nav load nav_fiunluunere}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateBleearghFortitude} ~~ { STATE: {stateBleearghFortitude} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunruun} DO: Chat {/vt nav load nav_fiunruun}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateOswaldEnhancement} ~~ { STATE: {stateOswaldEnhancement} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunbayaas} DO: Chat {/vt nav load nav_fiunbayaas}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateSiraluunBlessing} ~~ { STATE: {stateSiraluunBlessing} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunriish} DO: Chat {/vt nav load nav_fiunriish}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEnduringCalm} ~~ { STATE: {stateEnduringCalm} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunvasherr} DO: Chat {/vt nav load nav_fiunvasherr}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateSteadfastWill} ~~ { STATE: {stateSteadfastWill} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_fiunnoress} DO: Chat {/vt nav load nav_fiunnoress}
@ -249,86 +235,76 @@ STATE: {stateSteadfastWill} ~~ {
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateCriticalProtection} ~~ { STATE: {stateCriticalProtection} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_piersantilinante} DO: Chat {/vt nav load nav_piersantilinante}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateFrenzySlayer} ~~ { STATE: {stateFrenzySlayer} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_neelanashua} DO: Chat {/vt nav load nav_neelanashua}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateIronSkin} ~~ { STATE: {stateIronSkin} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_emilyyarow} DO: Chat {/vt nav load nav_emilyyarow}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEyeRemorseless} ~~ { STATE: {stateEyeRemorseless} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_anframmellow} DO: Chat {/vt nav load nav_anframmellow}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateHandRemorseless} ~~ { STATE: {stateHandRemorseless} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_alishiabintaldan} DO: Chat {/vt nav load nav_alishiabintaldan}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEnhancementMaceTurner} ~~ { STATE: {stateEnhancementMaceTurner} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_nawamaradia} DO: Chat {/vt nav load nav_nawamaradia}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEnhancementBladeTurner} ~~ { STATE: {stateEnhancementBladeTurner} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_ilinwis} DO: Chat {/vt nav load nav_ilinwis}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateEnhancementArrowTurner} ~~ { STATE: {stateEnhancementArrowTurner} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_kyujoru} DO: Chat {/vt nav load nav_kyujorujen}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateStormEnhancement} ~~ { STATE: {stateStormEnhancement} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_enliyuo} DO: Chat {/vt nav load nav_enliyuo}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateFieryEnhancement} ~~ { STATE: {stateFieryEnhancement} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_rikshenri} DO: Chat {/vt nav load nav_rikshenri}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateIcyEnhancement} ~~ { STATE: {stateIcyEnhancement} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_lubao} DO: Chat {/vt nav load nav_lubao}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateCausticEnhancement} ~~ { STATE: {stateCausticEnhancement} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_shujiomilao} DO: Chat {/vt nav load nav_shujiomilao}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {nav_zaikhal} ~~ { STATE: {nav_zaikhal} ~~ {
IF: Always IF: Always
@ -347,79 +323,70 @@ STATE: {nav_fiun} ~~ {
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ } ~~ }
STATE: {stateCiandrasFortune} ~~ { STATE: {stateCiandrasFortune} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_kriscennis} DO: Chat {/vt nav load nav_kriscennis}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateCharmedSmith} ~~ { STATE: {stateCharmedSmith} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_lug} DO: Chat {/vt nav load nav_lug}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateJibrilsEssence} ~~ { STATE: {stateJibrilsEssence} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_joshunfelden} DO: Chat {/vt nav load nav_joshunfelden}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateYoshisEssence} ~~ { STATE: {stateYoshisEssence} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_briennecarlus} DO: Chat {/vt nav load nav_briennecarlus}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateCeldisethsEssence} ~~ { STATE: {stateCeldisethsEssence} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_burrellsammrun} DO: Chat {/vt nav load nav_burrellsammrun}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateKogasEssence} ~~ { STATE: {stateKogasEssence} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_lenorturk} DO: Chat {/vt nav load nav_lenorturk}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateCiandrasEssence} ~~ { STATE: {stateCiandrasEssence} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_robertcrow} DO: Chat {/vt nav load nav_robertcrow}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateMasterSteelCircle} ~~ { STATE: {stateMasterSteelCircle} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_carlitogallo} DO: Chat {/vt nav load nav_carlitogallo}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateMasterFiveFoldPath} ~~ { STATE: {stateMasterFiveFoldPath} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_rahinabintzalanis} DO: Chat {/vt nav load nav_rahinabintzalanis}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateMasterFocusedEye} ~~ { STATE: {stateMasterFocusedEye} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_kilaf} DO: Chat {/vt nav load nav_kilaf}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {stateJackTrades} ~~ { STATE: {stateJackTrades} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_ariannatheadept} DO: Chat {/vt nav load nav_ariannatheadept}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {nav_silyun} ~~ { STATE: {nav_silyun} ~~ {
IF: Always IF: Always
@ -429,7 +396,6 @@ STATE: {nav_silyun} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ } ~~ }
STATE: {nav_hebianto} ~~ { STATE: {nav_hebianto} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_hebianto} DO: Chat {/vt nav load nav_hebianto}
@ -438,7 +404,6 @@ STATE: {nav_hebianto} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ } ~~ }
STATE: {nav_cragstone} ~~ { STATE: {nav_cragstone} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_cragstone} DO: Chat {/vt nav load nav_cragstone}
@ -463,7 +428,6 @@ STATE: {nav_ab} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ } ~~ }
STATE: {nav_bandit} ~~ { STATE: {nav_bandit} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_bandit} DO: Chat {/vt nav load nav_bandit}
@ -472,7 +436,6 @@ STATE: {nav_bandit} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]}
~~ } ~~ }
STATE: {nav_sanamar} ~~ { STATE: {nav_sanamar} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_sanamar} DO: Chat {/vt nav load nav_sanamar}
@ -481,7 +444,14 @@ STATE: {nav_sanamar} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoExpr {chatbox[\/vt setmetastate +getvar[Augment]]} 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} ~~ { STATE: {nav_mayoi} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load nav_mayoi} DO: Chat {/vt nav load nav_mayoi}
@ -493,7 +463,7 @@ STATE: {nav_mayoi} ~~ {
STATE: {stateBella} ~~ { STATE: {stateBella} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DoExpr {echo[`OK RUNNING BELLA`,13]} DoExpr {echo[`OK RUNNING BELLA`,13]}
DestroyView {main} DestroyView {main}
IF: ExitPortal IF: ExitPortal
DO: SetState {mp_primary} DO: SetState {mp_primary}
@ -560,7 +530,7 @@ STATE: {turn_in_jaw} ~~ {
STATE: {stateStipend} ~~ { STATE: {stateStipend} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
DoExpr {echo[`OK RUNNING STIPEND`,13]} DoExpr {echo[`OK RUNNING STIPEND`,13]}
DestroyView {main} DestroyView {main}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
IF: Always IF: Always
@ -586,4 +556,4 @@ NAV: nav0__stipend_nav once ~~ {
pnt 56.7470087051392 33.5495386441549 0.175020837783813 pnt 56.7470087051392 33.5495386441549 0.175020837783813
pnt 56.7795230229696 33.6337207794189 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} 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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: ExitPortal IF: ExitPortal
DO: SetState {mp_primary} DO: SetState {mp_primary}
IF: Always IF: Always
DO: Chat {/mp} DO: Chat {/mp}
~~ } ~~ }
STATE: {jaw_hunt} ~~ { STATE: {jaw_hunt} ~~ {
IF: ExitPortal IF: ExitPortal
DO: DoAll DO: DoAll
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
SetState {turn_in_jaw} SetState {turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw} IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll DO: DoAll
Chat {/vt nav load to_fiun} Chat {/vt nav load to_fiun}
~~ } ~~ }
STATE: {jaw_run} ~~ { STATE: {jaw_run} ~~ {
IF: NavEmpty IF: NavEmpty
DO: DoAll DO: DoAll
Chat {/vt nav load jaw_1_hunt} Chat {/vt nav load jaw_1_hunt}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting true} Chat {/vt opt set enablelooting true}
SetState {jaw_hunt} SetState {jaw_hunt}
~~ } ~~ }
STATE: {kill_bella} ~~ { STATE: {kill_bella} ~~ {
IF: ChatCapture {You have solved this quest too recently!} {} IF: ChatCapture {You have solved this quest too recently!} {}
DO: DoAll DO: DoAll
Chat {/vt nav load recallls} Chat {/vt nav load recallls}
Chat {/vt opt set enablelooting false} Chat {/vt opt set enablelooting false}
~~ } ~~ }
STATE: {mp_primary} ~~ { STATE: {mp_primary} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load mp_primary} Chat {/vt nav load mp_primary}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablelooting false} Chat {/vt opt set enablelooting false}
Chat {/vt opt set NavPriorityBoost false} Chat {/vt opt set NavPriorityBoost false}
Chat {/vt opt set navclosestoprange 0.008} Chat {/vt opt set navclosestoprange 0.008}
IF: ExitPortal IF: ExitPortal
DO: DoAll DO: DoAll
Chat {/vt nav load jaw_1} Chat {/vt nav load jaw_1}
SetState {jaw_run} SetState {jaw_run}
~~ } ~~ }
STATE: {mp_secondary} ~~ { STATE: {mp_secondary} ~~ {
IF: ExitPortal IF: ExitPortal
DO: DoAll DO: DoAll
Chat {/vt nav load to_bella} Chat {/vt nav load to_bella}
SetState {kill_bella} SetState {kill_bella}
~~ } ~~ }
STATE: {mp_trans} ~~ { STATE: {mp_trans} ~~ {
IF: ExitPortal IF: ExitPortal
DO: DoAll DO: DoAll
Chat {/vt nav load mp_secondary} Chat {/vt nav load mp_secondary}
SetState {mp_secondary} SetState {mp_secondary}
~~ } ~~ }
STATE: {turn_in_jaw} ~~ { STATE: {turn_in_jaw} ~~ {
IF: ChatMatch {^Fiun Rehlyun.*} IF: ChatMatch {^Fiun Rehlyun.*}
DO: DoAll DO: DoAll
Chat {/mp} Chat {/mp}
SetState {mp_trans} 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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
~~ /ub mexec setvar[navNumber,VILKETNUMMER] STATE: {Default} ~~ {
STATE: {combat} ~~ { IF: Not Expr {testvar[navNumber]}
IF: Always DO: DoExpr {setvar[navNumber, 1]}
DO: Chat {/vt opt set enablecombat true} IF: Not Expr {testvar[debugPortalRange]}
IF: SecsInStateGE 60 DO: DoExpr {setvar[debugPortalRange, 8]}
DO: SetState {ring_fail} IF: Not Expr {testvar[debugAngle]}
IF: NoMobsInDist 5 DO: DoExpr {setvar[debugAngle, 20]}
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}
IF: Always 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 DO: DoAll
ChatExpr {\/me is to close to +wobjectgetname[getvar[nearPortal]]} Chat {/vt opt set enablecombat false}
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}
ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]} ChatExpr {\/vt nav load bore_circuit+getvar[navNumber]}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set buffprofile_prots 2} Chat {/a [portal-debug] started}
Chat {/vt opt set buffprofile_banes 5} SetState {watch_portal}
Chat {/vt opt set enablelooting false} ~~ }
Chat {/vt opt set navpriorityboost false} STATE: {watch_portal} ~~ {
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}
IF: All IF: All
Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]} Expr {setvar[portal, wobjectfindnearestbyobjectclass[14]]}
Expr {istrue[getvar[portal]]} Expr {istrue[getvar[portal]]}
@ -233,19 +60,53 @@ STATE: {loot} ~~ {
Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul} Not Expr {wobjectgetname[getvar[portal]]==Singularity Caul}
Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*} Not Expr {wobjectgetname[getvar[portal]]#Destroyed.*}
Expr {wobjectisvalid[getvar[portal]]} Expr {wobjectisvalid[getvar[portal]]}
Expr {setvar[portalHeading, getheadingto[getvar[portal]]]} Expr {setvar[portalHeading, getheadingto[getvar[portal]]]}
Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]} Expr {setvar[playerHeading, getheading[wobjectgetplayer[]]]}
Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]} Expr {setvar[relativeAngle, abs[getvar[portalHeading] - getvar[playerHeading]]]}
Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]} Expr {setvar[relativeAngle, iif[getvar[relativeAngle] > 180, 360 - getvar[relativeAngle], getvar[relativeAngle]]]}
Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]} Expr {setvar[turnDirection, iif[randint[0,2] == 0, -90, 90]]}
Expr {getvar[relativeAngle] <= 11.25} Expr {getvar[relativeAngle] <= getvar[debugAngle]}
Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]} Expr {setvar[newHeading, abs[getvar[playerHeading] + getvar[turnDirection]]]}
DO: DoAll DO: DoAll
Chat {/vt opt set enablenav false} Chat {/vt opt set enablenav false}
Chat {/vt opt set lootonlyrarecorpses true} Chat {/vt opt set enablecombat false}
Chat {/vt opt set lootpriorityboost true} SetState {avoid_portal}
Chat {/vt opt set enablelooting false} IF: SecsInStateGE 5
DoExpr {setvar[lootclock,stopwatchcreate[]]} DO: SetState {watch_portal}
DoExpr {stopwatchstart[getvar[lootclock]]} IF: Always
SetState {avoid_portal} 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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {death} ~~ { STATE: {death} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load death_pause} DO: Chat {/vt nav load death_pause}
IF: Always IF: Always
DO: Chat {/vt opt set enablenav true} DO: Chat {/vt opt set enablenav true}
IF: NavEmpty IF: NavEmpty
DO: SetState {run_back} DO: SetState {run_back}
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: None DO: None
IF: Death IF: Death
DO: SetState {death} DO: SetState {death}
~~ } ~~ }
STATE: {just_run_back} ~~ { STATE: {just_run_back} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load gauntlet_just_run} Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true} Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {run_back} ~~ { STATE: {run_back} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load gauntlet_run} Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true} Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} 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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {all_run_back} ~~ { STATE: {all_run_back} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt setmetastate just_run_back} DO: Chat {/ub bc /vt setmetastate just_run_back}
~~ } ~~ }
STATE: {strength} ~~ { STATE: {strength} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Surging Strength} Chat {/ub bc /ub use Luminous Crystal of Surging Strength}
SetState {Default} SetState {Default}
~~ } ~~ }
STATE: {closestportal} ~~ { STATE: {closestportal} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /ub closestportal} DO: Chat {/ub bc /ub closestportal}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {death} ~~ { STATE: {death} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load death_pause} DO: Chat {/vt nav load death_pause}
IF: Always IF: Always
DO: Chat {/vt opt set enablenav true} DO: Chat {/vt opt set enablenav true}
IF: NavEmpty IF: NavEmpty
DO: SetState {run_back} DO: SetState {run_back}
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: None DO: None
IF: Death IF: Death
DO: SetState {death} DO: SetState {death}
~~ } ~~ }
STATE: {defence} ~~ { STATE: {defence} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/ub bc /ub use Luminous Crystal of Towering Defense} Chat {/ub bc /ub use Luminous Crystal of Towering Defense}
SetState {Default} SetState {Default}
~~ } ~~ }
STATE: {dispell} ~~ { STATE: {dispell} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/ub bc /ub use Black Market Gem of Dispelling} Chat {/ub bc /ub use Black Market Gem of Dispelling}
SetState {Default} SetState {Default}
~~ } ~~ }
STATE: {follow} ~~ { STATE: {follow} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]} ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
Chat {/ub bc /vt opt set enablenav true} Chat {/ub bc /vt opt set enablenav true}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {jump} ~~ { STATE: {jump} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /ub jumpsw 400} DO: Chat {/ub bc /ub jumpsw 400}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {just_run_back} ~~ { STATE: {just_run_back} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load gauntlet_just_run} Chat {/vt nav load gauntlet_just_run}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true} Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {load_follow} ~~ { STATE: {load_follow} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt meta load gauntlet_follower} DO: Chat {/ub bc /vt meta load gauntlet_follower}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {nav_false} ~~ { STATE: {nav_false} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablenav false} DO: Chat {/ub bc /vt opt set enablenav false}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {nav_true} ~~ { STATE: {nav_true} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablenav true} DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {run_back} ~~ { STATE: {run_back} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load gauntlet_run} Chat {/vt nav load gauntlet_run}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablebuffing true} Chat {/vt opt set enablebuffing true}
Chat {/vt opt set enablemeta true} Chat {/vt opt set enablemeta true}
Chat {/vt opt set enablecombat true} Chat {/vt opt set enablecombat true}
IF: NavEmpty IF: NavEmpty
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {setup} ~~ { STATE: {setup} ~~ {
IF: Always IF: Always
DO: ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]} DO: ChatExpr {\/ub bc \/ub follow +wobjectgetname[wobjectgetplayer[]]}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablelooting false} DO: Chat {/ub bc /vt opt set enablelooting false}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablenav true} DO: Chat {/ub bc /vt opt set enablenav true}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablebuffing true} DO: Chat {/ub bc /vt opt set enablebuffing true}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablecombat true} DO: Chat {/ub bc /vt opt set enablecombat true}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set attackdistance 0.125} DO: Chat {/ub bc /vt opt set attackdistance 0.125}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set navpriorityboost true} DO: Chat {/ub bc /vt opt set navpriorityboost true}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_prots 2} DO: Chat {/ub bc /vt opt set buffprofile_prots 2}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set buffprofile_banes 2} DO: Chat {/ub bc /vt opt set buffprofile_banes 2}
IF: Always IF: Always
DO: Chat {/ub bc /vt forcebuff} DO: Chat {/ub bc /vt forcebuff}
IF: Always IF: Always
DO: Chat {/ub bc /vt start} DO: Chat {/ub bc /vt start}
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set enablemeta true} DO: Chat {/ub bc /vt opt set enablemeta true}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {summon_false} ~~ { STATE: {summon_false} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set SummonPets false} DO: Chat {/ub bc /vt opt set SummonPets false}
IF: Always IF: Always
DO: SetState {Default} DO: SetState {Default}
~~ } ~~ }
STATE: {summon_true} ~~ { STATE: {summon_true} ~~ {
IF: Always IF: Always
DO: Chat {/ub bc /vt opt set SummonPets true} DO: Chat {/ub bc /vt opt set SummonPets true}
IF: Always IF: Always
DO: SetState {Default} 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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load None} Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]} DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true} Chat {/vt opt set enablelooting true}
IF: All IF: All
MainSlotsLE 4 MainSlotsLE 4
DO: SetState {go_to_chests} DO: SetState {go_to_chests}
~~ } ~~ }
STATE: {go_to_chests} ~~ { STATE: {go_to_chests} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load legendary_chests} Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall} SetWatchdog 10 300 {recall}
IF: NavEmpty IF: NavEmpty
DO: SetState {LootChest} DO: SetState {LootChest}
~~ }
~~ } STATE: {LootChest} ~~ {
STATE: {LootChest} ~~ { IF: All
IF: All ItemCountLE 0 {Aged Legendary Key}
ItemCountLE 0 {Aged Legendary Key} DO: DoAll
DO: DoAll Chat {/mm stoploot}
Chat {/mm stoploot} SetState {recall}
SetState {recall} ~~ }
~~ } STATE: {recall} ~~ {
STATE: {recall} ~~ { IF: Always
IF: Always DO: DoAll
DO: DoAll Chat {/vt nav load legendary_chests_ah}
Chat {/vt nav load legendary_chests_ah} SetWatchdog 10 300 {recall}
SetWatchdog 10 300 {recall} IF: NavEmpty
IF: NavEmpty DO: SetState {Default}
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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {Check} ~~ { STATE: {Check} ~~ {
IF: Any IF: Any
ItemCountGE 1 {Aged Legendary Key} ItemCountGE 1 {Aged Legendary Key}
DO: SetState {LootChest} DO: SetState {LootChest}
IF: All IF: All
ItemCountLE 0 {Aged Legendary Key} ItemCountLE 0 {Aged Legendary Key}
DO: SetState {recall} DO: SetState {recall}
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load None} Chat {/vt nav load None}
DoExpr {setvar[ChestType,Legendary Chest]} DoExpr {setvar[ChestType,Legendary Chest]}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
Chat {/vt opt set enablelooting true} Chat {/vt opt set enablelooting true}
IF: All IF: All
MainSlotsLE 4 MainSlotsLE 4
DO: SetState {go_to_chests} DO: SetState {go_to_chests}
~~ } ~~ }
STATE: {go_to_chests} ~~ { STATE: {go_to_chests} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt nav load legendary_chests} Chat {/vt nav load legendary_chests}
SetWatchdog 10 300 {recall} SetWatchdog 10 300 {recall}
IF: NavEmpty IF: NavEmpty
DO: SetState {Check} DO: SetState {Check}
~~ }
~~ } STATE: {LootChest} ~~ {
STATE: {LootChest} ~~ { IF: Always
IF: Always DO: Chat {/ub usep Aged Legendary key on Legendary Chest}
DO: Chat {/ub usep Aged Legendary key on Legendary Chest} IF: SecsInStateGE 4
IF: SecsInStateGE 4 DO: Chat {/ub usep Legendary Chest}
DO: Chat {/ub usep Legendary Chest} IF: SecsInStateGE 5
IF: SecsInStateGE 5 DO: SetState {Check}
DO: SetState {Check} IF: SecsInStateGE 1
IF: SecsInStateGE 1 DO: Chat {/ub usep Legendary Chest}
DO: Chat {/ub usep Legendary Chest} ~~ }
~~ } STATE: {recall} ~~ {
STATE: {recall} ~~ { IF: Always
IF: Always DO: DoAll
DO: DoAll Chat {/vt nav load legendary_chests_ah}
Chat {/vt nav load legendary_chests_ah} SetWatchdog 10 300 {recall}
SetWatchdog 10 300 {recall} IF: NavEmpty
IF: NavEmpty DO: SetState {Default}
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 ~~ 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. ~~ File auto-generated by metaf, a program created by Eskarina of Morningthaw/Coldeve.
~~ Get metaf here: https://github.com/JJEII/metaf/ ~~ Get metaf here: https://github.com/JJEII/metaf/
~~ ~~
~~ All recognized structural designators: ~~ All recognized structural designators:
~~ STATE: DO: ~~ STATE: DO:
~~ IF: NAV: ~~ IF: NAV:
~~ ~~
~~ All recognized CONDITION (IF:) operation keywords: ~~ All recognized CONDITION (IF:) operation keywords:
~~ Never NavEmpty MobsInDist_Priority Not ~~ Never NavEmpty MobsInDist_Priority Not
~~ Always Death NeedToBuff PSecsInStateGE ~~ Always Death NeedToBuff PSecsInStateGE
~~ All VendorOpen NoMobsInDist SecsOnSpellGE ~~ All VendorOpen NoMobsInDist SecsOnSpellGE
~~ Any VendorClosed BlockE BuPercentGE ~~ Any VendorClosed BlockE BuPercentGE
~~ ChatMatch ItemCountLE CellE DistToRteGE ~~ ChatMatch ItemCountLE CellE DistToRteGE
~~ MainSlotsLE ItemCountGE IntoPortal Expr ~~ MainSlotsLE ItemCountGE IntoPortal Expr
~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture ~~ SecsInStateGE MobsInDist_Name ExitPortal ChatCapture
~~ ~~
~~ All recognized ACTION (DO:) operation keywords: ~~ All recognized ACTION (DO:) operation keywords:
~~ None EmbedNav ChatExpr SetOpt ~~ None EmbedNav ChatExpr SetOpt
~~ SetState CallState SetWatchdog CreateView ~~ SetState CallState SetWatchdog CreateView
~~ Chat Return ClearWatchdog DestroyView ~~ Chat Return ClearWatchdog DestroyView
~~ DoAll DoExpr GetOpt DestroyAllViews ~~ DoAll DoExpr GetOpt DestroyAllViews
~~ ~~
~~ All recognized NAV types: ~~ All recognized NAV types:
~~ circular follow ~~ circular follow
~~ linear once ~~ linear once
~~ ~~
~~ All recognized NAV NODE types: ~~ All recognized NAV NODE types:
~~ flw vnd ~~ flw vnd
~~ pnt ptl ~~ pnt ptl
~~ rcl tlk ~~ rcl tlk
~~ pau chk ~~ pau chk
~~ cht jmp ~~ cht jmp
~~ prt (deprecated in VTank) ~~ prt (deprecated in VTank)
~~ } ~~ }
STATE: {Default} ~~ { STATE: {Default} ~~ {
IF: Always IF: Always
DO: DoAll DO: DoAll
Chat {/vt opt set NavCloseStopRange 0.00625} Chat {/vt opt set NavCloseStopRange 0.00625}
Chat {/vt opt set enablecombat false} Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablenav true} Chat {/vt opt set enablenav true}
IF: Always IF: Always
DO: Chat {/vt nav load asherons_castle_lumi_stuff} DO: Chat {/vt nav load asherons_castle_lumi_stuff}
IF: NavEmpty IF: NavEmpty
DO: SetState {pickup_damage_boost} DO: SetState {pickup_damage_boost}
~~ } ~~ }
STATE: {pickup_damage_boost} ~~ { STATE: {pickup_damage_boost} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Armor Damage Boost V} ItemCountLE 5 {Luminous Crystal of Rare Armor Damage Boost V}
DO: Chat {/ub use Token of Rare Armor Damage Boost V} DO: Chat {/ub use Token of Rare Armor Damage Boost V}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_damage_reduction} DO: SetState {pickup_damage_reduction}
~~ } ~~ }
STATE: {pickup_damage_reduction} ~~ { STATE: {pickup_damage_reduction} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 5 {Luminous Crystal of Rare Damage Reduction V} ItemCountLE 5 {Luminous Crystal of Rare Damage Reduction V}
DO: Chat {/ub use Token of Rare Damage Reduction V} DO: Chat {/ub use Token of Rare Damage Reduction V}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_healkit} DO: SetState {pickup_healkit}
~~ } ~~ }
STATE: {pickup_healkit} ~~ { STATE: {pickup_healkit} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 15 {Light Infused Healing Kit} ItemCountLE 15 {Light Infused Healing Kit}
DO: Chat {/ub use Token of the Light Infused Healing Kit} DO: Chat {/ub use Token of the Light Infused Healing Kit}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_revitalization} DO: SetState {pickup_revitalization}
~~ } ~~ }
STATE: {pickup_revitalization} ~~ { STATE: {pickup_revitalization} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_surging_strength} DO: SetState {pickup_surging_strength}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 50 {Draught of Revitalization} ItemCountLE 50 {Draught of Revitalization}
DO: Chat {/ub use Token of the Draught of Revitalization} DO: Chat {/ub use Token of the Draught of Revitalization}
~~ } ~~ }
STATE: {pickup_surging_strength} ~~ { STATE: {pickup_surging_strength} ~~ {
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 5 {Luminous Crystal of Surging Strength} ItemCountLE 5 {Luminous Crystal of Surging Strength}
DO: Chat {/ub use Token of the Luminous Crystal of Surging Strength} DO: Chat {/ub use Token of the Luminous Crystal of Surging Strength}
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_towering_defense} DO: SetState {pickup_towering_defense}
~~ } ~~ }
STATE: {pickup_towering_defense} ~~ { STATE: {pickup_towering_defense} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 5 {Luminous Crystal of Towering Defense} ItemCountLE 5 {Luminous Crystal of Towering Defense}
DO: Chat {/ub use Token of the Luminous Crystal of Towering Defense} DO: Chat {/ub use Token of the Luminous Crystal of Towering Defense}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {pickup_vitality} DO: SetState {pickup_vitality}
~~ } ~~ }
STATE: {pickup_vitality} ~~ { STATE: {pickup_vitality} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_take_point} DO: Chat {/vt nav load token_take_point}
IF: All IF: All
NavEmpty NavEmpty
ItemCountLE 5 {Luminous Crystal of Vitality} ItemCountLE 5 {Luminous Crystal of Vitality}
DO: Chat {/ub use Token of the Luminous Crystal of Vitality} DO: Chat {/ub use Token of the Luminous Crystal of Vitality}
IF: All IF: All
NavEmpty NavEmpty
SecsInStateGE 6 SecsInStateGE 6
DO: SetState {token_give} DO: SetState {token_give}
~~ } ~~ }
STATE: {token_give} ~~ { STATE: {token_give} ~~ {
IF: Always IF: Always
DO: Chat {/vt nav load token_give_point} DO: Chat {/vt nav load token_give_point}
IF: All IF: All
NavEmpty NavEmpty
Any Any
ItemCountGE 1 {Token of Rare Armor Damage Boost V} ItemCountGE 1 {Token of Rare Armor Damage Boost V}
ItemCountGE 1 {Token of Rare Damage Reduction V} ItemCountGE 1 {Token of Rare Damage Reduction V}
ItemCountGE 1 {Token of the Draught of Revitalization} ItemCountGE 1 {Token of the Draught of Revitalization}
ItemCountGE 1 {Token of the Light Infused Healing Kit} 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 Vitality}
ItemCountGE 1 {Token of the Luminous Crystal of Towering Defense} ItemCountGE 1 {Token of the Luminous Crystal of Towering Defense}
ItemCountGE 1 {Token of the Luminous Crystal of Surging Strength} ItemCountGE 1 {Token of the Luminous Crystal of Surging Strength}
DO: DoAll DO: DoAll
Chat {/ub prepclick yes 3} Chat {/ub prepclick yes 3}
Chat {/ub givep Token of to Nalicana} Chat {/ub givep Token of to Nalicana}
IF: All IF: All
NavEmpty NavEmpty
Any Any
ItemCountLE 0 {Token of Rare Armor Damage Boost V} ItemCountLE 0 {Token of Rare Armor Damage Boost V}
ItemCountLE 0 {Token of Rare Damage Reduction V} ItemCountLE 0 {Token of Rare Damage Reduction V}
ItemCountLE 0 {Token of the Draught of Revitalization} ItemCountLE 0 {Token of the Draught of Revitalization}
ItemCountLE 0 {Token of the Light Infused Healing Kit} 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 Vitality}
ItemCountLE 0 {Token of the Luminous Crystal of Towering Defense} ItemCountLE 0 {Token of the Luminous Crystal of Towering Defense}
ItemCountLE 0 {Token of the Luminous Crystal of Surging Strength} ItemCountLE 0 {Token of the Luminous Crystal of Surging Strength}
DO: SetState {pickup_damage_boost} 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 uTank2 NAV 1.2
4 4
8 10
4 3
-20.6627984364827 -20.6627984364827
-41.8583373387655 -41.8583373387655
2.08333134651184E-05 2.08333134651184E-05
0 0
/ah 2000
0 4
59.3589282353719 -20.6627984364827
-28.5375727335612 -41.8583373387655
0.0500208298365275 2.08333134651184E-05
0 0
4 /ah
-20.6627984364827 3
-41.8583373387655 -20.6627984364827
2.08333134651184E-05 -41.8583373387655
0 2.08333134651184E-05
/ub give Aged Legendary Key to Nyckelmonster 0
4 10000
-20.6627984364827 0
-41.8583373387655 59.3589282353719
2.08333134651184E-05 -28.5375727335612
0 0.0500208298365275
/ub give Pyreal Mote to Nyckelmonster has leprosy 0
0 4
59.3230502764384 -20.6627984364827
-28.538701693217 -41.8583373387655
0.0500208298365275 2.08333134651184E-05
0 0
0 /ub give Aged Legendary Key to Nyckelmonster
59.3176423708598 4
-28.6058857599894 -20.6627984364827
0.0500208298365275 -41.8583373387655
0 2.08333134651184E-05
4 0
-20.6627984364827 /ub give Pyreal Mote to Nyckelmonster has leprosy
-41.8583373387655 0
2.08333134651184E-05 59.3230502764384
0 -28.538701693217
/ub give Desert Flower to Town Crier 0.0500208298365275
0 0
59.3417902310689 0
-28.558572324117 59.3176423708598
0.0500208298365275 -28.6058857599894
0 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 uTank2 NAV 1.2
4 4
34 37
4 4
59.5416052500407 59.5416052500407
-28.4145641962687 -28.4145641962687
@ -37,6 +37,24 @@ uTank2 NAV 1.2
0.0500208298365275 0.0500208298365275
0 0
14000 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 4
59.5416052500407 59.5416052500407
-28.4145641962687 -28.4145641962687

View file

@ -1,94 +1,106 @@
uTank2 NAV 1.2 uTank2 NAV 1.2
4 4
16 18
2 2
-66.9188193003337 -66.9188193003337
-87.4330533027649 -87.4330533027649
0.200020837783813 0.200020837783813
0 0
1635 1635
3 3
-66.9188193003337 -66.9188193003337
-87.4330533027649 -87.4330533027649
0.200020837783813 0.200020837783813
0 0
10000 10000
4 3
-66.9188193003337 -66.9188193003337
-87.4330533027649 -87.4330533027649
0.200020837783813 0.200020837783813
0 0
/ah 2000
0 4
59.3654500325521 -66.9188193003337
-28.5106864929199 -87.4330533027649
0.0500208298365275 0.200020837783813
0 0
4 /ah
-66.9188193003337 3
-87.4330533027649 -66.9188193003337
0.200020837783813 -87.4330533027649
0 0.200020837783813
/ub giver .*s Crystal to Dunking Rares 0
4 10000
-66.9188193003337 0
-87.4330533027649 59.3654500325521
0.200020837783813 -28.5106864929199
0 0.0500208298365275
/ub giver .*s Pearl to Dunking Rares 0
4 4
-66.9188193003337 -66.9188193003337
-87.4330533027649 -87.4330533027649
0.200020837783813 0.200020837783813
0 0
/ub giver Pearl of.* to Dunking rares /ub giver .*s Crystal to Dunking Rares
4 4
-66.9188193003337 -66.9188193003337
-87.4330533027649 -87.4330533027649
0.200020837783813 0.200020837783813
0 0
/ub giver .*s Jewel to Dunking Rares /ub giver .*s Pearl to Dunking Rares
0 4
59.4073295593262 -66.9188193003337
-28.4914850870768 -87.4330533027649
0.0500208298365275 0.200020837783813
0 0
0 /ub giver Pearl of.* to Dunking rares
59.4451384862264 4
-28.4686969121297 -66.9188193003337
0.0500208298365275 -87.4330533027649
0 0.200020837783813
0 0
59.4916469573975 /ub giver .*s Jewel to Dunking Rares
-28.4406655629476 0
0.0500208298365275 59.4073295593262
0 -28.4914850870768
0 0.0500208298365275
59.5331707000732 0
-28.4156383514404 0
0.0500208298365275 59.4451384862264
0 -28.4686969121297
0 0.0500208298365275
59.5553661346436 0
-28.4022606531779 0
0.0500208298365275 59.4916469573975
0 -28.4406655629476
3 0.0500208298365275
-66.9188193003337 0
-87.4330533027649 0
0.200020837783813 59.5331707000732
0 -28.4156383514404
2000 0.0500208298365275
5 0
-66.9188193003337 0
-87.4330533027649 59.5553661346436
0.200020837783813 -28.4022606531779
0 0.0500208298365275
2090184732 0
Archmage Tawa Matema 3
3 -66.9188193003337
-66.9188193003337 -87.4330533027649
-87.4330533027649 0.200020837783813
0.200020837783813 0
0 2000
15000 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 uTank2 NAV 1.2
4 4
30 32
4 3
0.290325609842936 0.290325609842936
12.8991326014201 12.8991326014201
0.505020840962728 0.505020840962728
0 0
/ah 2000
0 4
59.3391182581584 0.290325609842936
-28.5698016484578 12.8991326014201
0.0500208298365275 0.505020840962728
0 0
0 /ah
59.3474183400472 3
-28.642045211792 0.290325609842936
0.0500208298365275 12.8991326014201
0 0.505020840962728
0 0
59.3728528340658 10000
-28.7127680460612 0
0.0500208298365275 59.3391182581584
0 -28.5698016484578
6 0.0500208298365275
0.290325609842936 0
12.8991326014201 0
0.505020840962728 59.3474183400472
0 -28.642045211792
Portal to Town Network 0.0500208298365275
14 0
True 0
59.3936458587647 59.3728528340658
-28.7256083488464 -28.7127680460612
0.0508250035345554 0.0500208298365275
0 0
-101.616666666667 6
-96.6416666666667 0.290325609842936
2.08333134651184E-05 12.8991326014201
0 0.505020840962728
0 0
-101.64253505071 Portal to Town Network
-96.6452861785889 14
0.0016500249505043 True
0 59.3936458587647
0 -28.7256083488464
-101.662716706594 0.0508250035345554
-96.6559891382853 0
0.00165002482632796 -101.616666666667
0 -96.6416666666667
0 2.08333134651184E-05
-101.675818443298 0
-96.6448277155558 0
0.0016500249505043 -101.64253505071
0 -96.6452861785889
0 0.0016500249505043
-101.719348303477 0
-96.6424158732096 0
2.08333134651184E-05 -101.662716706594
0 -96.6559891382853
0 0.00165002482632796
-101.774861923854 0
-96.6412211418152 0
2.08333134651184E-05 -101.675818443298
0 -96.6448277155558
0 0.0016500249505043
-101.821700763702 0
-96.6269437154134 0
2.08333134651184E-05 -101.719348303477
0 -96.6424158732096
0 2.08333134651184E-05
-101.862150184313 0
-96.6113576730092 0
2.08333134651184E-05 -101.774861923854
0 -96.6412211418152
0 2.08333134651184E-05
-101.89187712272 0
-96.5944122632345 0
2.08333134651184E-05 -101.821700763702
0 -96.6269437154134
0 2.08333134651184E-05
-101.902640759945 0
-96.5855490207672 0
2.08333134651184E-05 -101.862150184313
0 -96.6113576730092
6 2.08333134651184E-05
0.290325609842936 0
12.8991326014201 0
0.505020840962728 -101.89187712272
0 -96.5944122632345
Portal to Zaikhal 2.08333134651184E-05
14 0
True 0
-101.90858749946 -101.902640759945
-96.5742208321889 -96.5855490207672
-0.000262499845121056 2.08333134651184E-05
0 0
0.720262495676676 6
13.4820291678111 0.290325609842936
0.516687520345052 12.8991326014201
0 0.505020840962728
0 0
0.713395754496256 Portal to Zaikhal
13.4727714061737 14
0.516687520345052 True
0 -101.90858749946
0 -96.5742208321889
0.665600776672363 -0.000262499845121056
13.4083341916402 0
0.516687520345052 0.720262495676676
0 13.4820291678111
0 0.516687520345052
0.62157408396403 0
13.3489774068197 0
0.516687520345052 0.713395754496256
0 13.4727714061737
0 0.516687520345052
0.56314689318339 0
13.2702057222525 0
0.516687520345052 0.665600776672363
0 13.4083341916402
0 0.516687520345052
0.506190089384715 0
13.1934164047241 0
0.516687520345052 0.62157408396403
0 13.3489774068197
0 0.516687520345052
0.458754703402519 0
13.1184103647868 0
0.516687520345052 0.56314689318339
0 13.2702057222525
0 0.516687520345052
0.410221227010091 0
13.0219042460124 0
0.516687520345052 0.506190089384715
0 13.1934164047241
0 0.516687520345052
0.369902928670247 0
12.9343770980835 0
0.516687520345052 0.458754703402519
0 13.1184103647868
0 0.516687520345052
0.356616465250651 0
12.9035316467285 0
0.516687520345052 0.410221227010091
0 13.0219042460124
0 0.516687520345052
0.342600440979004 0
12.9009261131287 0
0.516687520345052 0.369902928670247
0 12.9343770980835
0 0.516687520345052
0.335803922017415 0
12.8996931393941 0
0.513216876983643 0.356616465250651
0 12.9035316467285
0 0.516687520345052
0.307551638285319 0
12.9003104527791 0
0.505020840962728 0.342600440979004
0 12.9009261131287
0 0.516687520345052
0.291769409179688 0
12.8996525764465 0
0.505020840962728 0.335803922017415
0 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 uTank2 NAV 1.2
4 4
49 51
4 3
69.2576966335376 69.2576966335376
21.0394041061401 21.0394041061401
1.55835838317871 1.55835838317871
0 0
/ah 2000
0 4
59.33140001297 69.2576966335376
-28.5141708374023 21.0394041061401
0.0500208298365275 1.55835838317871
0 0
0 /ah
59.3367788632711 3
-28.5514219919841 69.2576966335376
0.0500208298365275 21.0394041061401
0 1.55835838317871
0 0
59.3438238461812 10000
-28.6002114613851 0
0.0500208298365275 59.33140001297
0 -28.5141708374023
0 0.0500208298365275
59.3501054128011 0
-28.643714427948 0
0.0500208298365275 59.3367788632711
0 -28.5514219919841
0 0.0500208298365275
59.3678607940674 0
-28.6857304573059 0
0.0500208298365275 59.3438238461812
0 -28.6002114613851
0 0.0500208298365275
59.3781589190165 0
-28.7052095731099 0
0.0500208298365275 59.3501054128011
0 -28.643714427948
6 0.0500208298365275
69.2576966335376 0
21.0394041061401 0
1.55835838317871 59.3678607940674
0 -28.6857304573059
Portal to Town Network 0.0500208298365275
14 0
True 0
59.3936458587647 59.3781589190165
-28.7256083488464 -28.7052095731099
0.0508250035345554 0.0500208298365275
0 0
-101.616666666667 6
-96.6416666666667 69.2576966335376
2.08333134651184E-05 21.0394041061401
0 1.55835838317871
0 0
-101.630543899536 Portal to Town Network
-96.624179204305 14
2.08333134651184E-05 True
0 59.3936458587647
0 -28.7256083488464
-101.648587163289 0.0508250035345554
-96.6014418125153 0
2.08333134651184E-05 -101.616666666667
0 -96.6416666666667
0 2.08333134651184E-05
-101.657457033793 0
-96.5852226257324 0
2.08333134651184E-05 -101.630543899536
0 -96.624179204305
0 2.08333134651184E-05
-101.657742754618 0
-96.5714865366618 0
2.08333134651184E-05 -101.648587163289
0 -96.6014418125153
0 2.08333134651184E-05
-101.658627955119 0
-96.528927119573 0
2.08333134651184E-05 -101.657457033793
0 -96.5852226257324
0 2.08333134651184E-05
-101.656057039897 0
-96.4864250183105 0
2.08333134651184E-05 -101.657742754618
0 -96.5714865366618
0 2.08333134651184E-05
-101.647886689504 0
-96.4689997673035 0
2.08333134651184E-05 -101.658627955119
0 -96.528927119573
0 2.08333134651184E-05
-101.632481352488 0
-96.4561146179835 0
2.08333134651184E-05 -101.656057039897
0 -96.4864250183105
0 2.08333134651184E-05
-101.614096387227 0
-96.4407372872035 0
2.08333134651184E-05 -101.647886689504
0 -96.4689997673035
6 2.08333134651184E-05
69.2576966335376 0
21.0394041061401 0
1.55835838317871 -101.632481352488
0 -96.4561146179835
Eastham Portal 2.08333134651184E-05
14 0
True 0
-101.5896220843 -101.614096387227
-96.4334579149882 -96.4407372872035
-0.000262499845121056 2.08333134651184E-05
0 0
63.4793874740601 6
16.9192083358765 69.2576966335376
0.072571873664856 21.0394041061401
0 1.55835838317871
0 0
63.4928064982096 Eastham Portal
16.9372613271077 14
0.0764649232228597 True
0 -101.5896220843
0 -96.4334579149882
63.5366132100423 -0.000262499845121056
16.9968217213949 0
0.0833541631698608 63.4793874740601
0 16.9192083358765
0 0.072571873664856
63.5774626413981 0
17.05239721934 0
0.0810656150182088 63.4928064982096
0 16.9372613271077
0 0.0764649232228597
63.620875676473 0
17.1114593505859 0
0.0774478594462077 63.5366132100423
0 16.9968217213949
0 0.0833541631698608
63.6814796229204 0
17.193909072876 0
0.0750208298365275 63.5774626413981
0 17.05239721934
0 0.0810656150182088
63.7291743755341 0
17.2587953905265 0
0.0750208298365275 63.620875676473
0 17.1114593505859
0 0.0774478594462077
63.7789425134659 0
17.3265012264252 0
0.0750208298365275 63.6814796229204
0 17.193909072876
0 0.0750208298365275
63.8227389335632 0
17.3860832850138 0
0.0750208298365275 63.7291743755341
0 17.2587953905265
0 0.0750208298365275
63.8672392845154 0
17.4466229438782 0
0.0735842227935791 63.7789425134659
0 17.3265012264252
0 0.0750208298365275
63.909312470754 0
17.5038606325785 0
0.0700781265894572 63.8227389335632
0 17.3860832850138
0 0.0750208298365275
63.9519573847453 0
17.5618748346965 0
0.0665243824323018 63.8672392845154
0 17.4466229438782
0 0.0735842227935791
63.9905928929647 0
17.6144162495931 0
0.0637221852938334 63.909312470754
0 17.5038606325785
0 0.0700781265894572
64.0450474739075 0
17.6655643463135 0
0.0688688437143962 63.9519573847453
0 17.5618748346965
0 0.0665243824323018
64.1041604995728 0
17.7130848884583 0
0.0772016445795695 63.9905928929647
0 17.6144162495931
0 0.0637221852938334
64.1742481549581 0
17.7613271077474 0
0.0833541631698608 64.0450474739075
0 17.6655643463135
0 0.0688688437143962
64.2320023854574 0
17.8033490498861 0
0.0833541631698608 64.1041604995728
0 17.7130848884583
0 0.0772016445795695
64.288756942749 0
17.8422618865967 0
0.0833541631698608 64.1742481549581
0 17.7613271077474
6 0.0833541631698608
69.2576966335376 0
21.0394041061401 0
1.55835838317871 64.2320023854574
0 17.8033490498861
Asheron's Island 0.0833541631698608
14 0
True 0
64.3230124791463 64.288756942749
17.8632041931152 17.8422618865967
0.0830708369612694 0.0833541631698608
0 0
69.3268124977748 6
16.1235166549683 69.2576966335376
-0.000395833204189936 21.0394041061401
0 1.55835838317871
0 0
69.3279716571172 Asheron's Island
16.1466807365417 14
-0.000395833204189936 True
0 64.3230124791463
0 17.8632041931152
69.3342680931091 0.0830708369612694
16.1837696711222 0
-0.000395833204189936 69.3268124977748
0 16.1235166549683
4 -0.000395833204189936
69.2576966335376 0
21.0394041061401 0
1.55835838317871 69.3279716571172
0 16.1466807365417
/ub use Asheron's Castle -0.000395833204189936
0 0
69.1869384765625 0
21.251341688633 69.3342680931091
1.55779927571615 16.1837696711222
0 -0.000395833204189936
0 0
69.1874025344849 4
21.2262962341309 69.2576966335376
1.55835838317871 21.0394041061401
0 1.55835838317871
0 0
69.1707539876302 /ub use Asheron's Castle
21.2072292327881 0
1.55835838317871 69.1869384765625
0 21.251341688633
0 1.55779927571615
69.1871993382772 0
21.181037457784 0
1.55835838317871 69.1874025344849
0 21.2262962341309
0 1.55835838317871
69.1883096059163 0
21.1546599706014 0
1.55835838317871 69.1707539876302
0 21.2072292327881
0 1.55835838317871
69.218355623881 0
21.1047309239705 0
1.55835838317871 69.1871993382772
0 21.181037457784
0 1.55835838317871
69.2576473236084 0
21.0394859949748 0
1.55835838317871 69.1883096059163
0 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 uTank2 NAV 1.2
4 4
39 41
4 3
59.0599030017853 59.0599030017853
-28.8052037556966 -28.8052037556966
0.0500208298365275 0.0500208298365275
0 0
/ah 2000
3 4
59.0599030017853 59.0599030017853
-28.8052037556966 -28.8052037556966
0.0500208298365275 0.0500208298365275
0 0
5000 /ah
0 3
59.3230046590169 59.0599030017853
-28.5345523198446 -28.8052037556966
0.0500208298365275 0.0500208298365275
0 0
0 10000
59.3193101882935 3
-28.5619935353597 59.0599030017853
0.0500208298365275 -28.8052037556966
0 0.0500208298365275
0 0
59.3131786346436 5000
-28.5862298329671 0
0.0500208298365275 59.3230046590169
0 -28.5345523198446
0 0.0500208298365275
59.2979978561401 0
-28.6134601593018 0
0.0500208298365275 59.3193101882935
0 -28.5619935353597
0 0.0500208298365275
59.2851696014404 0
-28.6385901133219 0
0.0500208298365275 59.3131786346436
0 -28.5862298329671
0 0.0500208298365275
59.2723521868388 0
-28.6662947018941 0
0.0500208298365275 59.2979978561401
0 -28.6134601593018
0 0.0500208298365275
59.2498823801676 0
-28.690824508667 0
0.0500208298365275 59.2851696014404
0 -28.6385901133219
0 0.0500208298365275
59.2364237785339 0
-28.7100222269694 0
0.0500208298365275 59.2723521868388
0 -28.6662947018941
0 0.0500208298365275
59.2199646949768 0
-28.7288571357727 0
0.0500208298365275 59.2498823801676
0 -28.690824508667
0 0.0500208298365275
59.1952438036601 0
-28.7293816248576 0
0.0500208298365275 59.2364237785339
0 -28.7100222269694
0 0.0500208298365275
59.1777567227681 0
-28.7301217714945 0
0.0500208298365275 59.2199646949768
0 -28.7288571357727
0 0.0500208298365275
59.1478868166606 0
-28.7315408388774 0
0.0500208298365275 59.1952438036601
0 -28.7293816248576
0 0.0500208298365275
59.1143533070882 0
-28.7364347457886 0
0.0500208298365275 59.1777567227681
0 -28.7301217714945
0 0.0500208298365275
59.0816901365916 0
-28.7412015914917 0
0.0500208298365275 59.1478868166606
0 -28.7315408388774
0 0.0500208298365275
59.0604732990265 0
-28.7589333852132 0
0.0500208298365275 59.1143533070882
0 -28.7364347457886
0 0.0500208298365275
59.0547447681427 0
-28.7738886515299 0
0.0500208298365275 59.0816901365916
0 -28.7412015914917
0 0.0500208298365275
59.053876320521 0
-28.7911163330078 0
0.0500208298365275 59.0604732990265
0 -28.7589333852132
0 0.0500208298365275
59.058607562383 0
-28.8055153210958 0
0.0500208298365275 59.0547447681427
0 -28.7738886515299
0 0.0500208298365275
59.0652321497599 0
-28.8127133369446 0
0.0500208298365275 59.053876320521
0 -28.7911163330078
4 0.0500208298365275
59.0599030017853 0
-28.8052037556966 0
0.0500208298365275 59.058607562383
0 -28.8055153210958
/ub give 1 A'nekshay Gem of Lesser Knowledge to Agent of the Arcanum 0.0500208298365275
3 0
59.0599030017853 0
-28.8052037556966 59.0652321497599
0.0500208298365275 -28.8127133369446
0 0.0500208298365275
3000 0
2 4
59.0599030017853 59.0599030017853
-28.8052037556966 -28.8052037556966
0.0500208298365275 0.0500208298365275
0 0
2645 /ub give 1 A'nekshay Gem of Lesser Knowledge to Agent of the Arcanum
0 3
0.73098045984904 59.0599030017853
13.4349609375 -28.8052037556966
0.516687520345052 0.0500208298365275
0 0
0 3000
0.755778630574544 2
13.3196397225062 59.0599030017853
0.516687520345052 -28.8052037556966
0 0.0500208298365275
0 0
0.74760258992513 2645
13.2350578308105 0
0.516687520345052 0.73098045984904
0 13.4349609375
0 0.516687520345052
0.737128639221191 0
13.1514392217 0
0.516687520345052 0.755778630574544
0 13.3196397225062
0 0.516687520345052
0.729373168945312 0
13.0487908045451 0
0.516687520345052 0.74760258992513
0 13.2350578308105
0 0.516687520345052
0.719842878977458 0
12.9712547302246 0
0.516687520345052 0.737128639221191
0 13.1514392217
0 0.516687520345052
0.712120008468628 0
12.8991107622782 0
0.516687520345052 0.729373168945312
0 13.0487908045451
0 0.516687520345052
0.708513228098551 0
12.8574991226196 0
0.516687520345052 0.719842878977458
0 12.9712547302246
0 0.516687520345052
0.710257911682129 0
12.8318621953328 0
0.516687520345052 0.712120008468628
0 12.8991107622782
6 0.516687520345052
59.0599030017853 0
-28.8052037556966 0
0.0500208298365275 0.708513228098551
0 12.8574991226196
Radiant Blood Gauntlet 0.516687520345052
14 0
True 0
0.727877902984619 0.710257911682129
12.8103116671244 12.8318621953328
0.516404211521149 0.516687520345052
0 0
-30.2602673212687 6
-16.387560971578 59.0599030017853
2.08333134651184E-05 -28.8052037556966
0 0.0500208298365275
0 0
-30.2920483907064 Radiant Blood Gauntlet
-16.3728627920151 14
2.08333134651184E-05 True
0 0.727877902984619
6 12.8103116671244
59.0599030017853 0.516404211521149
-28.8052037556966 0
0.0500208298365275 -30.2602673212687
0 -16.387560971578
Gauntlet Arena 2.08333134651184E-05
37 0
True 0
-30.3333333333333 -30.2920483907064
-16.35 -16.3728627920151
0 2.08333134651184E-05
0 0
-30.4160812695821 6
-22.1452540397644 59.0599030017853
2.29167441527049E-05 -28.8052037556966
0 0.0500208298365275
4 0
59.0599030017853 Gauntlet Arena
-28.8052037556966 37
0.0500208298365275 True
0 -30.3333333333333
/a Knock knock! -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 uTank2 NAV 1.2
4 4
53 53
0 0
-101.643393707275 -101.643393707275
17.8825289090474 17.8825289090474
2.08333134651184E-05 2.08333134651184E-05
0 0
4 4
-101.742709143957 -101.742709143957
17.8811597506205 17.8811597506205
-0.474979146321615 -0.474979146321615
0 0
/ub jumpsw 300 /ub jumpsw 300
0 0
-101.592045052846 -101.592045052846
17.8805678685506 17.8805678685506
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.554651578267 -101.554651578267
17.8813594023387 17.8813594023387
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.533706283569 -101.533706283569
17.8833907604218 17.8833907604218
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.534181054433 -101.534181054433
17.8413492997487 17.8413492997487
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.48626130422 -101.48626130422
17.841304953893 17.841304953893
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.490094470978 -101.490094470978
17.8813687324524 17.8813687324524
-0.0999791701634725 -0.0999791701634725
0 0
0 0
-101.407286643982 -101.407286643982
17.884686867396 17.884686867396
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.441320260366 -101.441320260366
17.801603158315 17.801603158315
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.466675154368 -101.466675154368
17.7969429810842 17.7969429810842
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.516472848256 -101.516472848256
17.8459821859996 17.8459821859996
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.531043752035 -101.531043752035
17.8853654225667 17.8853654225667
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.575432650248 -101.575432650248
17.8846518675486 17.8846518675486
-0.124979170163473 -0.124979170163473
0 0
0 0
-101.575820668538 -101.575820668538
17.7591938654582 17.7591938654582
-0.149979162216187 -0.149979162216187
0 0
0 0
-101.529988797506 -101.529988797506
17.7609985669454 17.7609985669454
-0.149979162216187 -0.149979162216187
0 0
0 0
-101.53424466451 -101.53424466451
17.8423960208893 17.8423960208893
-0.174979162216187 -0.174979162216187
0 0
0 0
-101.583576202393 -101.583576202393
17.8416724999746 17.8416724999746
-0.174979162216187 -0.174979162216187
0 0
0 0
-101.57072356542 -101.57072356542
17.8728516896566 17.8728516896566
-0.174979162216187 -0.174979162216187
0 0
0 0
-101.595848846436 -101.595848846436
17.8807149728139 17.8807149728139
-0.174979162216187 -0.174979162216187
0 0
4 4
-101.742709143957 -101.742709143957
17.8811597506205 17.8811597506205
-0.474979146321615 -0.474979146321615
0 0
/ub jumpsw 300 /ub jumpsw 300
0 0
-101.622127024333 -101.622127024333
17.8804373105367 17.8804373105367
-0.274979146321615 -0.274979146321615
0 0
0 0
-101.616229724884 -101.616229724884
17.9339917182922 17.9339917182922
-0.274979146321615 -0.274979146321615
0 0
0 0
-101.612587674459 -101.612587674459
17.9819168567657 17.9819168567657
-0.296296882629395 -0.296296882629395
0 0
0 0
-101.615892442067 -101.615892442067
18.0119011123975 18.0119011123975
-0.299979146321615 -0.299979146321615
0 0
0 0
-101.590025297801 -101.590025297801
18.0101968288422 18.0101968288422
-0.303131580352783 -0.303131580352783
0 0
0 0
-101.529243914286 -101.529243914286
18.0071381568909 18.0071381568909
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.53581682841 -101.53581682841
17.9724334478378 17.9724334478378
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.572706063588 -101.572706063588
17.9642690896988 17.9642690896988
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.578296979268 -101.578296979268
17.9251905759176 17.9251905759176
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.61803188324 -101.61803188324
17.9257889827093 17.9257889827093
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.620800844828 -101.620800844828
17.9667853593826 17.9667853593826
-0.324979146321615 -0.324979146321615
0 0
0 0
-101.617472012838 -101.617472012838
18.0454295317332 18.0454295317332
-0.349979146321615 -0.349979146321615
0 0
0 0
-101.660903453827 -101.660903453827
18.0499082385407 18.0499082385407
-0.349979146321615 -0.349979146321615
0 0
0 0
-101.658096440633 -101.658096440633
17.9865849812826 17.9865849812826
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.658587837219 -101.658587837219
17.9719900369644 17.9719900369644
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.69858379364 -101.69858379364
17.9644167820613 17.9644167820613
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.706780131658 -101.706780131658
17.9288707415263 17.9288707415263
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.743702141444 -101.743702141444
17.921234814326 17.921234814326
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.775855763753 -101.775855763753
17.9226232131322 17.9226232131322
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.784734662374 -101.784734662374
17.9344542185465 17.9344542185465
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.78315264384 -101.78315264384
18.0072518110275 18.0072518110275
-0.349979146321615 -0.349979146321615
0 0
0 0
-101.86580046018 -101.86580046018
18.008648399512 18.008648399512
-0.374979146321615 -0.374979146321615
0 0
0 0
-101.888455645243 -101.888455645243
18.0071597099304 18.0071597099304
-0.374979146321615 -0.374979146321615
0 0
4 4
-101.742709143957 -101.742709143957
17.8811597506205 17.8811597506205
-0.474979146321615 -0.474979146321615
0 0
/ub jumpsw 300 /ub jumpsw 300
0 0
-101.913387115796 -101.913387115796
18.0075169881185 18.0075169881185
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.889330867926 -101.889330867926
18.0084470907847 18.0084470907847
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.844996301333 -101.844996301333
17.9643644889196 17.9643644889196
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.825047651927 -101.825047651927
17.9635365645091 17.9635365645091
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.821242467562 -101.821242467562
17.9419899145762 17.9419899145762
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.786994679769 -101.786994679769
17.9041363716125 17.9041363716125
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.782102791468 -101.782102791468
17.8818953514099 17.8818953514099
-0.474979146321615 -0.474979146321615
0 0
0 0
-101.747181431452 -101.747181431452
17.8816454569499 17.8816454569499
-0.474979146321615 -0.474979146321615
0 0

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2 uTank2 NAV 1.2
4 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 4
-100.944974994659 -100.944974994659
-15.6830624977748 -15.6830624977748
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-15.6830624977748 -15.6830624977748
2.08333134651184E-05 2.08333134651184E-05
0 0
10000
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
22000 22000
4 4
-100.944974994659 -100.944974994659

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2 uTank2 NAV 1.2
4 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 4
59.3687468528748 59.3687468528748
-28.5195071538289 -28.5195071538289
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-28.5195071538289 -28.5195071538289
0.0500208298365275 0.0500208298365275
0 0
10000
3
59.3687468528748
-28.5195071538289
0.0500208298365275
0
15000 15000
4 4
59.3687468528748 59.3687468528748

View file

@ -1,6 +1,24 @@
uTank2 NAV 1.2 uTank2 NAV 1.2
4 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 4
-100.944974994659 -100.944974994659
-15.6830624977748 -15.6830624977748
@ -12,6 +30,12 @@ uTank2 NAV 1.2
-15.6830624977748 -15.6830624977748
2.08333134651184E-05 2.08333134651184E-05
0 0
10000
3
-100.944974994659
-15.6830624977748
2.08333134651184E-05
0
20000 20000
0 0
-100.925855763753 -100.925855763753

View file

@ -1,12 +1,36 @@
uTank2 NAV 1.2 uTank2 NAV 1.2
4 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 4
-101.708302195867 -101.708302195867
-96.4694164276123 -96.4694164276123
2.08333134651184E-05 2.08333134651184E-05
0 0
/ah /ah
3
-101.708302195867
-96.4694164276123
2.08333134651184E-05
0
10000
0 0
59.3255796750387 59.3255796750387
-28.5361920038859 -28.5361920038859

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