Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::General Support

Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 07-28-2007, 03:12 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default Understanding PlayerProfile_Struct

Another question from me.

I do understand the general idea behind the blob data that makes up the profile data in the character_ record, however I am trying to dig something out of this stream of data that is currently "unknown". As some know, I have been digging through Cofruben's old Adventure code (LDoNs) and resurrecting it for my own inscrutible purpose.

So far, I've found and fixed a lot of the quests related to LDoNs, started rebuilding the merchant lists, fixed a few Opcodes for beginning your adventures... but here's where I've hit a wall. I do not understand enough about the code or C++ (or this Blob stuff) to really grasp what to do next.

When you ask for an adventure, the code assumes the playerprofile_struct is aware of an "adventure_id", which is currently NOT a part of the m_pp. So it always returns a 0, or no adventure, and therefore you cannot be assigned a new one. This is what I made of it by putting in tons of debug code to show what things are set to as the code progresses.

I believe the value I am looking for might be hidden somewhere in this area:
eq_packet_structs.h
Code:
/*6008*/	char 				groupMembers[6][64];		//
/*6392*/	char				unknown6392[668];
/*7060*/	sint32				ldon_points_guk;		//client uses these as signed
/*7064*/	sint32				ldon_points_mir;
/*7068*/	sint32				ldon_points_mmc;
/*7072*/	sint32				ldon_points_ruj;
/*7076*/	sint32				ldon_points_tak;
/*7080*/	sint32				ldon_points_available;
/*7084*/	uint8				unknown5940[112];
I assume this, because of the ldon_* info and the 2 unknowns just before and after, plus the "groupMembers[6][64]" just before it all (gotta be in a group to LDoN, right? Good assumption? haha)


I also noticed the original code seems to randomly generate a 0-3 for what "type" of LDoN it'll be, instead of using the selector from the UI (Collection, MassKill, Boss, Rescue). So it appears the previous coder had random LDoN assignments only, which is fine - except for this missing GetAdventureID().

If any dev is watching, and can guide me passed this one little hangup, I can proceed with my task of revitalizing LDoN adventures. I think once the ID is assigned and the groups formed, everything else is nearly in place. Currently, I cannot figure out how to "fake" the m_pp.adventure_id so I can hard-code it and continue testing. Working on that right now.


Also, if there is an existing tool out there that will disect and display the character_.profile data, please guide me to that. I could figure this out if I could read that damned blob.

Anyway, thanks in advance for any advice.
J


Edit: One more bit -- this is the item I'm trying to fill: int32 GetAdventureID() const { return 0 /*m_pp.adventure_id;*/ } note the commented out m_pp.adventure_id...

Last edited by John Adams; 07-28-2007 at 11:36 PM..
Reply With Quote
 


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 06:30 AM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3