Skip to content

ao-org/argentum-online-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚔️ Please consider supporting us at https://www.patreon.com/nolandstudios ⚔️

ao logo

🛡️ Argentum Online Server

image

Important: Do not download the code using the "Download as ZIP" button on GitHub, as this can cause issues with file encoding and may corrupt some files.

To download the code correctly, use a Git client. The command to clone the repository from the command line is:

git clone https://www.github.com/ao-org/argentum-online-server

🛡️ How to Run My Server:

Create a new folder named C:\AO20 and navigate to it. Follow these steps:

  1. Clone the repository git clone https://github.com/ao-org/argentum-online-server.git

  2. Rename the file Example.Server.ini to Server.ini

  3. Rename the file Example.feature_toggle.ini to feature_toggle.ini

  4. Rename the file Empty_db.db to Database.db

  5. Clone Recursos (https://github.com/ao-org/Recursos)

  6. Open Visual Basic 6 as an administrator

  7. Open the file Server.VBP

🔛 Feature Toggle/Flag (Turn ON/OFF features)

When introducing new functionality to the server, it should include the capability to be disabled. To achieve this, we implement the feature flags design pattern, which is configured within the file Example.feature_toggle.ini.

🎬 Game Scenarios

In the following folders, you will find configuration files for events. When programming a new type of event, it must have its own configuration file. https://github.com/ao-org/Recursos/tree/master/Dat/Scenarios

🗄️ SQL Migrations

To modify the schema of the database or make alterations to existing tables, it is essential to create a new SQL migration file within the ScriptsDB directory. The project is configured to automatically detect and execute the required migration scripts. This process ensures that the database is systematically updated to reflect the latest schema changes without manual intervention. This approach not only maintains database integrity but also streamlines the update process, enabling seamless transitions between different database schema versions.

🛡️ Pull Requests

Precommit-hook

We have a pre-commit hook for the project, Visual Basic 6 IDE changes the names of the variables and it makes the Pull Requests very difficult to understand.

Please run the following commands with git bash or the client you are using.

chmod +x .githooks/pre-commit
git config core.hooksPath .githooks

Basically the pre-commit hook runs when you make a git commit and it will run the file git_ignore_case.sh to avoid false changes in the Pull Request. Is not perfect but it helps a lot. Please send the Pull Requests with only the neccesary code to be reviewed.

In case you have problems setting locally your pre-commit hook you can run the file git_ignore_case.sh by just doing double click.

🗺️ Maps Limitation 512 with VB6 Debugger

There is a limitation when running and debugging the game within Visual Basic 6. Due to VB6's constraints, it cannot load more than 512 maps during debugging. As a result, maps such as Dungeon Dinosaurios (Map 577) will not function properly and it will throw overflow error

🛡️ Requirements

Database SQLite

Installing SQLite ODBC Driver for 32-bit Systems

To integrate SQLite with ODBC on a 32-bit system, please download the appropriate driver from the following link:

Optimizing Database Performance

To enhance the performance of your SQLite database, consider changing the journal mode to Write-Ahead Logging (WAL) by executing the following SQL command:

PRAGMA journal_mode=WAL;

Write-Ahead Logging can significantly improve the write performance and concurrency of your database. For more information on how WAL mode benefits your database operations, please visit the SQLite WAL documentation:

This mode enables most read operations to proceed without locking and allows updates to occur without interfering with reads, thus increasing the performance and scalability of your application when using SQLite.

Networking

Registrar manualmente libreria Aurora.Network.dll Abrir CMD como Administrador regsvr32 Aurora.Network.dll

Cryptography

CryptoSys is used in Argentum Online to cipher sensitive data.

Please note this is not free software and you will have to buy your own license to use CryptoSys

Microsoft Visual C++ Redistributable

🛡️ Logs

Los logs están en la carpeta de Logs, Errores y en Windows Events.

Star History

Star History Chart

Thank you

A big thank you ❤️ to these amazing people for contributing to this project!