fathernitwit
08-12-2004, 08:42 AM
Hello all,
I have completely rewritten the tradeskill system.... I would really like some feedback on what I have done... It works on my FreeBSD server with up-to-live client. I consider this 'beta 1', everything is working from my perspective, but is not throughly tested. most of the recipes are obviously untested due to quantity.
I dont know if it is broken for everybody else, but it was completely
broken for me when I started looking at it. a lot of the recipes are obviously untested.
Heres my 'release notes':
Big picture:
- gets tradeskills working (they didnt work at all for me)
- new trade skill interface works
- searching
- viewing details
- auto combining
- recipes can return unlimited items on success and fail
- recipes have names on them :)
- nofail works (not in recipes yet)
API level:
- added constants invWhere* to represent inventory places
- added optional argument to HasItem to specify where to search
this is an OR'd set of invWhere* constants, default=ALL
- changed prototype and split GetTradeRecipe into two methods
but this is never used elsewhere
- added HandleAutoCombine to Object
- changed HandleCombine to be static for non-world objects
- added to Client:
TradeskillSearchResults - search tradeskills and send res
SendTradeskillDetails - send details about a recipe
TradeskillExecute - check success on a recipe and send results
Database:
- added two new tables to replace tradeskillrecipes:
tradeskill_recipe - info about a specific recipe
tradeskill_recipe_entry - items involved in tradeskills relation
- based on suggestions in http://www.eqemulator.net/forums/viewtopic.php?t=12067
Network:
- new opcodes:
OP_RecipesFavorite
OP_RecipesSearch
OP_RecipeReply
OP_RecipeDetails
OP_RecipeAutoCombine
- and some new structures to go with them
Other:
- Identified object type for tackle box :)
Recipes:
- Pulled all recipes from eqtraders.com
- converted all for which all items existed in the database.
- includes fishing, research, etc..
- have a script to do this for future DB updates
- there are still several thoudand which are missing items
- 5344 recipes total
Issues:
- are tradeskill gains supposed to use a different forumal that others?
- unfired pottery items are not in here since most do not
exist in the database
- I have not implemented restrictions based on race/class/etc
but the script is pulling them from the pages, so it can
be done, I just dont have any desire to do it (:
- if you dont have all the components for a recipe and you
hit combine, it dosent send you a message saying that...
- I didnt alter the success or gain forumals... assuming
that somebody more knowledgable than me made them...
- the CloseContainer_Struct has changed, but I am not able
to figure out how... tradeskills still work with it broken
- I dont know what the second ulong in the new recipe packets
actually means, I just echo it in my replies...
- my auto-converted recipes have whatever errors might exist on eqtraders.com
- My script is not pulling nofail flags from the pages yet.
- any recipe which needs to return two+ of a non-stackable item
MUST insert several 'on success return 1 item' tuples with the
same item_id to get it to work correctly.
Description of tables and columns:
http://eqemu.psend.com/tradeskill_tables.txt
The patch is here: http://eqemu.psend.com/tradeskill_overhaul_b1.diff
it applies cleanly to 7/31 CVS, with a little fuzz due to my server having a lot of my patches on it.
The sql file with all my converted recipes is here:
http://eqemu.psend.com/new_recipes_all.zip
please give me feedback, positive or negative, whatever...
I have completely rewritten the tradeskill system.... I would really like some feedback on what I have done... It works on my FreeBSD server with up-to-live client. I consider this 'beta 1', everything is working from my perspective, but is not throughly tested. most of the recipes are obviously untested due to quantity.
I dont know if it is broken for everybody else, but it was completely
broken for me when I started looking at it. a lot of the recipes are obviously untested.
Heres my 'release notes':
Big picture:
- gets tradeskills working (they didnt work at all for me)
- new trade skill interface works
- searching
- viewing details
- auto combining
- recipes can return unlimited items on success and fail
- recipes have names on them :)
- nofail works (not in recipes yet)
API level:
- added constants invWhere* to represent inventory places
- added optional argument to HasItem to specify where to search
this is an OR'd set of invWhere* constants, default=ALL
- changed prototype and split GetTradeRecipe into two methods
but this is never used elsewhere
- added HandleAutoCombine to Object
- changed HandleCombine to be static for non-world objects
- added to Client:
TradeskillSearchResults - search tradeskills and send res
SendTradeskillDetails - send details about a recipe
TradeskillExecute - check success on a recipe and send results
Database:
- added two new tables to replace tradeskillrecipes:
tradeskill_recipe - info about a specific recipe
tradeskill_recipe_entry - items involved in tradeskills relation
- based on suggestions in http://www.eqemulator.net/forums/viewtopic.php?t=12067
Network:
- new opcodes:
OP_RecipesFavorite
OP_RecipesSearch
OP_RecipeReply
OP_RecipeDetails
OP_RecipeAutoCombine
- and some new structures to go with them
Other:
- Identified object type for tackle box :)
Recipes:
- Pulled all recipes from eqtraders.com
- converted all for which all items existed in the database.
- includes fishing, research, etc..
- have a script to do this for future DB updates
- there are still several thoudand which are missing items
- 5344 recipes total
Issues:
- are tradeskill gains supposed to use a different forumal that others?
- unfired pottery items are not in here since most do not
exist in the database
- I have not implemented restrictions based on race/class/etc
but the script is pulling them from the pages, so it can
be done, I just dont have any desire to do it (:
- if you dont have all the components for a recipe and you
hit combine, it dosent send you a message saying that...
- I didnt alter the success or gain forumals... assuming
that somebody more knowledgable than me made them...
- the CloseContainer_Struct has changed, but I am not able
to figure out how... tradeskills still work with it broken
- I dont know what the second ulong in the new recipe packets
actually means, I just echo it in my replies...
- my auto-converted recipes have whatever errors might exist on eqtraders.com
- My script is not pulling nofail flags from the pages yet.
- any recipe which needs to return two+ of a non-stackable item
MUST insert several 'on success return 1 item' tuples with the
same item_id to get it to work correctly.
Description of tables and columns:
http://eqemu.psend.com/tradeskill_tables.txt
The patch is here: http://eqemu.psend.com/tradeskill_overhaul_b1.diff
it applies cleanly to 7/31 CVS, with a little fuzz due to my server having a lot of my patches on it.
The sql file with all my converted recipes is here:
http://eqemu.psend.com/new_recipes_all.zip
please give me feedback, positive or negative, whatever...