Jump to content

Reflection Shield and Skeleton Warriors


Guest Humanoid_Taifun

Recommended Posts

Guest Humanoid_Taifun

I just noticed in my current game that the Reflection shield doesn't protect against the Ice Arrows from Skeleton Warriors.

 

 

Apart from that, maybe there should also be a description update, as, like the Cloak of Mirroring, it doesn't reflect the missiles back at the attacker anymore (at least I think it used to reflect them without ToB installed...) .

Link to comment
I just noticed in my current game that the Reflection shield doesn't protect against the Ice Arrows from Skeleton Warriors.

Hmm, yes. The shield lacks protection against the projectile (pro 102) used by Ice Arrows. This should fix it:

COPY_EXISTING shld24.itm override
 PATCH_IF SOURCE_SIZE > 0x71 BEGIN
READ_LONG  0x64 ab_off
READ_SHORT 0x68 num_ab
READ_LONG  0x6a fx_off
READ_SHORT 0x70 num_fx
FOR (i=0;i<num_fx;i+=1) BEGIN
  READ_SHORT fx_off + 0x38*i fx_type
  PATCH_IF fx_type = 197 BEGIN
	READ_ASCII fx_off + 0x38*i copy (0x30)
	i = num_fx
  END
END
INSERT_BYTES fx_off + 0x30*num_fx	   0x30
WRITE_ASCIIE fx_off + 0x30*num_fx	   "%copy%"
WRITE_LONG   fx_off + 0x30*num_fx + 0x8 102
delta = 1
WRITE_SHORT 0x70 num_fx + delta
FOR (i=0;i<num_ab;i+=1) BEGIN
  READ_SHORT  ab_off + 0x38*i + 0x20 fx_idx
  WRITE_SHORT ab_off + 0x38*i + 0x20 fx_idx + delta
END
 END

 

Additionally, the spell Physical Mirror lacks protection against Flame Arrows (pro 3) and Bolts of Lightning (pro 15). This should take care of that:

COPY_EXISTING sppr613.spl override
 PATCH_IF SOURCE_SIZE > 0x71 BEGIN
READ_LONG  0x64 ab_off
READ_SHORT 0x68 num_ab
READ_LONG  0x6a fx_off
READ_SHORT 0x70 fx_idx
num_fx = 0
FOR (i=0;i<num_ab;i+=1) BEGIN
  fx_idx += num_fx
  READ_SHORT  ab_off + 0x28*i + 0x1e num_fx
  WRITE_SHORT ab_off + 0x28*i + 0x20 fx_idx
  FOR (j=0;j<num_fx;j+=1) BEGIN
	READ_SHORT fx_off + 0x30*(fx_idx + j) fx_type
	PATCH_IF fx_type = 197 BEGIN
	  READ_ASCII   fx_off + 0x30*(fx_idx + j)			copy (0x30)
	  PATCH_FOR_EACH pro IN 3 15 BEGIN
		INSERT_BYTES fx_off + 0x30*(fx_idx + num_fx)	   0x30
		WRITE_ASCIIE fx_off + 0x30*(fx_idx + num_fx)	   "%copy%"
		WRITE_LONG   fx_off + 0x30*(fx_idx + num_fx) + 0x8 pro
		num_fx += 1
	  END
	  j = num_fx
	END
	WRITE_SHORT ab_off + 0x28*i + 0x1e num_fx
  END
END
 END

Link to comment

Archived

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

×
×
  • Create New...