Closed quantumfate closed 1 week ago
Hello,
FAB+ definitely stores the ability configuration by AbilityId not by ability name. Different versions of scribed skills with different ability IDs should allow you to store different config information for them. The main issue is that scribed skills with the same signature script can (not always, but a lot of the time), have the the same slotted ability Id. If scribed skill that return different abilityIds from GetAbilityIdForCraftedAbilityId() aren't able to set different configs, then this would be a bug.
If I understand correctly you're suggesting that it's a bug in the game? Because that would make sense I guess.
No it would likely be a bug in the FAB code somewhere.
The support for scribed skills is pretty crude. It would definitely be possible to do a more sophisticated matching of effect Ids to script combinations, but it'd require some significant rewriting of the config editor.
Could you give me some guidance where I need to start looking for this? I'm not new to coding but I'd like to save some time taking apart the logic in this addon as I'm not too fond of the eso API yet.
I'm pretty sure I fixed the bug with two versions of a Grimiore with different ability IDs being assigned the same effect ID by the Config Editor. Could you please confirm if the bug is still happening on the current version on ESOUI?
I've just tested it with Sundering Knife and Bloody Knife. They're both getting the same ID 217272 (Is FAB+ retrieving the ID from the game?) where one of them has the Physical DMG script and the other one has the Bleed DMG script. They ultimately have different names but the ID unfortunately is the same therefor I believe the addon is working as intended but support for these different combinations would be appreciated. I think the question for the backend logic would be, how are we going to identify these different combinations despite having the same ID. Note that the base ID of the skill doesn't change even when different affix scripts are applied.
Hey, I knocked on this problem a bit, and think I came up with something that could handle this better: https://github.com/DakJaniels/FancyActionBarPlus/tree/scribingConfig Basically, each scribed skill will now have it's config keyed by the script combination ID's concatenated into a string. The tradeoffs with this implementation are that you can only ever edit the config for the script combination of a scribed skill if you have it scribed, trying to edit a scribed skill that you don't currently have scribed on that character might break things. If you change any script on the skill you would have to redo the abilityId => effectId mapping even if the base ID of the ability didn't change. The plus side is that; you can track a different effect for every single different script combination if you wanted to. And, importantly, we can also add default effect tracking to the config.lua on a per-skill, per-script combination basis, so scribed skills wouldn't have to fall back to blank tracking anymore!
Take a look at the edits on that branch and let me know what you think.
Be warned that this version might break your savedVariables if we roll it back or go in a different direction, so be sure to back them up first if you want to try it.
Storing the info for scribed skills under a [2] subkey to avoid creating any issues by touching anything to do with the non-scribed skill's config under the [1] subkey.
I use different combinations of scribed skills on all my characters - I guess that applies to many other people as well? Let's say I have two different combinations of Bloody Knife, one applies off-balance for 5 seconds and the other applies martial melee dmg increase for 7 seconds. (On that note, I realized each different combination of scribed skills get's their own unique ID from the game) Unfortunately, when I setup the second combination of said scribed skill in FAB+ it overwrites my settings from my first combination. I haven't looked into the code yet but I'm guessing saved settings are stored by name instead of ID? Because like I sad - the different combinations that I've tried at least have different base IDs. Is there a way to support different combinations at the same time? Or do you have at least an idea where to start? I can help if you want, as I know Lua pretty well I'd just have to work out the details in this addon.