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-10-2009, 02:11 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

This will probably take a while to get working, I'm not sure on the size of the item struct... which will probably take a lot of time in itself. I think I've got the item header right though.

It's very tedious -.-.
Reply With Quote
  #2  
Old 02-10-2009, 08:42 AM
janusd
Sarnak
 
Join Date: Jan 2008
Posts: 47
Default

And yet, every time someone makes a post about progress, a hundred thousand voices cry out in bliss and tremors of joy.
Reply With Quote
  #3  
Old 02-10-2009, 05:06 PM
leslamarch
Discordant
 
Join Date: Sep 2006
Location: Green Bay, WI
Posts: 436
Default

Quick question guys,
for the most part is this already enabled? I was going to check this out when I have time, Just was wondering if this is set to go with normal server compile or is something else needed to be defined before compile?
Reply With Quote
  #4  
Old 02-10-2009, 07:07 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

It is disabled on the SVN revisions for now by default. Mainly because we don't want everyone to try using it on public servers and causing zone crashes due to any unknown bugs. Once it is fairly bug free and complete, it will probably be enabled by default.

For now, you just have to edit the /common/patches/patches.cpp and uncomment the #define line at the top to enable SoF. Then compile and it should be enabled.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #5  
Old 02-10-2009, 07:48 PM
leslamarch
Discordant
 
Join Date: Sep 2006
Location: Green Bay, WI
Posts: 436
Default

Quote:
Originally Posted by trevius View Post
It is disabled on the SVN revisions for now by default. Mainly because we don't want everyone to try using it on public servers and causing zone crashes due to any unknown bugs. Once it is fairly bug free and complete, it will probably be enabled by default.

For now, you just have to edit the /common/patches/patches.cpp and uncomment the #define line at the top to enable SoF. Then compile and it should be enabled.
Thanks trevius,
I hope i get time to mess with this coming up here, Your work on this has been amazing
Reply With Quote
  #6  
Old 02-10-2009, 09:57 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I'm going to remove the define next time I commit fyi, it's pretty pointless to have it in there. Any server op that finds a patch causes a problem or doesn't want a certain client to be able to connect can just remove the patch register line.

And in the same sense if you want it off by default just comment out the code that registers it.

btw I'm very lost on items atm (I really wish I had a packet log from this client).
Reply With Quote
  #7  
Old 02-10-2009, 11:24 PM
Andrew80k
Dragon
 
Join Date: Feb 2007
Posts: 659
Default

Quote:
Originally Posted by KLS View Post

btw I'm very lost on items atm (I really wish I had a packet log from this client).
What do you need for a dump? I got my client today so could provide you with something in the next day or so.
Reply With Quote
  #8  
Old 02-10-2009, 11:27 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Quote:
Originally Posted by KLS View Post
(I really wish I had a packet log from this client).
LOL, tell me about it! One single packet log from 9/7/07 that had a person loging in a single time would have made this project 100X easier lol.

The only thing that has gotten me this far is help from the ShowEQ source and EQLive logs from ShowEQ and the rest has been just "best guess" work. The good thing is that even if something is wrong in the packet, most structures will still let you get in game. Then, once in game, I just check what is wrong and mess with the structure until it looks correct.

For items, if you can get one single item to load at all, I think getting the rest of it working won't be too bad. I am more than happy to tweak the items serialization. I just need something to go by whether there is just an encode being done in the SoF.cpp, or a whole new way of handling those packets. Once I see how you are doing it, I think I should be able to figure it out from there.

Here is what I would do:
1. Start with a character with just 1 simple items (cloth cap maybe) on them.
2. Try logging into the game with the serialization you have setup for it (shouldn't need to be perfect just yet).
3. If the client hangs, crashes or disconnects on logging in, then check the EQ dbg.txt file in the everquest/logs directory.
4. It should say something about loading the item and then have a number next to it. That number should be the slot it thinks the item is in.
5. If that slot is wrong, then slot_id is in the wrong spot in the serialization. Try moving it until it picks up the correct slot ID that the item is in on the character.
6. If it reports the correct slot, then we know we should be good up to that point. I imagine once it does that, it may actually load all of the way in game.
7. I don't think there were any new fields added or changed since SoF was released, so the total packet size should be the same.
8. Try inspecting the item if you get this far, and if the name doesn't show up, then name probably needs to be moved a bit.
9. The item might not show up at all if the icon field is in the wrong place. The position of this field is probably one of the most important for starting work on this. Really, I can't imagine that the position of the icon field could vary more than 20 bytes from where it currently is in the structure I provided. If anything, it may be sooner. I doubt it would be later than where it is on EQLive.
10. Once Icon and Name are showing up properly, it should just be a matter of checking item stats and verifying that they all line up properly. Maybe some super item with a little of each stat could be set just to show what fields are what.

I am very willing to help with the guess work of lining up the structure. I only need a working system to use to send binary instead of a string. Once that system is in, feel free to update it on the SVN and just leave the code in that sends the inventory as a 0 sized packet until we get the inventory stuff worked out. The 0 sized inventory packet is forced in the SoF.cpp for now in the clientinventory encode I think. Otherwise it tries to send the string and crashes horribly.

Quote:
Originally Posted by Andrew80k View Post
What do you need for a dump? I got my client today so could provide you with something in the next day or so.
She needs the item packets from the server to the client. Unfortunately, that is something we have to make and cannot collect with the emulator/SoF client together. I have provided an example from EQLive (and can send more examples if needed), and I imagine that SoF should be the same or very similar to EQLive considering no new fields have been added as far as I know. The only things I can think of that might have been added may be herioc resist stats, but I can't really verify that. I am just going by what I see on 13th floor and other info I find here and there.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 02-11-2009 at 07:30 AM..
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 08:52 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