~~ { ~~ 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]0,iif[getcharintprop[217]<10,iif[getcharintprop[219]0,iif[getcharintprop[217]<10,iif[getcharintprop[220]0,iif[getcharintprop[217]<10,iif[getcharintprop[221]0,iif[getcharintprop[217]<10,iif[getcharintprop[222]0,iif[getcharintprop[217]<10,iif[getcharintprop[223]0,iif[getcharintprop[239]<2,iif[getcharintprop[242]0,iif[getcharintprop[239]<2,iif[getcharintprop[240]0,iif[getcharintprop[239]<2,iif[getcharintprop[241]0,iif[getcharintprop[239]<2,iif[getcharintprop[246]0,iif[getcharintprop[239]<2,iif[getcharintprop[244]0,iif[getcharintprop[239]<2,iif[getcharintprop[245]0,iif[getcharintprop[239]<2,iif[getcharintprop[243]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[218]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[219]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[220]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[221]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[222]0} Expr {getcharintprop[217]<10} Expr {getcharintprop[223]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[242]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[240]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[241]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[246]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[244]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[245]0} Expr {getcharintprop[239]<2} Expr {getcharintprop[243] 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} ~~ }