Aller au contenu principal

Guide d'installation

Introduction

À propos de nous

L2J Server est un projet Open Source officiel, développé en Java, dont l'objectif est de fournir un serveur de jeu Lineage II.

Nous sommes actifs depuis de nombreuses années et notre mission est de fournir une expérience aussi proche que possible du jeu officiel.

Notre vision est d'avoir un serveur basé sur une architecture microservices cloud-native qui pourra exécuter n'importe quelle version du jeu en fonction de sa configuration.

À propos du produit

L2J Server est divisé en deux composants : L2j Game Server et L2j Login Server. Parallèlement, L2j Game Server est divisé en Core et Datapack. Le Core est le code Java définissant les mécanismes du jeu, la persistance et les mécanismes de communication, tandis que le Datapack est composé de tous les fichiers liés au gameplay tels que les dialogues, les scripts de quêtes, l'IA, entre autres.

L'installation du serveur nécessite d'abord d'installer des logiciels supplémentaires (Java, base de données, Git, etc.), puis de récupérer le code source et de le compiler, d'installer la base de données, de déployer les fichiers du serveur compilés, d'effectuer une configuration minimale, et enfin de démarrer et de tester les serveurs.

Logiciels requis

  • Système d'exploitation mis à jour
  • Java
  • MariaDB (ou MySQL)
  • Git

Mise à jour de l'OS

wuauclt /detectnow /updatenow

Obtention et installation de Java

L2J est construit en Java. Pour construire le serveur, vous aurez également besoin du JDK Java.

winget install EclipseAdoptium.Temurin.25.JDK

Si vous utilisez déjà winget, vous pouvez mettre à jour votre version de Java avec :

winget upgrade EclipseAdoptium.Temurin.25.JDK

Vérifier la version de Java :

java --version
Conseil

Il est recommandé de mettre à jour la variable d'environnement JAVA_HOME.

Info

Dans la mesure du possible, L2J maintient la compatibilité avec les dernières versions Java LTS (Long Term Support). Vous pouvez consulter la feuille de route de Java SE ici.

Obtention et installation de Git

L2J utilise Git comme système de contrôle de version sur BitBucket. Utilisez-le pour obtenir la dernière version.

winget install -e --id Git.Git

Vérifier la version de Git :

git --version
Info

Il est recommandé d'obtenir le code source directement à partir de nos dépôts publics officiels.

Obtention et installation du serveur de base de données

Téléchargez et installez le serveur de base de données, et créez un utilisateur dédié.

winget install -e --id MariaDB.Server

Exécutez les instructions SQL suivantes afin de créer un utilisateur de base de données dédié pour L2J :

mariadb -u root -p
create_user.sql
CREATE OR REPLACE USER 'l2j'@'%' IDENTIFIED BY 'l2jserver2019';
GRANT ALL PRIVILEGES ON *.* TO 'l2j'@'%' IDENTIFIED BY 'l2jserver2019';
FLUSH PRIVILEGES;
exit
Avertissement

Il est recommandé de modifier le mot de passe par défaut de la base de données. Si vous le faites, vous devrez modifier le fichier database.properties dans le dossier config du Game Server et du Login Server.

Astuce

Nous recommandons de télécharger et d'installer HeidiSQL ou DBeaver pour gérer votre base de données (facultatif).

Info

L2J est compatible avec MySQL 8.0+, mais nous recommandons MariaDB.

Installation d'Unzip

Non applicable pour Windows.

Obtention du code source

Les dépôts officiels se trouvent ici.

mkdir C:\opt\l2j\git
cd C:\opt\l2j\git
git clone -b master https://bitbucket.org/l2jserver/l2j-server-login.git
Cloning into 'l2j-server-login'...
remote: Counting objects: 353, done.
remote: Compressing objects: 100% (285/285), done.
remote: Total 353 (delta 194), reused 63 (delta 26)
Receiving objects: 100% (353/353), 110.40 KiB | 324.00 KiB/s, done.
Resolving deltas: 100% (194/194), done.
git clone -b develop https://bitbucket.org/l2jserver/l2j-server-game.git
Cloning into 'l2j-server-game'...
remote: Counting objects: 162315, done.
remote: Compressing objects: 100% (26695/26695), done.
remote: Total 162315 (delta 122790), reused 157270 (delta 117810)
Receiving objects: 100% (162315/162315), 125.97 MiB | 9.93 MiB/s, done.
Resolving deltas: 100% (122790/122790), done.
git clone -b develop https://bitbucket.org/l2jserver/l2j-server-datapack.git
Cloning into 'l2j-server-datapack'...
remote: Counting objects: 278648, done.
remote: Compressing objects: 100% (66228/66228), done.
remote: Total 278648 (delta 215765), reused 269687 (delta 207236)
Receiving objects: 100% (278648/278648), 144.49 MiB | 9.63 MiB/s, done.
Resolving deltas: 100% (215765/215765), done.
Checking out files: 100% (24264/24264), done.
Info

La branche develop contient la dernière version de High Five, tandis que la branche master contient la version stable de High Five. D'autres options disponibles sont Interlude, Epilogue, Freya, entre autres.

Compilation du serveur

Utilisez Maven pour construire les fichiers du serveur. Exécutez les commandes suivantes :

cd C:\opt\l2j\git\l2j-server-login
mvnw install
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.l2jserver:l2j-server-login >-------------------
[INFO] Building L2J Login Server 2.6.1.6
...
cd C:\opt\l2j\git\l2j-server-game
mvnw install
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.l2jserver:l2j-server-game >--------------------
[INFO] Building L2J Game Server 2.6.2.0-SNAPSHOT
...
cd C:\opt\l2j\git\l2j-server-datapack
mvnw install
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< com.l2jserver:l2j-server-datapack >------------------
[INFO] Building L2J DataPack 2.6.2.0-SNAPSHOT
...

