View Single Post
  #10  
Old 09-20-2014, 08:37 AM
GreenMerope
Fire Beetle
 
Join Date: Sep 2014
Posts: 11
Default

Thank you for your help!
My server is up and running, just took some tinkering and grabbing some info from the Windows install guide and just some common sense. provocating I might take you up on your offer as I still have a couple little questions.

I'm going to post here how I solved my loginserver problem.

None of this information has any guarantee whatsoever, probably isn't best practice by any stretch. I'm a novice and this is how I got my server going, good luck!

First thing you need to do is go get the dependencies that loginserver needs to compile and put them in the dependency folder to your source folder. I found the dependencies here: http://eqemu.github.io/. Unlike vsab I'm running 64bit debian so I grabbed the ubuntu_LoginServerCrypto_x64.zip folder, unzipped it, and dropped the dependencies in the dependency folder.

Next find CMakeCache.txt and set EQEMU_BUILD_LOGIN:BOOL: OFF to ON. Now run make to complile.

I moved loginserver over to my main server directory as well as its configuration file, login.ini and the op code files (thanks vsab).

Now I had to get the sql database ready to interact with the loginserver. To do this I used the EqEmuLoginServerDBInstall.sql file. You'll find it in the loginserver source in the login_util directory.

Now I had new tables in my database. I edited them for my own purposes.

tblLoginServerAccount - This holds user accounts: what people will use at the client to get into your server. You'll see there's already an account there named Admin. The password is a SHA1 hash. I took out this Admin account and made one for myself. Keep in mind the password must be a SHA1 hash! I used an encryption tool online to take my wanted password and get the hash string to put in this field. The Admin account has a password of "password", so if you want to you can use that if you just want to test locally. There might be a way to do this that isn't manual but I don't know it.

tblServerAdminReg - This holds the worldserver account holders and their information. I went into the eqemu_config.xml file and edited the <loginserver> section to reflect the username and password defined here. I also put in the IP and port of my loginserver. I was running the loginserver on the same machine so the host for me was 127.0.0.1 and the port is 5998.

tblServerListType - Just what it says. I made no changes here.

tblWorldServerReg - This defines the actual servers. My understanding is one world server admin can have several servers. I made it so the ServerLongName and ServerShortName matched the corresponding values in my eqemu_config.xml. I checked and made sure that the ServerAdminID matched the id of my account in tblServerAdminReg (in my case, 1). I also made the server trusted. I don't know what this does. I told you I was a noob, right?

The loginserver has it own configuration file, login.ini. I opened it up and edited the database section with the info for my own database so that the loginserver can access it.

I then went on my router and made sure I was forwarding ports 5998 and 5999 to the correct machine.

From there I started my testing. When I launched my server I made sure to launch loginserver before world. I don't know if this matters, I need to test it, but for sure, world needs to communicate to loginserver.

You'll have to edit your eqhost to point at your new loginserver.

The loginserver makes it own very helpful log file which will be with the others in the logs directory.

When I got everything working I got this in the log file:

[Debug] [09.20.14 - 01:34:48] Server Started.
[Network] [09.20.14 - 01:34:51] New world server connection from 127.0.0.1:58573
[World] [09.20.14 - 01:34:51] Server Test(Test) successfully logged in.

One thing I ran into was this:
[Network] [09.19.14 - 21:33:45] New world server connection from 127.0.0.1:32933
[Network Error] [09.19.14 - 21:33:45] Recieved application packet from server that had an unknown operation code 0x1000.

After some looking around I realized that earlier in the evening I had tried to get MiniLogin to work and left its entries in the database. I deleted them and all was well.

I hope this helps someone.

I want to put out my sincere thanks to everyone involved in this project. The programming is well done and everything was here for me to find it, I just had to look.

BONUS:

So when my server did start up, there were no mobs, and no NPCs. Just a high elf and the great wide world. It was a bit eerie actually. Anyway the Linux startup guide is currently missing the part about sourcing the updates to your database. You'll find how to do this in the Windows start up guide.
Reply With Quote