Jump to content

Unearthed Arcana presents Scales of Balance: a post-hac tweak pack


Recommended Posts

I have two problems with my installation:

121 WPO: Weapon Category Combination

Greatswords proficiency does not apply to bastard swords. 

200 Stat Bonus Overhaul (the best component ever!!!!):

I set the strength option to 0 in teh stats.ini. I then also copied it into the override folder before the install but it installed all stat bonus changes including strength. Do I need to rename it or put it somewhere else? I used notepad, maybe that was the mistake...

Link to comment
4 hours ago, Rizzen said:

Greatswords proficiency does not apply to bastard swords.

Pretty sure they are governed by longsword proficiency since, in this game, they are longswords in everything but name. 

4 hours ago, Rizzen said:

I set the strength option to 0 in teh stats.ini. I then also copied it into the override folder before the install but it installed all stat bonus changes including strength.

Not sure. I’ll check whether it is actually working. 

Link to comment
On 3/24/2022 at 2:51 PM, subtledoctor said:

Pretty sure they are governed by longsword proficiency since, in this game, they are longswords in everything but name. 

But...they are supposed to belong to the greatswords category according to the readme:

  • Quote

    Two-handed swords and bastard swords are combined into a "greatswords" proficiency.

     

Which also makes sense IMO, especially if you use the Tweaks component which allows to shift between 1-h and 2-h use with these and a couple of other weapons.

Link to comment
1 hour ago, Quester said:

Which also makes sense IMO, especially if you use the Tweaks component which allows to shift between 1-h and 2-h use with these and a couple of other weapons.

Do you have that component of Tweaks installed? That might be why - IIRC, in that case they use longsword prof when used one-handed, and greatsword prof when used two-handed. 

At least, I remember coding it that way at some point. It’s possible that shifts in the mods’ code has changed what is happening now. I’ll double-check. 

Link to comment

Don’t install both. (I think the SoB component shouldn’t even be available if it detects the MnG feats.)

Basically if you like all the other feats, then use that one. If you don’t like the other feats but you want Evasion, then install it from SoB (which optionally has the expanded list of what is evadable) or from IWDification (which is identical to the IWD version.)

Link to comment

Hi. I'm trying to wrap my head around some of the code used here and I wanted to ask a couple of questions if that's ok.

 

Specifically about this bit in component 102:

 

	PATCH_IF (%type% = 27) BEGIN // crossbows
	  READ_LONG 0x08 gen_name_strref
	  PATCH_IF (GAME_IS ~bgee bg2ee iwdee eet~) BEGIN
	    PATCH_IF (gen_name_strref = %light_xbow_strref%) BEGIN
		  READ_BYTE 0x18 handed
		  WRITE_BYTE 0x18 (~%handed%~ BAND ~0b11111101~)
		  FOR (index = 0x54 ; index >= 0x50 ; index -= 4) BEGIN // loop through descriptions
		    READ_LONG "%index%" "valid"
		    PATCH_IF ("%valid%" < 2147483646) AND ("%valid%" >= 0) BEGIN // verify description is valid
			  READ_STRREF "%index%" "description"
			  INNER_PATCH_SAVE new_desc ~%description%~ BEGIN
			    REPLACE_TEXTUALLY EXACT_MATCH ~Type: Two-handed~ ~~
			  END
			  SAY_EVALUATED "%index%" ~%new_desc%~
		    END
		  END
	    END
	  END

 

1.Does the hex code added to handed equal "no tick on two-handed"? And if so, where/how do you get the hex values for the different flags?

 

2.When verifying description is valid, are the numbers valid is being compared to string references? And if so, what's the significance of 2147483646? Is it just an arbitrary large number or is there a reason to use that specific number?

Link to comment
8 minutes ago, Allbrother said:

Does the hex code added to handed equal "no tick on two-handed"? And if so, where/how do you get the hex values for the different flags?

Yes:

