Question About Parsing The Items Raw_Data Blob
Hello,
I've been toying around recently with the items raw_data blob trying to parse it out to a normalize database structure. I've ran into few questions though and hoped someone here might know the answer or where to point me to. I checked out the item struct in EQEmu Admin and it was very handy in helping to figure out what each byte was. I'm looking for the following: 1) A list of the numerical values for each race and class is 2) A list of the numerical values for each weaponskill 3) A list of the numerical values for each food/drink size. What I mean is like this is for slots: 0000000 = None 0000004 = Head 0000008 = Face 0000018 = Ear 0000032 = Neck 0000064 = Shoulders 0000128 = Arms 0000256 = Back 0001536 = Wrist 0002048 = Range 0004096 = Hands 0008192 = Primary 0016384 = Secondary 0098304 = Finger 0131072 = Chest 0262144 = Legs 0524288 = Feet 1048576 = Waist 2097122 = Ammo Anyway, thanks for any help you can offer. My head hurts as it is from looking at this data, some of which is strange. |
Grab the source code from CVS. In eq_packet_structs.h, you will find the blob layout for items in Item_Struct.
For class/race numbers, see races.cpp/classes.cpp. For skills and sizes, you will likely find #defines for each of those someplace in the code, but I don't know offhand. However, the code currently in CVS does not reflect what will soon be in CVS. The item struct specifically will be changing. You may want to wait a couple of days before grabbing CVS. |
Thanks Merth!
I was able to get the race/class listings from the source. I'll look for the other lists at a later time. |
Was the item structure changed with the CVS release that was made today? If not, I don't want to download it yet is why I'm asking.
Thanks! |
Yes, CVS now has the latest item struct.
|
Ok, I grabbed the CVS and looked over the new struct. Lots of changes there.
Now, please bear with me because I'm still a noob here. My next question is, does anyone have the items.db blobs already converted to this new structure? |
I'm looking at the structs as well so that I can hack together a blob converter for myself so I can work with items on my dev server. If it actually works well, I might hand it over...but chances are it'll be ugly and bug ridden.
My question is this: In the older struct, you can reference the flag variable in the struct to determine whether the item is a common, container or book type. I don't see a "flag" variable in the newer struct. How does one tell which of the (common, container, book) types to use in the new struct? Regards, krich |
Actually, as far as I can tell, the "flag" isn't really that. I'm parsing the BLOB from this (EQEmu-0.4.4-DR1+Telmet-DB-Test) and the so called flag is useless. The IDFile is 1 byte short too, so it's actually part of the 2 bytes making up the "flag" column.
You want to look at offset 178. It should be an INT8 and will return: '0 = Normal '1 = Container '2 = Book/Note In the new struct you are looking for: /*0005*/ int8 Type; I still haven't nailed down the entire real structure of the blob but I'm getting closer every day and should be finished up by Sunday. I'll drop another post in here with my conclusions when I'm done. I do know a lot of the datatypes are wrong. Something interesting too, the "Material" column is only valid if an item has an RGB value. It's the "texture" or look of an item when worn...like Cloth, Leather, Chain, Plate, FBR...and so on. But anyway, like I said, I'll get you the final struct soon. |
Excellent, thanks for the good info.
Regards, krich |
could always open and look at kaydoo's (spell check there) item editor source...it would tell you what is what rather fast.
|
does anyone already has an item converter ?
would be very nice to put it public :) |
All times are GMT -4. The time now is 09:39 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.