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
Gor Na Ran attacks the player character in chapter 6 #220
Conversation
I see two possible fixes:
Any thoughts on this @szapp? 1 There's no routine that supports this behavior yet. |
To be honest, I don't find the argument compelling that he is supposed to be in the sleeper temple. Fair enough, the dialog doesn't make much sense given he is still in the swamp camp. But there is no indication what the "where" is, that he is referring to. Either of the two options proposed here seem as arbitrary as the dialog itself. For the time being, I would leave it as it is. But we can discuss some more. |
In my opinion the Sleeper's temple is the only logical explanation, because it's the only place in the game where the mad templars are. I suppose he should have been placed at some gateway, given this dialog: FUNC VOID Info_TPL_1405_GorNaRan_Info()
{
AI_Output (self, other,"Info_TPL_1405_GorNaRan_Info_13_01"); //Wo willst DU hin, hier darf niemand durch!
}; As the option to place him in the temple might be too opinionated, I'd like to disable the dialog, because it surely isn't supposed to happen the way it is now. |
UPDATE The suggested implementation will not work as it only sets the first dialog to told but not the remaining ones. It is also a bit more complicated than need be: /*
* #220 Gor Na Ran attacks the player character in chapter 6
*/
func int G1CP_220_GorNaRanDialogMad() {
if (G1CP_IsFunc("Info_TPL_1405_GorNaRan_Condition", "int|none")) {
HookDaedalusFuncS("Info_TPL_1405_GorNaRan_Condition", "G1CP_220_GorNaRanDialogMad_Hook");
return TRUE;
} else {
return FALSE;
};
};
/*
* Hook the dialog condition function to disable it
*/
func int G1CP_220_GorNaRanDialogMad_Hook() {
G1CP_ReportFuncToSpy();
// Always return false: The dialog is inaccessible
return FALSE;
}; Something like this should suffice to disable the dialog during the game and re-enable it when saving (to make it available again when removing the patch): Bad suggestion - Only kept for completeness
/*
* #220 Gor Na Ran attacks the player character in chapter 6
*/
func int G1CP_220_GorNaRanDialogMad() {
if (!Npc_KnowsInfo(hero, "Info_TPL_1405_GorNaRan")) {
G1CP_SetInfoTold("Info_TPL_1405_GorNaRan", TRUE);
return TRUE;
} else {
return FALSE;
};
};
/*
* This function reverts the changes
*/
func int G1CP_220_GorNaRanDialogMadRevert() {
// Only revert if it was applied by the G1CP
if (!G1CP_IsFixApplied(220)) {
return FALSE;
};
// Re-enable the info
G1CP_SetInfoTold("Info_TPL_1405_GorNaRan", FALSE);
return TRUE;
}; The test will have to be just manual: Set the variable |
Describe the bug
Gor Na Ran attacks the player character in chapter 6. Considering the corresponding dialog, it seems that he is supposed to be in the Sleeper's temple.
Expected behavior
Gor Na Ran no longer attacks the player character in chapter 6.
Additional context
Bug provided by Blubbler.
gothic-1-community-patch/scriptbase/_work/Data/Scripts/Content/Story/Missions/DIA_TPL_1405_GorNaRan.d
Lines 61 to 168 in 7406330