Skip to content

ValidusAC/ACE

 
 

Repository files navigation

ACEmulator Core Server

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-commerical purposes only, use of the game client is for interoperability with the emulated server.

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

Recommended Tools

Getting Started

For a more detailed installation process, please see this excellent write up by "Immortus"

  • Install MySQL
  • Create two databases named ace_auth, ace_shard.
  • Load AuthenticationBase.sql and ShardBase.sql for their respective databases.
  • Load all incremental SQL updates found in the Database\Updates\Authentication sub directory in the order of oldest to newest.
  • Load all incremental SQL updates found in the Database\Updates\Shard sub directory in the order of oldest to newest.
  • Create a final database named ace_world.
  • Load WorldBase.sql to initialize the ace_world database.
  • Download from ACE-World the latest release of world data, extract and load 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.
  • Copy ACE\Config.json.example to Config.json and modify settings, such as passwords and other server settings.
  • Copy ACE.CmdLineLauncher\launcher_config.json.example to launcher_config.json and modify your launcher settings to correspond with your ACE\config.json settings.
  • Build and run ACE, ACE.Api.Host, and ACE.CmdLineLauncher.
  • Create your first account as an admin at the ACE prompt - accountcreate testaccount testpassword 5
  • Launch AC with the CmdLineLauncher or directly with this command: acclient.exe -a testaccount -h 127.0.0.1:9000 -glsticketdirect null

API

Once running, you can browse the APIs by adding "/swagger" to the hosted endpoints. For example, the game server api defaults to run on port 8000, and you could browse to http://localhost:8000/swagger for the documentation.

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 submit bug reports to the ACEmu Forums.

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 popup. Even worse, there's now 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 compliation 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 popup 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 popup 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' (16 projects)"), and select "Set StartUp Projects".
  2. The following projects should have "Start" in the "Action" column: ACE, ACE.Api.Host, ACE.CmdLineLauncher. If your server is configured to use secure authentication, also set ACE.AuthApi.Host to "Start".

4. API.Host applications throw "Access is denied" errors

  • Problem When you first load the API Host or Auth Host applications, you may get an error message:
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.HttpListenerException: Access is denied
  • Solution In an administrative Windows command prompt add both port 8000 and 8001 to netsh's urlacl table:
netsh http add urlacl url=http://+:8000/ user=<YOUR USER ACCOUNT>
netsh http add urlacl url=http://+:8001/ user=<YOUR USER ACCOUNT>

Other Resources

About

Asheron's Call server emulator.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 87.8%
  • JavaScript 8.4%
  • PLpgSQL 3.1%
  • HTML 0.6%
  • Batchfile 0.1%
  • CSS 0.0%