Basic Descritpion:
This is most commonly known as "Power Essence Bug" when using Warlock's Imbue Item feat to add basic enchantments to weapons and armor with Power Essences in MotB crafting system. Although you put correct item and correct essences in the satchel, when you use Imbue Item on it you get a message saying that it is not a valid recipe. Recipes other than basic arms and armor enchantments might be affected, I didn't check. Just extract the zip file into your override folder and all recipes should work with Imbue Item next time you start the game.
Advanced Description:
This is for developers. NWN2 has a recipe index used to make searching for valid recipes faster and it is located in crafting_index.2da file. Function GetRowIndexes() is used to fetch a short list of valid recipes for the spell the player cast on the crafting container. MotB developers used this function to fool the containers into thinking that Imbue Item feat is the correct spell. Basically, their piece of code for Imbue Item feat fetches all recipes that require spells by checking if category column contains a numerical string with StringToInt() function, which will return 0 if you try to convert a non-numerical string into an integer. However, they forgot that this function will also return 0 for a '0' string, and there is a group of recipes, starting at ID 40, that requires the spell ID 0 (Acid Fog). The function will simply return a list of recipes starting form the beginning and ending just before the recipes that require Acid Fog spell, leaving slightly more than half of the list unusable for a Warlock. Instead of rewriting their code, I just altered it slightly so that it skips row 40 from the index file when checking whether StringToInt of the category row returns 0. Row 40 is the entry for spells that require Acid Fog and caused the function to malfunction. This GetRowIndexes() function is used only by a chain of functions that and with DoMagicCrafting(). Recompiled versions of all scripts that use this function are included in the zip. If your mods use this function you should recompile your scripts as well.
Posted by Alzikar at 2012-11-07 21:24:25 Voted 10.00 on 11/07/12
Excellent fix, thank you!
Posted by player1 at 2008-03-27 13:00:45 Voted 8.50 on 01/19/08
Note that this bug is still present in 1.12 patch.
Posted by Hexidous at 2008-02-20 10:58:03 Voted 10.00 on 02/20/08
Most notable contribution Lord Grave, and thank you for the simplicity of you're effort. I often play as a WL, plagued by the bugs and shortcoming Obsidian didn't intend to serve, but unwilling to go down a path thst deviates from their vision. This aids me greatly. Thank you. _________________________ Societies monomania of sanity is a plethra of madness in the mind of the miserable, but a manifested magnificence in the eyes of the mad.
Yeah, that too, but a quickfix was added for 1.10 which is supposed to remove the check from Bioware's Imbue Item feat. I didn't test it because I already used the console to give the crafting feats to my character.
Posted by player1 at 2008-01-27 23:21:10 Voted 8.50 on 01/19/08
Doesn't that link lead to custom make Imbue Item feat, made before MotB (which also didn't resolve issue with taking feat with Warlock)?
player1, the testing line is from the original scripter. I just uncommented it while looking for error and obviously forgot to put the comments back in place. I'll update the file right now.
Thanks for the comment, candor_lee. I have a lot of XP with coding but actually looking through code written by someone else is not my stronger side. It took me a couple of hours to track down this error but I simply had to do it because of my Warlock character :)
Posted by player1 at 2008-01-19 23:22:38 Voted 8.50 on 01/19/08
This one will really be a must have, after whole mix up with crafting feats being unavailable for warlock is fixed.
P.S.
Anyway, this testing line isn't necessary:
SpeakString("Using the override GetRowIndexes function.");
Posted by candor_lee at 2008-01-18 09:02:32 Voted 10.00 on 01/18/08
Thanks Lord Grave for this fix. No wonder my warlock always got the "Not a valid recipe" message. You must be a very talented scripter for finding out such a subtle coding error between the lines and fixing it.
You must be Logged In to post comments in this section.
10 - A Masterpiece, Genuinely Groundbreaking 9 - Outstanding, a Must Have 8 - Excellent, Recommended to Anyone 7 - Very Good, Deserves a Look 6 - Good, Qualified Recommendation 5 - Fair, Solid yet Unremarkable 4 - Some Merit, Requires Improvements 3 - Poor Execution, Potential Unrealized 2 - Very Little Appeal 1 - Not Recommended to Anyone