Jump to content

Fuinril

Members
  • Posts

    8
  • Joined

  • Last visited

Everything posted by Fuinril

  1. Who's playing a game for fun anyways ?
  2. Not putting my head on the bill on this one but I can confirm this version includes parts of the fix I provided last year (better written), including the fix of the main bug rendering this specific mod nonfunctionnal.
  3. Well, I did a quick check about detectable traps not already changed by the component. There's such traps here (and only here) : BG1 : - sarevok fight, 8 traps, skull pattern BG2 : - planar prison : 2 traps just before the prisonners, disabled by the key you loot on boss (the key element is not directly related to the trap but in the BCS, making detecting it a pain) - irenicus dungeon lvl2 : 6 traps in the pillars room, disabled by putting the correct wand in containers (like previously, pretty hard to detect). - bodhi hunt lvl1 : 2 traps the squish ones IWD : - final fight room, 6 traps on the mosaic IWD2 : none PST : Did not check That's not a lot... Edit : like previously stated I do not own SoD, so there can be more in it
  4. I would recommend against it. Technically speaking there's a lot of "traps" attached to events and disable them might lead to game breaking bugs.
  5. That's how the mod works (for traps, chests and doors) : if you're not supposed to be able to disarm or lockpick it, there's no change. I have to say that I didn't know one cannot disarm the majority of the traps used in battle, so the separation is way less relevant I though it was.
  6. The though behind the separation was this component is - I think - mainly used for playthroughs without thief. However ground traps, whle often a hindrance, are also used as battle elements like against Sarevok or in the room with the mummy mosaic in Athkatla. That beeing said I understand very well giving too many options in such a huge mod is a problem of its own, so feel free to do as you see fit.
  7. I do not own SoD so I cannot be sure. It may still be broken if beamdog did something unexpected. I'll be able to answer you (and possibly fix it) if you give me a dump of the native hellevator values (ctrl+m in debug mode) on the topic you opened. The other ones are fixed. Beware if you decide to use this fix on your installation, you'll need a text entry for value 313100 in the languages/[your mod installation language]/setup.tra file
  8. Hello! I'm all new here. I downloaded this mod mainly for the no traps and no locks component which is sadly broken and do not work at all as of v9 (at least in BG2 EE - but I strongly doubt it works with any IE game due to some offset errors). So I rolled up my sleeves, cast an eye about how IE modding worked, learnt some bits of Weidu and fixed it. I'm all willing to push it on github, however I think it's more polite to ask before emitting a wild PR. Moreover I did some structural changes: I separated the component in two : ground traps and container/door traps and locks... and I'm not sure it will be welcome. So I post here and wait for an answer. Here the complete patchnote : disable trigger (ground) traps can now be installed as a stand alone component update doors "locked" flag if needed (fix doors still being locked with a 0 lockpick difficulty) update container "locked" flag if needed (fix chests still being locked with 0 lockpick difficulty) update doors "hidden located" flag for hidden doors, making them instantly visible (the "Detection difficulty" parameters does not seem to be used by the game engine) fix the offset for reading "key" parameter used to check if a door or a container has a key (and if so not remove the lock) add some checks to not override uneeded files (not sure if needed) I wanted to play with the force difficulty to allow to not remove locks but allow to force any container or door at 25 str but had no success for now Finally the code : /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// No ground traps \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN @313000 DESIGNATED 3130 GROUP @4 ACTION_IF GAME_IS ~iwd2~ BEGIN OUTER_SET off = 0x10 END ELSE BEGIN OUTER_SET off = 0 END // outside of this, patch works for v1.0 and v9.1 areas COPY_EXISTING_REGEXP GLOB ~^.+\.are$~ ~override~ READ_SHORT (0x5a + off) trig_num READ_LONG (0x5c + off) trig_off FOR (index = 0 ; index < trig_num ; ++index) BEGIN // cycle through triggers READ_SHORT (trig_off + 0x6a + (0xc4 * index)) trap_diff PATCH_IF ((trap_diff > 0) AND (trap_diff < 100)) BEGIN WRITE_SHORT (trig_off + 0x6c + (0xc4 * index)) 0 // is not a trap END END BUT_ONLY /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// No locked/hidden door or chest \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN @313100 DESIGNATED 3131 GROUP @4 ACTION_IF GAME_IS ~iwd2~ BEGIN OUTER_SET off = 0x10 END ELSE BEGIN OUTER_SET off = 0 END // outside of this, patch works for v1.0 and v9.1 areas COPY_EXISTING_REGEXP GLOB ~^.+\.are$~ ~override~ READ_SHORT (0x74 + off) cont_num READ_LONG (0x70 + off) cont_off READ_LONG (0xa4 + off) door_num READ_LONG (0xa8 + off) door_off FOR (index2 = 0 ; index2 < cont_num ; ++index2) BEGIN // cycle through containers READ_ASCII (cont_off + 0x78 + (index2 * 0xc0)) key // key PATCH_IF (("%key%" STRING_COMPARE_CASE "" = 0) OR ("%key%" STRING_COMPARE_CASE "None" = 0)) BEGIN READ_SHORT (cont_off + 0x26 + (index2 * 0xc0)) lock_diff // lock difficulty PATCH_IF ((lock_diff != 0) AND (lock_diff != 100)) BEGIN READ_BYTE (cont_off + 0x28 + (index2 * 0xc0)) cont_flags // container flags PATCH_IF ((cont_flags BAND 0b0000000000000001) = 0b0000000000000001) BEGIN // if container has locked flag WRITE_BYTE (cont_off + 0x28 + (index2 * 0xc0)) (cont_flags BXOR 0b0000000000000001) // container flag unlocked END WRITE_SHORT (cont_off + 0x26 + (index2 * 0xc0)) 0 // lock difficulty END END READ_SHORT (cont_off + 0x2c + (index2 * 0xc0)) trap_diff // trap difficulty PATCH_IF ((trap_diff != 0) AND (trap_diff != 100)) BEGIN WRITE_SHORT (cont_off + 0x30 + (index2 * 0xc0)) 0 // is not a trap END END FOR (index3 = 0 ; index3 < door_num ; ++index3) BEGIN // cycle through doors READ_SHORT (door_off + 0x6e + (index3 * 0xc8)) trap_diff // detect diff PATCH_IF ((trap_diff != 0) AND (trap_diff != 100)) BEGIN WRITE_SHORT (door_off + 0x70 + (index3 * 0xc8)) 0 // is not a trap END READ_SHORT (door_off + 0x28 + (index3 * 0xc8)) door_flags //door flags SET new_flags_value = door_flags READ_ASCII (door_off + 0x78 + (index3 * 0x8c)) key // key PATCH_IF (("%key%" STRING_COMPARE_CASE "" = 0) OR ("%key%" STRING_COMPARE_CASE "None" = 0)) BEGIN READ_LONG (door_off + 0x8c + (index3 * 0xc8)) lock_diff // lock diff PATCH_IF ((lock_diff != 0) AND (lock_diff != 100)) BEGIN WRITE_LONG (door_off + 0x8c + (index3 * 0xc8)) 0 // lock diff PATCH_IF ((door_flags BAND 0b0000000000000010) = 0b0000000000000010) BEGIN // if flag door locked SET new_flags_value = new_flags_value BXOR 0b0000000000000010 // flag door unlocked END END END PATCH_IF ((door_flags BAND 0b0000000010000000) = 0b0000000010000000) BEGIN // if secret door SET new_flags_value = new_flags_value BOR 0b0000000100000000 // secret door detected WRITE_LONG (door_off + 0x88 + (index3 * 0xc8)) 0 // detect secret doors diff - seems ununsed END PATCH_IF (door_flags != new_flags_value) BEGIN //if door flags changed WRITE_SHORT (door_off + 0x28 + (index3 * 0xc8)) new_flags_value END END BUT_ONLY
×
×
  • Create New...