Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The player can become a guard after passing the fire mage trial #241

Merged
merged 2 commits into from Aug 10, 2021

Conversation

AmProsius
Copy link
Owner

@AmProsius AmProsius commented Jul 31, 2021

Describe the bug
After passing the trial, the player can go to Thorus to become a guard and then complete the ceremony to become a fire mage.

Expected behavior
It is no longer possible to become a guard after passing the trial of the Magicians of Fire.

@AmProsius AmProsius added type: session fix The fix for this issues is persistent across a session. compatibility: easy This issue is easy to make compatible. provided fix This issue has a fix provided in the comments. impl: add/modify if-condition This issue requires adding/replacing conditions to if-statements. labels May 10, 2021
@AmProsius AmProsius added this to the v1.2.0 milestone May 10, 2021
@AmProsius AmProsius self-assigned this May 10, 2021
@AmProsius AmProsius added this to To Do in v1.2.0 via automation May 10, 2021
@AmProsius
Copy link
Owner Author

AmProsius commented May 10, 2021

FUNC int GRD_200_Thorus_GARDIST_Condition()
{
if ( (CorKalom_BringMCQBalls == LOG_SUCCESS)
|| Npc_KnowsInfo (hero,Grd_214_Torwache_SEETHORUS)
|| Npc_KnowsInfo (hero,GRD_216_Torwache_SEETHORUS) )
&& (Npc_GetTrueGuild (hero ) == GIL_STT)
&& (!Npc_KnowsInfo (hero, GRD_200_Thorus_WANNABEMAGE))
{
return TRUE;
};
};

changed to

FUNC int  GRD_200_Thorus_GARDIST_Condition()
{
    if ( (CorKalom_BringMCQBalls == LOG_SUCCESS)
    || Npc_KnowsInfo (hero,Grd_214_Torwache_SEETHORUS)
    || Npc_KnowsInfo (hero,GRD_216_Torwache_SEETHORUS) )
    && (Npc_GetTrueGuild (hero ) == GIL_STT)
    && (!Npc_KnowsInfo (hero, GRD_200_Thorus_WANNABEMAGE))
    && (Corristo_KDFAufnahme < 4)
    {
        return TRUE;
    };

};

@AmProsius
Copy link
Owner Author

Additionally (or instead?) the player shouldn't be able to become a guard after he passed the trial (Corristo_KDFAufnahme == 4).

@szapp szapp added impl: hook script func This issue requires hooking script functions. and removed impl: add/modify if-condition This issue requires adding/replacing conditions to if-statements. labels May 10, 2021
@szapp
Copy link
Collaborator

szapp commented May 10, 2021

Additionally (or instead?) the player shouldn't be able to become a guard after he passed the trial (Corristo_KDFAufnahme == 4).

Looking at the dialog and the surrounding functions, that seems like the better option. Once the trial is successfully completed (Corristo_KDFAufnahme >= 4), the daily routines of the mages are changed. If the ceremony then does not happen, they are all stuck in this daily routine forever.

Changing Thorus's dialog instead sounds more safe.

@szapp szapp removed the provided fix This issue has a fix provided in the comments. label May 10, 2021
@AmProsius AmProsius changed the title The player can become a fire mage after becoming a guard The player can become a guard after triggering the fire mage ceremony May 11, 2021
@AmProsius AmProsius changed the title The player can become a guard after triggering the fire mage ceremony The player can become a guard after passing the fire mage trial May 11, 2021
@AmProsius
Copy link
Owner Author

I've updated the issue accordingly.

@AmProsius AmProsius added the provided fix This issue has a fix provided in the comments. label May 11, 2021
@szapp szapp added this to Dialog: Info condition in Fix templates May 13, 2021
@szapp szapp added the validation: required This issue needs validation from one of the validators. label May 14, 2021
@AmProsius AmProsius moved this from To Do to In Progress in v1.2.0 Jul 31, 2021
@AmProsius AmProsius requested a review from szapp July 31, 2021 19:46
@AmProsius AmProsius removed their assignment Jul 31, 2021
@AmProsius AmProsius added validation: validated This issue is still present even with Systempack/Union. and removed validation: required This issue needs validation from one of the validators. labels Jul 31, 2021
Copy link
Collaborator

