diff --git a/changelog.txt b/changelog.txt index 34682c709..ab359a884 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- -== 04/04/2013== +== 04/09/2013 == +demonstar55: Realized I was an idiot, changed salvage script to be better +optional SQL: 2013_04_09_SalvageCleanOld.sql - run if ran old script + +== 04/08/2013 == demonstar55: Implemented Salvage AA required SQL: 2013_04_08_Salvage.sql script: generate_salvage.py - will generate the entries for some exceptions for salvage returns. diff --git a/utils/scripts/generate_salvage.py b/utils/scripts/generate_salvage.py index 40ed7821d..c20ff42a1 100644 --- a/utils/scripts/generate_salvage.py +++ b/utils/scripts/generate_salvage.py @@ -33,7 +33,6 @@ def main(): data = cur.fetchone() highest = data[0] for recipe_id in range(1, highest+1): - genflag = False complist = [] cur.execute("SELECT item_id,componentcount FROM " + table + " WHERE componentcount>0 AND recipe_id=" + str(recipe_id)) rows = cur.fetchall() @@ -49,7 +48,6 @@ def main(): # Remove any items that are returned on a failure for item in faillist: if item in complist: - genflag = True complist.remove(item) # Remove some items that don't make sense @@ -57,18 +55,15 @@ def main(): if item[0] == 10062: for item2 in complist: if item2[0] == 93510: - genflag = True complist.remove(item2) if item[0] == 93618: for item2 in complist: if item2[0] in [93508, 93509]: - genflag = True complist.remove(item2) - if genflag: - for item in complist: - cur.execute("INSERT INTO `" + table + "` (`recipe_id`, `item_id`, `componentcount`, `salvagecount`) VALUES ('" + str(recipe_id) + "', '" + str(item[0]) + "', '0', '" + str(item[1]) + "');\n") + for item in complist: + cur.execute("UPDATE `" + table + "` SET `salvagecount` = '" + str(item[1]) + "' WHERE `componentcount` > '0' AND `item_id` = '" + str(item[0]) + "' AND `recipe_id` = '" + str(recipe_id) + "';") except mdb.Error, e: print("Error %d: %s", e.args[0],e.args[1]) diff --git a/utils/sql/git/optional/2013_04_09_SalvageCleanOld.sql b/utils/sql/git/optional/2013_04_09_SalvageCleanOld.sql new file mode 100644 index 000000000..86685ff47 --- /dev/null +++ b/utils/sql/git/optional/2013_04_09_SalvageCleanOld.sql @@ -0,0 +1,2 @@ +DELETE FROM `tradeskill_recipe_entries` WHERE `salvagecount`>0 AND `componentcount`='0'; + diff --git a/zone/tradeskills.cpp b/zone/tradeskills.cpp index 6c92fb158..3bcd96ca1 100644 --- a/zone/tradeskills.cpp +++ b/zone/tradeskills.cpp @@ -1426,36 +1426,18 @@ bool ZoneDatabase::GetTradeRecipe(uint32 recipe_id, uint8 c_type, uint32 some_id spec->salvage.clear(); // Don't bother with the query if TS is nofail - if (!spec->nofail) { - if (RunQuery(query, qlen, errbuf, &result)) { - qcount = mysql_num_rows(result); - uint8 r; - for(r = 0; r < qcount; r++) { - row = mysql_fetch_row(result); - uint32 item = (uint32)atoi(row[0]); - uint8 num = (uint8)atoi(row[1]); - spec->salvage.push_back(pair(item, num)); - } - mysql_free_result(result); - } - - // Previous query returned nothing, default to component list - if (!spec->salvage.size()) { - qlen = MakeAnyLenString(&query, "SELECT item_id,componentcount FROM tradeskill_recipe_entries" - " WHERE componentcount>0 AND recipe_id=%u", recipe_id); - if (RunQuery(query, qlen, errbuf, &result)) { - qcount = mysql_num_rows(result); - uint8 r; - for(r =0; r < qcount; r++) { - row = mysql_fetch_row(result); - uint32 item = (uint32)atoi(row[0]); - uint8 num = (uint8)atoi(row[1]); - spec->salvage.push_back(pair(item, num)); - } - mysql_free_result(result); - } + if (!spec->nofail && RunQuery(query, qlen, errbuf, &result)) { + qcount = mysql_num_rows(result); + uint8 r; + for(r = 0; r < qcount; r++) { + row = mysql_fetch_row(result); + uint32 item = (uint32)atoi(row[0]); + uint8 num = (uint8)atoi(row[1]); + spec->salvage.push_back(pair(item, num)); } + mysql_free_result(result); } + safe_delete_array(query); return(true);