Installation (Windows 5xx)

From Project Skyfire
Revision as of 09:02, 16 September 2018 by Admin (talk | contribs)
Jump to navigation Jump to search


INTRODUCTION

Before you get scared by this long guide, we assure you the procedure is quite simple. Most of the following steps are to be performed only the first time you install SkyFireEMU and only the SkyFireEMU updating procedures will need to be run from time to time.

After the first few times everyone gets used to the procedure and never needs to look at this guide ever again.


Software Required

  1. Git
    You can also use TortoiseGit that is more compatible with Windows (8).
    TortoiseGIT

  2. Install the compiler Visual C++ 2017 Community Here.

  3. OpenSSL
    • Current minimum supported version is OpenSSL v1.1.1 - Do NOT use the light version!
    • Download the 32bit version if you have a 32bit compiler or the 64bit bit version if you have a 64bit compiler.
    Note: If you have a 32-bit compiler, but a 64-bit OS and use the OpenSSL MSI installer for 32-bit, you will need to use the "?:\Program Files\OpenSSL" directory instead of the default "?:\Program Files (x86)\OpenSSL" setting in the installer.
    • You may have to download and install one of the Microsoft Visual C++ Redistributable Packages for OpenSSL to work.

  4. CMake

  5. MySQL Server
    • You can use MySQL Community Server or third party packages such as WAMP or XAMPP
    • It's recommended that your MySQL server and the MySQL header source versions match.
    • Current SkyFire core MySQL header version: 8.0.X
    • Download MySQL Installer Be sure to install the development libraries else your core will not compile.
    • Download the 32bit version if you have a 32bit compiler or the 64bit version if you have a 64bit compiler.
    • If you are just planning on updating the MySQL header source and plan on using another server or package like WAMP or XAMPP, all you need to install is Client C API library (shared) under Development Components when doing a Custom Setup.

  6. .NET Framework 3.5 (You should already have this via your Windows updates.)

  7. SQL Client: HeidiSQL MySQL GUI Tools
    • DO NOT USE NAVICAT: Due to NaviCat not being able to handle // style comments (standard SQL), we advice all users to stay VERY clear of the product - you have been warned.


Software Recommended

git command help:

  • gitextensions
    • most popular with the community
  • tortoisegit
    • Makes pulling and cloning sources easier with right mouse clicks.
    • Also adds symbols over your folder and file icons to indicate if your source is inaccurate.
    • Note: You still need to install Git for this to work.


Microsoft Visual C++ Redistributable Packages

Microsoft Visual C++ 2013 Redistributable Download.

PULLING AND COMPILING THE SOURCE

  • Before you start this phase you need to have installed Git, OpenSSL, CMake, Visual Studio, .NET Framework 3.5 (if needed) and MySQL (If you are updating the MySQL Header Source.)

Pulling the Source

  1. Create a directory in which Core files will be pulled (for example: C:\SkyFireEMU_5xx).
  2. Right-click on the directory and click on Git GUI Here or open Git GUI from the Start menu
  3. Then click Clone Existing Repository when the Git GUI dialog comes up.
  4. Fill in the data as follows:

  5. Source Location:
    git://github.com/ProjectSkyfire/SkyFire_5xx.git

    Target Directory:

    C:\SkyFireEMU_5xx\Core


  6. Click on Clone Existing Repository. Wait a few minutes (or less) and all the source files will be pulled in the directory C:\SkyFireEMU_5xx\Core.