READ_BYTE 0x18 handed
WRITE_BYTE 0x18 (~%handed%~ BAND ~0b11111101~)

That reads the bit values for that byte, which will be a string of eight 1s and 0s. I know from looking in NI that the two-handed flag is in that seventh bit. I tell it to set each bit to a value of 1 if it was already 1 (as recorded in the %handed% variable) and it is also 1 in my new chosen values (the part after BAND). A crossbow probably already has a value of 1 in that seventh bit - the two handed flag is "checked" - but my new chosen value is 0. Since both are not 1, it gets written as 0 and therefore the two-handed flag becomes "unchecked."

12 minutes ago, Allbrother said:

When verifying description is valid, are the numbers valid is being compared to string references? And if so, what's the significance of 2147483646? Is it just an arbitrary large number or is there a reason to use that specific number?

It's just an arbitrarily large number that is likely to exceed the total number of strings in dialog.tlk. I scavenged that from somewhere else, probably Tweak Anthology. So it has no significance apart from that I saw it was already working.

Link to comment
32 minutes ago, subtledoctor said:

That reads the bit values for that byte, which will be a string of eight 1s and 0s. I know from looking in NI that the two-handed flag is in that seventh bit. I tell it to set each bit to a value of 1 if it was already 1 (as recorded in the %handed% variable) and it is also 1 in my new chosen values (the part after BAND). A crossbow probably already has a value of 1 in that seventh bit - the two handed flag is "checked" - but my new chosen value is 0. Since both are not 1, it gets written as 0 and therefore the two-handed flag becomes "unchecked."

