Jump to content

IR v4 Beta (last update 20 June 2017)


Recommended Posts

Doesn't the suggestion Mike gave in an older thread about 1PP work ? I use that order myself and don't remember seing misalignment on helmets/shields and stuff.

 

It probably is a stupid idea but if item_rev is changed not to copy any items (and only copy the relevant bams if 1pp is not already installed) but patch the items to create the necessary effects, would this problem with 1pp go away ?

 

1. Um, sort of. The only one I had out of order out of those was the "increased paperdoll variety", I believe, but I had other other problems beyond that, and it reverted much of 1pp's newer graphics changes back to an older version of 1pp, which I wanted to fix.

 

2. That would be...exceedingly difficult to do, for reasons Mike spelled out. Without his theoretical tool, it would be just an absolutely absurd amount of work for all the changes Item Revisions makes, and pretty much the entire main component of Item Revisions would have to be redone from near scratch. To me, it would just make so much more sense to simply recommend installing all of current Item Revisions before 1pp if you're going to install both of them...and then making some sort of additional "compatibility" component for Item Revisions that fixes the few inconsistencies/bugs that there are between 1pp and Item Revisions that would be the only component you'd install after both 1pp and Item Revisions. That would be what I'd do, anyways.

 

@Mike: a few criticisms of my text changes you mentioned:

 

1. Conflating specific spells with particular protections (e.g. immunity to level drain/Protects Against: Level Drain -> Spell: Negative Plane Protection). Yes, this is actually something I was considering reverting. I originally had, for example, Amulet of Metaspell Influence say "Spell: Vocalize", but then, when I came upon Shazellim that actually *did* have the entirety of Vocalize's effects, I realized that they should not necessarily be considered the same thing (and in fact, I very much did not want them to be the same thing!), and ended up reverting some of such changes. I tried to keep only the ones that were literally exactly the same (Negative Plane Protection being such a one), but there may have been a little oversight on some of them, and regardless, I get why you don't want to use it.

 

2. Immunity to [...] vs. Protects Against [...]. This is something I struggled with as well - basically, my thought was that I didn't really like "unanchored text" - text in Equipped Abilities and Combat Abilities that did not fall under any sort of specific "ability". Without any sort of specific ability for that sort of text to fall under, I was basically thinking, "Well, why write 'Speed: +1 bonus to Attacks per Round' instead of just '+1 bonus to Attacks per Round'?". That's the same reason I used "Spell Memorization: [...]" instead of just writing it without - it was just to avoid any unanchored text. I understand your dislike to it, though, as it's one of the few ways my text got perhaps unnecessarily longer rather than shorter. In this specific case, though, I valued consistency over brevity.

 

3. Ordering. Yeah, my order is somewhat arbitrary, basically a mix of what I felt was generally (but not always) followed in vanilla Item Revisions as well as a couple of my own changes, some based on the order the game displays them in, for example, character sheets...with the one major exception of instead putting all penalties below all bonuses (and then in the same order). Also, I just realized - all "Lockpicking: [...]" text should actually be "Open Locks" as per how the actual game writes it. Also, Horn/Claw of Kazgoroth should be Horn/Claw of Kazgaroth, if I'm not mistaken.

 

4. And finally, creature text for summonables. Yeah, that's something you'll have to figure out on your own. What I was trying to do there was to avoid, for example, Spectral Brand's "immune to everything except magic damage" type text, and instead provide a standard to follow that was similar to Spell Revisions'. Unfortunately, it doesn't totally work how I imagined, because depending upon those stats, it sometimes spills onto a second line which I was trying very hard to avoid. Part of the reason I did this was that I also wanted to list the creature statistics of Polymorph/Shapeshifting abilities like you see on Cloak of the Sewer, as well as provide stats for a few summonables like Spectral Brand and Ras, which Item Revisions did not do.

 

I also made my own revised versions of a few additional items and creatures like the Jade Hound and Moon Dog figurines among some others (including Regis' Ruby Pendant of Beguiling, the Holy Symbols, and some of the "Bonus Merchant" items that Item Revisions does not handle...and probably a few other things :)) and which I then added to my own Item Revisions 'Revised' mod (for personal use only, of course)

Edited by Bartimaeus
Link to comment

Hello, recently used items revisions for the first time during a test run of EET.

 

I like the ideas very much. However it's kinda lacking at the moment, there are a lot of description errors and the mod isn't up to date with SoD at all.

I'm however ready to help with the descriptions as I use the mod.

 

Is there any plan to move the list based components to automatically generated ones in the way @subtledoctor does it on Scales of Balance?

What is the preferred way to report these mistakes? This subforum is dead outside of this thread.

Link to comment

Hello, recently used items revisions for the first time during a test run of EET.

 

I like the ideas very much. However it's kinda lacking at the moment, there are a lot of description errors and the mod isn't up to date with SoD at all.

Nothing has been done for SoD yet, but the global components should mostly work (perhaps the shield/armor/bracer lists need to be updated). I have yet to finish playing the expansion, but once I do, I'll be happy to address any compatibility concerns.

 

I'm however ready to help with the descriptions as I use the mod.

That's great. If you're familiar with using GitHub, you can fork the G3 repo and submit pull requests directly, or you can just post your corrections here on the forum in the new typo thread linked below.

 

 

Is there any plan to move the list based components to automatically generated ones in the way @subtledoctor does it on Scales of Balance?

Could you explain further? I'm not familiar with how Scales of Balance works.

 

What is the preferred way to report these mistakes? This subforum is dead outside of this thread.

Yes, this thread is getting fairly unwieldy. I've created new topics for reporting Typos, Bug Reports, and Feedback.

Link to comment

There's numerous cases of items being duplicated in SoD so even basic ones like long swords +1 or shields +1 can be missed by IR. I'm trying to find as many cases during my EET gameplay so I'll bring the discussion whether EET should or not bring these items together for the modder's sake. There's also some items specifically wonky in EET due to them existing differently in both games(the ankheg plate mail from BG1 isn't modified by IR in EET).

 

