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.

Reply
 
Thread Tools Display Modes
  #31  
Old 09-12-2005, 10:50 AM
deazone
Sarnak
 
Join Date: Jun 2005
Posts: 37
Default

Quote:
Originally Posted by WildcardX
vRandom,

I was just looking at that exact code! the reason why the server is "expecting 38" is because it is getting that number from the sizeof(STRUCT) function.. So 38 in this code is pretty much a constant as the memory signature of the PlayerPositionUpdateClient_Struct doesnt change. What is changing, the "36" and "37" from app->size is the size of that same struct the client is sending to the server. In effect, the server expects the size of this structure to be 38 bytes long, but the client is sending 2 different PlayerPositionUpdateClient_Struct sizes of 36 and 37 bytes. Upon reviewing the code further, I see this struct is instrumental in determining both player coordinate position in the eq world as well as positions of mobs. I'm still trying to understand this more so I can attempt a fix. I would think its simply the opcode for the OP_ClientUpdate is wrong and that we simply need to recapture this packet, but what I am confused about is why the client is sending 2 different sizes for the same structure unless the client has changed and broken what was once OP_ClientUpdate into 2 different opcodes...
6.1dr1 also receives two OP_ClientUpdates
as shown below:
[Error] OP size error: OP_ClientUpdate expected:30 got:31

Normally the 6.1 client does send 30 bytes.

I believe the opcode in opcodes.conf is correct. I believe it is serverside which is not allocating the PlayerPositionUpdateClient_Struct correctly.

