Μετάβαση στο κύριο περιεχόμενο

Οδηγός Εγκατάστασης

Εισαγωγή

Σχετικά με εμάς

Το L2J Server είναι το επίσημο έργο ανοιχτού κώδικα που αναπτύσσεται σε Java και επιχειρεί να παρέχει έναν game server για το Lineage II.

Υπάρχουμε εδώ και πολύ καιρό και η αποστολή μας είναι να παρέχουμε την πιο κοντινή εμπειρία στο επίσημο παιχνίδι.

Το όραμά μας είναι να έχουμε έναν server που να μπορεί να τρέξει οποιαδήποτε έκδοση του παιχνιδιού με βάση τις ρυθμίσεις και χρησιμοποιώντας μια αρχιτεκτονική microservice έτοιμη για cloud.

Σχετικά με το Προϊόν

Το L2J Server χωρίζεται σε δύο συστατικά: το L2j Game Server και το L2j Login Server. Ταυτόχρονα, το L2j Game Server χωρίζεται σε Core και Datapack. Το Core είναι ο κώδικας Java που ορίζει τους μηχανισμούς του παιχνιδιού, την αποθήκευση και τους μηχανισμούς επικοινωνίας, ενώ το Datapack αποτελείται από όλα τα αρχεία που σχετίζονται με το gameplay, όπως διάλογοι, σενάρια αποστολών (quests), AI, κ.λπ.

Η εγκατάσταση του server απαιτεί την εγκατάσταση πρόσθετου λογισμικού πρώτα (Java, βάση δεδομένων, Git, κ.λπ.), στη συνέχεια τη λήψη του πηγαίου κώδικα, τη μεταγλώττιση (compile) του πηγαίου κώδικα, την εγκατάσταση της βάσης δεδομένων, την ανάπτυξη (deploy) των μεταγλωττισμένων αρχείων του server, τις ελάχιστες ρυθμίσεις και τέλος την εκκίνηση του server και τη δοκιμή.

Απαιτούμενο Λογισμικό

  • Ενημερωμένο ΛΣ
  • Java
  • MariaDB (ή MySQL)
  • Git

Ενημέρωση του Λειτουργικού Συστήματος

wuauclt /detectnow /updatenow

Λήψη & Εγκατάσταση Java

Το L2J έχει δημιουργηθεί χρησιμοποιώντας Java, οπότε για να μεταγλωττίσετε τον server χρειάζεστε επίσης το Java JDK.

winget install EclipseAdoptium.Temurin.25.JDK

Εάν έχετε χρησιμοποιήσει ήδη το winget, μπορείτε να αναβαθμίσετε την έκδοση Java χρησιμοποιώντας:

winget upgrade EclipseAdoptium.Temurin.25.JDK

Ελέγξτε την έκδοση Java

java --version
συμβουλή

Συνιστούμε την ενημέρωση της μεταβλητής περιβάλλοντος JAVA_HOME.

info

Όσο είναι δυνατόν, το L2J θα είναι συμβατό με την τελευταία έκδοση LTS (Long-Term-Support) της Java. Μπορείτε να δείτε το χρονοδιάγραμμα για την Java SE εδώ.

Λήψη & Εγκατάσταση Git

Το L2J χρησιμοποιεί το Git ως σύστημα ελέγχου εκδόσεων στο BitBucket, χρησιμοποιήστε το για να λάβετε τις τελευταίες εκδόσεις.

winget install -e --id Git.Git

Ελέγξτε την έκδοση Git:

git --version
info

Συνιστούμε τη λήψη του πηγαίου κώδικα απευθείας από τα δικά μας δημόσια αποθετήρια.

Λήψη & Εγκατάσταση του Διακομιστή Βάσης Δεδομένων

Κατεβάστε και εγκαταστήστε έναν διακομιστή βάσης δεδομένων και δημιουργήστε έναν συγκεκριμένο χρήστη.

winget install -e --id MariaDB.Server

Εκτελέστε τις παρακάτω εντολές SQL για να δημιουργήσετε έναν συγκεκριμένο χρήστη βάσης δεδομένων για το 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
προειδοποίηση

Συνιστούμε να αλλάξετε τον προεπιλεγμένο κωδικό πρόσβασης της βάσης δεδομένων. Εάν το κάνετε, πρέπει να επεξεργαστείτε τα αρχεία database.properties μέσα στο φάκελο config του game server και του login server.

συμβουλή

Συνιστούμε (προαιρετικά) τη λήψη και εγκατάσταση του HeidiSQL ή του DBeaver για τη διαχείριση της βάσης δεδομένων.

info

Το L2J είναι συμβατό με MySQL 8.0+, αλλά συνιστούμε MariaDB.

Εγκατάσταση Unzip

Δεν απαιτείται για Windows.

Λήψη του Πηγαίου Κώδικα

Τα επίσημα αποθετήριά μας είναι αυτά που αναφέρονται παρακάτω.

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

Ο κλάδος (branch) develop περιέχει την τελευταία έκδοση του High Five, ο κλάδος master περιέχει τη σταθερή έκδοση του High Five. Άλλες επιλογές είναι Interlude, Epilogue, Freya, κ.λπ.

Μεταγλώττιση του Server

Χρησιμοποιούμε Maven για τη μεταγλώττιση των αρχείων του server, και εκτελούμε τις ακόλουθες εντολές:

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
...

Για να αποφύγετε την ακόλουθη προειδοποίηση

προειδοποίηση