Thank you. Since the field is 4 bits, if I needed to edit a flag that appears in a later bit, how would that be formatted? For example if I wanted to add silver property (which if I've got this right is the last number in the second bit), what would I put after the BAND? Would it be 1b followed by eight 1s? 

Link to comment
1 hour ago, Allbrother said:

Since the field is 4 bits,

READ_BYTE reads 8 bits. I don't think there's any facility to read fewer than 8 bits.

EDIT - Ah I see, you are looking at the "flags" field. If you look at it in Near Infinity (make sure you enable the "Show Hex Offsets" option!) you can see that this field is 4 bytes - it is at byte 0x18 and the next one is at byte 0x1c.

Looking at the bottom of the NI window, it is easy to see what is where: the four columns in this field represent, starting from the left, byte 0x18, byte 0x19, byte 0x1a, and byte 0x1b. (And then the next field begins at 0x1c.)

The 'Silver' flag is in the second column, so you would READ_BYTE 0x19. Now, the tricky thing here is that the bits are in reverse order: the first one is at the bottom of the column, and the last one is at the top of the column. Or, I guess, maybe we just write it from right-to-left when we write something like "0b11111011." It's some weird endian programming thing, or something, which I don't understand. All I know is, when looking at those columns of checkboxes that are the bit flags, you read them from the bottom up.

Now, another wrinkle: you want to add the flag - check the box - not take it away. We don't want to use BAND for this because it needs both the original and new values to be 1, and for all you know the original value might be 0. So to add the flag, we use BOR, which says "set this bit to 1 if either the old value or the new value is 1. Because of that, we must treat the other seven values the opposite way to make sure they are not disturbed: we want to write new values all 0 so that they will stay 1 if they already were, and stay 0 if they already were.

So to add the silver property we would do this:

READ_BYTE 0x19 silver
WRITE_BYTE 0x19 (%silver% BOR 0b00000001)

Since this is a simple operation only affecting one byte, you can use a shorthand for that variable, instead of reading it and comparing it in two steps:

WRITE_BYTE 0x19 (THIS BOR 0b00000001)

"THIS" just means "whatever the contents of this byte already are."

To recap: when you use BOR, every bit you mark as 0 stays the same (even if it is 1) and every bit you mark as 1 becomes 1. When you use BAND, every bit you mark as 1 stays the same (even if it is 0) and every bit you mark as 0 becomes 0. 

FWIW everything I know about this stuff, I learned from Camdawg's tutorial on the subject.

Link to comment
20 minutes ago, subtledoctor said:

READ_BYTE reads 8 bits. I don't think there's any facility to read fewer than 8 bits.

EDIT - Ah I see, you are looking at the "flags" field. If you look at it in Near Infinity (make sure you enable the "Show Hex Offsets" option!) you can see that this field is 4 bytes - it is at byte 0x18 and the next one is at byte 0x1c.

Sorry, mixed up my words, meant bytes. 

 

20 minutes ago, subtledoctor said:

Looking at the bottom of the NI window, it is easy to see what is where: the four columns in this field represent, starting from the left, byte 0x18, byte 0x19, byte 0x1a, and byte 0x1b. (And then the next field begins at 0x1c.)

I did not realize that at all lol. I switched the field to edit as binary, noted the 4 number strings, switched it back, made a change and checked the binaries again to compare what changed. Knowing how the columns work is much more convenient. Also, I have the offsets, but until just know I didn't understand how exactly they incremented, now I do it'll be very helpful.

 

Thank you very much for the schooling

Edited by Allbrother
Link to comment
Guest sIllverback

Hello, first time downloading this mod. I am having an issue with the bonus proficiencies for having higher INT.

Namely, the green/yellow buttons do not appear - on any character, pure fighter, pure paladin, etc. - even with maxed INT.

I installed the WPO Systemic Proficiency changes component, and that was it (so it installed the other two components as well).

Is there a component I am missing? I made sure to uninstall any proficiency tweaks from the Anthology beforehand.

Link to comment
21 hours ago, Guest sIllverback said:

I am having an issue with the bonus proficiencies for having higher INT.

Namely, the green/yellow buttons do not appear - on any character, pure fighter, pure paladin, etc. - even with maxed INT.

I installed the WPO Systemic Proficiency changes component, and that was it (so it installed the other two components as well).

Is there a component I am missing?

Huh. I apologize, but it seems that once again changes to the mod have run ahead of the Readme. It seems that there are no longer extra proficiencies for Intelligence unless you install the "SBO Revised Stat Bonuses" component. The WPO component by itself used to look like this:

  • Fighters: 5 proficiency at level 1, plus up to 3 more for high INT.
  • So 8 proficiencies total, but can only be proficient, not specialized, until level 3.

Now the WPO component looks like this:

  • Fighters get 6 proficiencies at level 1, and you can specialize right away.
  • So you can specialize in 3 weapons at level 1, and then get mastery at level 6 and high mastery at level 9.
  • Rangers and paladins get 5

Adding the SBO component gives you extra proficiency points to spend at INT 13, 15, and 17, plus more extra points to spend as you level up. These are not limited to basic proficiency, they can be used to reach any specialization level that is valid per PROFSMAX.2da. (In the case of the WPO system, for warriors, that means specialization at level 1, mastery at level 6, and high mastery at level 9.)

Basically the 'yellow abilities/green abilities' was confusing and annoying and, based on feedback from users, did not actually change much because mid-/high-level fighters still only ended up getting mastery in one or two weapons, just like in the base game. This new version gives you fewer overall points to spend, but doesn't restrict them to simple proficiency, so you can advance more weapons to mastery in parallel.

Keeping the INT-based bonuses to the SBO component is for the sake of simplicity as well - now the stat-dependent stuff is in the component focusing on stat bonuses, while the basic proficiency changes are in the component focusing on proficiency changes.

Hope that's clear. I'll update the readme the next chance I get.

Link to comment

I am trying to use this mod to enable arcane spellcasting in armor with 0 penalties.

It seems that the "d5_yaras.ini" file in my override folder is not being read during installation. Furthermore, the regular installation without the modified .ini still is not allowing for spellcasting in armor - even with penalties. 

I don't have any other armor mods installed. Is there something I am missing?

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...