I found the following when installing expert megamod with BWS (used BWS version of 13 Nov)
The component
BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ 0 3130 // No Traps or Locks (Weimer): v16 BWP Fix
is installed per default although the BWP manual declares it for not-install
This component make thiefs etc. completely useless and should not be installed per default.
This never happened before in BWS, so it is probably a bug created recently.
Does anyone have an idea how to revert it without having to re-install a 23h installation?
Maybe it is possible to use this script that causes the destruction and change some values to re-introduce the removed features??
COPY_EXISTING_REGEXP GLOB ~^.+\.are$~ ~override~
READ_SHORT 0x5a "trig_num"
READ_LONG 0x5c "trig_off"
READ_SHORT 0x74 "cont_num"
READ_LONG 0x70 "cont_off"
READ_SHORT 0xa4 "door_num"
READ_LONG 0xa8 "door_off"
FOR (index = 0 ; index < trig_num ; index = index + 1) 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
FOR (index2 = 0 ; index2 < cont_num ; index2 = index2 + 1) BEGIN // cycle through containers
WRITE_LONG ("%cont_off%" + 0x26 + ("%index2%" * 0xc0)) 0 // lock difficulty
WRITE_SHORT ("%cont_off%" + 0x30 + ("%index2%" * 0xc0)) 0 // is not a trap
END
FOR (index3 = 0 ; index3 < door_num ; index3 = index3 + 1) BEGIN // cycle through doors
WRITE_SHORT ("%door_off%" + 0x70 + ("%index3%" * 0xc8)) 0 // is not a trap
WRITE_LONG ("%door_off%" + 0x88 + ("%index3%" * 0xc8)) 0 // detect diff
WRITE_LONG ("%door_off%" + 0x8c + ("%index3%" * 0xc8)) 0 // lock diff
END
BUT_ONLY_IF_IT_CHANGES
DEFINE_PATCH_FUNCTION AREA_ALTER_REGION
INT_VAR type = "-1" // region type at 0x20; negative values mean no change
cursor = "-1" // cursor type at 0x34; negative values mean no change
trap_detect = "-1" // difficulty of trap detection at 0x68; negative values mean no change
trap_remove = "-1" // difficulty of trap removal at 0x6a; negative values mean no change
trapped = "-1" // is trapped? at 0x6c; negative values mean no change
detected = "-1" // is detected? at 0x6e; negative values mean no change
// flag_ vars affect flags starting at 0x60; 0 means remove flag, 1 means add flag, -1 no change
flag_locked = "-1" // locked, bit0
flag_resets = "-1" // trap resets, bit1
flag_party_required = "-1" // party required, bit2
flag_trap_detectable = "-1" // trap can be detected, bit3
flag_trap_enemies = "-1" // trap can be set off by enemies, bit4
flag_tutorial = "-1" // tutorial trigger, bit5
flag_trap_npcs = "-1" // trap can be set off by npcs, bit6
flag_silent = "-1" // silent trigger, bit7
flag_deactivated = "-1" // deactivated, bit8
flag_impassable_npc = "-1" // can not be passed by npcs, bit9
flag_activation_point = "-1" // use activation point, bit10
flag_connect_to_door = "-1" // connected to door, bit11
STR_VAR trig_name = "" // required, at 0x00, used to match region
dest_area = "same" // changes destination area at 0x38; "same" means no change
ent_name = "same" // changes entrance name at 0x40; "same" means no change
door_key = "same" // resref of key to unlock at 0x74; "same" means no change
door_script = "same" // resref of region script at 0x7c; "same" means no change
BEGIN
READ_SHORT 0x5a trig_num
READ_LONG 0x5c trig_off
FOR (index = 0 ; index < trig_num ; ++index) BEGIN
READ_ASCII (trig_off + (index * 0xc4)) "trig_name_file" (32) NULL
PATCH_IF ("%trig_name%" STRING_COMPARE_CASE "%trig_name_file%" = 0) BEGIN
PATCH_IF ("%type%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x20 + (index * 0xc4)) "%type%" END
PATCH_IF ("%cursor%" >= 0) BEGIN WRITE_LONG (trig_off + 0x34 + (index * 0xc4)) "%cursor%" END
PATCH_IF ("%trap_detect%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x68 + (index * 0xc4)) "%trap_detect%" END
PATCH_IF ("%trap_remove%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6a + (index * 0xc4)) "%trap_remove%" END
PATCH_IF ("%trapped%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6c + (index * 0xc4)) "%trapped%" END
PATCH_IF ("%detected%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6e + (index * 0xc4)) "%detected%" END
PATCH_IF ("%flag_locked%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111110) END
PATCH_IF ("%flag_resets%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111101) END
PATCH_IF ("%flag_party_required%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111011) END
PATCH_IF ("%flag_trap_detectable%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11110111) END
PATCH_IF ("%flag_trap_enemies%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11101111) END
PATCH_IF ("%flag_tutorial%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11011111) END
PATCH_IF ("%flag_trap_npcs%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b10111111) END
PATCH_IF ("%flag_silent%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b01111111) END
PATCH_IF ("%flag_deactivated%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111110) END
PATCH_IF ("%flag_impassable_npc%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111101) END
PATCH_IF ("%flag_activation_point%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111011) END
PATCH_IF ("%flag_connect_to_door%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11110111) END
PATCH_IF ("%flag_locked%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT0) END
PATCH_IF ("%flag_resets%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT1) END
PATCH_IF ("%flag_party_required%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT2) END
PATCH_IF ("%flag_trap_detectable%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT3) END
PATCH_IF ("%flag_trap_enemies%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT4) END
PATCH_IF ("%flag_tutorial%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT5) END
PATCH_IF ("%flag_trap_npcs%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT6) END
PATCH_IF ("%flag_silent%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT7) END
PATCH_IF ("%flag_deactivated%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT0) END
PATCH_IF ("%flag_impassable_npc%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT1) END
PATCH_IF ("%flag_activation_point%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT2) END
PATCH_IF ("%flag_connect_to_door%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT3) END
PATCH_IF ("%dest_area%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same
WRITE_ASCIIE (trig_off + 0x38 + (index * 0xc4)) "%dest_area%" #8 // value from str_var
END
PATCH_IF ("%ent_name%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same
WRITE_ASCIIE (trig_off + 0x40 + (index * 0xc4)) "%ent_name%" #32 // value from str_var
END
PATCH_IF ("%door_key%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same
WRITE_ASCIIE (trig_off + 0x74 + (index * 0xc4)) "%door_key%" #8 // value from str_var
END
PATCH_IF ("%door_script%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same
WRITE_ASCIIE (trig_off + 0x7c + (index * 0xc4)) "%door_script%" #8 // value from str_var
END
END
END
END
Edited by Roxanne, 18 November 2015 - 11:19 AM.