Code:
void Client::Handle_OP_ClientUpdate(const EQZonePacket *app)
  {
  	if (IsAIControlled())
  		return;
  	
  	if (app->size != sizeof(PlayerPositionUpdateClient_Struct)) {
 	LogFile->write(EQEMuLog::Error, "OP size error: OP_ClientUpdate expected:%i got:%i", sizeof(PlayerPositionUpdateClient_Struct), app->size);
  		return;
As you can see sizeof(PlayerPositionUpdateClient_Struct) is always showing as 38, the clients are sending the 36byte packet. Every now and then a 37 byte packet.

Could it be that:

VCPP is not allocating the same memory as GCC. Normally eqemu has no problem with the OS port. However perhaps something was missed. Does anyone have a linux server up that could confirm this?

Last edited by deazone; 09-12-2005 at 07:37 PM..
Reply With Quote
  #32  
Old 09-12-2005, 11:33 AM
tallerin
Hill Giant
 
Join Date: Mar 2005
Posts: 165
Default

Also i have to agree the opcode in the opcode.conf is the right one as i get 0x14cb for the OP_ClientUpdate from peq server when i ran a packetcollector
Reply With Quote
  #33  
Old 09-12-2005, 11:54 AM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

It is true that different platforms will get different sizeof() results for datatypes. I did notice in that structure you mentied above that some structure members are declared as a float instead of the cross platform accepted float32 type, for example. That could result in a different sizeof(structure) result.
Reply With Quote
  #34  
Old 09-12-2005, 12:01 PM
MikeyUSC
Fire Beetle
 
Join Date: Sep 2005
Posts: 10
Default Fix for This Problem

Code:
/*
** Player position update
**	Struct sent from client->server to update
**	player position on server
**
*/
struct PlayerPositionUpdateClient_Struct
{
/*0000*/ uint16	spawn_id;
/*0022*/ uint16	sequence;	//increments one each packet
/*0004*/ float y_pos;                 // y coord
/*0008*/ float delta_z;            // Change in z
/*0016*/ float delta_x;            // Change in x
/*0012*/ float delta_y;            // Change in y
/*0020*/ signed animation:10;     // animation
         signed delta_heading:10;  // change in heading
         signed padding0020:12;   // ***Placeholder (mostly 1)
/*0024*/ float x_pos;                 // x coord
/*0028*/ float z_pos;                 // z coord
/*0034*/ unsigned heading:12;     // Directional heading
         unsigned padding0004:4;  // ***Placeholder
/*0032*/ // COMMENT ME OUT!! uint8 unknown0006[2];  // ***Placeholder
/*0036*/
};
Simply comment out the last line, and all is well..

RadarBlipBox on the LoginServer is now running with this modification..try & see if anyone has any problems..
Reply With Quote
  #35  
Old 09-12-2005, 12:06 PM
jillmatik
Sarnak
 
Join Date: Sep 2005
Posts: 51
Default

I'll definitely try this server once I get home from work. If this does turn out to be the fix, would greatly appreciate a link for any updated files! I have no way to compile any updates :(

Thanks,
J
Reply With Quote
  #36  
Old 09-12-2005, 12:13 PM
tallerin
Hill Giant
 
Join Date: Mar 2005
Posts: 165
Default

wooohooo thats it i can move somewhere else and attack and it works on radarblipbox
Reply With Quote
  #37  
Old 09-12-2005, 12:15 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

ugh someone beat me to the fix!! hehe Good job!

I really wanted to find the fix for this one and it was staring me in the face the entire time. That line you comment out is the 1 to 2 byte difference in the structure size. I'll try it out and recompile now! woot!
Reply With Quote
  #38  
Old 09-12-2005, 12:22 PM
vRandom
Sarnak
 
Join Date: Jun 2005
Posts: 91
Default

cool, now who is willing to share a compiled binary

vRandom
Reply With Quote
  #39  
Old 09-12-2005, 12:29 PM
tallerin
Hill Giant
 
Join Date: Mar 2005
Posts: 165
Thumbs up

should have mention before NICE JOB had a burp in net connection but reconnected and is working great having no issues yet. well except for 2 skelies not liking me and killing me. But i was very much able to hit and do dmg again nice job.
Reply With Quote
  #40  
Old 09-12-2005, 12:36 PM
jillmatik
Sarnak
 
Join Date: Sep 2005
Posts: 51
Default

Quote:
Originally Posted by tallerin
should have mention before NICE JOB had a burp in net connection but reconnected and is working great having no issues yet. well except for 2 skelies not liking me and killing me. But i was very much able to hit and do dmg again nice job.
LOL!

Great work! Thanks again MikeyUSC
Reply With Quote
  #41  
Old 09-12-2005, 01:09 PM
Sakrateri's Avatar
Sakrateri
Dragon
 
Join Date: Mar 2004
Location: England
Posts: 776
Default

Any able to post a compiled fix here ? Please ?
__________________
KhepriGames

Game Gallery

My Forums

Reply With Quote
  #42  
Old 09-12-2005, 01:18 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

hehe I'm compiling as fast as I can.. Wife made dinner so...
Reply With Quote
  #43  
Old 09-12-2005, 01:19 PM
vRandom
Sarnak
 
Join Date: Jun 2005
Posts: 91
Default

hummmm fooooood...... lol

edit: depending on what your having, you could post that here too
i'm hungry....
vRandom
Reply With Quote
  #44  
Old 09-12-2005, 01:42 PM
rojadruid
Discordant
 
Join Date: May 2005
Location: Smith Falls, Ontario, Canada
Posts: 283
Default

Quote:
Originally Posted by cobra80
Anyone managed to load the peq velious rc1 database into a fresh install that mind sharing how they managed? All i keep getting is tables missing when i try to directly insert it or this error when trying to update things.

ERROR 1060 (42S21) at line 468253: Duplicate column name 'lootdrop_id'
I am running the lastest peq velious rc1 database. all I did was run gthe following in a cmd window: "mysql -u[user] -p[password]" this brings up your mysql window. In it I typed "CREATE DATABSE eq;" followed by "USE eq;" next I sourced two of the four files from the website. by typing "source load_system.sql;" once it finished, took awhile to do I did the next file "source load_empty_users.sql;" after that nothing else have I changed.

after that I just configured the three ini files and I was good to go.

I can load the server, only errors I see are the missing opcodes everyone else is getting, and the no attacking thing which if reading thru here is right is a translation problem.

I am also having a router issue where to login on my network I have to set all the ips in the ini files to localhost, but when configured for public play anyone else but my local lan can play including th computer hosting the server.
Reply With Quote
  #45  
Old 09-12-2005, 01:56 PM
MikeyUSC
Fire Beetle
 
Join Date: Sep 2005
Posts: 10
Default

Quote:
Originally Posted by Sakrateri
Any able to post a compiled fix here ? Please ?
If I must.. =)

This is JUST World.exe & Zone.exe

Mike

http://www.asrc.info/beta/EQEmuFixed.zip
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 05:36 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