Siege of Dragonspear: Indecisive Thieves
ThacoBell
Member Posts: 12,235
Made it to SoD for the first time in the new patch, and something odd is happening. Every single thief character (excpet my charname, oddly) refuses to detect traps. It blinks on and offevery round, and makes it impossible to detect anything. This happens even with all AI turned off. And whenever the ability switches, the character stops whatever else they were doing, like walking. My charname is does not have points in detect traps so this is a little problematic. I'm playing BG1+SoD on PC, but this issue never arose in the BG1 portion. Only after getting transferred to SoD did this happen. I'm using mods, but my mod list changes very little, if at all, between playthoughs, and I've never seen this before.
0
Comments
BALDUR.bmp
PORT0.bmp
PORT1.bmp
PORT2.bmp
PORT3.bmp
PORT4.bmp
PORT5.bmp
When I load up your game everything is fine, though it does take an abnormally long time to load. The GAM file is around 6 times larger than they normally are... and Near Infinity stutters like hell trying to read it. At first glance I can't see anything obviously wrong, but the bloated file size and long loading times seems to suggest some corruption somewhere.
What mods were you using, out of curiosity? If you could upload your WeiDU.log it would be helpful
Edit: Scratch the corruption idea; the large file size is simply from what I believe is Might and Guile adding 500+ effects to certain NPCs.
*edit*
Aw crap, its a mod.
*edit*
And its not the one new mod I was trying out. Sigh.
@Arthas Its Might and Guile.
If you want to keep troubleshooting it here, you can install the attached mod, selecting the "Without the G3'BGII Fixpack" option. The mod will pop up above a creature's head the script block they are currently running. The script that appears when detect traps turns off should be the culprit...
If you could, please attach the offending script so I can look at it
Or, if you don't want to continue here, just tell me to shut up and I'll get out of your hair,
Credit goes to the respective authors for the troubleshooting mod, I only edited it slightly to display the script block over the respective creature instead of Player1.
Oh wait, there's more than one. "Running Block 3 of DPLAYER2.BCS"
It looks like Block 3 is running first, followed by block 122.
Could you zip up those two files out of your override folder and attach it here? I don't know what those blocks are without looking at the files themselves
I've attached a fixed version of DPLAYER2 which should prevent the offending block from changing the Specifics value... There might be side effects in the SoD AI, because your Specifics value isn't what it expects it to be, but I believe this is the best I can do.
You should uninstall the debug mod, and then drop the attached file into your override.
@subtledoctor You may find this useful.
You mean injecting it into every JoinParty() action block, and missing some, instead of doing it at the bottleneck point? My experience with setting up the go-to-camp routine, which had to be done manually, says it's a pretty bad idea and should be avoided if possible
I said it before, but specifics really shouldn't be used for any purpose other than AI grouping. First, because it's a single field that can contain a single value, so you already have compatibility problem with other mods trying this approach. Second, specifics are coded into InMyGroup() trigger, so it's a good practice to null them when they aren't explicitly needed, instead of keeping track of increasing number of events where they are used and manually confirming there'll be no issues.
You obviously can edit DPLAYER2 to only run that block when it's using values checked by AI, but I don't exactly feel it's something to fix in the core game, for ease of maintenance as outlined above.
Note, btw, that kicking NPCs out of party in SoD will put them back into its AI system and set their specifics to 10 (party-friendly ally, see BDPARTY, which is set by DPLAYER2), and it can go on indefinitely. And I think a few times it may be set to something hostile in break-up dialog, though in this case you probably wouldn't have worry much about their scroll usability.
I'm gonna assume D5_NO_UMD is automatically assigned to free value in specific.ids at install time, so adding this to tp2 should fix the issue: Based on the stutter, I'm also gonna assume you forcefully set specifics to D5_NO_UMD when character is in party and doesn't have it set, and don't need to keep a track of such character when they're not in party - meaning BDPARTY setting it to 10 shouldn't concern you. If it's not the case, though, let me know - I'll see what can be done.
A kind of "party" script, one of the few that are set/run via hard code. This is how creature's scripts are adjusted when they join/leave the party:
//
// OVERRIDE -> // no change
// CLASS -> NONE
// RACE -> NONE
// GENERAL -> WTASIGHT
// DEFAULT -> // no change
// joining the party:
//
// OVERRIDE -> // no change
// CLASS -> DEFAULT // i think it's advanced AI now instead...
// RACE -> NONE
// GENERAL -> NONE
// DEFAULT -> DPLAYER2
Ah, so it not reset by script then? In that case, if you want to stick to specifics then use this instead of the previous snippet, this should handle the reset if characters leave/rejoin. On your end, the spell in CLAB will need to additionally set the D5_NOUMD local to 1 (opcode 309 only handles up to eight characters as internal effect, if you want the second underscore then use external EFF).