Configuring and Generating Visual C++ solutions with CMake

  1. Create a new directory in your C:\SkyFireEMU_5xx\ called "Build".
  2. Open CMake. (cmake-gui)
  3. Fill in the data as follows:

  4. Where the the source code:
    C:\SkyFireEMU_5xx\Core

    Where to build the binaries:

    C:\SkyFireEMU_5xx\Build


  5. Click Configure.
  6. It should ask you if you want to create the directory, click yes.
  7. A dialog should pop up asking you what compiler you will be using. Select the appropriate compiler and select Use default native compilers then click Finish.
    • NOTE: You MUST select the appropriate compiler!
      • If you are using Visual Studio 2013, your compiler would be "Visual Studio 12"
  8. When done, it will show you a list of options which it wants you to confirm (the top red part with the check boxes.)
    Make sure these are the ones selected:
    SCRIPTS
    SERVERS
    TOOLS
    USE_COREPCH
    USE_MYSQL_SOURCES (If you are NOT updating the MySQL header sources.)
    USE_SCRIPTPCH
    
    • Do not worry about setting CMAKE_INTALL_PREFIX it's not used. Just keep it at it's default value (C:/Program Files/SkyFire)
    • (If you are updating MySQL header source): If you have installed MySQL version other than 5.5, be sure to UNCHECK the WITH_MYSQL_SOURCES option. This tells CMake to look for include files and libraries in your MySQL installation instead of using the MySQL source files provided with SkyFireEMU (which are 5.5.9). Remember, unchecking WITH_MYSQL_SOURCES requires that you have full MySQL package (not Essentials) and that your selected compiler is for the same architecture (32bit/64bit) as your MySQL. If you have 5.5.x, you need not worry - just leave WITH_MYSQL_SOURCES checked.
  9. Click on Configure again to verify your selection. (Most of the red should now go away.)
  10. Click on Generate and it will start chugging away and creating the solutionfiles/projectfiles/makefiles it requires to build for that specific compiler.
  11. When done, it'll state "Generating done"
  12. Close CMake and continue below with Compiling the Source.

Compiling the Source

  1. Open SkyFireEMU_5xx.sln located in your build folder with your chosen compiler.
  2. Go on the top menu and click Build then click on Configuration Manager. Make sure you set the build to Release and to Win32 or x64.
  3. Now go back to the Build menu and click on Clean Solution. Unless you are just testing a compilation, it is always best to clean your build before compiling. Compilation length differs from machine to machine, you should expect it to take 15-30 minutes.
    • You will find the following message once the compilation has finished successfully:
    ========== Build: 22 completed, 0 failed, 0 up-to-date, 1 skipped ==========
    
    • You will find your freshly compiled binaries in your C:\SkyFireEMU_5xx\Build\bin\Release folder:
    ace.dll
    authserver.conf.dist
    authserver.exe
    libmysql.dll (If you did NOT update the header source.)
    worldserver.conf.dist
    worldserver.exe
    

  4. Cut and Paste these files from C:\SkyFireEMU_5xx\Build\bin\Release to where ever your server will be runned from.
    For demonstration\instruction purposes, we will move them to C:\SkyFireEMU_5xx\Server\. Leave the rest there for now.
  5. Rename authserver.conf.dist to authserver.conf and worldserver.conf.dist to worldserver.conf
    These are your config files. Go through and edit each one to match your prefered settings.

  6. You will also need libeay32.dll & ssleay32.dll to run your server. This file is found in your OpenSSL folder which is usually located C:\OpenSSL-Win*
    Just copy and paste libeay32.dll & ssleay32.dll along with your other files in your C:\SkyFireEMU_5xx\Server folder.

  7. (If you are updating MySQL header source): You will also need libmysql.dll to run your server. This file is found in your MySQL folder which is usually located C:\Program Files*\MySQL\MySQL Server *\lib
    Just copy and paste libmysql.dll along with your other files in your C:\SkyFireEMU_5xx\Server folder.

Keeping the code up to date

SkyFireEMU Developers are always at work fixing and adding new features to the core so it's best you keep up to date with the code.

  1. Simply right-click on your C:\SkyFireEMU_5xx\Core folder and click on Git GUI Here.
  2. Click on the Remote>Fetch from>origin when you see green line with text success hit Close.
  3. Then Click on the Merge>Local Merge... another window will popup, choose origin/master. When you see the green line with text success hit Close!
  • Now you can repeat the compiling procedure above.
  • And remember to clean your build everytime!


IMPORTING THE DATABASE

  • Before you start this phase you need to have installed a SQL Client and you should also have installed and set up your MySQL server and made an user account for SkyFireEMU with proper permissions to access and write data.

Creating Auth, Characters and World Databases

Using your chosen SQL Client, create the three Databases.

  1. Auth
  2. Characters
  3. World
  • Doing this may prevent importing problems later.

