Ardanis Posted August 1, 2012 Share Posted August 1, 2012 ar1202.are - the cloudkill and lightning bolt traps use container scripts (CT**) which only have Opened() trigger, unsuitable for ground regions. They probably should be changed to ground (GT**), but on the other hand, they were broken for over a decade and nobody has taken a notice yet - I myself have discovered them only when my passive trap detection script has all of the sudden displayed the string. I expect a lot of outrage from players who will suddenly get fried in a supposedly safe place, so probably no action should be taken, beside maybe truly disabling these regions. firkra02.dlg - bringing him Garren's deed awards with quest XP everybody except Player1. bg2fixpack/baf/garren.baf - does anybody know why it had to be added? When Garren spawns in ar1200, he sets "DomainPaladinBattle" to 5 (but only when PC is male), which should force him to travel without interruption his cabin and DestroySelf() near the door - so in theory it is the dialog that should be patched, not the script. Yet I do recall that he has once remained standing still, and I know I was male then. Otherwise it should be changed to set "DomainPAladinBattle" to 6, to prevent the Garren in a cabin from running the 5->6 script block, breaking the quest. I'd use vanilla's action IF AreaCheck("ar1200") Global("GarTrig","GLOBAL",1) Global("Kidnap","GLOBAL",3) THEN RESPONSE #100 SetGlobal("DomainPaladinBattle","GLOBAL",6) MoveToPointNoInterrupt([829.3184]) DestroySelf() END Link to comment
CamDawg Posted August 4, 2012 Share Posted August 4, 2012 ar1202.are - the cloudkill and lightning bolt traps use container scripts (CT**) which only have Opened() trigger, unsuitable for ground regions. They probably should be changed to ground (GT**), but on the other hand, they were broken for over a decade and nobody has taken a notice yet - I myself have discovered them only when my passive trap detection script has all of the sudden displayed the string. I expect a lot of outrage from players who will suddenly get fried in a supposedly safe place, so probably no action should be taken, beside maybe truly disabling these regions. They're traps, intended to do something but failing due to the triggers--they should be fixed, not discarded. // ground traps won't trigger due to container scripts COPY_EXISTING ~ar1202.are~ ~override~ READ_SHORT 0x5a "info_num" READ_LONG 0x5c "info_off" FOR (index = 0; index < info_num ; index = index + 1) BEGIN READ_ASCII ("%info_off%" + 0x7c + (0xc4 * "%index%" )) "script" (2) PATCH_IF ("%script%" STRING_COMPARE_CASE "ct" = 0) BEGIN WRITE_ASCII ("%info_off%" + 0x7c + (0xc4 * "%index%" )) ~gt~ #2 END END BUT_ONLY_IF_IT_CHANGES firkra02.dlg - bringing him Garren's deed awards with quest XP everybody except Player1. ADD_TRANS_ACTION FIRKRA02 BEGIN 34 END BEGIN END ~AddXPObject(Player1,40500)~ bg2fixpack/baf/garren.baf - does anybody know why it had to be added? When Garren spawns in ar1200, he sets "DomainPaladinBattle" to 5 (but only when PC is male), which should force him to travel without interruption his cabin and DestroySelf() near the door - so in theory it is the dialog that should be patched, not the script. Yet I do recall that he has once remained standing still, and I know I was male then. Otherwise it should be changed to set "DomainPAladinBattle" to 6, to prevent the Garren in a cabin from running the 5->6 script block, breaking the quest. I'd use vanilla's action IF AreaCheck("ar1200") Global("GarTrig","GLOBAL",1) Global("Kidnap","GLOBAL",3) THEN RESPONSE #100 SetGlobal("DomainPaladinBattle","GLOBAL",6) MoveToPointNoInterrupt([829.3184]) DestroySelf() END garren.baf was a last backstop since, even after we fixed other stuff, he was still there and annoying us. We can change garren.baf to add the move and SG, sure. As for the dialogue ADD_TRANS_ACTION GARREN BEGIN 45 END BEGIN 1 END ~ActionOverride("firban01",DestroySelf()) ActionOverride("firban02",DestroySelf()) ActionOverride("firban03",DestroySelf()) ActionOverride("firban04",DestroySelf()) ActionOverride("firban05",DestroySelf()) ActionOverride("garjum",DestroySelf()) SetGlobal("DomainPaladinBattle","GLOBAL",5)~ Link to comment
lynx Posted August 4, 2012 Share Posted August 4, 2012 he uses activate/deactivate, which initially caused many problems for gemrb too. Link to comment
Wisp Posted August 6, 2012 Share Posted August 6, 2012 A few more trap mistakes: two more ground traps that won't trigger due to container scripts and two container traps that won't trigger due to ground scripts. // ground traps won't trigger due to container scripts COPY_EXISTING ~ar1202.are~ ~override~ ar0502.are override ar5201.are override READ_SHORT 0x5a "info_num" READ_LONG 0x5c "info_off" FOR (index = 0; index < info_num ; index = index + 1) BEGIN READ_ASCII ("%info_off%" + 0x7c + (0xc4 * "%index%" )) "script" (2) PATCH_IF ("%script%" STRING_COMPARE_CASE "ct" = 0) BEGIN WRITE_ASCII ("%info_off%" + 0x7c + (0xc4 * "%index%" )) ~gt~ #2 END END BUT_ONLY_IF_IT_CHANGES // container traps won't trigger due to ground scripts COPY_EXISTING ar0503.are override ar5204.are override READ_LONG 0x70 co FOR (i = 0; i < SHORT_AT 0x5a; ++i) BEGIN READ_ASCII co + 0xc0 * i + 0x48 s (2) PATCH_IF "%s%" STRING_EQUAL_CASE gt BEGIN WRITE_ASCII co + 0xc0 * i + 0x48 CT #2 END END BUT_ONLY Additionally, there is a container in AR5003 that is trapped with GTSPIKE. I guess we can either make a "CTSPIKE" script or amend the trigger in GTSPIKE. Some 30 GT* scripts already have an OR(2) Entered Opened trigger. Thoughts? Link to comment
Ardanis Posted August 6, 2012 Author Share Posted August 6, 2012 Additionally, there is a container in AR5003 that is trapped with GTSPIKE. I guess we can either make a "CTSPIKE" script or amend the trigger in GTSPIKE. Some 30 GT* scripts already have an OR(2) Entered Opened trigger. Thoughts? The less new files we have, the better. I still want to point out that a trap fixed to work properly is not going to be nice towards unsuspecting players. Better let it be known that several traps now become active and may kill you. Link to comment
CamDawg Posted August 6, 2012 Share Posted August 6, 2012 I still want to point out that a trap fixed to work properly is not going to be nice towards unsuspecting players. Better let it be known that several traps now become active and may kill you. This isn't the first trap fixed. Link to comment
CamDawg Posted August 6, 2012 Share Posted August 6, 2012 Additionally, there is a container in AR5003 that is trapped with GTSPIKE. I guess we can either make a "CTSPIKE" script or amend the trigger in GTSPIKE. Some 30 GT* scripts already have an OR(2) Entered Opened trigger. Thoughts? If there's no ctspike, I'd just OR the trigger. Link to comment
Wisp Posted August 6, 2012 Share Posted August 6, 2012 Okie doke, one ORed trigger. // script assigned to both container and area-trigger traps, but only working for area triggers COPY_EXISTING gtspike.bcs override DECOMPILE_AND_PATCH BEGIN REPLACE_TEXTUALLY ~\(IsOverMe(\[GOODCUTOFF\])\)~ ~OR(2) \1 Opened([GOODCUTOFF])~ END BUT_ONLY UNLESS ~16521 [0-9]+ 0 0 0 "" "" OB~ Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.