server icon indicating copy to clipboard operation
server copied to clipboard

[lua] Add quest not complete check to old ring KI in Castle O

Open slashtangent opened this issue 1 month ago • 4 comments

I affirm:

  • [x] I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • [x] I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • [x] I have read and understood the Contributing Guide and the Code of Conduct.
  • [x] I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.

What does this pull request do?

Adds a check that the player has NOT completed the quest "Onion Rings". Was confirmed on retail you cannot obtain the KI again after the quest is completed.

Steps to test these changes

  1. !zone <Castle Oztroja>
  2. !gotoname _47d
  3. Click trapdoor get KI.
  4. !delkeyitem old_ring
  5. !completequest 2 42
  6. Click trapdoor don't get KI.

Capture

Trying to get the KI After completing the quest: https://youtu.be/sngOheiZYAA https://1drv.ms/u/c/87e665e10555c452/ESAQccop0BpPvI9BZO7vz3ABzf0kt6VSLBg358izVwS-KA?e=J8ThG6

Trying to get the KI before flagging the quest: https://drive.google.com/drive/folders/1-pCUZcESrK9JLSPQIEZQcdrIeRRAcpDO?usp=sharing

slashtangent avatar Nov 17 '25 00:11 slashtangent

Just move this logic to the Onion Rings quest script. Create a return status ~= xi.questStatus.QUEST_COMPLETED section for it and we dispose of this script.

Xaver-DaRed avatar Nov 17 '25 08:11 Xaver-DaRed

Just move this logic to the Onion Rings quest script. Create a return status ~= xi.questStatus.QUEST_COMPLETED section for it and we dispose of this script.

This won't work due to how IF functions. You can only be in a single section at one time. I can rework it into the quest If but it will result in a bunch of unnecessary repeated code since I would need to add this code into all 3 sections.

New one accounting for the player not having the KI AND has not completed the previous quest
Quest Available
Quest Accepted

Unrelated to the above:

I just performed a capture obtaining the KI and found that the interaction was incorrect. Obtaining the KI triggers an event and then gives the player the KI.

[12:47:27] [Capture] Capture started! [12:47:28] [ID View] INCOMING < CS Event + Params (0x034): NPC: 17396160 (), Event: 44, Params: 151, 130, 134219683, 134217732, 1125316400, 2080322158, 2, 4095 [12:47:30] You find an old ring marked with the sign of the eye. [12:47:31] [NPCL] New: 17396160 (_47d) [12:47:32] [ID View] OUTGOING > Event Option (0x05B): NPC: 17396160 (), Event: 44, Option: 0 [12:47:32] [NPCL] New: 17396028 (Yagudo Interrogator) [12:47:32] [NPCL] New: 17396235 (???) [12:47:32] [NPCL] New: 17395872 (Yagudo Oracle) [12:47:32] Obtained key item: Old ring.

slashtangent avatar Nov 17 '25 20:11 slashtangent

Whatever the case, I think its better to just have the logic live in the quest script. Even if that means 3 interactions.

Xaver-DaRed avatar Nov 17 '25 23:11 Xaver-DaRed

This PR has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

github-actions[bot] avatar Dec 03 '25 02:12 github-actions[bot]