I have been reading
http://www.eqemulator.net/wiki/wikka.php?wakka=VS2008
o ZandigSlaytanic
http://www.eqemulator.net/wiki/wikka.php?wakka=ValesEQ
o ValesEQ
http://www.eqemulator.net/wiki/wikka...a=ProjectEQSVN
o ZandigSlaytanic
guides to setup a server, and i usually have to traverse all 3 guides to make the server I want. I have taken the stuff they have written and combined it into one and it has helped me out a lot. I wanted to re-present their work in one complied format for those who may want to see it in a different manner.
The below text is a reformatted version of "ZandigSlaytanic" and "ValesEQ" work from the guides above.
Stated Objective
To create an EQEmu server that:
Is compiled from the latest source
Has the latest maps and quests (which are stored in an svn checked folders so they can be updated on the fly)
Works as a dedicated LAN server
System
This was all done on a Windows Server 2003 Standard Edition (SP2) O.S. (32 bit). It is a VM. It had 1 gig of RAM, 1 cpu, and a 20 gig Hard Drive. The server was patched to August 2010.
Conceptual Overview
Install and Gather Starting Files
(Phase 1)
Install Extraneous Software (winrar, etc
)
Create EQEmu and EQEmuDB SVN Folders
Install ActivePerl
Install MySQL
Install Navicat Lite
Install Zlib
Install Microsoft Visual C++ 2008 Express Edition and set it up
Compile
(Phase 2)
Compile Source
Setup Databases, Adjust Server Settings, and Gather More Files
(Phase 3)
Setup PEQ DB
Install EQEmuLoginServer
Gather EQEmuLoginServer files (.ini, .conf, .dll) from EQEmu Build
Setup PEQLoginDB DB and Logins
Finalize Connection Settings (eqemu_config.xml, eqemulogin.ini)
Setup Maps and Quest SVN Folders
Import Spell files
Create BAT Launcher file
Remove Glooming Deep as the Starting Point
Install and Gather Starting Files
(Phase 1)
Install Extraneous Software (winrar, etc
)
Install the following software (you can find links to this software at the bottom of this document, or just by googling it)
Winrar
Acrobat Reader
TortoiseSVN
Create EQEmu and EQEmuDB SVN Folders
Create a folder called "EQEmuSVNFiles" off of the root drive
Create a subfolder called "EQEmu"
Right-click that folder, and paste in the SVN address:
http://projecteqemu.googlecode.com/svn/
Create a subfolder called DB
Right-click that folder, and paste in the SVN address:
http://projecteqdb.googlecode.com/svn/trunk
Install ActivePerl
Perl 5.10.0.1007 is what we'll use. You can find links to this software at the bottom of this document, or just by googling it.
This is very important! If you have another version of perl currently installed, start at step 1. If you don't, start at step 5 and go on from there.
Be sure to install to the directory of c:\Perl
1. Backup any customizations that you need to.
2. Uninstall it via control panel.
3. Delete the c:\perl directory and empty it from the recycle bin.
4. REBOOT!
5. Install Perl 5.10.0.1007
6. REBOOT! The next two steps will not work until you do (at least they wouldnt for me)
Next make sure you are connected to the internet and type the following commands from a DOS command prompt
ppm install DBI
ppm install IO-stringy
Install MySQL
MySQL 5.0.82 is what we'll use. You can find links to this software at the bottom of this document, or just by googling it.
Make sure you install MySQL (assumed to be in c:\MySQL, which is the recommended location) with Developer Components (C Include Files / Lib Files). If you've already installed MySQL without this option just use your Windows Control Panel to Change and add the option.
NOTE: In mysql 5.1.* they introduced a new reserved keyword 'range' into the sql language, unfortunately the items table in the peq database already has a field named "range". To avoid this conflict we're using a 5.0.* version.
NOTE: This guide assumes you don't have mysql installed. If you do, please take the time to do backups of your data before proceeding. Make sure your data is backed up properly.
Install mysql 5.0.82 as follows:
Choose Custom Setup Type and Next
Install all options, and change the install path to c:\mysql\
It will install MySQL, show you a couple of ads and then you'll be able to "Configure the MySQL Server now" by checking a checkbox, do that now.
Choose Detailed Configuration, Click Next
Choose Server Machine, Click Next
Choose Multifunctional Database, Click Next
Click next again for InnoDB Tablespace Settings
Choose Online Transaction Processing (OLTP), Click Next
Check Enable TCP/IP Networking making sure the port Number is 3306, Un-Check enable Strict Mode, Click Next
Choose Best Support for Multilingualism, Click Next
Check for both Install As Windows Service (Service name should be MySQL), and for Include Bin Directory in Windows PATH, Click Next
Now enter your New Root Password, Confirm, and do not check for remote machine Access. Don?t select Create An Anonymous Account. Click Next
Now click on Execute and wait for it to finish. Once it is done, click Finish.
You should now have the directories:
C:\MySQL\include
C:\MySQL\lib
Install Navicat lite
Install ZLib
Install Zlib, in c:\zlib
Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory.
Install Microsoft Visual C++ 2008 Express Edition and set it up
Install Microsoft Visual C++ 2008 Express Edition. You can find links to this software at the bottom of this document, or just by googling it.
Update your Microsoft Visual C+(+) 2008 Express Edition directories.
Using Microsoft Visual C+(+) 2008 Express Edition, from the menu bar select:
'Tools/Options/Projects and Solutions/VC+(+) directories' and add the following directories using the dropdown "Show directories for" box:
Include files: C:\mysql\include
Include files: C:\perl\lib\CORE
Include files: C:\zlib\include
Library files: C:\mysql\lib\opt
Library files: C:\perl\lib\CORE
Library files: C:\zlib\lib
use the "New Line (Ctrl-Insert)" to add the above directories in the appropriate section.
Compile
(Phase 2)
Now on to the compiling
Using Microsoft Visual C+(+) 2008 Express Edition do the following:
First choose which version of EQEmu you want to compile: (the most stable and recommended is located in the directory 'trunk/EQEmuServer') There may also be a 'branches' directory containing directories of usually test code that is not yet official which you may want to compile and test. However 'trunk/EQEmuServer' is recommended and is now current.
'File/Open/Project/Solution' and open the file 'Server.sln' (it should have a small number 9 in the upper right corner of the icon).
Now select: 'Build/Clean Solution'
Then: 'Build/Configuration Manager'
and change the "Active solution configuration" to: 'Release' and click "Close"
NOTE: to enable the use of Bots on your server select 'ReleaseBots' and click "Close"
More information on the Bots system can be found here:
http://www.eqemulator.net/forums/forumdisplay.php?f=676
Finally select 'Build/Build Solution' and it will begin to compile which will take some time. During compiling you will get a bunch of warnings which can be ignored.
After compiling finishes you should have:
Build: 5 succeeded, 0 failed, 0 up-to-date, 0 skipped
Create a folder called EQEmu off of your root drive
Now use the following files and folders from your new build, and place them in your newly created EQEmu folder:
changelog.txt
BUILD directory: Chatserver.exe, EMuShareMem.dll, World.exe, Zone.exe
EQLAUNCH/RELEASE directory: eqlaunch.exe
UTILS directory: mail_opcodes.conf, opcodes.conf, patch_6.2.conf, patch_Anniversary.conf, patch_Live.conf, patch_SoD.conf, patch_SoF.conf, patch_Titanium.conf
UTILS directory: all of the files in the DEFAULTS folder
Place all the subfolders and files from the *defaults* dir into the "EQEmu" folder,
Then place into said "EQEmu" folder: Chatserver.exe, EMuShareMem.dll, World.exe, Zone.exe, eqlaunch.exe, mail_opcodes.conf, opcodes.conf, patch_6.2.conf, patch_Anniversary.conf, patch_Live.conf, patch_SoF.conf, patch_Titanium.conf
Setup Databases, Adjust Server Settings, and Gather More Files
(Phase 3)
Setup PEQ DB
Navigate to folder c:\EQEmuSVNFiles\DB that you created and setup earlier. You should see a file called: peqdb_RevXXXX.sql.gz. Extract it. This is the "bulk" of the database. Now keep an eye on the revision number as it signifies the correlation between the server number. Example: If you have a Server Rev774, you can run peqdb_Rev859.sql since it's compatible with the server revision which is Rev774. If you update to a newer server revision, then you need to update the database if the revision of the server surpasses it. I.E. DB Rev# > Server Rev#
Open Navicat lite
double click on local
right click on local, new database
name the new database PEQ
Now open a command prompt and go to the folder that has the peqdb_RevXXXX.sql you just extracted
run this command
o mysql -uUSERNAME -pPASSWORD PEQ < peqdb_RevXXXX.sql
o mysql -uUSERNAME -pPASSWORD PEQ < load_player.sql
Once it's done, you're all set! Now all that's left is to double-check the revisions and set up the new EQEMuLoginServer.
Install EQEmuLoginServer
Download and extract the EQEmuLoginServer.zip file. You can find links to this software at the bottom of this document. Copy the EQEMuLoginServer.exe into C:\EQEmu folder.
Gather EQEmuLoginServer files (.ini, .conf, .dll) from EQEmu Build
Go to the folder where you downloaded the server sources (C:\EQEmuSVNFiles\EQEmu) and navigate to:
o trunk > EQEmuServer > EQEmuLoginServer > login_util.
Then copy: eqemulogin.ini and login_opcodes.conf to your server folder (C:\EQEmu).
Next, navigate to:
trunk > EQEmuServer > EQEmuLoginServer > login_util > ms >debug
Then copy: EQEmuAuthCrypto.dll to your server folder (C:\EQEmu)
Setup PEQLoginDB DB and Logins
Open Navicat lite
double click on local
right click on local and create a new database
name it PEQLoginDB
Now open a command prompt and go to the below folder
(C:\EQEmuSVNFiles\EQEmu\trunk\EQEmuServer\EQEmuLog inServer\login_util)
run this command:
mysql -uUSERNAME -pPASSWORD PEQLoginDB < EQEmuLoginServerDBInstall.sql
Here's an SQL statement to make accounts. Save the below statement as accounts.sql onto your servers desktop.
INSERT INTO tblLoginServerAccounts (AccountName, AccountPassword, AccountEmail, LastLoginDate, LastIPAddress) VALUES('Admin', sha('password'), 'admin@somewhere.com', now(), '127.0.0.1');
Edit the above statement as follows:
After VALUES, edit 'Admin' and 'password' to what you would like the login information to be. Edit 127.0.0.1 to the i.p. address of the client machine you will be logging in from.
For security purposes, you can delete the Admin account that's entered by default in tlbloginserveraccounts by left-clicking on it so it's yellow, and then pressing CTRL+DEL.
On to Setting up the world server. Here's the sql statement to make the world server entry. Save the below statement as worldreg.sql onto your servers desktop.
INSERT INTO `tblworldserverregistration` (`ServerID`, `ServerLongName`, `ServerTagDescription`, `ServerShortName`, `ServerListTypeID`, `ServerLastLoginDate`, `ServerLastIPAddr`, `ServerAdminID`, `Note`) VALUES ('1', 'NameOfServer', 'ServerTagDescription', 'ShortNameOfServer', '2', NULL, NULL, '1', NULL);
Edit the above statement as follows:
After VALUES, edit the following:
NameOfServer is the actual name of the server.
ShortNameOfServer is the shortname for client files in your game directory (i.e. UI_Soandso_ShortNameOfServer.ini).
ServerTagDescription is what you will see in parenthesis after the server's name - i.e. NameOfServer(Come and have fun!)
The number 2 signifies what kind of server it is. 1 = Legends, 2 = Preferred, 3 = Standard.
In navicat, right click the PEQLoginDB DB and select Execute SQL File
and choose accounts.sql from your desktop. Do the same again but choosing worldreg.sql from your desktop.
Finalize Connection Settings (eqemu_config.xml, eqemulogin.ini)
First of all, lets edit the eqemu_config.xml.full file in your server directory. Make sure you use the eqemu_config.xml.full one and not the eqemu_config.xml. The .full version has the whole configuration and what we need to edit inside. You can just delete the eqemu_config.xml and then delete the .full extension at the end of the file.
Up at the top of the file, you should see:
<world>
<shortname>NameOfServer</shortname>
<longname>ShortNameOfServer</longname>
The NameOfServer and ShortNameOfServer text should match with what you put in to the tblworldserverregistration table above just a few steps back. Please keep in mind that the word Server should not be included in the server's actual name.
<!-- Only specify these two if you really think you need to. (read: You don't) -->
<address>server.dyndns.org</address>
<localaddress>192.168.0.1</localaddress>
Uncomment out the <-- and --> so it looks like the text above
server.dyndns.org should be your dyndns address (I just use my internal IP since Im on a LAN)
and the 192.168.0.1 (or whatever you choose your static IP to be) should be the LAN IP of the server's PC
<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>server.dyndns.org</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>
server.dyndns.org should be your dyndns name (I just use my internal IP since Im on a LAN)
<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>localhost</host>
<port>3306</port>
<username>MySQL Account</username>
<password>MySQL Password</password>
<db>peq</db>
</database>
MySQL Account and Password are the username and password you made when install MySQL
The username is most likely root and then whatever you used for your password
peq is the name of the database
Save your changes and open up eqemulogin.ini located in the server folder
Port=5998
DumpPacketsIn=true
DumpPacketsOut=true
Trace=true
DatabaseServerName=localhost
DatabaseCatalogName=PEQLoginDB
DatabaseUserName=MySQL Login
DatabaseUserPassword=MySQL Password
OPCodePathAndFileName=login_opcodes.conf
PEQLoginDB is the name of the Login Database
MySQL Login and MySQL Password is the same as what you used above just a moment ago
Setup Maps and Quest SVN Folders
This is how to keep all of your maps and quests updated. In your server folder, you might see a file called .keep located in your Maps and Quests folder. Delete this file before continuing with the following. Also, keep in mind that when you do download to make sure that there aren't duplicate folders in the directory such as maps/maps.
In your server folder, right-click the Maps folder and select SVN Checkout. In the URL of Repository section, paste:
http://eqemumaps.googlecode.com/svn/trunk/Maps
This can take a very long time to download as the map files are pretty large
In your server folder, right-click the quests folder and select SVN Checkout. In the URL of Repository section, paste:
http://projecteqquests.googlecode.com/svn/trunk/quests
This keeps your quests updated, and is highly recommended to maintain as it's updated regularly!
NOTE: The plugins folder in the quests directory will have the plugins that go in the server directory plugins, copy them from the quests/plugins folder to the build/plugins folder.
Import Spell files
In your EverQuest installation directory on you client PC, find: spells_en.txt and spells_us.txt. Copy them to your EQEmu server folder.
This allows the server to read data from these files to ensure that the spells work as they should. You do not need to copy these files every time you update, but do make sure they're there before reporting any bugs about spells.
Create BAT Launcher file
A .bat file makes launching the server much easier, and far less tedious. It also accomplishes launching the correct number of zone servers automatically. Make a .bat file to launch the server if you haven't already. Just make a new text file called startup.bat (you may need to change the extension from .txt to .bat). Then copy this text:
@echo off
start EQEmuLoginServer.exe
start world
echo waiting for the world to finish before starting zone...
sleep 10
start eqlaunch zone
Now you can launch the startup.bat file and it should launch all of the server executables.
Remove Glooming Deep as the starting point
Open up Navicat
Open peq
Open tables
Open rule_values
Find entry World:EnableTutorialButton (record 107-ish)
Change to false
FILES
MySQL 5.0.82
o (
http://downloads.mysql.com/archives....sql-5.0&o=-win)
o (
http://downloads.mysql.com/archives/...0.82-win32.zip)
winrar
o (
http://www.rarlab.com/rar/wrar393.exe)
Navicat Lite
o (
http://www.navicat.com/en/download/download.html)
o (
http://download.cnet.com/Navicat-Lit...-10870715.html)
Acrobat Reader
o (
http://get.adobe.com/reader)
TortoiseSVN
o (
http://tortoisesvn.net/downloads)
o (
http://downloads.sourceforge.net/tor...2.msi?download)
ActivePerl 5.10.0.1007
o (
http://www.activestate.com/activeperl/downloads)
o (
http://downloads.activestate.com/Act...x86-291969.zip)
Microsoft Visual C++ 2008 Express Edition
o (
http://www.microsoft.com/express/Dow...008-Visual-CPP)
Zlib
o (
http://sourceforge.net/projects/libp...l.zip/download)
EQEmuLoginServer.zip
o (
http://code.google.com/p/projecteqemu/downloads/list)
SVN SOURCES
EQEmu Source
o
http://projecteqemu.googlecode.com/svn/
o
http://code.google.com/p/projecteqemu/downloads/list
EQEmu Database
o
http://projecteqdb.googlecode.com/svn/trunk/
o
http://code.google.com/p/projecteqdb/downloads/list
EQEmu Quests
o
http://projecteqquests.googlecode.com/svn/trunk/
o
http://code.google.com/p/projecteqquests/downloads/list
EQEmu Maps
o
http://eqemumaps.googlecode.com/svn/trunk/Maps/
o
http://code.google.com/p/eqemumaps/downloads/list