To explain the cause of this let me tell you how login works. You login to the login server and click play everquest on a server. The login server then sends all your information to that server, and then tells you to connect to the server. Once you try to login to the server, world looks through its list to find your connection information it received from the login server that corresponds to the info that your client is sending it.
The problem arises when your internal ip doesnt match your external ip address. It then cannot find the data that corresponds and disconnects you. To fix this you can use one of two options:
1. Connect to your world server using your external ip address by forwarding port 9000 on your router and listing the world address in LoginServer.ini as your external ip address.
OR
2. As long as you server isnt handling multiple logins at once, you will be safe making the following change:
zoneserver.cpp line 2158:
change:
Code:
if (loginIP==ip && strncmp(plskey, iKey,10) == 0) {
to:
Code:
if (strncmp(plskey, iKey,10) == 0) {
ONLY try the second method if the first one fails.