Jump to content

i want to change something


khorghakh

Recommended Posts

hi, i think i should start with love this mod, but it sure has made life more difficult, but i still like.

i agree with the fact that the thaco system is flawed, this mod makes a little more sense of it, always seemed silly to me that heavier armour made you more difficult to hit

shame its not possible to have both a damage block and a damage resistance

i looked into iwd2 files and saw it has a damage block but no resistance, bg has the reverse... no way to reconcile them?

but anyway, what i want to change is this

is there a way to change the armour damage resistance from "set (1)" resistance to "increment (0)" resistance?

ive been looking for a way but cant find it, but then my modding knowledge is basic

i think its somewhere in the setup-fullplate.tp2

but all the stuff in there is gobbledygook to me

help appreciated

Link to comment

ive actually done a hatchet job, i copied all the armour item files i could find (125), zipped em using 7z at storage xcompression level, and hex edited them, there should have been 500 changes (4 resistances) but there were 517.... hmmmmm.... ah well lets play and see what happens

ps. i think id still prefer any method you can come up with

Link to comment
i looked into iwd2 files and saw it has a damage block but no resistance, bg has the reverse... no way to reconcile them?
For this thing, you would need to request Ascension64 to add in an oppcode to able to add in the damage threshold.

 

is there a way to change the armour damage resistance from "set (1)" resistance to "increment (0)" resistance?
Well, based on what I know, you need to go to the line 1947, and you should see this:
	// Pass #2: sum, change to static and replace armour resistance effects
	PATCH_IF (itemtype == 0x02) BEGIN
		PATCH_IF NOT ( ~%usename%~ STRING_EQUAL ~~ ) BEGIN
			PATCH_FOR_EACH param IN ~slashres~ ~crushres~ ~pierceres~ ~missileres~ BEGIN
				 SET y = EVALUATE_BUFFER ~%%param%_%usename%%~
				 PATCH_IF NOT (y == 0) BEGIN
					 PATCH_IF ~%param%~ STRING_EQUAL slashres BEGIN
						 SET intopcode = 86
						 SET intparam = 1
						 PATCH_INCLUDE ~sumfx.tpp~
						 READ_SHORT 0x70 fxnum
						 READ_LONG 0x6a fxoff
						 FOR (x=0; (x < %fxnum%); x+=1) BEGIN
							 READ_SHORT %fxoff% + 0x30 * %x% + 0	 opcode
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x04  param1
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x08  param2
							 PATCH_IF
								 (%opcode% = 86) BEGIN
								 PATCH_INCLUDE ~delitmfx.tpp~
							 END
						 END
						 SET opcode = 86
						 SET param1 = %returnval%
						 SET param2 = 1
						 PATCH_INCLUDE ~additmfx.tpp~
						 WRITE_SHORT 0x70 %fxnum%
						 END
					 PATCH_IF ~%param%~ STRING_EQUAL crushres BEGIN
						 SET intopcode = 87
						 SET intparam = 1
						 PATCH_INCLUDE ~sumfx.tpp~
						 READ_SHORT 0x70 fxnum
						 READ_LONG 0x6a fxoff
						 FOR (x=0; (x < %fxnum%); x+=1) BEGIN
							 READ_SHORT %fxoff% + 0x30 * %x% + 0	 opcode
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x04  param1
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x08  param2
							 PATCH_IF
								 (%opcode% = 87) BEGIN
								 PATCH_INCLUDE ~delitmfx.tpp~
							 END
						 END
						 SET opcode = 87
						 SET param1 = %returnval%
						 SET param2 = 1
						 PATCH_INCLUDE ~additmfx.tpp~
						 WRITE_SHORT 0x70 %fxnum%
						 END
					 PATCH_IF ~%param%~ STRING_EQUAL pierceres BEGIN
						 SET intopcode = 88
						 SET intparam = 1
						 PATCH_INCLUDE ~sumfx.tpp~
						 READ_SHORT 0x70 fxnum
						 READ_LONG 0x6a fxoff
						 FOR (x=0; (x < %fxnum%); x+=1) BEGIN
							 READ_SHORT %fxoff% + 0x30 * %x% + 0	 opcode
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x04  param1
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x08  param2
							 PATCH_IF
								 (%opcode% = 88) BEGIN
								 PATCH_INCLUDE ~delitmfx.tpp~
							 END
						 END
						 SET opcode = 88
						 SET param1 = %returnval%
						 SET param2 = 1
						 PATCH_INCLUDE ~additmfx.tpp~
						 WRITE_SHORT 0x70 %fxnum%
						 END
					 PATCH_IF ~%param%~ STRING_EQUAL missileres BEGIN
						 SET intopcode = 89
						 SET intparam = 1
						 PATCH_INCLUDE ~sumfx.tpp~
						 READ_SHORT 0x70 fxnum
						 READ_LONG 0x6a fxoff
						 FOR (x=0; (x < %fxnum%); x+=1) BEGIN
							 READ_SHORT %fxoff% + 0x30 * %x% + 0	 opcode
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x04  param1
							 READ_LONG  %fxoff% + 0x30 * %x% + 0x08  param2
							 PATCH_IF
								 (%opcode% = 89) BEGIN
								 PATCH_INCLUDE ~delitmfx.tpp~
							 END
						 END
						 SET opcode = 89
						 SET param1 = %returnval%
						 SET param2 = 1
						 PATCH_INCLUDE ~additmfx.tpp~
						 WRITE_SHORT 0x70 %fxnum%
						 END
				 END // if param
			END // for param
		END // if usename
	END // if type = armour

If you change the "SET param2 =1" values to "SET param2 = 0", it should install as you want... as increments.

 

Ouh, and hope that this doesn't create a loop in the program. :D

Link to comment

thank you kindly sir, ill look into the ascesion64 and i will also try out what you said about the change to the 0, (why didnt i see this! i had deduced it was param2 and was searching for all param2... i think its time to get glasses for my eyes)

cant test it out until i re-install the game, i tried an experiment... (unrelated) and well... it didnt go so well, even the backups i made didnt fix it, ah well

thanks again good sir

Link to comment

Archived

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

×
×
  • Create New...