Rizzen Posted March 24, 2022 Share Posted March 24, 2022 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... Quote Link to comment
subtledoctor Posted March 24, 2022 Author Share Posted March 24, 2022 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. Quote Link to comment
Quester Posted March 28, 2022 Share Posted March 28, 2022 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. Quote Link to comment
subtledoctor Posted March 28, 2022 Author Share Posted March 28, 2022 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. Quote Link to comment
ptifab Posted April 25, 2022 Share Posted April 25, 2022 Hi @subtledoctor you have both Evasion in the Feat system and in Scales of Balance ( for Thieves at 7th level), do you know wich one i should install ? or can i install both of them ? Quote Link to comment
subtledoctor Posted April 25, 2022 Author Share Posted April 25, 2022 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.) Quote Link to comment
ptifab Posted April 26, 2022 Share Posted April 26, 2022 Ok thanks, i understand my options now Quote Link to comment
Allbrother Posted April 26, 2022 Share Posted April 26, 2022 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? Quote Link to comment
subtledoctor Posted April 26, 2022 Author Share Posted April 26, 2022 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. Quote Link to comment
Allbrother Posted April 26, 2022 Share Posted April 26, 2022 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? Quote Link to comment
subtledoctor Posted April 26, 2022 Author Share Posted April 26, 2022 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. Quote Link to comment
Allbrother Posted April 26, 2022 Share Posted April 26, 2022 (edited) 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 April 26, 2022 by Allbrother Quote Link to comment
Guest sIllverback Posted June 1, 2022 Share Posted June 1, 2022 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. Quote Link to comment
subtledoctor Posted June 2, 2022 Author Share Posted June 2, 2022 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. Quote Link to comment
Guest xDMF Posted June 17, 2022 Share Posted June 17, 2022 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? Quote Link to comment
Recommended Posts
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.