Go Back   EQEmulator Home > EQEmulator Forums > Development > KayotRO

KayotRO This is the forum for Kayot's Editor.

Reply
 
Thread Tools Display Modes
  #1  
Old 02-15-2008, 04:15 AM
TheLieka
Developer
 
Join Date: Oct 2004
Location: THE ATL (wut wut)
Posts: 325
Default

There is ONE thing that I haven't been able to access with any available tools, and it annoys the piss out of me.

PLAYER CORPSE DATA

If anyone were to figure out this riddle, I would gladly build a goat-shrine in your honor.

Dax
__________________
Daxum



Former ServerOp - Vallon Zek / Tallon Zek Emu Server - Legit / Guild PvP - (2007 - 2011 RIP)
Reply With Quote
  #2  
Old 02-15-2008, 05:29 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by TheLieka View Post
PLAYER CORPSE DATA

If anyone were to figure out this riddle, I would gladly build a goat-shrine in your honor.
I'm always up for a challenge

I know it's 228 bytes long. Unfortunately, that's about all I know There's nothing in the common source files about it.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #3  
Old 02-15-2008, 08:26 AM
sesmar
I built it I will Support it!
 
Join Date: Jun 2005
Location: Michigan
Posts: 214
Default

I am not sure if this is what you are looking for, but this might point you in the right direction.

Code:
struct DBPlayerCorpse_Struct {
	int32	crc;
	bool	locked;
	int32	itemcount;
	int32	exp;
	float	size;
	int8	level;
	int8	race;
	int8	gender;
	int8	class_;
	int8	deity;
	int8	texture;
	int8	helmtexture;
	int32	copper;
	int32	silver;
	int32	gold;
	int32	plat;
	Color_Struct item_tint[9];
	int8 haircolor;
	int8 beardcolor;
	int8 eyecolor1;
	int8 eyecolor2;
	int8 hairstyle;
	int8 face;
	int8 beard;
	ServerLootItem_Struct	items[0];
};
I found that in zonedump.h of the zone project.

You can also find things like:
ZoneDatabase::UpdatePlayerCorpse and
ZoneDatabase::CreatePlayerCorpse
in PlayerCorpse.cpp in the zone project.
__________________
Reply With Quote
  #4  
Old 02-15-2008, 08:55 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by sesmar View Post
I am not sure if this is what you are looking for, but this might point you in the right direction.

...

I found that in zonedump.h of the zone project.

You can also find things like:
ZoneDatabase::UpdatePlayerCorpse and
ZoneDatabase::CreatePlayerCorpse
in PlayerCorpse.cpp in the zone project.
That looks right, based on the info I was getting from a corpse I left. Good find I had a feeling it might have been in the zone or world source.

Quote:
Originally Posted by Kayot View Post
I just had the editor dump the profile into an array ^-^, it takes a bit more ram but makes adding edits a joke.
I agree, using an array to mess with the blob is definitely the better way to go, especially if you want to make multiple edits without a bunch of queries. However, copying the entire profile blob into a variable, then using substring manipulation (strrep and similar I think?), can reduce the amount of RAM used due to different data types (there was a post about this referring to the spells_us.txt file & parsing it into an array, not sure where it's at, though). But on the same token, a 20k block of data, even separated into an array, shouldn't take up a gross amount of RAM.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #5  
Old 02-15-2008, 07:47 PM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

The reason I dumped it into a byte array rather than a string was, I could always assemble integers and strings from bytes, but doing the opposite would take a whole lot more coding.

My problem was the alt adv skills. The numbers don't really correlate with anything and are done in a add it as it goes. For instance:

It you boosted strength first then Intel, it would add strength then Intel. If you added Intel then strength, it would add Intel and then strength. For some reason this made reading the date hard and editing it impossible as it wouldn't take the new settings. Not sure why not, thats why you can't edit Alt Adv yet. I'll figure it out.

P.S. Seems I have the flu, just wonderful. I reach my days off then I'm sick. I'm re dosing right now, hence the 2:40am post time T-T2son

P.S.2 The post concerning the spells_us.txt was mine. Thats how this program loads spell information.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #6  
Old 02-16-2008, 09:05 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by Kayot View Post
My problem was the alt adv skills. The numbers don't really correlate with anything and are done in a add it as it goes. For instance:

It you boosted strength first then Intel, it would add strength then Intel. If you added Intel then strength, it would add Intel and then strength. For some reason this made reading the date hard and editing it impossible as it wouldn't take the new settings. Not sure why not, thats why you can't edit Alt Adv yet. I'll figure it out.
That one kinda threw me off as well. Reading wasn't too bad:

profile.php (from my PHP-based editor, using a few custom functions):
Code:
   91 // AA_Array[240]
   92 	for ($x = 0; $x <= 239; $x++) {
   93 		$aa = asc2uint(substr($profileResult,$x*8+428,4));
   94 		$value = asc2uint(substr($profileResult,$x*8+432,4));
   95 		if ($aa != 0) {
   96 			$Profile["aa_array"][($aa-($value-1))] = $value;
   97 		};
   98 		unset($aa);
   99 		unset($value);
  100 	};
  101 	unset($aa);
  102 	unset($value);
So, then you can pull the info by $Profile[aa_array][aa_id] => points.

For writing, it would probably be better to make an array like this:
Code:
$AA_Array => Array
	(
		[position_num] => Array
			(
				[aa_id] => #
				[aa_points] => #
			)
	)
So, then you would have all 240 positions to work with, and then you can put it all back in at once. It might also help to put the position_num into the read array, so that way you can refer back, but still be able to locate the AAs easily by a query to the altadv_vars table:

aa.php:
Quote:
SELECT skill_id, name, cost, max_level, spellid, (classes + berserker) AS classes FROM altadv_vars WHERE type='' AND classes & '' ORDER BY skill_id
Anyways, just some thoughts
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #7  
Old 02-25-2008, 08:35 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

Sorry, took me a while to respond. I had the Flu with Complications.

I'll look into adding Alt Adv into the character editor. Also, the release is in my sig. So much for a pretty web site.

^-^ And then there was Nu. And Nu said, "The cake is a lie." And so it became.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
Reply

Thread Tools
Display Modes

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 09:44 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