LuLNope Posted July 21 Share Posted July 21 (edited) Area: BD1000.ARE NPC: BDVESSAN.CRE Problem: "overwrite script" set to "dw#innhl.bcs" makes it impossible to complete quest "The Vanished" as original BDVESSAN.BCS set as "script" contains quest logic that doesn't get executed. You have to side with Teleria and suggest that you'll bring her people that'll serve as better material to her art piece. Then talk to Vessanal to bait him to Teleria. Vessanal doesn't move (he should move), global state is not updated (it should: SetGlobal("bd_move_vessan","MYAREA",2)). Edited July 21 by LuLNope Quote Link to comment
jmerry Posted July 21 Share Posted July 21 So, the original state here - Vessanal has three scripts: - BDVESSAN in the override slot. All quest-related stuff. Should be left alone. - SHOUT in the race slot. - RUNENEMY in the general slot. Fitting for a level 1 INNOCENT with no combat capability. So, looking at this, it's got to be the "Better Calls for Help" component that's causing trouble. And here's the offending block: Spoiler // Level 1 innocents (no specific) LAF install STR_VAR file="dw#innhl.baf" location=baf END COPY_EXISTING_REGEXP GLOB ".*\.cre" override PATCH_TRY READ_BYTE 0x273 class READ_BYTE 0x234 level PATCH_IF (class=155 && level<=1 && INDEX_BUFFER ("shout") >=0) BEGIN FOR (i=0x248;i<0x270;i+=8) BEGIN READ_ASCII i script PATCH_IF "%script%" STRING_EQUAL_CASE "shout" BEGIN WRITE_ASCIIE 0x248 "dw#innhl" END END END WITH DEFAULT LPF regexp_warning STR_VAR parent=install_bg1_help END END BUT_ONLY Level 1 innocents with the SHOUT script in BG1 get the new dw#innhl shout script, placed in the override slot with no check for anything already being there. And there's even a comment explaining why this was done: /* A note on SHOUT in BG1 Basically, it's really dangerous. Nearly a thousand creatures have it, and it's indiscriminately given to hostiles and to innocents. BD hacks around this by using alignment as a de facto SPECIFICS. We handle it in a more principled way by: - mapping lots of the users of SHOUT onto their own bespoke scripts - mapping all the remainder, who are people like city guards and merchants, onto a non-specific-keyed help script with a bespoke shout code (119). - giving 57 as the bespoke Shout shout code - creating a new innocents-only shout, that responds both to 119 and to 57. - setting original SHOUT so that it's harmless in any case if a few residual innocents have it */ That new dw#innhl shout script is the innocents-only script. Nothing wrong with using it, but letting it bump off whatever script is in the override slot is bad. Better to find where SHOUT is and replace that instead. Quote Link to comment
jmerry Posted July 21 Share Posted July 21 Other SoD characters affected by this specific issue: - The petrified people at the Coast Way Crossing. - Herod, a minor NPC involved with the petrified people quest. - Senderin, a minor NPC at the Bridgefort. - Merome, Senderin's kid. Quote Link to comment
DavidW Posted July 21 Share Posted July 21 54 minutes ago, jmerry said: That new dw#innhl shout script is the innocents-only script. Nothing wrong with using it, but letting it bump off whatever script is in the override slot is bad. Better to find where SHOUT is and replace that instead. Yes, it's just a typo that means it's not doing that. Fixed locally, will be in 35.18. Quote Link to comment
Delior Posted July 22 Share Posted July 22 I'm guessing this is why I could never get the achievement for the Vanished quest to unlock. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.