This little query change should make it so there is no need for redundant fail/succeed/component rows for the same item in a recipe entry.
In zone\tradeskills.cpp GetTradeRecipe()
Replace:
Code:
qlen = MakeAnyLenString(&query, "SELECT item_id,successcount FROM tradeskill_recipe_entries"
" WHERE successcount>0 AND componentcount=0 AND recipe_id=%u", recipe_id);
With:
Code:
qlen = MakeAnyLenString(&query, "SELECT item_id,successcount FROM tradeskill_recipe_entries"
" WHERE successcount>0 AND recipe_id=%u", recipe_id);
and Replace:
Code:
qlen = MakeAnyLenString(&query, "SELECT item_id,failcount FROM tradeskill_recipe_entries"
" WHERE failcount>0 AND componentcount=0 AND recipe_id=%u", recipe_id);
with:
Code:
qlen = MakeAnyLenString(&query, "SELECT item_id,failcount FROM tradeskill_recipe_entries"
" WHERE failcount>0 AND recipe_id=%u", recipe_id);