Giter VIP home page Giter VIP logo

ace's Introduction

ACEmulator Core Server

Discord

Issue status: Average time to resolve an issue Percentage of issues still open

Build status: Windows CI

ACEmulator is a custom, completely from-scratch open source server implementation for Asheron's Call built on C#

  • MySQL and MariaDB are used as the database engine.
  • Latest client supported.
  • Currently intended for developers that wish to contribute to the ACEmulator project.

Disclaimer

This project is for educational and non-commercial purposes only, use of the game client is for interoperability with the emulated server.

  • Asheron's Call was a registered trademark of Turbine, Inc. and WB Games Inc which has since expired.
  • ACEmulator is not associated or affiliated in any way with Turbine, Inc. or WB Games Inc.

Recommended Tools

Getting Started

The following three sections (Database, Code, and Starting the Server) contain all the required steps to setup your own ACE server and connect to it. Most setup errors can be traced back to not following one or more of these steps. Be sure to follow them carefully.

Database

  1. Install MySQL or MariaDB
  2. Create three databases named ace_auth, ace_shard, and ace_world
  3. Load AuthenticationBase.sql and ShardBase.sql for their respective databases. These can be found in the Database\Base directory.
  4. Load all incremental SQL updates found in the Database\Updates\Authentication sub directory in the order of oldest to newest. Skip this step if there are no updates in this directory.
  5. Load all incremental SQL updates found in the Database\Updates\Shard sub directory in the order of oldest to newest. Skip this step if there are no updates in this directory.
  6. Download from ACE-World-16PY-Patches the latest release of world data, extract and load into your ace_world database.
  7. SKIP THIS STEP IF USING DOWNLOADED WORLD DATA FROM PREVIOUS STEP.
    • If using a custom database, you may need to update the schema for the emulator to operate correctly. If you're using the official release data, this step is not recommended.
    • Load WorldBase.sql from Database\Base into your ace_world database
    • Load all incremental SQL updates found in the Database\Updates\World sub directory in the order of oldest to newest. Skip this step if there are no updates in this directory.

Code

  1. Install Visual Studio 2017
  2. Copy ACE.Server\Config.js.example to ACE.Server\Config.js and modify settings, such as passwords, database connections, file paths, and other server settings.
  3. Open ACE.sln with Visual Studio and build the solution. Your modified Config.js file will be copied to the output folder during the build process.
  4. Download and install Microsoft .NET Core Runtime - 2.2 if you don't already have it.

Starting the Server

  1. Start the server by running the batch file located in the netcoreapp2.2 output directory: start_server.bat
    • ex. ACE\Source\ACE.Server\bin\x64\Debug\netcoreapp2.2\start_server.bat
  2. Create your first account as an admin at the ACE prompt - accountcreate testaccount testpassword 5
  3. Launch ACClient directly with this command: acclient.exe -a testaccount -v testpassword -h 127.0.0.1:9000

Contributions

  • Contributions in the form of issues and pull requests are welcomed and encouraged.
  • The preferred way to contribute is to fork the repo and submit a pull request on GitHub.
  • Code style information can be found on the Wiki.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Bug Reports

  • Please use the issue tracker provided by GitHub to send us bug reports.
  • You may also discuss issues and bug reports on our discord listed below.

Contact

FAQ

1. StyleCop.MSBuild.targets not found

  • Problem

When opening the solution, you get a "The imported project "{project path}\ACE\Source\packages\StyleCop.MSBuild.5.0.0\build\StyleCop.MSBuild.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk" error.

  • Solution

Right click "Solution 'ACE'" in the Solution Explorer and select "Restore NuGet Packages". After it restores, right click "ACE (load failed)" and select "Reload Project."

2. My PR failed because AppVeyor timed out - "Build execution time has reached the maximum allowed time for your plan (60 minutes)."

  • Problem

When you submit a PR, we have automation in place that automatically kicks off a build in AppVeyor. These builds sometimes time out. The most common cause is because a Debug.Assert statement was hit that popped up a UI dialog on AppVeyor. However, because it's just running a command line tool, there's no way to click the pop-up. Even worse, there's no way for you to even see what it says.

  • Solution
  1. Right click your solution in Visual Studio, select "Rebuild Solution" and make sure there are no compilation errors.
  2. Installed with Visual Studio 2015 is "Developer Command Prompt for VS2015". Open it up, and change to your "ACE\Source" directory.
  3. Run the following command and you'll be able to see the pop-up triggering the build failure.
    vstest.console /inIsolation "ACE.Tests\bin\x64\Debug\ACE.Tests.dll" /Platform:x64

3. Startup projects are not set / working

  • Problem

When you first load the solution and try to "run" the server, you may get a pop-up that says "A project with Output Type of Class Library cannot be started directly."

  • Solution
  1. Right click the Solution in Visual Studio ("Solution 'ACE' (8 projects)"), and select "Set StartUp Projects".
  2. Click on the circle next to Single startup project and in the drop-down select: ACE.Server.

Other Resources

ace's People

Contributors

ltripley36706 avatar gmriggs avatar mag-nus avatar ziang4891 avatar mogwai-thefurry avatar optimshi avatar rawaho avatar ogmage78 avatar fantoms avatar fartwhif avatar dgatewood avatar zegeger avatar forbiddenz avatar slushnas avatar ddevec avatar lidefeath avatar dirtyelf avatar dgarson avatar scottaday avatar tigrisofgaul avatar yazgoo avatar mcreedjr avatar lurker-mcdoogle avatar lytelthorpethistledown avatar miachoftd avatar splatterghast avatar harliq avatar shawarma-golem avatar chrisaikman avatar acriaf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.