@szapp szapp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have not run the test, but it looks good.

@AmProsius AmProsius merged commit ee1b38d into master Aug 10, 2021
@AmProsius AmProsius deleted the bug241 branch August 10, 2021 18:39
v1.2.0 automation moved this from In Progress to Done Aug 10, 2021
@szapp szapp moved this from Modify dialog conditions to Add dialog conditions in Fix templates Feb 6, 2022
@Quintus24
Copy link

Quintus24 commented May 2, 2022

Hello, everyone,

Sorry for spamming a closed report, however, I can still reproduce this issue.

After I pass the Fire Mage trial, Corristo goes to prepare the oath ceremony.
In the meantime, I can go back to Thorus and tell him I want to be a guard, he accepts and I can go and get armor from Stone.
Afterwards, I can go back to Corristo to begin the oath ceremony and become a Fire Mage.

I also checked the "fix status 241" command and it was displayed as being active.

Regards,
Quintus24

@szapp
Copy link
Collaborator

szapp commented May 8, 2022

@Quintus24 thanks for reporting! Would you mind to give a detailed account on which dialogs were spoken in which order? There are a few dialogs in play (Thorus and Corristo) that may happen in different order. It would be useful to know how you managed to slip through. According to the scripts that should be not possible. What can happen, however, I noticed is that before Corristo’s questioning is concluded, one can go back to Thorus to become a guard and then continue Corristo’s quiz to become a mage afterward. I haven’t tried it in-game. If that is the case it should be addressed, too.

@Quintus24
Copy link

Hi @szapp,

Here are the exact steps:

  1. Speak with Thorus and select the "You have something to tell me?" option.
  2. Wait for Throus to finish his reply and select the "I'm interested in the path of magic." option.
  3. Go to Milten, he will instruct you to talk with Corristo. (Milten, in my case, will trigger the dialog when approached, I forgot to deliver the Letter in my playthrough).
  4. Talk with Corristo and select the "I'd like to enter the magic Circle." option.
  5. Wait for Corristo to finish his speech and select "I'm up for it. Just test me."
  6. Begin the trial and answer the first question by selecting "Yes".
  7. Answer the second question by selecting "Innos".
  8. Answer the third question by selecting "Humility in the face of magic".
  9. Corristo will acknowledge your answers and invites you to the ritual.
  10. Head back to Thorus and select the "I want to become a guard." option.
  11. Listen to Thorus speech and wait for him to finish and to welcome you into the Guards.
    11.5. (optional: go to Stone and get your sword and armor)
  12. Go back to Corristo and begin the ritual.
  13. Wait for the ceremony to end and become a Fire Mage.

I have attached my save file, maybe it will help.
savegame1.zip

What can happen, however, I noticed is that before Corristo’s questioning is concluded, one can go back to Thorus to become a guard and then continue Corristo’s quiz to become a mage afterward. I haven’t tried it in-game. If that is the case it should be addressed, too.

I can reproduce this as well, however, once the quiz begins, you cannot back out, it is mandatory to finish it.
Therefore, you can ask Corristo to join, don't start the quiz, go back to Thorus and join the Guards, then return to Corristo to begin the quiz and become Fire Mage.

While doing these tests I also noticed that Corristo's daily routine will no longer resume if the following steps are performed:

  1. Speak with Thorus and select the "You have something to tell me?" option.
  2. Wait for Throus to finish his reply and select the "I'm interested in the path of magic." option.
  3. Go and check if Corristo is ready to talk with you, (if he is behind Milten).
  4. Head back to Thorus and select the "I want to become a guard." option.
  5. Become a Guard and notice that Corristo will remain in his position, behind Milten, indefinitely.
  6. Talk with Corristo and notice the "END" string in the dialogue box.

Regards,
Quintus24

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compatibility: easy This issue is easy to make compatible. impl: hook script func This issue requires hooking script functions. provided fix This issue has a fix provided in the comments. type: session fix The fix for this issues is persistent across a session. validation: validated This issue is still present even with Systempack/Union.
Projects
Fix templates
Add dialog conditions
v1.2.0
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants