I know it is requested a bit more than average...
But I am going to anyway.
Tradeskill returns. A database entry that allows you to custom set the number of items made that will be returned on any sucessfull combination attempt. |
That would be nice. Tradeskills still need a bit of work, but I doubt that's high on the list of things to get working correctly.
But again, I agree that it would be very nice. |
Maybe also a new DB struct that contains the IDs of items which aren't used up by tradeskills (e.g smithing hammers). Something like tradeskill_nonconsumable (id,item_id), and when you use a tradeskill recipe, the code searches through this list and only destroys the ingredients that aren't on it.
|
You think up to 3 items returned will be enough?
|
Thats a good idea. I had thought we should just add a 'consumed' field, but then you would have to set whether the same item would be consumed for each recipe.
Good idea. |
Up to 20 returns would suffice, or even 10. Some foodstuff combos give back 7, I think.
|
We probably need to add a 'returnquantity' to the trade skill recipe table.
|
Grrr, damn message boards.. told me it didn't post this... read below...
|
Quote:
|
Also, you don't need a noncombustable table. What you could do is this (psedu for example):
Code:
if (anyitem != tradeskillitem) |
What I meant (about the non-consumable items table) is that some tradeskill recipes
require items as "ingredients" but these items aren't actually consumed when you hit combine. For example, smithy hammers, bread/cake tins, firing sheets. |
Things I figured were needed for trade skills:
tradeskill,containerID,trivial,product,productcoun t,product2,failproduct,i1,i2,i3,i4,i5,i6,i7,i8,i9, i10,comments Container ID: refers to the container type in the item structure identifying sewing, fletching, varius cultural fletching. Something would need to be done so you could make normal arrows in say a tier'dal fletching kit though... Productcount: how many of "product" is returned product2: allow for seperate items/non consumable tools. I don't think there is anything that returns more than 2 different items is there? failproduct: returned on failure. Anything return more than 1 item on failure of a valid recipe? comment: would be nice, but is optional |
That sounds more or less right, it'll probably mean everyone will have to rewrite their tradeskill recipes (or find some way of converting the old ones) but it should allow tradeskills more or less as close to EQLive as possible.
Might also want to include an "altproduct" value for when you fail the combine - e.g with sharpening rusty weapons, if you fail you just get the weapon back. I think that the product2 (tool) item is always returned, even on a failed combine. (edit: sorry, just noticed that you already put in a "failproduct" value) |
Probably the best way of dealing with cultural tradeskill containers is to allow any container (of the right tradeskill type) to be used if container_id is set to 0. That way you only need to set the required container for cultural recipes, and standard ones will work in both normal and cultural containers.
|
I'll see about modifying the data structure this week. This appears to be a pretty sound design, and it will incorporate most of the features we'd expect to see out of tradeskills...
It will require some additional work be done with the tradeskills tables. Lurker/Drawde, if I put the code changes in, can you get an updated tradeskill list created? At first we'll just incorporate the new structure, and add the changes one at a time for the additions. Extra return items, quantity returns, etc. Getting the structure in will be step 1.. Step 3.. Profit ! |
I already have the data for jewelcraft and fletching more or less done (PoP and Yeksha added stuff isn't there) Also some Alchamy.
If you get the table updated, I'll go back and work thru more trade skills for release in the next DB addon. I can remake my thread on this to help organize the work too. |
What I'm planning on doing is adding the new fields as a default of 0, then if a zero is found in that field, it's assumed a non item. (product2, no item return, failreturn, no return, etc, count 0, assume 1, etc)
I'll get it updated tonight when I get in , test it out and verify tradeskills still work as usualy, then push it out to CVS. |
Hows this look...
mysql> describe tradeskillrecipe; +--------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+----------------+ | id | int(11) | | PRI | NULL | auto_increment | | tradeskill | smallint(6) | | | 0 | | | skillneeded | smallint(6) | | | 0 | | | trivial | smallint(6) | | | 0 | | | product | smallint(6) | | UNI | 0 | | | product2 | smallint(6) | | | 0 | | | failproduct | smallint(6) | | | 0 | | | productcount | smallint(6) | | | 0 | | | i1 | smallint(6) | | | 0 | | | i2 | smallint(6) | | | 0 | | | i3 | smallint(6) | | | 0 | | | i4 | smallint(6) | | | 0 | | | i5 | smallint(6) | | | 0 | | | i6 | smallint(6) | | | 0 | | | i7 | smallint(6) | | | 0 | | | i8 | smallint(6) | | | 0 | | | i9 | smallint(6) | | | 0 | | | i10 | smallint(6) | | | 0 | | | notes | text | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+ |
I've just finished updating my tradeskill list - didn't actually take that long using find-and-replace and
copy/paste to insert the new fields. Now all I need is the code to make it work :D |
Also, are you intending to use a container_id field (for cultural recipes) or not? (I need to know this so I can get my tradeskill list updated)
|
Hmmm....
I'll go ahead and add it in, just so it's available, but not necessarily used until we figure out how to implement it correctly. Just assume another smallint(6) container_id, directly after tradeskill. |
Quote:
|
skillneeded = trivial
trivial seems like a better name though How about a special trivial of -1 for no fail combines Any other special trivials we should have? |
A few of the PoP recipes oddly enough have a required skill higher than the trivial. While that isn't really needed that might be a way to differentiate trivial from skill needed. Make skillneeded the required skill level for the combine to be attempted, then you can set trivial to -1 to make it a no-fail combine or whatever the trivial would be.
|
So, the new struct is
id,tradeskill,skillneeded,trivial,product,product2 ,failproduct,productcount,i1,i2,i3,i4,i5,i6,i7,i8, i9,notes Is this final? |
missed i10, but thats it...
I dropped container_id. I'm going to leave trivial AND skillneeded in for the time being, trivial does make more sense. skillneeded I'll leave for future use, just duplicate the columns for the time being i guess. |
OK, thanks for the info, I've updated my tradeskill DB (I kept a copy using the old struct, since 0.4.3 release version
doesn't have the updated tradeskill code). I've added quantities to arrows, throwing weapons etc., tools like smithing hammers and pie tins are returned, and sharpening rusty weapons will return the un-sharpened weapon on failure. I think the "skill required" value is the minimum skill you need to have in order to have any chance of successfully combining the items, whilst the "trivial" value is the skill level at which you have a 100% chance of combining (and don't get any skill-ups). So this value probably is needed if you want totally accurate tradeskills. I'll probably just set it to 0 in my DB since tradeskills seem to be balanced enough without it (if your skill level is low enought to be below the required value, you'll probably fail 95% of the time anyway). I know I'm always asking this (I really need to buy an up-to-date copy of MSVC++) but would someone be able to send me the binaries containing the updated tradeskill code once it's ready? |
I'll try! lol.. I didnt have great success last time with the binaries I sent you, but once I get the code changes finished (I have the database lookup code modified to return the new values, just need to put the return hooks in).
Right now Im wondering how to return a stack of items , as opposed to return 7 indivuduals items... |
The problems I was encountering last time you sent me some binaries (they also occurred with the ones on Telmet's site) were my fault - they were caused by my DB being out of date, some tables didn't have a "timestamp" value in. Once I dropped the old DB and loaded in the up-to-date db.sql it worked OK.
However the current error doesn't seem to be DB-related; emusharemem.dll seems to be the cause but I've definitely installed the one in the 4.3 zip and verified it's in the right directory. |
Hey Trump if I see you on irc ill let you know, but you need to change the charges flag to however many of the item you wish to return.
|
Well, I put the new code in last night to support the new table format, and added the return for failproduct in which works perfectly. I need to add the return of product2 and multipe items, and we should be done there. Didnt have a chance to work on it last night alot, but I'll see about finishing up this evening. I'll mail it over to you once I finish Drawde.
|
All times are GMT -4. The time now is 07:25 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.