Jump to content

Giants get penalties vs. small people creates misindexed files


Recommended Posts

Near Infinity reports that the "Giants Receive Penalties When Attacking Halflings, Dwarves, and Gnomes" component makes the relevant ITM files misindexed. This doesn't seem to cause any problems in-game, but it might prevent subsequent patches from working correctly on those items. Proposed code revision:

 

// giant weapons get THAC0 penalties vs. small people

ACTION_FOR_EACH ~file~ IN														  // for each of the following files
		  ~giafir~															 // giant hammer 
		 ~giafir2~															 // giant axe
		 ~giafir3~															 // giant fist
		~giants01~															 // giant sword
BEGIN																			  // execute the following
ACTION_IF FILE_EXISTS_IN_GAME ~%file%.itm~ BEGIN								   // if the designated file with an ITM extension exists
COPY_EXISTING ~%file%.itm~ ~override~
PATCH_IF (%SOURCE_SIZE% > 0x71) THEN BEGIN										 // file size sanity check (filters out 0 byte files i.e. ALLOW_MISSING)
// =============================================================================== // the actual work starts from here
PATCH_FOR_EACH ~eff~ IN															// for each of the following EFF files
		~giant1~															   // THAC0 penalty vs. dwarves
		~giant2~															   // THAC0 penalty vs. halflings
		~giant3~															   // THAC0 penalty vs. gnomes
BEGIN																			  // execute the following
SET opcode = "177"																 // effect: #177 (use EFF file)
SET target = "1"																   // target: 1 (self)
SET timing = "2"																   // timing mode: 2 (while equipped)
SET parameter1 = "142"															 // param1: 142 (IDS Entry - GIANT)
SET parameter2 = "4"															   // param2: 4 (IDS File - RACE.IDS)
SET power = "0"																	// power: 0
SET resist_dispel = "0"															// dispel/resistance: 0 (non-magical)
SET duration = "0"																 // duration: 0
SET probability1 = "100"														   // probability1: 100%
SET probability2 = "0"															 // probability2: 0%
SET dicenumber = "0"															   // dicenumber: 0
SET dicesize = "0"																 // dicesize: 0
SET savingthrow = "0"															  // saving throw type: 0 (none)
SET savebonus = "0"																// save bonus: 0
SPRINT ~resource~ EVALUATE_BUFFER "%eff%"										  // resref: the current EFF file
LAUNCH_PATCH_MACRO ~ADD_ITEM_EQEFFECT~											 // add new equipping effect
END																				// ends PATCH_FOR_EACH block
// =============================================================================== // the actual work ends here
END																				// ends file size check
BUT_ONLY_IF_IT_CHANGES
END																				// ends ACTION_IF FILE_EXISTS_IN_GAME block
END																				// ends ACTION_FOR_EACH block

Link to comment

Wrong index crashes the Mac version (it has an assert() here that doesn't trigger in the PC build; you must always ensure your effect indexes are correct else you're just a stinky Windows PC bigot modder). How is this not fixed already??? We've claimed to fix it in every single version since v1, and you people keep coming back to say it's still broke!

 

This is me making my angry face. Grrr.

Link to comment

Archived

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

×
×
  • Create New...