Skip to content

Siege of Dragonspear: Indecisive Thieves

ThacoBellThacoBell 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.

Comments

  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,714
    The zip you have attached doesn't contain all the needed files:

    BALDUR.bmp
    PORT0.bmp
    PORT1.bmp
    PORT2.bmp
    PORT3.bmp
    PORT4.bmp
    PORT5.bmp
    [Deleted User]
  • ThacoBellThacoBell Member Posts: 12,235
    Uh, where are those files located? I zipped up my save.
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,714
    Then there's something wrong with your save, if those 2 files are the only files in your save. It might explain what is happening. Are you sure your game is verified?
  • ThacoBellThacoBell Member Posts: 12,235
    What do you mean by verified? Here's the entire sod save directory, if that helps.
  • ThacoBellThacoBell Member Posts: 12,235
    Is my runthrough just borked?
  • BubbBubb Member Posts: 998
    edited November 2018
    @ThacoBell: Julius is correct that every single one of your save games is missing the BMP files... which is weird. However, all of the game's actual data is stored in the two files that are there, so those files being gone really won't affect anything.

    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.
    Post edited by Bubb on
    ThacoBell
  • ThacoBellThacoBell Member Posts: 12,235
    Sure, I don't know why it would be acting weird, and it loads almost instantly for me. Maybe I should repair my install?
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,714
    Yes, please, try to repair your install. This is what I meant by "verify" the game: make a clean install, please, and test.
    ThacoBell
  • ThacoBellThacoBell Member Posts: 12,235
    Will do.
    JuliusBorisovlolien
  • ThacoBellThacoBell Member Posts: 12,235
    edited November 2018
    I've done a clean re-install and the detect traps stuttering is still happening.

    *edit*

    Aw crap, its a mod.

    *edit*
    And its not the one new mod I was trying out. Sigh.
  • ThacoBellThacoBell Member Posts: 12,235
    Ever since patch 2.5, all of my saves lack the screenshot in the little box. It happens even without mods. So something isn't installing correctly.
  • ThacoBellThacoBell Member Posts: 12,235
    Found the problem. It only happend to be my favorite mod. Should I make a separate topic for the missing files in my savegames?
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,714
    @ThacoBell Now when you've defined that this is a mod (just as I thought), please follow up with the mod maker (s) about this issue.
  • ArthasArthas Member Posts: 1,091
    edited November 2018
    Would you kindly tell the name of the mod instead of calling "the mod", "my preferite mod", etc etc?
    Ludwig_II
  • ThacoBellThacoBell Member Posts: 12,235
    @JuliusBorisov Yeah, I am.

    @Arthas Its Might and Guile.
    JuliusBorisovArthasLudwig_II
  • BubbBubb Member Posts: 998
    @ThacoBell: A little later, I know. I saw you poking around, and I thought I'd look at it again. I can't track it down to Might and Guile though; I simply can't get it to happen, even if I follow your install to a T.

    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, :lol:

    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.
    JuliusBorisovThacoBell
  • ThacoBellThacoBell Member Posts: 12,235
    @Bubb The thing is, I KNOW its MG. I ran a complete fresh install, and everything works. I install JUST MG, and the script wonkiness starts up immediately. If its something that wants to happen just to me for whatever reason, well crap.
  • ThacoBellThacoBell Member Posts: 12,235
    @Bubb Okay I went ahead and ran it and this is what I get, "Running Block 122 of BDGLINTC.BCS"

    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.
    Bubb
  • BubbBubb Member Posts: 998
    @ThacoBell: BDGLINTC is his Advanced AI script, and since you said it happens even with Party AI off, that shouldn't be the culprit, (though, it running when nothing is happening is weird). DPLAYER2, on the other hand, should not be running constantly.

    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 :)
  • ThacoBellThacoBell Member Posts: 12,235
    @Bubb Here they are. Thanks for the help.
    Bubb[Deleted User]
  • BubbBubb Member Posts: 998
    @ThacoBell: I got it. DPLAYER2 really wants party members in SoD to have a specifics value of NORMAL, while Might and Guile sets the value to D5_NO_UMD to prevent certain characters from using scrolls / wands.

    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. :)
    [Deleted User]ThacoBell
  • ThacoBellThacoBell Member Posts: 12,235
    @Bubb many thanks!

    @subtledoctor You may find this useful.
  • ArdanisArdanis Member Posts: 1,736
    edited December 2018
    DPLAYER2 sets specifics to clear whatever values party members may have been assigned by SoD's main plot scripts. Basically it's just to avoid interaction with SoD's AI system (see BDSHOUT for what specifics it uses) - I don't think it really was happening, so it's more like a precaution.
    [Deleted User]
  • The user and all related content has been deleted.
    [Deleted User]
  • ArdanisArdanis Member Posts: 1,736
    edited December 2018
    Shouldn't that just happen once, upon joining the party

    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 :)

    For that matter, rather than forcing the value to NORMAL, shouldn't it set it to NORMAL only if it is set to some particular value that would interact with SoD AI? Seems like it would be easy enough to include more specific conditions in the trigger...

    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.
  • ArdanisArdanis Member Posts: 1,736
    Bubb's solution should be fine.

    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:
    COPY_EXISTING dplayer2.bcs override
      DECOMPILE_AND_PATCH BEGIN
        REPLACE_TEXTUALLY ~OR(2)[%LNL%%MNL%%WNL%%TAB% ]+!Specifics(Myself,\(1\|NORMAL\))[%LNL%%MNL%%WNL%%TAB% ]+!Global("bd_joined","locals",0)~
        ~!Specifics(Myself,D5_NO_UMD)
        OR(2)
      	!Specifics(Myself,NORMAL)
    	!Global("bd_joined","locals",0)~
      END
    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.
  • [Deleted User][Deleted User] Posts: 0
    edited December 2018
    The user and all related content has been deleted.
  • ArdanisArdanis Member Posts: 1,736
    edited December 2018
    I've never really understood what DPLAYER2.BCS is or how it works, so troubleshooting this is hard.

    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:
    // removal from 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



    The SPECIFIC value is set to d5_no_umd via spell applied to thieves via their kit abilities tables.

    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).
    COPY_EXISTING dplayer2.bcs override
      DECOMPILE_AND_PATCH BEGIN
        REPLACE_TEXTUALLY ~THEN[%WNL%%LNL%%MNL%%TAB% ]+RESPONSE[%TAB% ]+#100[%WNL%%LNL%%MNL%%TAB% ]+ChangeSpecifics(Myself,\(1\|NORMAL\))~
        ~
      !Specifics(Myself,D5_NO_UMD)
      Switch("D5_NOUMD","locals")
    THEN
      RESPONSE #0
        ChangeSpecifics(Myself,NORMAL)
        SetGlobal("bd_joined","locals",0)
        SetGlobal("bd_npc_camp","locals",0)
      RESPONSE #1
        ChangeSpecifics(Myself,D5_NO_UMD)~
      END

    [Deleted User]
Sign In or Register to comment.