Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 02-11-2009, 09:33 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I've got this now:

I used Derision's packet as a start since his was a bit easier to read than mine. The one I wrote still has sequence # and size on it so it can get a little hard to read esp when you're reading a lot of hex etc etc.

Something in the item header if not set correctly makes the item not show up which was what was throwing me off.

Right now item is like this:

Code:
uint32 Stacksize
uint32 Some Zero Value
uint32 Slot
uint32 Somevalue, prob price as that's what it is in other
uint32 merchant_slot or 1
uint32 some zero value
uint32 unique identifier
uint32 SomeValue prolly nodropinst
uint32 SomeValue prolly potion or item type
uint32 some value 0xffffffff or 0x00000000
uint32 some zero value x5
3 bytes of 0x00 usually sometimes the last byte is 0x01, all bags seem to have the last byte as 0x01
c-string name
c-string lore
c-string idfile
uint32 itemid
Obv everything's not the same as middle of 2008 client but it was a bit closer than the current client.

Last edited by KLS; 02-12-2009 at 05:36 AM..
Reply With Quote
  #2  
Old 02-12-2009, 12:18 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Again:


I think the itemtype field has changed which is why it appears like that but I'm not sure. I get to start plugging in values all over and see what they do.
Reply With Quote
  #3  
Old 02-12-2009, 01:50 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I just noticed that your items are showing up in the old item UI window like Titanium. I prefer the old one (Titanium version) to the new window for item stats on Live. I thought it was already changed in SoF though. Or, is there an option somewhere that lets you decide which one to use? I know I saw a screenshot of an item from SoF when it was being beta tested, and it had the new item window. Maybe they still used the old one when that particular build was made?

Also, I looked at the SendAA packets from Derision's ShowEQ log and it looks like it lines up the same as EQLive does now. Same size and layout of the structure as far as I can tell. Here is an example of one of those packets without any extra effects on it:

Code:
Jul 24 2008 14:16:39:296 [Decoded] [Server->Client] [Size: 104]
[OPCode: 0x2c77]
000 | ba 00 00 00 01 ba 00 00 00 ba 00 00 00 ba 00 00  | ................ 
016 | 00 ba 00 00 00 3b 00 00 00 03 00 00 00 47 00 00  | .....;.......G.. 
032 | 00 01 00 00 00 00 00 00 00 00 00 00 00 03 00 00  | ................ 
048 | 00 d4 0a 00 00 07 00 00 00 07 00 00 00 00 08 00  | ................ 
064 | 00 01 00 00 00 ff ff ff ff ff ff ff ff 03 00 00  | ................ 
080 | 00 00 00 00 00 00 00 00 03 00 00 00 ff ff ff ff  | ................ 
096 | 00 00 00 00 00 00 00 00                          | ........
One thing to help alot with items is the 13th floor:
http://eqitems.13th-floor.org/

Just search for the item you are trying to break down and then look at the raw data. It should help a ton when lining up the fields.

I also use HexVis alot or Windows Calculator for converting the hex easily to see if it matches 13th floor.

Code:
3 bytes of 0x00 usually sometimes the last byte is 0x01, all bags seem to have the last byte as 0x01
That last uint8 is Item Type. It is 00 for normal items, 01 for bags and should be 02 for books. This should be done on the Serialization because I think it tells the client how treat the item when you right click it. Since you can't read books or use clickies if an item is inside a bag, it should be because the item type isn't sent when they are inside a bag, so the client knows only to show the item stats.


Just from looking at the log Derision posted, here is my best guess for item Serialization (pretty much matches with what KLS has so far):

Code:
35 00 00 00 - Not sure what this is.  Maybe a total items count?
//This field only got sent before the first item.  No other items have it.

