Jump to content

[Guide]How to create your 3.0.9 ArcEmu private server


Emrys

Recommended Posts

You will Need:

- Tortoise SVN: http://tortoisesvn.net/downloads

- Xampp [basic package]: http://www.apachefriends.org/en/xampp-windows.html#641

- Visual C++ 2008 Express Edition: http://www.microsoft.com/express/vc/Default.aspx

- Navicat: http://www.navicat.com/html/index.php/download/download.html

- ClientfilesExtractors: http://www.mediafire.com/download.php?myhzicmn4ml

- sqlandscripts: http://www.mediafire.com/download.php?m121wzhtokn

 

 

Make sure you have all of the above installed and extracted before moving to the next step! A computer restart is reccomended before moving on also..

 

Getting the Source:

1. Make a folder where you want the source files and name it accordingly.

2. Right click the folder and select the SVN Checkout option.

3. A window should pop-up asking for the SVN Adress, in the input field enter the following: svn://arcemu.info/svn/trunk

4. Click Ok and wait for the files to download; the Ok button text should turn from gray to black when it is finished.

 

Compiling the Source:

1. Install all important and security updates from Windows Update.(This is a must!)

2. Navigate to the directory where you just downloaded the source files and open the win folder.

3. Open arcemuVC90 - All Projects.sln

4. Make sure that Release and Win32 is selected in the two drop-down boxes on the top toolbar.

5. Press F7 or select Build Solution from the Build menu at the top to begin compiling.

6. This is a long process so be patient and eagerly wait for it to finish before closing the window,

7. After you are finished building the project navigate back to the root of where you downloaded the source files and open the bin folder, then Release folder.

8. Now copy all the files in the directory to the folder which you want to make your private server folder.

9. Also copy the configs directory in the root of your source files folder into the private server folder and delete the Without-definitions folder inside

 

Extracting the client files:

1. Copy the ad.exe in the ClientfilesExtractors\Ad\ into your World of Warcraft directory and double-click it.

2. Minimize that and copy all the files in ClientfilesExtractors\MPQE\ into WowDirectory\Data\Language; where WowDirectory is where Wow is installed and Language is the installed language. For Ex: C:\Program Files\World of Warcraft\Data\enGB or C:\Users\Public\Games\World of Warcraft\Data\enUS

3. Double click the ArcEmu English DBC Extractor.bat and input the option that applies to you.

4. If the processes were successful you will have two folders, one called dbc in \Data\enGB or \Data\enUS and one called maps in the World of Warcraft directory.

5. Copy both of these folders into your private server folder and when asked to overwrite click yes.

 

Setting up the Database:

1. Open up Xampp Control Panel and make sure that the MySql service is started.

2. Open up and administrative command prompt; in Windows XP just do Win+r keys and type cmd and hit enter, on vista navigate to C:\Windows\System32 right-click cmd.exe and click Run as Administrator

3. now type: cd C:\xampp\mysql\bin (or pathofxampp\mysql\bin)

4. Then to set the mysql password type: mysqladmin –u root password ascent

5. If you want the password to be something else change ascent to the desired password then hit enter.

6. Now open navicat and click the Connection button

7. Type in a connection name (doesn’t mater what) and the username root and password the one you just created and click Ok.

8. Now double click the connection you just made then right-click it and select New Database.

9. Make a world database and a logon database.

10. Double click the world database and click Execute Batch File

11. Find the world.sql in the sqlandscripts folder you downloaded and extracted and click okay.

12. Wait for it to finish and do the same thing for the logon database, this time using the logon.sql in the sqlandscripts folder

13. You may need to update the database structure. To do this start at step 4 in the How to Update your Core and Database in this guide.

 

How to Update your Core and Database:

1. Right click your source files folder and select the SVN Update option.

2. Let it finish downloading the source files.

3. Recompile your core by using the steps above for Compiling the Source.

4. Open Navicat and open your database connection.

5. Double-click the world database and then right-click it and select Execute Batch file.

6. Find the world sql updates in sourcefolderpath\sql\world_updates where sourcefolderpath is the path of your source files.

