rework bella service state recovery
All checks were successful
/ test (push) Successful in 26s

This commit is contained in:
Erik 2026-03-12 19:23:48 +01:00
parent 52a1006372
commit 76b08c0d87
4 changed files with 978 additions and 228 deletions

View file

@ -173,6 +173,10 @@ STATE: {Default} ~~ {
DO: DoExpr {setvar[disableAugmentServices, 0]}
IF: Not Expr {testvar[bellaStartAttempts]}
DO: DoExpr {setvar[bellaStartAttempts, 0]}
IF: Not Expr {testvar[bellaMpPrimaryAttempts]}
DO: DoExpr {setvar[bellaMpPrimaryAttempts, 0]}
IF: Not Expr {testvar[bellaMpSecondaryAttempts]}
DO: DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
IF: Not Expr {testvar[bellaTurnInAttempts]}
DO: DoExpr {setvar[bellaTurnInAttempts, 0]}
IF: Not Expr {testvar[bellaJawRunRecoverAttempts]}
@ -271,6 +275,8 @@ STATE: {service_decide} ~~ {
DO: DoAll
DoExpr {setvar[disableAugmentServices, 0]}
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaMpPrimaryAttempts, 0]}
DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
DoExpr {setvar[bellaTurnInAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
DoExpr {clearvar[bellaBackoffClock]}
@ -315,32 +321,49 @@ STATE: {service_bella_start} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: Chat {/a [bella] starting marketplace entry}
IF: ExitPortal
DO: SetState {service_bella_mp_primary}
DO: DoExpr {setvar[bellaStartAttempts,getvar[bellaStartAttempts]+1]}
IF: Expr {getvar[bellaStartAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: Always
DO: Chat {/mp}
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt opt set enablelooting false}
Chat {/vt opt set enablenav false}
Chat {/vt opt set enablebuffing true}
IF: SecsInStateGE 2
DO: DoAll
Chat {/a [bella] starting marketplace entry}
Chat {/vt opt set enablenav false}
Chat {/mp}
IF: ExitPortal
DO: DoAll
DoExpr {setvar[bellaStartAttempts, 0]}
SetState {service_bella_mp_primary}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_backoff} ~~ {
IF: Always
DO: DoAll
Chat {/a [bella] backoff tripped, disabling augment services for 24h}
Chat {/vt opt set enablecombat true}
Chat {/vt opt set enablenav true}
DoExpr {setvar[disableAugmentServices, 1]}
DoExpr {setvar[bellaStartAttempts, 0]}
DoExpr {setvar[bellaMpPrimaryAttempts, 0]}
DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
DoExpr {setvar[bellaTurnInAttempts, 0]}
DoExpr {setvar[bellaJawRunRecoverAttempts, 0]}
DoExpr {setvar[bellaBackoffClock,stopwatchcreate[]]}
DoExpr {stopwatchstart[getvar[bellaBackoffClock]]}
SetState {service_reset_main}
SetState {Default}
~~ }
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: DoExpr {setvar[bellaMpPrimaryAttempts,getvar[bellaMpPrimaryAttempts]+1]}
IF: Expr {getvar[bellaMpPrimaryAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: Always
DO: DoAll
@ -359,8 +382,11 @@ STATE: {service_bella_mp_primary} ~~ {
Chat {/a [bella] wrong mp_primary landblock, restarting marketplace entry}
SetState {service_bella_start}
IF: ExitPortal
DO: SetState {service_bella_jaw_run}
IF: SecsInStateGE 300
DO: DoAll
Chat {/vt opt set enablenav false}
DoExpr {setvar[bellaMpPrimaryAttempts, 0]}
SetState {service_bella_jaw_run}
IF: SecsInStateGE 60
DO: DoAll
Chat {/a [bella] mp_primary timed out, restarting marketplace entry}
SetState {service_bella_start}
@ -395,12 +421,18 @@ STATE: {service_bella_jaw_run} ~~ {
DoExpr {chatbox[`/a [bella] jaw_run stuck, recall retry `+cstr[getvar[bellaJawRunRecoverAttempts]+1]+`/3`]}
DoExpr {setvar[bellaJawRunRecoverAttempts,getvar[bellaJawRunRecoverAttempts]+1]}
Chat {/vt nav load nav_portal_recall}
SetState {service_bella_jaw_run}
SetState {service_bella_jaw_run_recover}
IF: All
SecsInStateGE 300
Expr {getvar[bellaJawRunRecoverAttempts]>=3}
DO: SetState {service_bella_backoff}
~~ }
STATE: {service_bella_jaw_run_recover} ~~ {
IF: Death
DO: SetState {death}
IF: SecsInStateGE 20
DO: SetState {service_bella_jaw_run}
~~ }
STATE: {service_bella_jaw_hunt} ~~ {
IF: Death
DO: SetState {death}
@ -410,9 +442,10 @@ STATE: {service_bella_jaw_hunt} ~~ {
SetState {service_bella_turn_in_jaw}
IF: ItemCountGE 1 {Insatiable Eater Jaw}
DO: DoAll
Chat {/vt opt set enablecombat false}
Chat {/vt nav load to_fiun}
IF: SecsInStateGE 1200
DO: SetState {service_reset_main}
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_turn_in_jaw} ~~ {
IF: Death
@ -446,55 +479,60 @@ 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}
DO: SetState {service_bella_mp_secondary}
IF: SecsInStateGE 120
DO: SetState {service_reset_main}
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_mp_secondary} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: DoExpr {setvar[bellaMpSecondaryAttempts,getvar[bellaMpSecondaryAttempts]+1]}
IF: Expr {getvar[bellaMpSecondaryAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: Expr {getplayerlandblock[]==23855104}
DO: Chat {/vt nav load mp_secondary}
IF: All
Expr {getplayerlandblock[]!=23855104}
SecsInStateGE 2
SecsInStateGE 30
DO: DoAll
Chat {/a [bella] wrong mp_secondary landcell, retrying marketplace portal}
Chat {/mp}
SetState {service_bella_mp_secondary}
IF: All
Expr {getplayerlandblock[]==23855104}
ExitPortal
Chat {/a [bella] wrong mp_secondary landblock, restarting marketplace entry}
SetState {service_bella_start}
IF: ExitPortal
DO: DoAll
DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
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}
IF: SecsInStateGE 60
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {death}
IF: All
Expr {getplayerlandcell[]!=5636705}
SecsInStateGE 2
Expr {getplayerlandblock[]!=5636096}
SecsInStateGE 30
DO: DoAll
Chat {/a [bella] wrong bella landcell, retrying secondary marketplace portal}
Chat {/a [bella] wrong bella landblock, returning to mp_secondary}
Chat {/vt opt set enablenav false}
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[bellaMpPrimaryAttempts, 0]}
DoExpr {setvar[bellaMpSecondaryAttempts, 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}
IF: SecsInStateGE 300
DO: SetState {service_reset_main}
IF: SecsInStateGE 600
DO: DoAll
Chat {/a [bella] kill_bella timed out, restarting marketplace entry}
SetState {service_bella_start}
~~ }
STATE: {service_bella_escape} ~~ {
IF: Death