01 00 00 00 uint32 stacksize;
00 00 00 00 uint32 unknown004;
1c 00 00 00 uint32 slot;
00 00 00 00 uint32 price;
01 00 00 00 uint32 merchcount;
00 00 00 00 uint32 unknown020;
1a b9 02 00 uint32 serialnumber;
00 00 00 00 uint32 instnodrop;
00 00 00 00 uint32 unknown032;
00 00 00 00 uint32 typepotion;
00 00 00 00 uint32 unknown040;
00 00 00 00 uint32 unknown044;
00 00 00 00 uint32 unknown048;
00 00 00 00 uint32 unknown052;
00 00 00 00 uint32 unknown056;
00 uint8 unknown060;
00 uint8 unknown061; 
01 uint8 itemtype; // this is a bag
Here is the best breakdown I can figure for the beginning of the Item Struct:
Code:
4a 6f 75 72 6e 65 79 6d 61 6e 27 73 20 42 6f 6f 74 73 00 | Journeyman's Boots - char Name
4a 6f 75 72 6e 65 79 6d 61 6e 27 73 20 42 6f 6f 74 73 00 | Journeyman's Boots - char Lore
49 54 36 33 00  | IT63 - char IDFile
fc 08 00 00 | 2300 - uint32 ID
19 | 2.5 - uint8 Weight
01 - uint8 NoRent
00 00 - uint16 NoDrop
01 - uint8 Size
00 00 08 00 | 524288 - uint32 Slots
00 00 00 00 - uint32 Price
fc 02 00 00 | 764 - uint32 Icon
01 - uint8 unknown0013
01 00 00 00 - uint32 unknown0014
00 - bool BenefitFlag
00 - bool	Tradeskills
00 - sint8	CR
00 - sint8	DR
00 - sint8	PR
00 - sint8	MR
00 - sint8	FR
00 - sint8	Corruption
00 - sint8	AStr
00 - sint8	ASta
00 - sint8	AAgi
00 - sint8	ADex
00 - sint8	ACha
00 - sint8	AInt
00 - sint8	AWis
00 00 00 00 - sint32	HP
00 00 00 00 - sint32	Mana
00 00 00 00 - uint32	Endur
01 00 00 00 - sint32	AC
00 00 00 00 - sint32	unknown0015
00 00 00 00 - sint32	unknown0016
00 00 00 00 - sint32	unknown0017
ff ff 00 00 - sint32	Classes
ff ff 00 00 - sint32	Races
00 00 00 00 - sint32	Deity
00 00 00 00 - sint32	SkillModValue
00 00 00 00 - uint32	unknown0038
ff ff ff ff - uint32	SkillModType
00 00 00 00 - uint32	BaneDmgRace
00 00 00 00 - uint32	BaneDmgBody
00 00 00 00 - uint32	BaneDmgRaceAmt
00 00 00 00 - sint32	BaneDmgAmt
01 00 00 00 - bool	Magic
00 00 00 00 - sint32	CastTime_
00 - uint8	ReqLevel
00 - uint8	RecLevel
00 - uint8	RecSkill
00 00 00 00 - uint32	BardType
00 00 00 00 - sint32	BardValue
00 - sint8	Light
00 - uint8	Delay
00 - uint8	ElemDmgType
00 00 00 00 - uint32	ElemDmgAmt
00 00 00 00 - uint32	Range
00 00 00 00 - uint32	Damage
00 00 00 ff - uint32	Color
0a - uint8	ItemType
01 00 00 00 - uint8	Material
00 00 00 00 - uint32	unknown0060
00 00 00 00 - uint8	unknown0061
00 00 c6 42 - uint32	SellRate
Most of the rest of it should line up with the structure breakdown I posted for EQLive items. I can work out the rest of it if needed. I will definitely check into these logs more later tonight.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 02-12-2009, 01:58 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

It's probably my UI, I use default_old from titanium. To save room I only change out the files that need to be between my versions of the client. So while titanium UI default was overwritten my default_old folder wasn't.

Maybe that has something to do with this not looking right, good catch on that sir... I probably woulda never noticed otherwise.
Reply With Quote
  #5  
