Jump to content

Windspear bugs


Recommended Posts

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

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

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

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

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...