7. Execute the updates by selecting the update with the highest number in front and executing it. Continue to do this until you get an error, this means your world database is up-to-date

8. The same thing can be done with the logon database, just use the sourcefolderpath\sql\character_updates directory instead.

Adding the scripts and Server Restarter to your private server:

1. Open the sqlandscripts folder you downloaded and extracted and copy the scripts folder and Server Restarter.exe into the root of your private server directory.

2. When it ask to overwrite click Yes.

 

Setting up your configs:

1. Navigate to the configs directory in your private server folder.

2. Open the arcemu-logonserver.conf and edit what has ###### besides it:

 

#######################################################################
# ArcEmu Realms Configuration File  
# Last updated at rev.1875
#######################################################################


# LogonDatabase Section
#
#    These directives are the location of the `realms` and `accounts`
#    tables.
#
#    LogonDatabase.Host      - The hostname that the database is located on
#    LogonDatabase.Username  - The username used for the mysql connection
#    LogonDatabase.Password  - The password used for the mysql connection
#    LogonDatabase.Name      - The database name
#    LogonDatabase.Port      - Port that MySQL listens on. Usually 3306.
#    LogonDatabase.Type      - Client to use. 1 = MySQL, 2 = PostgreSQL, 3 = Oracle 10g
#

<LogonDatabase Hostname = "localhost" ######
              Username = "root" ######
              Password = "password" #######change to the password you set
              Name     = "logon" ######
              Port     = "3306"
              Type     = "1">


# Host Directive
#
#    This is the address that the realmlist will listen on.
#    To listen on all addresses, set it to 0.0.0.0
#    Default: 127.0.0.1 (localhost)
#
#    Note: ISHost is the interserver communication listener.
#

<Listen Host = "0.0.0.0"
       ISHost = "0.0.0.0"
       RealmListPort = "3724"
       ServerPort = "8093">

# Server console logging level
#
#    This directive controls how much output the server will
#    display in it's console. Set to 0 for none.
#    0 = Minimum; 1 = Error; 2 = Detail; 3 = Full/Debug
#    Default: 3
#

<LogLevel Screen = "0"
         File = "-1">

# Account Refresh Time
#
#    This controls on which time interval accounts gets 
#    refreshed. (In seconds)
#    Default = 600 
#    600 seconds = 10 minutes - 1 second = 0.0166666667 minutes 300 seconds = 5 minutes, 150 seconds = 2.5minutes
#    
#

<Rates AccountRefresh = "600">

# Accepted Build Range Setup
#
#    These two directives set up which clients will be
#    allowed to authenticate with the realm list.
#
#    Set these to the same builds that the server was
#    compiled for.
#
#    As of the last update, version 3.0.9 was build 9551.
#

<Client MinBuild = "9551"
       MaxBuild = "9999"> ######

# WorldServer Setup
#
#  RemotePassword
#    This directive controls the password used to authenticate with the worldserver.
#    It must be the same between the two configs. If it is not, your server will
#    not register.
#
#    Default: "change_me_logon"
#
#  AllowedIPs
#    This section MUST be completed, otherwise all attempts to link your servers will fail.
#    These "Allowed" fields are a space-seperated list of CIDR-form IP addresses that are allowed
#    to make server connections to your logonserver, and register realms.
#    For example, everything in the 127.0.0.* range would be:
#         127.0.0.0/24, as 24 of the bits must match the 127.0.0.0
#
#    To allow a single IP,
#         1.3.3.7/32, would allow only 1.3.3.7 to connect as 32 of the bits must match.
#
#  AllowedModIPs
#    In the same form as AllowedIPs, these are the IPs that are allowed to modify the database
#    (adding bans, GMs, account permissions, etc)
#

<LogonServer RemotePassword = "password" ######change to the password you set
            AllowedIPs = "127.0.0.1/24"
            AllowedModIPs = "127.0.0.1/24">

 

3. Now open the arcemu-realms.conf and edit what has ###### besides it:

 

[code]#######################################################################
# ArcEmu Realms Configuration File
# Last updated at revision rev.1875
#######################################################################