Old 02-12-2009, 02:34 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

You realize you saved me a week of pointless work because I wouldn't of caught that for a week:


I had to dl an itemwindow from eqinterface cause apparently I overwrote mine and didn't back it up =(

Item fields seem fairly accurate to derision's log and sorta accurate to the live log tho the live one's is different in spots, but that's to be expected after a year.

Now I gotta put it all into a structured format, right now I'm just pushing ints and bytes onto my data stream then nail down the exact size to be able to send more than one at a time.

Last edited by KLS; 02-12-2009 at 10:36 AM..
Reply With Quote
  #6  
Old 02-12-2009, 04:46 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Nice! Glad I could help lol

Another thing I noticed from Derision's log is that his first item, Jboots, reports in the serialize as being in slot 30. For Titanium, slot 30 should be cursor I think, but I doubt he had them on his cursor when he logged in. My guess is that it was actually in the bottom right main inventory slot (like you show in your screenshots, KLS). If that is so, then I am guessing that all slots got bumped up one when the Power Source slot was added, because in Titanium, that slot is slot 29, not 30. Oddly, I don't see a power source slot in the UI that comes with SoF, but it should already be in since Power Source was added with Burried Sea. I see the power source slot just fine when I log into Live now. Either way, I am betting that Power Source got added as being slot 22 and that just bumped all of the main inventory slots up by 1.

Also, I finally figured out a major graphics issue I was having in some of the new zones. Apparently, it isn't a good idea to have min and max clip plane for fog 1 2 and 3 set to the same values lol. I don't know how many hours I wasted trying different graphics settings and different video drivers versions. Either way, the new zones now show up perfectly to me. I will post the SQL to update/add them all if Cavedude hasn't already gotten them all added yet. His would probably be much better than mine anyway. I am just using 1 example and copying it for all zones, so they all have the same fog settings and what-not.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #7  
Old 02-12-2009, 05:00 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Yeah slot 30 is what I have the boots set to in that SS. The items on character seem to work fine I'm guessing the bag slots all got bumped up one.

Also I don't see a power source slot on the default ui that came with sof either =/
Reply With Quote
  #8  
Old 02-12-2009, 06:50 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

After trying about 5 different UIs that came out around the time that SoF was released and that all work with SoF (though some have buggyness), I am at the conclusion that maybe something needs to be sent from the server for the Power Source slot to show up. None of the UIs I tried had a power source slot. Since it came out with Burried Sea (one expansion before SoF), I have to assume that it should definitely be working when SoF came out. All of the UIs I tried looked like they had an empty area of the inventory window that could be used for the power source slot, but none of them actually had it.

Here is a preview of one of the UIs I tried that shows the Power Source slot in the UI:

http://www.eqinterface.com/downloads...ew.php?id=9182

But, when I actually tried that UI, it wasn't there. That UI hasn't been updated since 10/5/2007, so I know it wasn't added after SoF came out. I know it isn't a big issue for now, but at some point, I will probably try to figure out what needs to be sent to load that slot in the UI. It is probably something in the player profile I am guessing.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #9  
Old 02-12-2009, 02:03 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Quote:
Originally Posted by trevius View Post
I will post the SQL to update/add them all if Cavedude hasn't already gotten them all added yet. His would probably be much better than mine anyway. I am just using 1 example and copying it for all zones, so they all have the same fog settings and what-not.
Please post them. I have for the past week been trying to get some world building done with SoF, but I keep getting sidetracked with other projects or requests. :(
Reply With Quote
  #10  
Old 02-13-2009, 01:37 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

The size of the item packet is not the same as the live from june sadly. I don't know if it's too long or too short just that it doesn't align. I also have a feeling there's an option somewhere that dictates how data is displayed cause my first thought was to look at the stats in the item window and see if I could find where they were in relation but it's not making sense compared to the packet im making. =(

Hooray spending hours adjusting the size up and down by bits at a time ><
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:35 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3