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-14-2008, 07:16 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by ChaosSlayer View Post
the one thing i cannot posible edit is the stupid BLOB file, which contains 4 essential things: stats, deyty, race and class - thats why i belive this little thing should be stand alone =)
Not trying to derail the thread, but here is a relatively easy way to change the profile blob using a MySQL query:

Quote:
UPDATE character_ SET profile = INSERT((SELECT profile FROM (SELECT * FROM character_) AS x WHERE id = 748),(4720+1),4,RPAD(CHAR(100),4,CHAR(0))) WHERE id = 748;
This would give a character with an ID of 748 100 platinum.

In theory, you can change 4720 to any field # in the profile blob & the 100 to whatever numeric value you want it set to. You would then need to change the 4's to correspond with however many characters the data takes up (32-bit integers are 4, for example), otherwise the blob will become corrupt (too many/too few characters).

Some might be wondering why there are 2 subqueries. The answer is discussed here, and it's basically a workaround for not being able to query the same table in an update.

I verified it works without any issues on an existing toon.

If anyone has any questions about this, please feel free to ask in another thread.
__________________
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
  #2  
Old 02-15-2008, 12:33 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

I just had the editor dump the profile into an array ^-^, it takes a bit more ram but makes adding edits a joke.
__________________
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
  #3  
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
  #4  
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
  #5  
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
  #6  
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
  #7  
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
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 01:20 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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3