It however would be greatly improved by moving away from list based components I think. I have no idea how to do it as I'm not a modder myself but I asked subtledoctor the question on the BG forums here so if more details are wanted on how to make it work, it's probably him who needs to be asked.

While I haven't tested his armor system yet to see how it works, here's what he said about his daggers which have worked for SoD items too.

 

On another note, do your IR like components rely on pre-generated lists? A dagger generated by thalantyr upgrade mod wasn't affected by the APR bonus.

It's all done dynamically. So if it doesn't affect something like that, my guess would be either 1) you installed that mod after this one; or 2) that mod doesn't code the dagger properly.

 

 

I'm half familar with GitHub though no practical experience(I did a project for university using it but my coworkers didn't submit anything -.-) so i'll maybe check it out after my current test run, i'm noting a bunch of things as they go.

 

Thanks for the answer and good job on the new threads :)

Link to comment

IR's main component is designed to change specific items in specific ways. It replaces items on an individual basis, so while not technically using a list, it only affects the items it knows about and wants to change. If SoD introduces new items, they won't be changed by the main component (unless we decide later they should be). I don't know why SoD would introduce new generic non-magic or plain +1/+2/etc. copies of items that already exist in the game, but we can find a way to address that if it's happening.

I'm aware that some of the BG1 items in EET are not being modified by IR's main component even though they should be - that's because they were given different filenames than in BGT. It should be quite easy to fix since k4thos recently provided a list of such files.

It however would be greatly improved by moving away from list based components I think. I have no idea how to do it as I'm not a modder myself but I asked subtledoctor the question on the BG forums here so if more details are wanted on how to make it work, it's probably him who needs to be asked.


IR's global components are designed to affect all items in the game, including new ones added by mods (or expansions like SoD). There are a few components that can't function without knowing extra information about items. For example, it's impossible to tell the difference between different types of armors just by reading from the item files, so we use lists to classify every armor in the game or added by a mod. When new mods (or expansions) are released, those lists need to be updated or else the items can be miscategorized. It's unfortunate, but that's the only way to make these components have the effects we want. This relates to the armor, shield, bracer, and wand components. Other components, like the weapon changes, can correctly identify items using just the information stored in the item file, so they don't need to be adjusted when new mods come along.

Link to comment

Hum, I just looked at Scales of Balance's tpa and it would seem like it parses the name of the object to detect the type though I don't really understand the details to handle side cases. He's pretty good at this type of stuff so I'm sure his solution works. He alsos patches the item's descriptions so even if applied to a modded in item, the description stays correct.

 

The main component indeed isn't a problem here but I think the store revision component is also affected (I detected the +1 long swords because they had different prices) and others outside of the main component.

 

Here's the .tpa : https://github.com/subtledoctor/Scales_of_Balance/blob/master/scales_of_balance/components/100_IWO_YARAS.tpa

Edited by GrimLefourbe
Link to comment

Hum, I just looked at Scales of Balance's tpa and it would seem like it parses the name of the object to detect the type though I don't really understand the details to handle side cases. He's pretty good at this type of stuff so I'm sure his solution works. He alsos patches the item's descriptions so even if applied to a modded in item, the description stays correct.

 

The main component indeed isn't a problem here but I think the store revision component is also affected (I detected the +1 long swords because they had different prices) and others outside of the main component.

 

If the Store Revisions component is acting up, I'd recommend avoiding it for now simply because that's Ardanis' baby and he hasn't been around to maintain it. I think it's only supposed to affect BG2 at this time.

 

That might* work for what he's doing, but we also have to determine whether armors are supposed to freely allow spellcasting and thievery, whether they're made of scale (which druids should be able to use), made of mithril or elven-made (reduced spellcasting and thieving penalties). I might consider using name detection for something simpler like the bracer/glove component, but that can run into complications of its own relating to translations and there will always be a few items that are exceptions to the rule.

 

