AmProsius / gothic-1-community-patch

Gothic 1 Community Patch
Other
50 stars 4 forks source link

Weed Monopoly cannot be completed violently #316

Open MarkusRamikin opened 2 years ago

MarkusRamikin commented 2 years ago

After you've found the weed mashers near the lake by New Camp, if you choose the first dialog option with Jarko, that you're putting an end to their business, this doesn't advance the quest. Later with Kor Kalom the PC will still be saying that he can't find these men. In that situation the quest cannot be completed.

AmProsius commented 2 years ago

Thanks for reporting. We will have to check that ingame, because I don't see any bug in the scripts:

https://github.com/AmProsius/gothic-1-community-patch/blob/5abd54ea7c342f19cfa0d1352d30eccc45c0130a/scriptbase/_work/Data/Scripts/Content/Story/Missions/DIA_GUR_1201_CorKalom.d#L457-L468

If you killed all the bandits, the quest should progress further.

szapp commented 2 years ago

The if-conditions are arranged incorrectly. The else if which is checking for the death of the NPCs can never be reached, if the variable Stooges_Fled is not true, i.e. if the player did not speak to Jacko.

The else if and the if should be switched in order to progress the quest in that case.

https://github.com/AmProsius/gothic-1-community-patch/blob/5abd54ea7c342f19cfa0d1352d30eccc45c0130a/scriptbase/_work/Data/Scripts/Content/Story/Missions/DIA_GUR_1201_CorKalom.d#L452-L468

changed to

 if (Stooges_Fled == TRUE)
 || (Npc_IsDead(Jacko) && Npc_IsDead(Renyu) && Npc_IsDead(Killian)) 
 { 
     AI_Output (other, self,"Mis_1_Psi_Kalom_Success_15_04"); //They are gone. 
     AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_05"); //You surprise me. I underestimated your abilities. Maybe you could be useful after all. 
     //AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_06"); //Rede mit den Baals. 

     Kalom_DrugMonopol = LOG_SUCCESS; 
     B_LogEntry          (CH1_DrugMonopol,"I've informed Cor Kalom that the rivaling weed production in the New Camp has been stopped. His reaction was as 'friendly' as always."); 
     Log_SetTopicStatus  (CH1_DrugMonopol,   LOG_SUCCESS); 
     B_GiveXP            (XP_DrugMonopol); 
 }
 else
 { 
     AI_Output (other, self,"Mis_1_Psi_Kalom_Success_15_02"); //I can't find these men. 
     AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_03"); //I wouldn't have expected anything else from you. 
 } 

or, alternatively, like so

 if (Stooges_Fled != TRUE)
 && (!Npc_IsDead(Jacko) || !Npc_IsDead(Renyu) || !Npc_IsDead(Killian))
 { 
     AI_Output (other, self,"Mis_1_Psi_Kalom_Success_15_02"); //I can't find these men. 
     AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_03"); //I wouldn't have expected anything else from you. 
 } 
 else 
 { 
     AI_Output (other, self,"Mis_1_Psi_Kalom_Success_15_04"); //They are gone. 
     AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_05"); //You surprise me. I underestimated your abilities. Maybe you could be useful after all. 
     //AI_Output (self, other,"Mis_1_Psi_Kalom_Success_10_06"); //Rede mit den Baals. 

     Kalom_DrugMonopol = LOG_SUCCESS; 
     B_LogEntry          (CH1_DrugMonopol,"I've informed Cor Kalom that the rivaling weed production in the New Camp has been stopped. His reaction was as 'friendly' as always."); 
     Log_SetTopicStatus  (CH1_DrugMonopol,   LOG_SUCCESS); 
     B_GiveXP            (XP_DrugMonopol); 
 };

Implementing this may be a bit tricky.