PDA

View Full Version : 5/12/2010



plaisance
05-12-2010, 03:24 PM
here is what i am seeing after the update to live

Debug: connect2: Unknown opcode 'OP_ZoneSpawns' with payload type 'spawnStruct'
Debug: for receiver 'SpawnLog' of type 'SpawnLog' to member '1logZoneSpawns(const uint8_t*, size_t)'


Zone: EntryCode: Client
Warning: OP_PlayerProfile (0x6022) (dataLen: 26632) doesn't match: sizeof(charProfileStruct):25312
Segmentation fault

client crashes on zoning

harryS
05-12-2010, 03:52 PM
Hi,

here a quick and dirty workaround to correct the size (no crashing)


everquest.h (Line 2607)

/*24152*/ uint8_t unknown24152[2360]; // ***Placeholder (2/13/2007)


the last running version had "unknown24152[1040]" -> add the difference from your log: 1040 + (26632-25312) = 2360

this prevents the crashing, but its not fixing the problem with the wrong zone loading (it always loading qeynos)....

We need to wait, until smarter people have time to fix other zone-loading.


Harry

ieatacid
05-12-2010, 04:22 PM
Try this:


struct spellBuff
{
/*0000*/ uint8_t unknown0000; //
/*0001*/ int8_t level; // Level of person who cast buff
/*0002*/ uint8_t unknown0002; //
/*0003*/ uint8_t unknown0003; //
/*0004*/ float unknown0004;
/*0008*/ int32_t spellid; // Spell
/*0012*/ int32_t duration; // Time remaining in ticks
/*0016*/ int32_t effect; // holds the dmg absorb amount on runes
/*0020*/ uint8_t unknown0020[4]; // *** this might need to be swapped with playerId
/*0024*/ uint32_t playerId; // Global id of caster (for wear off)
/*0028*/ uint8_t unknown0028[48];
/*0076*/
};

It's possible some of these fields need to be rearranged, but I suspect the extra data was added on the end.

Backspace
05-12-2010, 04:57 PM
Looks like ieatacid changes work nicely. But keep in mind the most recent build is 2 (maybe 3 patches) out dated now, will have to redo some earlier changes.
Here's what I did to get it working:

Edit src/everquest.h using ieatacid post in this thread
./configure
make
make install
Edit /usr/local/share/showeq/zoneopcodes.xml and make these changes
<opcode id="0F3E" name="OP_NpcMoveUpdate" updated="3/10/10">
<opcode id="7351" name="OP_DeleteSpawn" updated="03/10/10">

Please say if there's a better way, but this is how I did it and it's working.

Thanks again guys.

-----

Getting this after making these changes. Not crashing, but thought I should post:
Warning: OP_Buff (0xd1d) (dataLen: 88) doesn't match: sizeof(buffStruct):44

plaisance
05-12-2010, 06:57 PM
Thanks guys.

testing out things now to see how it goes.

oh, as for the zoneopcodes, those changes i had made from ieatacid's post back in march, the op id's were the same ones i had.

march fix (http://www.showeq.net/forums/showthread.php?6456-showeq-crashing-on-1st-zoning-sizeof-Problem&p=45726&viewfull=1#post45726)

thanks again!

plaisance
05-12-2010, 08:31 PM
OK, things are looking good, all is working so far without issue.

I noticed somethinng in the logs that may not be nothing at all. He is a snippet of it.

Debug: connect2: Unknown opcode 'OP_ZoneSpawns' with payload type 'spawnStruct'
Debug: for receiver 'SpawnLog' of type 'SpawnLog' to member '1logZoneSpawns(const uint8_t*, size_t)'

Question: did the changes to adding /lfguild for any zone change anything or add anything that may create a problem now and then?

plaisance
05-14-2010, 01:33 PM
everything is looking good, only a couple of warnings i am not doing a good job at cleaning up.

Warning: OP_Buff (0xd1d) (dataLen: 88) doesn't match: sizeof(buffStruct):44

Warning: OP_DzSwitchInfo (0x3bdd) (dataLen: 8) doesn't match:

I had thought changing the length of the spell buff ( /*0028*/ uint8_t unknown0028[48] ) would have corrected the buffStruct, but it still persist. should 48 be 8?

Unsure on DzSwitchZInfo as the warning does not show the expected length match.

Razzle
05-15-2010, 11:30 AM
I am all messed up.

Blah.

Razzle

ieatacid
05-15-2010, 01:32 PM
everything is looking good, only a couple of warnings i am not doing a good job at cleaning up.

Warning: OP_Buff (0xd1d) (dataLen: 88) doesn't match: sizeof(buffStruct):44

Warning: OP_DzSwitchInfo (0x3bdd) (dataLen: 8) doesn't match:

I had thought changing the length of the spell buff ( /*0028*/ uint8_t unknown0028[48] ) would have corrected the buffStruct, but it still persist. should 48 be 8?

Unsure on DzSwitchZInfo as the warning does not show the expected length match.

If you can get me some dumps of the data I could fix it right. Easiest way would be to go to network -> opcode monitor (or ctrl+alt+o) and put in "D1D" without quotes, make sure "view monitored opcode matches" is checked and grab the data that's spewed to the console. I don't have an active account so I can't get the data myself.

plaisance
05-15-2010, 03:07 PM
Thanks ieatacid

I started monitoring on the 12th and 13th and sent you the link to the 0xd1d dump via pm

sammie
06-25-2010, 12:04 AM
A new patch to Test server on June 24 pushed out some code for Marketplace enhancements and a new gui window. As a result of this patch, PlayerProfile grew by 8. Building on all of the changes in this thread, the following change in everquest.h will fix SEQ on Test and should work for live after the next live patch.

/*24152*/ uint8_t unknown24152[1048]; // ***Placeholder (2/13/2007)

I did a quick walk through of the PlayerProfile packet and everything else is in place, so I'm about 99% confident the extra bytes were added to the end of the struct.

lehua768
07-02-2010, 09:30 PM
A new patch to Test server on June 24 pushed out some code for Marketplace enhancements and a new gui window. As a result of this patch, PlayerProfile grew by 8. Building on all of the changes in this thread, the following change in everquest.h will fix SEQ on Test and should work for live after the next live patch.would have corrected the buffStruct, but it still persist. should 48 be 8?Unsure on DzSwitchZInfo as the warning does not show the expected length match.

FatBuddha
07-15-2010, 05:59 AM
Thanks sammie,

confirmed working on live after changing the line that you posted.