[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

Πρέπει να λάβετε ένα κλειδί API από το NIST και να ορίσετε μια μεταβλητή περιβάλλοντος NVD_API_KEY με το δοσμένο κλειδί.

Το κλειδί API, εάν υπάρχει, θα χρησιμοποιηθεί για τη λήψη των αρχείων της βάσης δεδομένων ευπαθειών.

Ανάπτυξη του Server

Η διαδικασία ανάπτυξης αυτή τη στιγμή είναι απλώς η αποσυμπίεση των αρχείων που δημιουργήθηκαν.

Ανάπτυξη του 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-2.6.5.2.zip

Ανάπτυξη του 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-2.6.3.0-SNAPSHOT.zip
tar -xf C:\opt\l2j\git\l2j-server-datapack\target\l2j-server-datapack-2.6.3.0-SNAPSHOT.zip
προειδοποίηση

Τα ονόματα των αρχείων ενδέχεται να αλλάζουν με κάθε νέα έκδοση, λάβετε το υπόψη αυτό.

Εγκατάσταση της Βάσης Δεδομένων

Λήψη L2J CLI

Το L2J CLI είναι ένα εργαλείο που μας επιτρέπει να υλοποιούμε αυτοματοποιημένες αναπτύξεις και αρχικές ρυθμίσεις.

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

Ρύθμιση του CLI

Μέσα στο φάκελο config επεξεργαστείτε και τα δύο αρχεία login-server.properties και game-server.properties και ρυθμίστε το DatabaseUser και το DatabasePassword ανάλογα με το χρήστη και τον κωδικό πρόσβασης που έχει ρυθμιστεί για τη βάση δεδομένων.

Εκτέλεση του CLI

Τρέξτε το l2jcli.bat και εκτελέστε τις παρακάτω εντολές:

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

Οι παράμετροι είναι:

ΠαράμετροςΠεριγραφή
-sql pathΔιαδρομή για τα αρχεία SQL
-u userΧρήστης Βάσης Δεδομένων
-p passwordΚωδικός Βάσης Δεδομένων
-m modeΛειτουργία Εγκατάστασης FULL ή UPDATE
-t typeΤύπος Server LOGIN ή GAME
-cΕγκατάσταση custom πινάκων
-modsΕγκατάσταση mods πινάκων

Δημιουργία Λογαριασμού Διαχειριστή

Χρησιμοποιήστε το L2J CLI για να δημιουργήσετε λογαριασμό διαχειριστή, το 8 είναι το μέγιστο επίπεδο λογαριασμού (master):

account create -u Zoey76 -p -a 8
quit

Άνοιγμα Θυρών Server

Εάν δεν παίζετε από localhost, ίσως χρειαστεί να ανοίξετε κάποιες θύρες στον server σας.

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
προειδοποίηση

Αυτή η ενέργεια απαιτεί γραμμή εντολών με αυξημένα δικαιώματα (elevated command prompt). Παρακαλώ εκτελέστε τη γραμμή εντολών ως διαχειριστής.

προειδοποίηση

Μόνο αυτές οι θύρες απαιτούνται για να συνδεθείτε στον server ως παίκτης.

Γεωδεδομένα (Geodata)

Το L2J Server χρησιμοποιεί αρχεία γεωδεδομένων για να συμπεριλάβει τις πληροφορίες του περιβάλλοντος στον server.

Μπορείτε να το ρυθμίσετε αυτό επεξεργαζόμενοι το geodata.properties μέσα στο φάκελο config του game server.

Τα γεωδεδομένα θα πρέπει να τοποθετηθούν μέσα στο φάκελο data/geodata, μπορείτε να το αλλάξετε αυτό επεξεργαζόμενοι την ιδιότητα GeoDataPath.

Μπορείτε να κατεβάσετε την τελευταία έκδοση για High Five από εδώ.

Εκκίνηση των Servers

Αρχική Ρύθμιση

Αυτές οι εντολές δημιουργούν τους απαιτούμενους φακέλους για τα logs και δίνουν δικαιώματα πρόσβασης στα scripts.

Δεν απαιτείται για Windows.

Εκκίνηση των Servers

Για να ξεκινήσετε τους servers, πρέπει να εκτελέσετε δύο scripts, ένα για τον game server και ένα άλλο για τον login server.

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

Σύνδεση στον Server

Για να συνδεθείτε στον server, έχετε τις ακόλουθες επιλογές:

Αρχείο HOSTS

Επεξεργαστείτε το C:\Windows\System32\drivers\etc\hosts και προσθέστε αυτή τη γραμμή:

127.0.0.1 l2authd.lineage2.com

Αρχείο BAT

Δημιουργήστε ένα αρχείο .bat με το ακόλουθο περιεχόμενο:

@start l2.bin IP=127.0.0.1

Προσαρμοσμένο exe

Εδώ είναι ένα παράδειγμα C++ Win32 exe:

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

// Start L2 as .bin with IP as parameter.
// You can use IP or DNS as IP parameter.
// You could include other parameters.
// You can change the path to the .bin file to avoid including the L2.exe inside the System folder.
// Author: 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

Κατεβάστε τη μεταγλωττισμένη έκδοση από εδώ, περισσότερες πληροφορίες εδώ.

κίνδυνος

Οι τροποποιήσεις του Client (Client modifications) δεν επιτρέπονται στο L2J, αυτό περιλαμβάνει αλλαγές στο GameGuard και στο L2.ini.