WIP: fix: avoid pushing to quest progress in updateQuestStage #2847

Closed
Sainan wants to merge 7 commits from quest-fix into main
Owner

Fixes #2846. The problem in that case was that ordis' message caused the logic in updateQuestStage to increment the quest stage because of an off-by-one (it wasn't accounting for the client's 1-indexing), so the quest was basically finished at that point, which the client then realised upon resyncing the inventory.

Fixes #2846. The problem in that case was that ordis' message caused the logic in `updateQuestStage` to increment the quest stage because of an off-by-one (it wasn't accounting for the client's 1-indexing), so the quest was basically finished at that point, which the client then realised upon resyncing the inventory.
Sainan added 4 commits 2025-10-05 08:58:16 -07:00
Sainan added 1 commit 2025-10-05 09:09:39 -07:00
fix completeKey
All checks were successful
Build / build (pull_request) Successful in 1m1s
06156bacf0
Sainan added 2 commits 2025-10-05 09:23:07 -07:00
handle giveKeyChainTriggeredMessage with ChainStage = -1
Some checks failed
Build / build (pull_request) Has been cancelled
a539b07502
e.g. for railjack build quest, the initial inbox message is sent like this. no 'm' needs to be set to true for it.
Sainan force-pushed quest-fix from a539b07502 to 827e224c3b 2025-10-05 09:23:44 -07:00 Compare
Sainan force-pushed quest-fix from 827e224c3b to 37c2da0f8e 2025-10-05 09:26:31 -07:00 Compare
Author
Owner

This logic definitely seems a lot more solid now. At least triggering a message doesn't advance the quest unexpectedly but I do see that now the 'm' fields in Progress are kinda off-by-once compared to live which doesn't make a whole lot of sense.

It's possible that the 'm' and 'i' fields for the currently active stage are tracked in some way that's not apparent to the client and then discharged to Progress once that stage has been completed.

This logic definitely seems a lot more solid now. At least triggering a message doesn't advance the quest unexpectedly but I do see that now the 'm' fields in Progress are kinda off-by-once compared to live which doesn't make a whole lot of sense. It's possible that the 'm' and 'i' fields for the currently active stage are tracked in some way that's not apparent to the client and then discharged to `Progress` once that stage has been completed.
Sainan changed title from fix: avoid pushing to quest progress in updateQuestStage to WIP: fix: avoid pushing to quest progress in updateQuestStage 2025-10-05 09:47:56 -07:00
Sainan closed this pull request 2025-10-05 09:58:02 -07:00
Sainan deleted branch quest-fix 2025-10-05 09:58:07 -07:00
All checks were successful
Build / build (pull_request) Successful in 1m37s

Pull request closed

Sign in to join this conversation.
No description provided.