Log in

View Full Version : freezing on zoning


vladimir
02-16-2005, 04:12 PM
My EQEmu seems to be freezing almost every time I try to zone now... What happens is that EQ just freezes on the loading screen for the zone. I can tell whether or not the zone is going to load by whether or not a loading bar (the blue thing) appears within the first 5 secs or so after I try to zone in. This is also the case for logging in my character in the first place. This just started happening yesterday but has not happened before.

My friend told me he had stability problems with EQ a while ago and adjusting the chipset (RAM, etc) settings in BIOS to default helped, but when I tried doing that, no result was achieved. Does anyone have any suggestions about what I should try to fix the problem?

PS: if this should go in the support forum, please move it there... the comment for EQEmu General Support has to do with CONNECTING to EQEmu servers, which is not the case, so I put it here, just in case.

mattmeck
02-16-2005, 04:35 PM
have you tried lowering your datarate?

vladimir
02-16-2005, 04:54 PM
You know what...? I totally forgot about that! I have it set at 5.0 right now... what's a good value for EQEmu servers (namely GW, if that matters)?

mattmeck
02-16-2005, 05:08 PM
its diferent for everyone, just move it to 3 and see if it makes a diference

vladimir
02-16-2005, 05:31 PM
Tried it... fraid it didn't do anything :-\

Should I try to go any lower, or could the problem be something else?

Wiz
02-17-2005, 01:30 AM
There are two possible reasons for this, in my experience.

1) Playerprofile is scrambled, a required packet is missing or a bad packet is sent.

This occurs during login, when playerprofile, checksum, weather, etc are being sent. If the playerprofile has some bad values, you send a packet that really shouldn't be sent at this point, or you're not sending one of the packet it expects it will sit and wait for the proper packets forever, never proceeding with login. The server admin needs to ensure all the routines are in order.

2) A required packet is properly constructed in the client process, but fails to be received by the player's client.

Some ISPs in particular has an issue where they require a packet going out (in the EQNetworkConnection's Process()) to be resent a bunch of times. Also if the packets are too speedily resent, it won't have properly recieved them, and thus gains the same problem as 1). Having the server admin increase the time between packet resends in EQNetworkConnection::Process() (I've found that upping the minimum from 250 to 500 works) will generally solve this for most users. Lower datarate will solve it for some because it artifically increases the resend time.

mwmdragon
02-17-2005, 09:37 AM
I an having the same problem on one of my lan computer while connecting to the minilogin. I have other computer connecting and playing together but for some reason one pc will crash on zoneing and then if i watch the zone.exe while that player is connected after the crash it keeps giving an Unknown packet error and the player can't attack or use a merchant or even see other platers who are in the same zone. What could be causing this corruption? We have deleted the character and re-made him and it had the same problem.

I would love to get the other PC playable on our minilogin server again. please let me know how I can prevent this.

vladimir
02-17-2005, 06:13 PM
Wiz, Image asks which process he should change from 250 to 500. THanks for you help so far :)

image
02-18-2005, 03:58 AM
I think I found it, just wanted to make sure if wasn't something else, the line is like data < 5 && last->PacketSent + 250 .... I set the 250 to 500.

Wiz
02-18-2005, 05:43 AM
I think I found it, just wanted to make sure if wasn't something else, the line is like data < 5 && last->PacketSent + 250 .... I set the 250 to 500.

That's it.

fathernitwit
02-18-2005, 02:06 PM
I think these are things that should not remain hidden in the netcode, so I will make them into defines in features.h. I am not sure the right names for them. I have turn this:


if (((pack->LastSent + 500) <= Timer::GetCurrentTime()) || (datahigh < 5 && (pack->LastSent + 250) <= Timer::GetCurrentTime())) {


into:


if (((pack->LastSent + DATA_RESEND_DELAY) <= Timer::GetCurrentTime()) || (datahigh < 5 && (pack->LastSent + DATA_RESEND_DELAY_IDLE) <= Timer::GetCurrentTime())) {



I am not sure if those two names are really the right words though. Does anybody have any better suggestions for names on these parameters?

Wiz
02-18-2005, 03:34 PM
Nix the differentation between data < 5 and data >= 5. It's pointless. Just make it a halfsecond either way.

mwmdragon
02-20-2005, 10:52 AM
I found that a character will become corrupt and then start to kick on zoneing. Also the character will not be able to fight or interact with anyone or anything on the server.

This has occured after equiping certain items... I found that after a character equipped a cloth cord (or whatever the iksar cloth cord it called, Silk sash or something) in the waist slot. The zone.exe will report an unexpected packet every time the corrupted character tries to do something.

Wiz, you seem to know most fixes.. How can I uncorrupt the character file. I have tried to delete all back ups of the character from the database but for some reason the character has the same problem.

UPDATE

I have deleted everything in the player inventory and now the character isn't corrupt.. Any suggestions on what i should be looking for to correct this corruption problem in the database... or is it in the 6.0dr2 release ?