Jump to content


Nythrun's Content

There have been 2 items by Nythrun (Search limited from 29-April 23)


By content type

See this member's

Sort by                Order  

#311748 Comments on the Compatibility Guide

Posted by Nythrun on 05 June 2007 - 09:20 AM in Rogue Rebalancing

Yes.

Look at what offset 0x608 points to after anyone runs an ADD_KNOWN_SPELL - it's not the number of stars for that proficiency anymore (known spells come first after the .cre header, adding them in moves the effects array further down the file). It's likely to end up in one of the other effects, though if there's many spells it'll end up in the spell memorization table (bad!)

Write the code however you like it, of course - I'm just suggesting that you make sure you're writing to a weapon proficiency rather than crossing your fingers and hoping you write to the correct part of the file :) As it is, you're likely to be putting a 0x00000003 somewhere where you didn't really want it :)


As long as I'm making a nuisiance of myself and bothering you, COPY_EXISTING ~file~ ~override~ is fine, COPY_EXISTING ~file~ ~override/file~ is fine if you need %DEST_RES%, and COPY_EXISTING ~file~ ~override\file~ means your mod doesn't install correctly on the Macintosh.



#311697 Comments on the Compatibility Guide

Posted by Nythrun on 05 June 2007 - 08:00 AM in Rogue Rebalancing

Your changes to Haer'dalis's .cre files will cause issues with any other mod that mucks with his spells (I'm thinking in particular of Fixpack, which rectifies haer15.cre's totally empty spellbook).

May I suggest something like:
ACTION_FOR_EACH ~haer~ IN ~haer10~ ~haer11~ ~haer13~ ~haer15~ ~haer19~ BEGIN
  ACTION_IF (FILE_EXISTS_IN_GAME ~%haer%.cre~) THEN BEGIN
	COPY_EXISTING ~%haer%.cre~ ~override~
	  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN
		READ_LONG 0x2c4 "eo"
		FOR (READ_LONG 0x2c8 "ec"; "ec" > 0x0; "ec" -= 0x1) BEGIN
		  READ_LONG ("eo" + (0x108 * ("ec" - 0x1)) + 0x08) "op"
		  PATCH_IF ("op" = 0xe9) THEN BEGIN
			READ_LONG ("eo" + (0x108 * ("ec" - 0x1)) + 0x18) "pf"
			PATCH_IF ("pf" = 0x72) THEN BEGIN
			  WRITE_LONG ("eo" + (0x108 * ("ec" - 0x1)) + 0x14) 0x3
			  SET "ec" = 0x0
			END
		  END
		END
	  END
	BUT_ONLY
  END
END

or some such?