#********************************************************************************
#* How to use this config file:                                                 *
#* Config files are in a block->variable->setting format.                       *
#* A < signifies the opening of a block, the block name is expected after that. * 
#* After the block name, a space and then the settings sperated by = / ' '.     *
#*                                                                              *
#* e.g.                                                                         *
#* <block setting="0" someval = "1">                                            *
#*                                                                              *
#* Comments can be in C format, e.g. /* some stuff */, with a // at the start   *
#* of the line, or in shell format (#).                                         *
#********************************************************************************/

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# LogonServer Section
#
#    Address:
#      The address (no port) of the server.
#
#    Port:
#      The port on which the logon server listens. (*** NOT 3724 ***)
#
#    Name:
#      Not really relavant, but name the logon.
#
#    RealmCount:
#      The number of realms in the next section.
#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

<LogonServer Address = "127.0.0.1"
Port = "8093"
Name = "Default Logon"
RealmCount = "1">

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Realm Section
#
#    Name:
#      The name of the realm.
#    
#    Address:
#      The address (and port) of that realm.
#
#    Icon:
#      The type of realm (PVP, Normal, RPPVP, RP)
#
#    TimeZone:
#      The location of the server (1=Development, 2=United States, 3=Oceanic, 4=Latin America, 
#       5=Tournament, 6=Korean, 8=English, 9=German, 10=French)
#
#    Population:
#      (0 = low, 1 = medium, 2 = high)
#
#   Important information below
#
#     change 127.0.0.1 to your EXTERNAL ip if you wish to have a PUBLIC server.
#     This issues come up a lot!
#
# 	Timezone values :
#	0=Korean				16=China
#	1=Development				17=CN1
#	2=United States				18=CN2
#	3=Oceanic				19=CN3
#	4=Latin America				20=CN4
#	5=Tournament				21=CN5
#	6=Korean				22=CN6
#	8=English				23=CN7
#	9=German				24=CN8
#	10=French				25=Tournament
#	11=Spanish				26=Test Server
#	12=Russian				27=Tournament
#	13=Tournament				28=QA Server
#	14=Taiwan				29=CN9
#	15=Tournament				30=TestServer2
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

<Realm1 Name = "Realm_Name" ######change to desired realm name
Address = "127.0.0.1:8129" 
Icon = "PVP"
Population = "1.0"
TimeZone = "1">

4. Now open arcemu-world.conf and edit what has ###### besides it:

 

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

# Database Section

#

#   Database.Host      - The hostname that the database is located on

#   Database.Username  - The username used for the mysql connection

#   Database.Password  - The password used for the mysql connection

#   Database.Name      - The database name

#   Database.Port      - Port that MySQL listens on. Usually 3306.

#   Database.Type      - Client to use. 1 = MySQL, 2 = PostgreSQL, 3 = SQLite (MySQL is stable, others are not)

#

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

 

<WorldDatabase Hostname = "localhost" Username = "root" Password = "password" Name = "world" Port = "3306" Type = "1"> ######

<CharacterDatabase Hostname = "localhost" Username = "root" Password = "password" Name = "logon" Port = "3306" Type = "1"> ######

[/code]

 

5. Now scroll down until you see whats below and change what has ###### besides it:

 

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# LogonServer Setup
#
#    DisablePings   
#        This directive controls whether pings will be sent to the logonserver to check
#        if the connection is still "alive". Expect problems if it is disabled.
#        Default: 0
#
#    RemotePassword
#        This directive controls the password used to authenticate with the logonserver.
#        It must be the same between the two configs. If it is not, your server will
#        not register.
#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

<LogonServer DisablePings = "0"
            RemotePassword = "password"> ######password you set up earlier

 

6. Make sure you save the changes to all these configs

 

How to make your server public:

1. Go to no-ip.com and make an account

2. Download and install the Dyn Dns Updater and make sure you tell it to run when windows starts up and set it up to use your account.

3. Open your hosts file which is located at C:\Windows\System32\drivers\etc and add the following lines:

 

127.0.0.1 servername.servergame.org
[iNTERNAL_IP] servername.servergame.org
[EXTERNAL_IP] servername.servergame.org

 

