harden bella service retries and debug
All checks were successful
/ test (push) Successful in 18s

This commit is contained in:
Erik 2026-03-12 08:52:33 +01:00
parent 18bab23ead
commit 119a50cff6
4 changed files with 1888 additions and 174 deletions

View file

@ -84,6 +84,10 @@ STATE: {Default} ~~ {
DO: DoExpr {setvar[disableAugmentServices, 0]}
IF: Not Expr {testvar[bellaStartAttempts]}
DO: DoExpr {setvar[bellaStartAttempts, 0]}
IF: Not Expr {testvar[bellaTurnInAttempts]}
DO: DoExpr {setvar[bellaTurnInAttempts, 0]}
IF: Not Expr {testvar[bellaJawRunRecoverAttempts]}
DO: DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
IF: Not Expr {testvar[bellaBackoffSeconds]}
DO: DoExpr {setvar[bellaBackoffSeconds, 86400]}
IF: Not Expr {testvar[serviceCheckInterval]}
@ -331,6 +335,8 @@ STATE: {service_decide} ~~ {
DO: DoAll
DoExpr {setvar[disableAugmentServices, 0]}
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaTurnInAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
DoExpr {clearvar[bellaBackoffClock]}
IF: All
Expr {getqueststatus[`stipendtimer_0812`]==1}
@ -342,7 +348,7 @@ STATE: {service_decide} ~~ {
DO: SetState {service_apply_augment}
IF: All
Expr {getvar[disableAugmentServices]!=1}
Expr {getqueststatus[`augmentationblankgemacquired`]==1}
Expr {getqueststatus[`insatiableeaterjaw`]==1}
Expr {getvar[pendingAugments]==1}
DO: SetState {service_bella_start}
IF: Always
@ -374,13 +380,9 @@ STATE: {service_bella_start} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoExpr {setvar[bellaStartAttempts,getvar[bellaStartAttempts]+1]}
IF: Expr {getvar[bellaStartAttempts]>3}
DO: SetState {service_bella_backoff}
DO: Chat {/a [bella] starting marketplace entry}
IF: ExitPortal
DO: DoAll
DoExpr {setvar[bellaStartAttempts, 0]}
SetState {service_bella_mp_primary}
DO: SetState {service_bella_mp_primary}
IF: Always
DO: Chat {/mp}
IF: SecsInStateGE 120
@ -389,8 +391,11 @@ STATE: {service_bella_start} ~~ {
STATE: {service_bella_backoff} ~~ {
IF: Always
DO: DoAll
Chat {/a [bella] backoff tripped, disabling augment services for 24h}
DoExpr {setvar[disableAugmentServices, 1]}
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaTurnInAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
DoExpr {setvar[bellaBackoffClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[bellaBackoffClock]]}
SetState {service_reset_main}
@ -398,34 +403,72 @@ STATE: {service_bella_backoff} ~~ {
STATE: {service_bella_mp_primary} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoExpr {setvar[bellaStartAttempts,getvar[bellaStartAttempts]+1]}
IF: Expr {getvar[bellaStartAttempts]>3}
DO: SetState {service_bella_backoff}
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
IF: Expr {getplayerlandcell[]==23855548}
DO: DoAll
Chat {/vt nav load mp_primary}
IF: All
Expr {getplayerlandcell[]!=23855548}
SecsInStateGE 2
DO: DoAll
Chat {/a [bella] wrong mp_primary landcell, retrying marketplace portal}
Chat {/mp}
SetState {service_bella_mp_primary}
IF: All
Expr {getplayerlandcell[]==23855548}
ExitPortal
DO: DoAll
Chat {/vt nav load jaw_1}
SetState {service_bella_jaw_run}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
DO: DoAll
Chat {/cast Portal Recall}
Chat {/vt nav load jaw_1}
SetState {service_bella_jaw_run}
~~ }
STATE: {service_bella_jaw_run} ~~ {
IF: Death
DO: SetState {death}
IF: NavEmpty
IF: All
Expr {getplayerlandcell[]!=9831201}
SecsInStateGE 2
DO: DoAll
Chat {/a [bella] wrong jaw_run landcell, returning to marketplace entry}
Chat {/mp}
SetState {service_bella_mp_primary}
IF: All
Expr {getplayerlandcell[]==9831201}
NavEmpty
DO: DoAll
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
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: All
SecsInStateGE 300
Expr {getvar[bellaJawRunRecoverAttempts]<3}
DO: DoAll
ChatExpr {\/a [bella] jaw_run stuck, recall retry +cstr[getvar[bellaJawRunRecoverAttempts]+1]+`/3`}
DoExpr {setvar[bellaJawRunRecoverAttempts,getvar[bellaJawRunRecoverAttempts]+1]}
Chat {/cast Portal Recall}
Chat {/vt nav load jaw_1}
SetState {service_bella_jaw_run}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
DO: SetState {service_bella_backoff}
~~ }
STATE: {service_bella_jaw_hunt} ~~ {
IF: Death
@ -443,12 +486,30 @@ STATE: {service_bella_jaw_hunt} ~~ {
STATE: {service_bella_turn_in_jaw} ~~ {
IF: Death
DO: SetState {death}
IF: ChatMatch {^Fiun Rehlyun.*}
IF: ChatMatch {^.*One who obtains such as this is truly worthy of that which we would teach\. The highest peak of the deadliest isle contains that which you seek.*$}
DO: DoAll
Chat {/a [bella] jaw turned in, heading to secondary marketplace path}
DoExpr {setvar[bellaTurnInAttempts, 0]}
Chat {/mp}
SetState {service_bella_mp_trans}
IF: All
SecsInStateGE 300
ItemCountGE 1 {Insatiable Eater Jaw}
Expr {getvar[bellaTurnInAttempts]<3}
DO: DoAll
ChatExpr {\/a [bella] jaw turn-in timed out, retry +cstr[getvar[bellaTurnInAttempts]+1]+`/3`}
DoExpr {setvar[bellaTurnInAttempts,getvar[bellaTurnInAttempts]+1]}
Chat {/vt nav load to_fiun}
SetState {service_bella_turn_in_jaw}
IF: All
SecsInStateGE 300
ItemCountGE 1 {Insatiable Eater Jaw}
Expr {getvar[bellaTurnInAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
DO: DoAll
DoExpr {setvar[bellaTurnInAttempts, 0]}
SetState {service_reset_main}
~~ }
STATE: {service_bella_mp_trans} ~~ {
IF: Death
@ -463,7 +524,18 @@ STATE: {service_bella_mp_trans} ~~ {
STATE: {service_bella_mp_secondary} ~~ {
IF: Death
DO: SetState {death}
IF: ExitPortal
IF: Expr {getplayerlandcell[]==23855548}
DO: Chat {/vt nav load mp_secondary}
IF: All
Expr {getplayerlandcell[]!=23855548}
SecsInStateGE 2
DO: DoAll
Chat {/a [bella] wrong mp_secondary landcell, retrying marketplace portal}
Chat {/mp}
SetState {service_bella_mp_secondary}
IF: All
Expr {getplayerlandcell[]==23855548}
ExitPortal
DO: DoAll
Chat {/vt opt set enablecombat true}
Chat {/vt nav load to_bella}
@ -474,8 +546,19 @@ STATE: {service_bella_mp_secondary} ~~ {
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {getplayerlandcell[]!=5636705}
SecsInStateGE 2
DO: DoAll
Chat {/a [bella] wrong bella landcell, retrying secondary marketplace portal}
Chat {/mp}
SetState {service_bella_mp_secondary}
IF: ItemCountGE 1 {Blank Augmentation Gem}
DO: DoAll
Chat {/a [bella] blank gem acquired, escaping and preparing augment}
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaTurnInAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablecombat false}
SetState {service_bella_escape}
@ -928,6 +1011,7 @@ STATE: {service_reset_main} ~~ {
DoExpr {clearvar[augmentTargetLoaded]}
DoExpr {clearvar[augmentStep]}
DoExpr {clearvar[augmentItem]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
DoExpr {setvar[serviceClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[serviceClock]]}
SetState {turn_in_quests}