*A lot of the weird mod-added items can be tricky to identify and may contain contradictions or errors. For example, it looks like this component replaces the armor value of items, recalculating it using the standard value for the armor type and subtracting the enchantment value. I wouldn't trust that all mod-added armors have the right enchantment value specified because I think that field only has an in-game effect for weapons. I also don't trust unidentified names completely, because I've seen cases where an item has been changed significantly from the original item it was based on and the unidentified values left incorrect because the item comes pre-identified in the mod. (When updating these lists I manually categorized armors using clues like the item description and unidentified name, enchantment value, armor bonuses vs. type, etc.)

Link to comment

 

That might* work for what he's doing, but we also have to determine whether armors are supposed to freely allow spellcasting and thievery, whether they're made of scale (which druids should be able to use), made of mithril or elven-made (reduced spellcasting and thieving penalties). I might consider using name detection for something simpler like the bracer/glove component, but that can run into complications of its own relating to translations and there will always be a few items that are exceptions to the rule.

 

I was going to make that same remark but he also uses the name to detect mithril etc.

 

I think a good way to do it would be to have the characteristics extracted from the name, unless specified otherwise in a list. Doing things this way avoid having a number of items entirely unaltered by modifications supposed to be global. What do you think? I think it's easier to list the exceptions than list everything to catch the exceptions, plus it'd be less work once implemented and I don't think subtledoctor would mind too much if the process was heavily copied from Scales of balance.

 

I'll test his revised armor system in my next playthrough to see how well it works on heavily modded installations.

Link to comment

It would be a ton of work to replace the armor identification system and doing that would make it less accurate than what we've got now. Updating the list isn't hard if you get a volunteer to install a bunch of mods and run a little utility that extracts all the armors that aren't included in the list.

Link to comment

Demi cast Raise Dead on self...

 

Sorry if I disappeared again, time to wrap things up! Thankfully Mike is still around (I love you man :worship: ) and I think I can dedicate 1-2 hours per day to modding for quite a few weeks before I have to get back to work.

 

I'll try to read all the posts I missed and start to understand where I have to start. :unsure: Brb

Link to comment

Just to chime in: I appreciate the, um, appreciation for my mod, but it's not a silver bullet. There is none. Sometimes lists are appropriate - in fact I use a list of elven chain armors to make them usable by Archers in my other mod. Lists guarantee every single armor gets the particular treatment it deserves. The downside is, you have to keep updating them, and there are occasional blips between the introduction of new stuff and your ability to update the list, when some things will be missed.

 

My system tries to dynamically glean as much information as I can from the various fields in the .itm file, and make a judgment call about how the item should be treated. But there are pitfalls to this: for one, since armors' enchantment value has no inherent use (the actual bonuses are coded elsewhere) lots of armors have nothing in that field. Which is problematic, because my mod relies on that information. So I have to create it on the fly.

 

Another example: some armors don't follow normal conventions when it comes to their unidentified names - which I also rely on. Even some of Beamdog's own stuff does this wrong! It's kind of infuriating.

 

I try to account for these errors with other information (like the equipped appearance, or some commonly accepted standards for how to spell 'mithril,' etc. But at the end of the day there's no guarantee that I get it all right.

 

(Also, now that I'm discussing this, it occurs to me that my current code might break pretty hard on non-English installs... poop.)

Link to comment

Of course it's not 100% accuracy but I think having a default behaviour through dynamic assignement would be good though. I feel like having items be a bit wrong isn't as bad as having items simply not affected by changes. If you need to chose between "new items aren't included until manual acknowledgement" and "badly made items aren't properly included until manual acknowledgement", it seems better to have the second option imo.

Edited by GrimLefourbe
Link to comment

Well, this is a good point:

 

having a default behaviour through dynamic assignement would be good though.

 

Frankly the ideal system would be to use static lists, and then the default system for unlisted items should really be as complicated or moreso than my mod. Put them together and it would be really robust.

Link to comment

I think a good way to do it would be to have the characteristics extracted from the name, unless specified otherwise in a list. Doing things this way avoid having a number of items entirely unaltered by modifications supposed to be global. What do you think? I think it's easier to list the exceptions than list everything to catch the exceptions, plus it'd be less work once implemented and I don't think subtledoctor would mind too much if the process was heavily copied from Scales of balance.

 

IIRC we've already been using this approach in some component for years (Shield Bash perhaps?). I distinctly remember reading the name, enchantment and actual armor value from an item and then printing out a warning if they didn't match up.

 

I agree it would make a fine backup solution for items missing from the hand-made list (in fact, our armor list was built from extracted game data containing the item name and description and its AC modifiers, which I then manually reviewed and made judgement calls in ambiguous cases). The downside is we'd need to test it extensively, to make sure the inclusion of additional heuristics won't accidentally fubar something unrelated (hint - it can).

 

This would only be an issue for shields and armor types, though, I think? Maybe helmets too.

 

 

The main component indeed isn't a problem here but I think the store revision component is also affected (I detected the +1 long swords because they had different prices) and others outside of the main component.

The store component automatically sorts the items by type, price and name. If there're two swords +1, that means either someone added another item into a store, or modified an existing one. Beyond that, I can't tell much.

Edited by Ardanis
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...