Importing Auth and Characters Databases

Using your chosen SQL Client, import both the auth_database.sql and characters_database.sql files located in C:\SkyFireEMU\Core\sql\base to their respective places in your MySQL database.


Importing World Database


    Grab the latest version of SkyFireDB_5xx from our forum:

    http://www.projectskyfire.org/index.php?/files/
    Import the DB into your world table. Will update this method shortly

    Importing Important Database Structure Updates

    1. Go into your C:\SkyFireEMU\core\sql\updates directory.

    2. Apply updates to their appropriate corresponding databases using your chosen SQL client.

    Importing World Database Updates

    1. Open Database_Installer_Updater.bat found in C:\SkyFireEMU\Core\database
    2. Follow the dialog and enter in your info like you did before.
    3. Press U to import the World Database updates when asked.
    4. Select the correct changesets needed.
    • Or.. if you are a "pro" use your SQL client and import needed changes from C:\SkyFireEMU\Core\database\updates

    Auth Database Accounts and Passwords

    It is highly advised you change the passwords or delete these accounts.

    • NOTE: These may not exist.
    User: Administrator
    Pass: Administrator
    
    User: Moderator
    Pass: Moderator
    
    User: Developer
    Pass: Developer
    
    User: Gamemaster
    Pass: Gamemaster
    
    User: Player
    Pass: Player

    Changing passwords

    You can change a password to an account simply by going to your Worldserver console and type
    account set password <accountname> <newpassword> <newpassword>

    Deleting accounts

    You can delete an account simply by going to your Worldserver console and type
    account delete <accountname>

    Making new accounts

    You can make a new account simply by going to your Worldserver console and type
    account create <accountname> <password>

    Raising an account's access/GM level

    You can raise an account level simply by going to your Worldserver console and type
    account set gmlevel <accountname> <gmlevel> <realmid>
    Or you can go into your Auth database via your SQL Client, select account_access and add a new line.
    • id=your account id found under accounts
    • GM/Access Levels: 0=Regular player, 1=Gamemaster, 2=Developer, 3=Moderator, 4=Administrator
      • You can only add Administrator (gmlevel 4) with your SQL client
    • RealmID is usually 1 or -1 for all realms


    DBC, MAPS, VMAPS, and MMAPS

    • Project Skyfire, for legal reasons, CANNOT and will NOT provide download links to already extracted DBCs, MAPS, VMAPS, or MMAPS... so please do NOT ask!
    • We will, however, help you through the extraction process with step-by-step instructions
    • NOTE: Contrary to popular belief, your client does NOT have to have been on the live server to extract DBCs, MAPS, VMAPS, or MMAPS.

    1. The VERY FIRST THING you need is a WoW client fully patched to version 4.0.6a (build 13623)
      • NOTE: Your client has NOT been fully patched unless you have completed the following steps:
        • Ensure your config.wtf AND launcher.wtf are set at SET accounttype "CT", NOT "LK".
        • Then run launcher.exe and allow it to update your data files to the Cataclysm expansion, must download fully.
        • DO NOT ALLOW THE LAUNCHER TO BEGIN DOWNLOADING THE NEXT PATCH... CLOSE IMMEDIATELY AFTER DOWNLOADING TOOLS!
        • If you still have problems delete your whole WTF folder and rerun launcher to generate both .wtf files again then redo the whole step above.

    2. Copy and Paste extractor.exe, vmap3assembler.exe, vmap3extractor.exe, ace.dll, Simple_Extractor.bat, and mmaps_generator.exe from C:\SkyFireEMU\Build\bin\Release to your wow directory (C:\Program Files (x86)\World of Warcraft)

    3. Locate your bin file in your MySQL installation directory (Example: C:\Program Files\MySQL\MySQL Server 5.5\lib\ OR C:\Program Files(x86)\MySQL\MySQL Server 5.5\lib\ if you have a 32 bit MySQL installed on an 64 bit system).
      • Locate file named "libmysql.dll".
      • Copy this file and Paste it into your wow directory (ONLY COPY, do NOT move this file!).


    Manual Extraction Method

    1. Open a command prompt to your wow directory (cd C:\Program Files (x86)\World of Warcraft).
      • To open a command prompt hold down shift and right-click inside the folder and then select: Open command window here.

      Dbc and Maps:
    2. In your command prompt type extractor.exe and hit enter.
    3. Wait until finished.
    4. It should have made two new directories, dbc and maps.

    5. VMaps:
    6. In your command prompt type vmap3extractor.exe and hit enter.
    7. Wait until finished.
    8. It should have made a new directory named Buildings.
    9. In your command prompt type mkdir vmaps (or simply make a new folder and rename it to vmaps).
    10. Then in your command prompt again, type vmap3assembler.exe Buildings vmaps and hit enter.
    11. Wait until finished.
    12. It should have made a new directory, vmaps.

    13. MMaps:
    14. Move the entire contents of your buildings folder into your vmaps folder (The contents ONLY. You do NOT want the folder named buildings inside your vmaps folder).
    15. You may now Delete the empty buildings folder.
    16. Create a new folder named mmaps.
    17. Now execute the mmaps_generator.exe.
      • NOTE: The generation of mmaps will take anywhere from 4 hours to 20 or MORE hours depending upon the speed of your machine. Please consider this before starting the mmaps generating!


    Completion (For Both Methods)

    1. Move folders named mmaps, vmaps, dbc, maps, as well as the "libmysql.dll" to your server directory (where your worldserver.exe will be ran from).
    2. You may now delete files extractor.exe, vmap3assembler.exe, vmap3extractor.exe, ace.dll, Simple_Extractor.bat, and mmaps_generator.exe from your WoW installation directory as you should no longer need them.


    SKYFIRE WOW.EXE PATCHER

    Your Wow.exe client will be needed to be patched before you can properly connect to your server.


    Patching

    Pull the latest version of SkyFire-Community-Tools from

    git://github.com/ProjectSkyfire/SkyFire-Community-Tools.git

    You now have what you need to patch your wow. Choose one of the methods below to patch your wow.

    Pre-Patched Method (Easy Method)

    Open SkyFire-Community-Tools\SkyFire Patcher\ and skip to Moving and Patching.

    Manuel Compile Method (Not really needed but will keep this for now)

    • Note: The patcher is made in C# and not C++. You need a C# compiler to compile it.
    • You will not need CMake for this.
    1. Open SkyFirePatcher.sln (located in ..Sources\Patcher) with C#.
    2. Select "Release"
    3. The platform should be "Any" (No separate 32/64 bit versions.)
    4. Clean
    5. Build. (This should take less than a minute.)
    • Do not worry if you get an error like:
      ..Sources\Patcher\SkyFirePatcher\Form1.cs(20,13): warning CS0414: The field 'SkyFirePatcher.Form1.exeLength' is assigned but its value is never used


    • After you compiled it, you should have SkyFirePatcher.exe in your ..Sources\Patcher\SkyFirePatcher\bin\Release folder.
      (You can delete the rest if you like.)


    Keeping the code up to date

    Again, you should be an expert by now with this pulling the source stuff. It's basically the same thing.

    Moving and Patching

    1. Move SkyFirePatcher.exe into your Wow directory.
      (Usually something like C:\Program Files (x86)\World of Warcraft)

    2. Now run SkyFirePatcher.exe and a dialog should pop up with:
      Loading Wow.exe into memory...
      Success!
      Ready to patch Wow.exe.
      And "Status: Ready!" at the bottom.

    3. Click "Patch" at the bottom to patch your Wow.exe
      It will make a backup of your original Wow.exe as well. (Something like wow-original.exe)

    Play!

    • Use your new patched Wow.exe file to play on your server and the backed up original Wow.exe to play on retail.




    References

    http://www.trinitycore.org/w/How-to:Win

    http://wiki.cactusemu.com/index.php?title=Installation_%28Windows%29

    Video tutorial: Pulling core repository with TortoiseGit

    Video tutorial: CMake x64

    Video tutorial: Compiling x64

    Video tutorial: Importing the databases and structure updates

    Video tutorial: dbc, map and vmaps