Ikki Posted February 9, 2015 Share Posted February 9, 2015 The "Multiple Strongholds -> No Restrictions" break the Unseeing Eye quest : High Watcher Oisig never spawn if the PC is not a cleric COPY_EXISTING ~ar0900.bcs~ ~override~ ~ar0901.bcs~ ~override~ ~ar0902.bcs~ ~override~ ~ar0904.bcs~ ~override~ DECOMPILE_AND_PATCH BEGIN REPLACE_TEXTUALLY ~\(Global("GaalSpoke","AR0900",1)\|Global("TelwynSpawn","GLOBAL",0)\|Global("SainSpawn","GLOBAL",0)\|Global("YarrylSpawn","GLOBAL",0)\)[ %TAB%%LNL%%MNL%%WNL%]+OR([56])[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_MAGE)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_THIEF)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_MAGE_CLERIC)\([%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_RANGER)\)?~ ~\1~ REPLACE_TEXTUALLY ~\(Global("TelwynSpawn","GLOBAL",0)\|Global("GaalSpoke","AR0900",1)\)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_MAGE)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_THIEF)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_MAGE_CLERIC)~ ~False()~ END this code don't patch correctly ar0900.bcs on the EE. the first REPLACE_TEXTUALLY do nothing and the second REPLACE_TEXTUALLY break the normal (non stronghold) apparition of High Watcher Oisig. By the way why is this second REPLACE_TEXTUALLY necessary ? the Global("GaalSpoke","AR0900",1) should avoid the duplication of Oisig, without this False() "trigger" PS that's the original code that need patching in the EE, it must be different from the classic BG2 IFGlobal("GaalSpoke","AR0900",2)Global("NeutralMask","AR0900",1)Global("cd_beholder_dc_shenanigans","GLOBAL",0)!Alignment(Player1,MASK_GENEUTRAL)OR(6)Class(Player1,CLERIC)Class(Player1,FIGHTER_CLERIC)Class(Player1,CLERIC_MAGE)Class(Player1,CLERIC_THIEF)Class(Player1,FIGHTER_MAGE_CLERIC)Class(Player1,CLERIC_RANGER)THENRESPONSE #100SetGlobal("cd_beholder_dc_shenanigans","GLOBAL",1)ENDIFGlobal("GaalSpoke","AR0900",1)OR(2)Alignment(Player1,MASK_GOOD)Kit(Player1,GODLATHANDER)OR(6)Class(Player1,CLERIC)Class(Player1,FIGHTER_CLERIC)Class(Player1,CLERIC_MAGE)Class(Player1,CLERIC_THIEF)Class(Player1,FIGHTER_MAGE_CLERIC)Class(Player1,CLERIC_RANGER)!Kit(Player1,GODHELM)!Kit(Player1,GODTALOS)THENRESPONSE #100Wait(2)CreateCreature("bharval",[3077.1630],SW) // ~High Mornmaster Arval~SetGlobal("GoodMask","AR0900",1)SetGlobal("GaalSpoke","AR0900",2)ENDIFGlobal("GaalSpoke","AR0900",1)OR(4)Alignment(Player1,LAWFUL_NEUTRAL)Alignment(Player1,NEUTRAL)Alignment(Player1,LAWFUL_EVIL)Kit(Player1,GODHELM)OR(6)Class(Player1,CLERIC)Class(Player1,FIGHTER_CLERIC)Class(Player1,CLERIC_MAGE)Class(Player1,CLERIC_THIEF)Class(Player1,FIGHTER_MAGE_CLERIC)Class(Player1,CLERIC_RANGER)!Kit(Player1,GODLATHANDER)!Kit(Player1,GODTALOS)THENRESPONSE #100Wait(2)CreateCreature("bhoisig",[3077.1630],SW) // ~High Watcher Oisig~SetGlobal("NeutralMask","AR0900",1)SetGlobal("GaalSpoke","AR0900",2)ENDIFGlobal("GaalSpoke","AR0900",1)OR(4)Alignment(Player1,CHAOTIC_NEUTRAL)Alignment(Player1,NEUTRAL_EVIL)Alignment(Player1,CHAOTIC_EVIL)Kit(Player1,GODTALOS)OR(6)Class(Player1,CLERIC)Class(Player1,FIGHTER_CLERIC)Class(Player1,CLERIC_MAGE)Class(Player1,CLERIC_THIEF)Class(Player1,FIGHTER_MAGE_CLERIC)Class(Player1,CLERIC_RANGER)!Kit(Player1,GODLATHANDER)!Kit(Player1,GODHELM)THENRESPONSE #100Wait(2)CreateCreature("bhnalla",[3077.1630],SW) // ~Stormherald Nallabir~SetGlobal("EvilMask","AR0900",1)SetGlobal("GaalSpoke","AR0900",2)ENDIFGlobal("GaalSpoke","AR0900",1)!Class(Player1,CLERIC)!Class(Player1,FIGHTER_CLERIC)!Class(Player1,CLERIC_MAGE)!Class(Player1,CLERIC_THIEF)!Class(Player1,FIGHTER_MAGE_CLERIC)!Class(Player1,CLERIC_RANGER)THENRESPONSE #100Wait(2)CreateCreature("bhoisig",[3077.1630],SW) // ~High Watcher Oisig~SetGlobal("NeutralMask","AR0900",1)SetGlobal("GaalSpoke","AR0900",2)END Link to comment
Fouinto Posted April 25, 2015 Share Posted April 25, 2015 Hi, Same bug here... High Watcher Osig does not spawn... If I put vanilla ar0900.bcs file in override (or if I put the last block of vanilla ar0900.bcs in mine), he spawns but, after that, when I talk to him in Temple of Helm he does not speak to me about the Quest Have someone found a workaround to this bug ? Link to comment
K4thos Posted April 26, 2015 Share Posted April 26, 2015 here is fix: In bg2_tweaks/setup-bg2_tweaks.tp2 replace component 1160 with this code: BEGIN @116001 DESIGNATED 1160 GROUP @13 SUBCOMPONENT @116000 // multi strongholds REQUIRE_PREDICATE GAME_IS ~soa tob bgt bg2ee eet~ @25 // this file does nothing, it just allows other mods to detect this component COPY_EXISTING ~sw1h01.itm~ ~override/cdt01160.g3~ COMPILE ~bg2_tweaks/dlg/stronghold1.d~ // removes stronghold var ~bg2_tweaks/dlg/stronghold2a.d~ // allows choice for bard, ranger, druid strongholds ACTION_IF GAME_IS ~bg2ee eet~ BEGIN COMPILE ~bg2_tweaks/dlg/stronghold2ee.d~ // removes class checks END ELSE BEGIN COMPILE ~bg2_tweaks/dlg/stronghold2.d~ // removes class checks END COPY_EXISTING ~ar0900.bcs~ ~override~ ~ar0901.bcs~ ~override~ ~ar0902.bcs~ ~override~ ~ar0904.bcs~ ~override~ DECOMPILE_AND_PATCH BEGIN PATCH_IF GAME_IS ~bg2ee eet~ BEGIN REPLACE_TEXTUALLY ~OR(6)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_MAGE)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_THIEF)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_MAGE_CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_RANGER)~ ~~ REPLACE_TEXTUALLY ~\(Global("TelwynSpawn","GLOBAL",0)\|Global("GaalSpoke","AR0900",1)\)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_MAGE)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_THIEF)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_MAGE_CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_RANGER)~ ~False()~ END ELSE BEGIN REPLACE_TEXTUALLY ~\(Global("GaalSpoke","AR0900",1)\|Global("TelwynSpawn","GLOBAL",0)\|Global("SainSpawn","GLOBAL",0)\|Global("YarrylSpawn","GLOBAL",0)\)[ %TAB%%LNL%%MNL%%WNL%]+OR([56])[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_CLERIC)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_MAGE)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_THIEF)[%TAB% %LNL%%MNL%%WNL%]+Class(Player1,FIGHTER_MAGE_CLERIC)\([%TAB% %LNL%%MNL%%WNL%]+Class(Player1,CLERIC_RANGER)\)?~ ~\1~ REPLACE_TEXTUALLY ~\(Global("TelwynSpawn","GLOBAL",0)\|Global("GaalSpoke","AR0900",1)\)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_MAGE)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_THIEF)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,FIGHTER_MAGE_CLERIC)~ ~False()~ END END and create new file: bg2_tweaks/dlg/stronghold2ee.d it should contain this code: // class checks altered to be always true; playerhasstronghold removed in other d file REPLACE_TRIGGER_TEXT ~bharval~ ~Class(Player1,\([A-Z]+_\)*CLERIC\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~bhnalla~ ~Class(Player1,\([A-Z]+_\)*CLERIC\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~borinall~ ~Class(Player1,\([A-Z]+_\)*CLERIC\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~cechalle~ ~Class(Player1,DRUID\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~cechalle~ ~LevelLT(Player1,14)~ ~~ REPLACE_ACTION_TEXT ~cechalle~ ~ReallyForceSpell(LastTalkedToBy,GREAT_DRUID_TITLE)~ ~~ REPLACE_TRIGGER_TEXT ~cefaldor~ ~Class(Player1,DRUID\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~druidad~ ~Class(Player1,DRUID\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~garren~ ~Class(Player1,PALADIN\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~haerda~ ~Class(Player1,BARD\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~hprelate~ ~Class(Player1,PALADIN\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~lavok~ ~Class(Player1,\([A-Z]+_\)*MAGE\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~nalia~ ~Class(Player1,FIGHTER\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~naliaj~ ~Class(Player1,FIGHTER\(_[A-Z]+\)*)~ ~True()~ REPLACE_TRIGGER_TEXT ~raelis~ ~Class(Player1,BARD\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~renal~ ~Class(Player1,\([A-Z]+_\)*THIEF\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~travin~ ~Class(Player1,\([A-Z]+_\)*CLERIC\(_[A-Z]+\)?)~ ~True()~ REPLACE_TRIGGER_TEXT ~uhmay01~ ~Class(Player1,RANGER\(_[A-Z]+\)?)~ ~True()~ // misc extra dialogue tweaks REPLACE_STATE_TRIGGER bharval 0 ~NumTimesTalkedTo(0) Global("BeholderPlot","GLOBAL",0)~ REPLACE_STATE_TRIGGER BHNALLA 0 ~NumTimesTalkedTo(0) Global("BeholderPlot","GLOBAL",0)~ REPLACE_STATE_TRIGGER bhoisig 4 ~ReputationGT(Player1,14) OR(2) Alignment(Player1,MASK_LAWFUL) Alignment(Player1,NEUTRAL) Global("BeholderPlot","GLOBAL",0) Global("NoHelpBeholder","GLOBAL",0) !Kit(Player1,GODLATHANDER) Global("CDWorkingForLathander","GLOBAL",0)~ REPLACE_STATE_TRIGGER bhoisig 5 ~InPartySlot(LastTalkedToBy,0) ReputationLT(Player1,15) OR(2) Alignment(Player1,MASK_LAWFUL) Alignment(Player1,NEUTRAL) Global("BeholderPlot","GLOBAL",0) Global("NoHelpBeholder","GLOBAL",0) !Kit(Player1,GODLATHANDER)~ REPLACE_STATE_TRIGGER bhoisig 6 ~Global("PlayerHasStronghold","GLOBAL",2) InPartySlot(LastTalkedToBy,0) ReputationGT(Player1,14) Global("BeholderPlot","GLOBAL",0) Global("NoHelpBeholder","GLOBAL",0)~ REPLACE_STATE_TRIGGER bhoisig 7 ~Global("PlayerHasStronghold","GLOBAL",2) InPartySlot(LastTalkedToBy,0) ReputationLT(Player1,15) Global("BeholderPlot","GLOBAL",0) Global("NoHelpBeholder","GLOBAL",0)~ EXTEND_BOTTOM bhoisig 30 IF ~~ THEN GOTO 31 END REPLACE_STATE_TRIGGER bhoisig 42 ~Global("BeholderPlot","GLOBAL",2) Global("JoinHelm","GLOBAL",0) Class(Player1,CLERIC_ALL)~ REPLACE_STATE_TRIGGER bhoisig 59 ~Global("BeholderPlot","GLOBAL",2) !Class(Player1,CLERIC_ALL)~ ADD_TRANS_ACTION demson BEGIN 119 END BEGIN END ~EraseJournalEntry(22917)~ Link to comment
Qinefer Posted April 29, 2015 Share Posted April 29, 2015 Thank you K4thos...Your fix is working like a charm. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.