4. You can find the EXTERNAL_IP by going to what'smyip.com and you can find the INTERNAL_IP by opening up a command prompt and typing: ipconfig (the IPv4 will be your internal ip)

5. Once you have found the ip’s replace the INTERNAL_IP and EXTERNAL_IP with the ip's you found and replace the servername.servergame.org with the dyndns url you just made.

6. Now open your arcemu-realms.conf back up and change what has ###### besides it.

 

#######################################################################
# ArcEmu Realms Configuration File
# Last updated at revision rev.1875
#######################################################################

#********************************************************************************
#* How to use this config file:                                                 *
#* Config files are in a block->variable->setting format.                       *
#* A < signifies the opening of a block, the block name is expected after that. * 
#* After the block name, a space and then the settings sperated by = / ' '.     *
#*                                                                              *
#* e.g.                                                                         *
#* <block setting="0" someval = "1">                                            *
#*                                                                              *
#* Comments can be in C format, e.g. /* some stuff */, with a // at the start   *
#* of the line, or in shell format (#).                                         *
#********************************************************************************/

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# LogonServer Section
#
#    Address:
#      The address (no port) of the server.
#
#    Port:
#      The port on which the logon server listens. (*** NOT 3724 ***)
#
#    Name:
#      Not really relavant, but name the logon.
#
#    RealmCount:
#      The number of realms in the next section.
#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

<LogonServer Address = "127.0.0.1"
Port = "8093"
Name = "Default Logon"
RealmCount = "1">

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Realm Section
#
#    Name:
#      The name of the realm.
#    
#    Address:
#      The address (and port) of that realm.
#
#    Icon:
#      The type of realm (PVP, Normal, RPPVP, RP)
#
#    TimeZone:
#      The location of the server (1=Development, 2=United States, 3=Oceanic, 4=Latin America, 
#       5=Tournament, 6=Korean, 8=English, 9=German, 10=French)
#
#    Population:
#      (0 = low, 1 = medium, 2 = high)
#
#   Important information below
#
#     change 127.0.0.1 to your EXTERNAL ip if you wish to have a PUBLIC server.
#     This issues come up a lot!
#
# 	Timezone values :
#	0=Korean				16=China
#	1=Development				17=CN1
#	2=United States				18=CN2
#	3=Oceanic				19=CN3
#	4=Latin America				20=CN4
#	5=Tournament				21=CN5
#	6=Korean				22=CN6
#	8=English				23=CN7
#	9=German				24=CN8
#	10=French				25=Tournament
#	11=Spanish				26=Test Server
#	12=Russian				27=Tournament
#	13=Tournament				28=QA Server
#	14=Taiwan				29=CN9
#	15=Tournament				30=TestServer2
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

<Realm1 Name = "Realm_Name"
Address = "servername.servegame.org:8129" ######change to the dyndns url you just made
Icon = "PVP"
Population = "1.0"
TimeZone = "1">

 

Link to comment
Share on other sites

7. If you need to set up port fowarding. There are many guides that tell you how to do this on mmowned and other places, so look around. You will need to set up port fowarding if you have windows firewall or any other software firewall on (I reccomend disabling it) or if you have a router.

 

The MMOPro Teleporter script included in the sqlandscripts was scripted by me.. but is uncomplete. For the most part, it teleports you many places, is designed in a loop system where you should never have to exit and reopen it (except on the unfinished parts such as the skills and talant points reset), buffs you, heals you, teleports you to an area supposed to be the trainers area. There is also a GM Helper stone that teaches you hundreds of gm-spells. To obtain it simply type: .char additem 96900 1

 

I hope this guide was useful, any comments please post below and anything I missed. I plan to make an epic CMS website release soon with donation, vote, player tools that are scripted into the CMS, and an all in one config. Almost finished with the website at the moment..just gotta make it other people usable.

 

Additional Components:

- Server Restarter: Included in the sqlandscripts file

- GMH (GM helper addon): svn://arcemu.info/svn/GMH

- WGID (custom items addon):http://www.box.net/shared/uu1vh541kp

 

Credits: edwintcloud & TheEnd for some little(very little) edits...

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
  • 9 months later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...