Jump to content

IR Revised V1.3.800 (2022 January 11th)


Recommended Posts

Sword of Backstabbing: This is SW1H10 in BG1 and BG2, and does do piercing damage. Either a different item file for Siege of Dragonspear or modified by a different mod.

Arrows of Dispelling: Requires a saving throw to work - if yours doesn't, it's been modified by another mod. SCS also has a component to limit them more if you so desire, IIRC.

Wands: No kidding in regards to variety...but yeah, not really something I want to be touching personally, especially since I don't use wands. Those number of charges are too high as well - IR was made for BG2 in mind (IIRC the creator of this mod literally never even played BG1), so some things for BG1 simply weren't fixed, and charges on items in general is one of those things. Wands are really supposed to max out at 10 uses.

Siege of Dragonspear: This and BG2:EE-only items are on my eventual to-do list...but I'm not going to lie: I don't really want to do them, haha. I will get around to it, though...eventually.

Link to comment
15 minutes ago, subtledoctor said:

Our ‘Low Magic World’ mod has a component to limit wands to 10 charges, courtesy of Luke. It’s become one of my must-use mod components.

IIRC, he actually asked me to put it in IRR first, but, at the time at least, it was a universal wand-replacing thing (i.e. regardless of whether the wand originally had 1 charge or 40 in the game, it'd be replaced with one that was 10), which I didn't want to do - I just wanted to go through each one and fix the ones that were over, not the ones that were under. Of course, I also thought I'd eventually have enough time to play the game and be able to do that, which I haven't...so use that component in the meanwhile is my suggestion after all, :p.

@Kilgor Thanks, fixed the Firetooth bug, I'll need more testing to figure out the Golems.

Edited by Bartimaeus
Link to comment
17 hours ago, Bartimaeus said:

Sword of Backstabbing: This is SW1H10 in BG1 and BG2, and does do piercing damage. Either a different item file for Siege of Dragonspear or modified by a different mod.

I swear modding this game can be a pain in the ass. I really only have EET, SCS, atweaks (minimal), Tweaks Anthology, Rogue Rebalanced, Ascension, IR, SR and some UI mods and that's it. I sometimes wonder if EET is the problem because I have some weird issues. I'm noticing that people that were petrified are called "Statue" once I cure them (including Branwen). The Short Sword of Backstabbing +3 is set to slashing (just checked with Near Infinity). And we have this WEIRD multiplayer bug that only my friend sees (i'm the host) that if the character in the second slot of the party turns into a bear or has an Ioun Stone floating around them, the sixth slot of the party randomly gets those visual effects on them as well. So if Jaheira turns into a bear, then visually glint also turns into a bear. Actually for some reason that sixth slot always bugs out for my friend. The character gets more and more maximun HP or sometimes it goes into the negatives. The game also keeps spamming in chat some message when I move items between characters about "can't use contingencies". Or when I level up he says he sees things spawning right next to me then poofing out once I'm done.

Maybe, next time i make a modded client I'll try to not use EET see  how it feels. That would give me the ability to skip SoD. First time I'm playing it and even though I though I was going to like it, I don't like it very much.

Link to comment
On 3/6/2020 at 1:11 AM, Bartimaeus said:

I just wanted to go through each one and fix the ones that were over, not the ones that were under.

What about this?

Spoiler

COPY_EXISTING_REGEXP ~^.+\.cre$~ ~override~
	PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN
		PATCH_FOR_EACH ~wand~ IN
			~WAND02~ // Wand of Fear
			~WAND03~ // Wand of Magic Missile
			~WAND04~ // Wand of Paralyzation
			~WAND05~ // Wand of Fire
			~WAND06~ // Wand of Frost
			~WAND07~ // Wand of Lightning
			~WAND08~ // Wand of Sleep
			~WAND09~ // Wand of Polymorphing
			~WAND10~ // Wand of Monster Summoning
			~WAND11~ // Wand of the Heavens
			~WAND12~ // Wand of Magic Missiles
			~WAND13~ // Wand of Cloudkill
			~WAND18~ // Wand of Spell Striking
			~WAND19~ // Wand of Cursing
			~BDWAND01~ // Wand of Water Elemental Summoning
		BEGIN
			PATCH_IF (FILE_EXISTS_IN_GAME ~%wand%.itm~) BEGIN
				GET_OFFSET_ARRAY itm_array CRE_V10_ITEMS
				PHP_EACH ~itm_array~ AS ~int~ => ~itm_offset~ BEGIN
					READ_ASCII (itm_offset + 0x0) resref
					PATCH_IF (~%resref%~ STRING_EQUAL_CASE ~%wand%~) BEGIN
						READ_SHORT (itm_offset + 0xa) charges_1
						READ_SHORT (itm_offset + 0xc) charges_2
						PATCH_IF ((charges_1 > 0) && (charges_2 > 0)) BEGIN
							PATCH_IF (charges_1 > 5) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, primary charges: %charges_1% => setting them to 5..."
								WRITE_SHORT (itm_offset + 0xa) 5
							END
							PATCH_IF (charges_2 > 5) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, secondary charges: %charges_2% => setting them to 5..."
								WRITE_SHORT (itm_offset + 0xc) 5
							END
						END ELSE BEGIN
							PATCH_IF (charges_1 > 10) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, primary charges: %charges_1% => setting them to 10..."
								WRITE_SHORT (itm_offset + 0xa) 10
							END
							PATCH_IF (charges_2 > 10) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, secondary charges: %charges_2% => setting them to 10..."
								WRITE_SHORT (itm_offset + 0xc) 10
							END
						END
					END
				END
			END
		END
	END
BUT_ONLY


  

COPY_EXISTING_REGEXP ~^.+\.sto$~ ~override~
	PATCH_IF (SOURCE_SIZE > 0x9b) BEGIN
		PATCH_FOR_EACH ~wand~ IN
			~WAND02~ // Wand of Fear
			~WAND03~ // Wand of Magic Missile
			~WAND04~ // Wand of Paralyzation
			~WAND05~ // Wand of Fire
			~WAND06~ // Wand of Frost
			~WAND07~ // Wand of Lightning
			~WAND08~ // Wand of Sleep
			~WAND09~ // Wand of Polymorphing
			~WAND10~ // Wand of Monster Summoning
			~WAND11~ // Wand of the Heavens
			~WAND12~ // Wand of Magic Missiles
			~WAND13~ // Wand of Cloudkill
			~WAND18~ // Wand of Spell Striking
			~WAND19~ // Wand of Cursing
			~BDWAND01~ // Wand of Water Elemental Summoning
		BEGIN
			PATCH_IF (FILE_EXISTS_IN_GAME ~%wand%.itm~) BEGIN
				GET_OFFSET_ARRAY itm_array STO_V10_ITEMS_SOLD
				PHP_EACH ~itm_array~ AS ~int~ => ~itm_offset~ BEGIN
					READ_ASCII (itm_offset + 0x0) resref
					PATCH_IF (~%resref%~ STRING_EQUAL_CASE ~%wand%~) BEGIN
						READ_SHORT (itm_offset + 0xa) charges_1
						READ_SHORT (itm_offset + 0xc) charges_2
						PATCH_IF ((charges_1 > 0) && (charges_2 > 0)) BEGIN
							PATCH_IF (charges_1 > 5) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, primary charges: %charges_1% => setting them to 5..."
								WRITE_SHORT (itm_offset + 0xa) 5
							END
							PATCH_IF (charges_2 > 5) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, secondary charges: %charges_2% => setting them to 5..."
								WRITE_SHORT (itm_offset + 0xc) 5
							END
						END ELSE BEGIN
							PATCH_IF (charges_1 > 10) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, primary charges: %charges_1% => setting them to 10..."
								WRITE_SHORT (itm_offset + 0xa) 10
							END
							PATCH_IF (charges_2 > 10) BEGIN
								PATCH_PRINT "~%SOURCE_FILE%~: ~%wand%.itm~, secondary charges: %charges_2% => setting them to 10..."
								WRITE_SHORT (itm_offset + 0xc) 10
							END
						END
					END
				END
			END
		END
	END
BUT_ONLY
  
  
  
  
  
COPY_EXISTING_REGEXP ~^.+\.are$~ ~override~
	PATCH_IF (SOURCE_SIZE > 0x11b) BEGIN
		PATCH_FOR_EACH ~wand~ IN
			~WAND02~ // Wand of Fear
			~WAND03~ // Wand of Magic Missile
			~WAND04~ // Wand of Paralyzation
			~WAND05~ // Wand of Fire
			~WAND06~ // Wand of Frost
			~WAND07~ // Wand of Lightning
			~WAND08~ // Wand of Sleep
			~WAND09~ // Wand of Polymorphing
			~WAND10~ // Wand of Monster Summoning
			~WAND11~ // Wand of the Heavens
			~WAND12~ // Wand of Magic Missiles
			~WAND13~ // Wand of Cloudkill
			~WAND18~ // Wand of Spell Striking
			~WAND19~ // Wand of Cursing
			~BDWAND01~ // Wand of Water Elemental Summoning
		BEGIN
			PATCH_IF (FILE_EXISTS_IN_GAME ~%wand%.itm~) BEGIN
				GET_OFFSET_ARRAY container_array ARE_V10_CONTAINERS
				PHP_EACH ~container_array~ AS ~int~ => ~container_offset~ BEGIN
					GET_OFFSET_ARRAY2 itm_array container_offset ARE_V10_ITEMS
					PHP_EACH ~itm_array~ AS ~int~ => ~itm_offset~ BEGIN
						READ_ASCII (itm_offset + 0x0) resref
						PATCH_IF (~%resref%~ STRING_EQUAL_CASE ~%wand%~) BEGIN
							READ_ASCII (container_offset + 0x0) container_name (32) NULL
							READ_SHORT (itm_offset + 0xa) charges_1
							READ_SHORT (itm_offset + 0xc) charges_2
							PATCH_IF ((charges_1 > 0) && (charges_2 > 0)) BEGIN
								PATCH_IF (charges_1 > 5) BEGIN
									PATCH_PRINT "~%SOURCE_FILE%~: ~%container_name%~, ~%wand%.itm~, primary charges: %charges_1% => setting them to 5..."
									WRITE_SHORT (itm_offset + 0xa) 5
								END
								PATCH_IF (charges_2 > 5) BEGIN
									PATCH_PRINT "~%SOURCE_FILE%~: ~%container_name%~, ~%wand%.itm~, secondary charges: %charges_2% => setting them to 5..."
									WRITE_SHORT (itm_offset + 0xc) 5
								END
							END ELSE BEGIN
								PATCH_IF (charges_1 > 10) BEGIN
									PATCH_PRINT "~%SOURCE_FILE%~: ~%container_name%~, ~%wand%.itm~, primary charges: %charges_1% => setting them to 10..."
									WRITE_SHORT (itm_offset + 0xa) 10
								END
								PATCH_IF (charges_2 > 10) BEGIN
									PATCH_PRINT "~%SOURCE_FILE%~: ~%container_name%~, ~%wand%.itm~, secondary charges: %charges_2% => setting them to 10..."
									WRITE_SHORT (itm_offset + 0xc) 10
								END
							END
						END
					END
				END
			END
		END
	END
BUT_ONLY

 

 

Edited by Luke
Link to comment
8 hours ago, NdranC said:

I swear modding this game can be a pain in the ass. I really only have EET, SCS, atweaks (minimal), Tweaks Anthology, Rogue Rebalanced, Ascension, IR, SR and some UI mods and that's it. I sometimes wonder if EET is the problem because I have some weird issues. I'm noticing that people that were petrified are called "Statue" once I cure them (including Branwen). The Short Sword of Backstabbing +3 is set to slashing (just checked with Near Infinity). And we have this WEIRD multiplayer bug that only my friend sees (i'm the host) that if the character in the second slot of the party turns into a bear or has an Ioun Stone floating around them, the sixth slot of the party randomly gets those visual effects on them as well. So if Jaheira turns into a bear, then visually glint also turns into a bear. Actually for some reason that sixth slot always bugs out for my friend. The character gets more and more maximun HP or sometimes it goes into the negatives. The game also keeps spamming in chat some message when I move items between characters about "can't use contingencies". Or when I level up he says he sees things spawning right next to me then poofing out once I'm done.

Maybe, next time i make a modded client I'll try to not use EET see  how it feels. That would give me the ability to skip SoD. First time I'm playing it and even though I though I was going to like it, I don't like it very much.

Honestly, if that's really all you have installed, then I don't think any of those should be affecting Short Sword of Backstabbing's damage type besides a remote possibility of RR. I'll start investigating to see if maybe Weapon Changes is doing it.

Contingency spamming: Think this is an SCS thing, although I thought it had been reduced greatly compared to years ago.

@Luke Yeah, that's good stuff, especially because I didn't want to do with trying to do both BGT and EET which sometimes use different resources. Do you mind if I put it in IRR, then?

Link to comment

@NdranC

This bit of code is found in the Weapon Changes component in both IR and IRR:

PATCH_IF wakizashi || short_sword BEGIN
    WRITE_SHORT off+0x1c 3  // slashing
    WRITE_SHORT off+0x2c 50 // overhand
    WRITE_SHORT off+0x2e 50 // backhand
    WRITE_SHORT off+0x30 0  // thrust
END

Apparently, short swords have been changed to slashing for quite some time and I never noticed. @Mike1072, do you have any insight on why this might be, especially undocumented as it is?

Link to comment

Demi introduced it here.

On 7/1/2014 at 8:50 AM, Demivrgvs said:

Before starting to discuss changes to specific items that may be included in future updates of the beta, there's a couple of things that are already implemented in the current build but not yet mentioned in the first post.

Weapon Changes

Short Swords now use slashing dmg type instead of piercing.

This change may sound odd but we've done this in an effort to give every weapon type some sort of "role".

Short sword advantages over long swords:

  • no backstab penalty
  • can be dual wielded more efficiently
  • better speed factor
  • better thac0 against armor (because of piercing type)

Long sword advantages:

  • +0.5 dmg

Short sword advantages over daggers:

  • +0.5 dmg
  • range 1 instead of 0 (not a big deal I know)

Dagger advantages:

  • better speed factor

The above mentioned gloabl change would remove short sword advantage against armor compared to long swords, while giving daggers a bit more value. What do you think?

 

Link to comment

Seems like sound logic. I was wondering out loud because the description didn't match the outcome. There is an argument to be made for Short Sword of BackSTABBING to be piercing instead of slashing since thematically you should be stabbing (piercing) with it and not slashing but then I guess that same logic would apply to all short swords.

Link to comment
16 hours ago, Bartimaeus said:

Do you mind if I put it in IRR, then?

No, I don't. I also added ARE (Containers) and STO files.

To sum up:

  • if a wand has 2 abilities (e.g., Wand of Spell Striking), then my code will make sure that both 'charge' values are not greater than 5
  • If a wand only has 1 ability (or 2 abilities and one of them has 0 charges), then my code will make sure that 'charge' value is not greater than 10.

Does it meet your specifications?

Link to comment
5 minutes ago, Bartimaeus said:

@Luke Yes, thank you very much! :)

You should probably put it into a separate component...

After a quick test, everything seems to be fine (please double check...). Moreover, the code is easily modifiable in case you want to take into account other rechargeable items (e.g., Sandthief's Ring)...

Link to comment

IR Revised V1.2.7 released.

Changes:

  1. As previously mentioned, BG1:EE shields get their original graphics restored.
  2. All wands now correctly max out at 10 charges (as opposed to some of the crazier numbers like 50 in BG1!). Big thanks to Luke for the code for this. This is not, at this time, a separate component, mainly because I would've eventually forced this change on a case-by-case basis at some point anyways. However, if there are problems with the implementation, then we can certainly look into making it one. Installed fine on a BG1:EE and BGT game from what I tested.
  3. A number of weapons had animation percentiles (what percentage they would either thrust, overhand, or backhand) that were inconsistent with IR's custom percentiles. Most were fixed with the exception of a few oddball cases, e.g. Staff Spear (which will continue to use spear percentiles).
  4. Mostly disabled the Spellhold Token Machine tweak. If you prefer having a few pairs of doubled boots, I won't stop you!

Fixes:

  1. Going along with number 1 above, I just fixed the order of some of the final fixing tweaks of IRR so that the BG1:EE graphics restoration actually sticks (previously was being overwritten and therefore not showing up due to a poor order).
  2. Spell Deflection on that one amulet had 10 charges instead of 9.
  3. Some more SR-Haste consistency fixes (these will seemingly never stop, for there are so many sources of Haste!).
  4. Mithral Field Plate Mail +2 was in a weird state of being half between +2 and +3 - now fully +2 again (but still retains the Mithral +1 AC bonus, so kind of effectively +3 still?).
  5. Arrow of Detonation had an incorrect -2 saving penalty.
  6. Werebane had an incorrect "drain type" (harmless?).
  7. Marek's Potion should hopefully be fixed for BG1:EE games.
  8. Adoy's Belt had some kind of typo I've already forgotten the details of, but it was fixed.
  9. Firetooth +5's special AoE fire effect was only firing with 15% frequency instead of 100%.
  10. Made Horn of Kazgaroth's description consistent and more clear versus its effects.
  11. Fixed the BG1EE double class requirements/limitations bug.
Edited by Bartimaeus
Link to comment

Good day. I installed the latest version of IR on BG 1 EE but chose to skip "Thieves can use Wands". But somehow my pure 1 lvl thief can use wand of lightning :). Wand description says that this wand can not be used by Cleric\Thief and FIghter\Thief, but "Thief" clause is missing. I checked it several times, reinstalling and trying vanilla version (vanila also properly limiting the use of this want by "Thief" clause in the description). Any idea why is that? Thx beforehand.  

Edited by pochesun
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...