~~ { ~~ 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} ~~ }