Page 1 of 1
item stats subtype
Posted: Tue Jun 06, 2017 5:11 am
by Ememjr
do we have a list of item stat sub type that are used in the subtype column below
subtype.JPG
in the above example
52 is Bountiful Harvest
51 is Falling Damage Reduction
70 is Melee Damage Multiplier
polished.JPG
Re: item stats subtype
Posted: Tue Jun 06, 2017 7:34 am
by Zcoretri
I think they are defined in items.h...they might need updating to match live
Code: Select all
#define ITEM_STAT_FLURRY 647
#define ITEM_STAT_SPELLWEAPONFLURRY 648
#define ITEM_STAT_MELEEDAMAGEMULTIPLIER 649
#define ITEM_STAT_EXTRAHARVESTCHANCE 650
Re: item stats subtype
Posted: Tue Jun 06, 2017 10:28 am
by Ememjr
i saw those and they were so far off, so was thinking those were not it ill take a look at those again and see how they are used
Re: item stats subtype
Posted: Tue Jun 06, 2017 12:51 pm
by Ememjr
another question on stat type in the analyzer below, the sub stat type seems to be off when the sub type is = 1,where all the 26 are in the hex, the byte before it is the type and and the 26 is supposed to be part of the value (38) all the other items in the array appear to line up correctly so correct me if i am wrong but it looks like if the stat_type is = 1 then there is no stat_subtype, i would like to test this theory, what i do not know is who to write the struct so that there will not be a stat_subtype if the stat_type =1
stattype.JPG
Re: item stats subtype
Posted: Tue Jun 06, 2017 1:51 pm
by Zcoretri
I have been away too long...a little rusty. Do you a screen shot of the item by any chance?
Re: item stats subtype
Posted: Tue Jun 06, 2017 3:29 pm
by Jabantiz
Item subtypes change with every game update and the ones we use are for CoE so they are likely to be way off now. Some one did start a map<> to have the correct subtypes for ToV I believe so we could build off of that for newer clients.
As for no subtype when type = 1, that is not currently possible.
EDIT: I was wrong, looking at the packet struct code there is a way
IfVariableNotEquals="stat_type_%i=1"
That being said it looks like it was never fully implemented and meant only for items for this very situation, should be in some item structs already if that is the case. Also just because the server has it doesn't mean analyzer will handle it correctly, I will have to look into its code to later to see if it does.
Re: item stats subtype
Posted: Tue Jun 06, 2017 4:38 pm
by Ememjr
Zcoretri wrote: Tue Jun 06, 2017 1:51 pm
I have been away too long...a little rusty. Do you a screen shot of the item by any chance?
yes its the polished thing in above post
Re: item stats subtype
Posted: Wed Jun 07, 2017 2:26 am
by tyrbo
There are a few files with additional item codes. On my server, I swapped out the default Items.h with Items_DoV.h. You have to tweak some things, as there are missing entries that are expected but don't exist in that file.
Works for now, until one of us has a little bit of spare time to implement multi-client support for that.
Re: item stats subtype
Posted: Sat Jun 10, 2017 5:24 am
by Ememjr
oh i finally figured out the stat_type stat_subtype, in the code
Code: Select all
#define KA_ITEM_STAT_HPREGEN 600
#define KA_ITEM_STAT_MANAREGEN 601
#define KA_ITEM_STAT_HPREGENPPT 602
#define KA_ITEM_STAT_MPREGENPPT 603
#define KA_ITEM_STAT_COMBATHPREGENPPT 604
#define KA_ITEM_STAT_COMBATMPREGENPPT 605
i did not relize that the first digit was actually the stat_type and the second 2 were the stat_subtype
now that i know that ill start working on a items_KA.h to convert stats to the correct numbers like it was done for tov
Re: item stats subtype
Posted: Sat Jun 10, 2017 5:53 am
by Ememjr
well crapola, how to handle item stats in database for instance the values in item stats were imported i am assuming with DOV subtype values
this all depands on whether we decide to keep dov,coe and previous clients if available, workable
does that mean we should always using the DOV subtype number when putting in new item stats
for example
critbonus the stat type/subtype is according to the .h files
DOV-645
COE-657 ?? is this even correct in the define
T0V-649
LIve-651
the numbers seems to shift like opcodes lol
to help determine i would need the following questions answered
Is DOV the earliest client we support now?
When did blue stats(subtype 6) com into the game?
if we decide to always use DOV subtype numbers to maintain compatibility( and less DB changes when the subtypes shift)
then we need to make sure we have a good list for us to use (items_dov.h) has this, and
will need a way to handle new subtypes added to the game later ie if live adds a stupidy stat in the next expansion, then what subtype number do we use int the DB
here is scenario where things could get bad
back to critbonus
db item has CB set to subtype 45
player using dov, coe or live has no issue, since the code is converting the value for subtype coe(57),Tov(49),live(51) all works well
but now live adds the new stat stupidy as number 45 and shifts everything down again
we modify code to fix the stat and convert still coe(57),Tov(49),preexplive(51), new live(52) all works well
except
that the new stat stupidy is 45 and we add that to an item, how will we determine if when looking at that stat its 45 is crit bonus that needs converting for what every client being used or if its the new stat stupidy that only available in the new client
i know this doesnt make sense to most, but makes perfect sense to me
Re: item stats subtype
Posted: Sat Jun 10, 2017 4:57 pm
by Jabantiz
Our stat defines are for CoE as the items were parsed from collects in CoE beta that got every item in the game at the time thanks to census.
DoV is the client we officially support as it is the last box set they ever made, earlier clients can connect like a SF client and even RoK should connect (if not it is close as we did support it at one point).
Blue stats have been in the game forever, they were there at launch I believe just not as heavily used as they are now.
For now new stats are left off, we don't really add any items often any way, Ideally I would like to see a better system to handle stats across clients because like you said they change almost as often as opcodes. The best way I have thought of doing it is like I did spell errors, set up an id for the stat that the emu will use then have a table in the db to get the correct id for the given client version and send that.