Pour éviter l'avertissement suivant

Avertissement

[WARNING] An NVD API Key was not provided - it is highly recommended to use an NVD API key as the update can take a VERY long time without an API Key

Vous devez demander une clé API auprès du NIST et définir la clé comme variable d'environnement NVD_API_KEY.

La clé API sera utilisée pour récupérer le fichier de la base de données de vulnérabilités.

Déploiement du serveur

Le processus de déploiement consiste pour l'instant à décompresser simplement les fichiers créés.

Déploiement du Login Server

mkdir C:\opt\l2j\server\login
cd C:\opt\l2j\server\login
tar -xf C:\opt\l2j\git\l2j-server-login\target\l2j-server-login-*.zip

Déploiement du Game Server

mkdir C:\opt\l2j\server\game
cd C:\opt\l2j\server\game
tar -xf C:\opt\l2j\git\l2j-server-game\target\l2j-server-game-*.zip
tar -xf C:\opt\l2j\git\l2j-server-datapack\target\l2j-server-datapack-*.zip
Avertissement

Les noms de fichiers peuvent changer à chaque nouvelle version, gardez cela à l'esprit.

Installation de la base de données

Récupération de L2J CLI

L2J CLI est un outil qui peut être utilisé pour automatiser le déploiement et la configuration initiale.

mkdir C:\opt\l2j\cli
cd C:\opt\l2j\cli
curl -o l2jcli.zip -L https://l2jserver.com/api/download/cli/latest
tar -xf l2jcli.zip

Configuration de la CLI

Modifiez les fichiers login-server.properties et game-server.properties dans le dossier config, définissez DatabaseUser et DatabasePassword en fonction de l'utilisateur et du mot de passe que vous avez définis pour la base de données.

Exécution de la CLI

Exécutez l2jcli.bat et entrez les commandes suivantes :

l2jcli.bat
db install -sql C:\opt\l2j\server\login\sql -u l2j -p l2jserver2019 -m FULL -t LOGIN -c -mods
db install -sql C:\opt\l2j\server\game\sql -u l2j -p l2jserver2019 -m FULL -t GAME -c -mods

Les paramètres sont les suivants :

ParamètreDescription
-sql pathchemin vers les dossiers SQL
-u userutilisateur de la base de données
-p passwordmot de passe de la base de données
-m modemode d'installation FULL ou UPDATE
-t typetype de serveur LOGIN ou GAME
-cinstaller les tables personnalisées (custom)
-modsinstaller les tables pour les mods

Création du compte administrateur

Utilisez L2J CLI afin de créer un compte administrateur. 8 est le niveau d'accès maximum (Master) :

account create -u Zoey76 -p -a 8
quit

Ouverture des ports du serveur

Si vous souhaitez jouer en dehors du localhost, vous devrez ouvrir certains ports sur le serveur.

netsh advfirewall firewall add rule name="L2J Login Server" dir=in action=allow protocol=TCP localport=2106
netsh advfirewall firewall add rule name="L2J Game Server" dir=in action=allow protocol=TCP localport=7777
Avertissement

Ceci nécessite des privilèges d'administrateur, exécutez l'invite de commande (CMD) en tant qu'"Administrateur".

Avertissement

Ce sont les seuls ports nécessaires pour que les joueurs se connectent au serveur.

Geodata

Le serveur L2J utilise des fichiers Geodata pour fournir des informations sur l'environnement au serveur.

Vous pouvez le configurer en modifiant le fichier geodata.properties à l'intérieur du dossier des paramètres du Game Server.

La Geodata doit être placée dans le dossier data/geodata. Vous pouvez modifier ce chemin en éditant la propriété GeoDataPath.

Vous pouvez télécharger la dernière version pour High Five ici.

Démarrage des serveurs

Configuration initiale

Ces commandes créeront les dossiers nécessaires pour les journaux (logs) et donneront les permissions d'exécution aux scripts.

Ceci n'est pas nécessaire sur Windows.

Lancement des serveurs

Afin de démarrer, vous devez exécuter deux scripts, un pour le Game Server et un pour le Login Server.

C:\opt\l2j\server\login\startLoginServer.bat
C:\opt\l2j\server\game\startGameServer.bat

Connexion au serveur

Pour vous connecter au serveur, vous avez les options suivantes :

Fichier HOSTS

Modifiez C:\Windows\System32\drivers\etc\hosts et ajoutez la ligne suivante :

127.0.0.1 l2authd.lineage2.com

Fichier BAT

Créez un fichier .bat avec le contenu suivant :

@start l2.bin IP=127.0.0.1

EXE personnalisé

Ceci est un exemple d'un EXE C++ Win32 :

#define _WIN32_WINNT _WIN32_WINNT_WINXP
#define NOMINMAX
#include <windows.h>
#include <cstdlib>

// Lance L2 en tant que .bin avec l'IP en paramètre.
// Vous pouvez utiliser une IP ou un DNS comme paramètre IP.
// Il est possible d'ajouter plus de paramètres.
// Vous pouvez modifier le chemin vers le .bin pour éviter de mettre L2.exe dans le dossier system.
// Par Zoey76
int _stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) {
ShellExecute(0, L"open", L"cmd.exe", L"/C start l2.bin IP=127.0.0.1", 0, SW_HIDE);
}
Info

Vous pouvez télécharger la version compilée ici. Plus d'informations ici.

Danger

L2J ne permet pas de modifier le client. Cela inclut le GameGuard et les modifications du fichier L2.ini.