Jump to content

Arrows of Ice


Recommended Posts

The Arcane Archer includes a bugfix that may not be present in the BG2Fixpack (I did not notice this fix as I scanned the item section). Excluding (of course) the opposite elemental damage, Arrows of Fire and Arrows of Ice are identical in all respects (including cost) except one: THAC0 bonus. Arrows of Fire grant a THAC0 bonus of +2. I think it likely that the Arrows were meant to be 'opposite but equal'.

 

a W.L.

 

COPY_EXISTING ~AROW09.ITM~ ~override~
WRITE_SHORT 0x86 2

 

*edit: rendered code a teeny bit more efficient*

Link to comment

You're right, it has two damage effects (but the value is not Electricity [4] but Unknown [262144], and it is also not referenced by any other files. So we can probably ignore it...

 

I think it's a BG1 remnant. The abilities fit BG1's AROW16 (which did 1d6 elemental damage, as opposed to the 1d2 the BG2 equivalent's description says). AROW16 was used in BG1 by Angelo.

Link to comment
And the THAC0 bonus likely from the kobold or phoenix arrows (the +2 THAC0 bonus exists in BG).

 

Personally, I think the bug is that the arrow of fire is providing an unmentioned and nonsensical THAC0 bonus.

 

The THAC0 bonus is mentioned in the item description (with the Game Text Upgrade installed, anyway). As for being nonsensical... that is up for debate. I, for one, approve of the bonus. :O

Link to comment

AROW16 and is a BG holdover (they're on Angelo) and is not referenced by anything in a clean ToB install. The THAC0 bonus is not mentioned in the original game text, which means devSin is right--the THAC0 is spurious. I've removed the THAC0 bonus from the GTU and added this code to adjust the Arrows of Fire:

 

// fire arrows have a spurious +2 thac0 bonus
COPY_EXISTING ~arow08.itm~   ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_BYTE ("%abil_off%" + (0x38 * "%index%")) "type"
   PATCH_IF ("%type%" = 2) BEGIN // ranged
     WRITE_SHORT ("%abil_off%" + 0x14 + (0x38 * "%index%")) 0 // thac0 bonus
   END
 END
 BUT_ONLY_IF_IT_CHANGES

 

The other three arrows of fire are BG holdovers--Angelo's angarow.itm, Kobold Commandos (arowkc.itm) and Phoenix Guards (arrophe2.itm).

 

edit: Scratch that, arowkc are used by BG2 kobold commandos and are the old school BG arrows of fire: 1d6+2 +1d6 fire damage. They are undroppable though.

Link to comment
// fire arrows have a spurious +2 thac0 bonus
COPY_EXISTING ~arow08.itm~   ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_BYTE ("%abil_off%" + (0x38 * "%index%")) "type"
   PATCH_IF ("%type%" = 2) BEGIN // ranged
     WRITE_SHORT ("%abil_off%" + 0x14 + (0x38 * "%index%")) 0 // thac0 bonus
   END
 END
 BUT_ONLY_IF_IT_CHANGES

 

Um... wouldn't this have been a bit easier?

 

:D

 

a Wounded Lion

 

COPY_EXISTING ~AROW08.ITM~ ~override~
WRITE_SHORT 0x86 0

Link to comment

Anything beyond 0x72 is extended headers, and subject to change if someone wants to add abilities, effects, etc. This code is portable, maximally compatible, and I can drop it anywhere (in fact it was originally from another patch) and not have to worry about whether we patch arow08 somewhere else in the Fixpack. :D

Link to comment
Anything beyond 0x72 is extended headers, and subject to change if someone wants to add abilities, effects, etc. This code is portable, maximally compatible, and I can drop it anywhere (in fact it was originally from another patch) and not have to worry about whether we patch arow08 somewhere else in the Fixpack. :D

 

In this case, I think it unlikely that anyone would change the Arrows of Fire to such an extent that 0x86 would no longer mark the location of the THAC0 bonus field... Ultimately, however, I don't care what code you use so long as it works. :D

 

a W.L.

Link to comment

Archived

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

×
×
  • Create New...