본문으로 건너뛰기

설치 가이드

서론

우리에 대하여

L2J 서버는 Lineage II 게임 서버를 제공하기 위해 Java로 개발된 공식 오픈 소스 프로젝트입니다.

우리는 오랫동안 활동해 왔으며, 우리의 미션은 공식 게임에 가장 가까운 경험을 제공하는 것입니다.

우리의 비전은 구성에 따라 게임의 어떤 버전이든 실행할 수 있고, 마이크로서비스 클라우드 준비 아키텍처를 사용하는 서버를 갖추는 것입니다.

제품에 대하여

L2J 서버는 L2j 게임 서버와 L2j 로그인 서버라는 두 가지 구성 요소로 나뉘며, 동시에 L2j 게임 서버는 코어(Core)와 데이터팩(Datapack)으로 나뉩니다. 코어는 게임 메커니즘, 지속성 및 통신 메커니즘을 정의하는 Java 코드이며, 데이터팩은 대화 상자, 퀘스트 스크립트, AI 등 게임 플레이와 관련된 모든 파일로 구성됩니다.

서버를 설치하려면 먼저 추가 소프트웨어(Java, 데이터베이스, Git 등)를 설치한 다음 소스 코드를 가져오고, 소스 코드를 컴파일하고, 데이터베이스를 설치하고, 컴파일된 서버 파일을 배포하고, 최소한의 구성을 마친 후 서버를 시작하고 테스트해야 합니다.

필수 소프트웨어

  • 업데이트된 OS
  • Java
  • MariaDB (또는 MySQL)
  • Git

OS 업데이트

wuauclt /detectnow /updatenow

Java 설치

L2J는 Java를 사용하여 구축되었으므로 서버를 빌드하려면 Java JDK도 필요합니다.

winget install EclipseAdoptium.Temurin.25.JDK

이미 winget을 사용한 적이 있다면 다음 명령으로 Java 버전을 업그레이드할 수 있습니다.

winget upgrade EclipseAdoptium.Temurin.25.JDK

Java 버전 확인

java --version

JAVA_HOME 환경 변수를 업데이트하는 것을 권장합니다.

정보

가능한 한 L2J는 Java의 최신 LTS(장기 지원) 버전과 호환됩니다. Java SE 로드맵은 여기에서 확인할 수 있습니다.

Git 설치

L2J는 BitBucket에서 버전 관리 시스템으로 Git을 사용하므로, 최신 버전을 가져오기 위해 Git을 사용하세요.

winget install -e --id Git.Git

Git 버전 확인:

git --version
정보

소스 코드는 우리의 공용 저장소에서 직접 가져오는 것을 권장합니다.

데이터베이스 서버 설치

데이터베이스 서버를 다운로드하여 설치하고 특정 사용자를 생성합니다.

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
경고

기본 데이터베이스 비밀번호를 변경하는 것을 권장합니다. 비밀번호를 변경했다면 게임 서버 config 폴더와 로그인 서버 config 폴더 안의 database.properties 파일을 수정해야 합니다.

데이터베이스 관리를 위해 (선택적으로) HeidiSQL 또는 DBeaver를 다운로드하여 설치하는 것을 권장합니다.

정보

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

develop 브랜치는 High Five의 최신 버전을 포함하고 있으며, master 브랜치는 High Five의 안정 버전을 포함하고 있습니다. 다른 옵션으로는 Interlude, Epilogue, Freya 등이 있습니다.

서버 빌드

우리는 Maven을 사용하여 서버 파일을 빌드하며, 다음 명령을 실행합니다.

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

NIST에서 API 키를 받아 NVD_API_KEY 환경 변수에 해당 키를 설정해야 합니다.

API 키가 있으면 취약점 데이터베이스 파일을 가져오는 데 사용됩니다.

서버 배포

현재 배포 프로세스는 단순히 빌드된 파일의 압축을 푸는 것입니다.

로그인 서버 배포

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

게임 서버 배포

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.propertiesgame-server.properties 두 파일을 편집하여 데이터베이스에 대해 구성된 사용자 및 비밀번호에 맞게 DatabaseUserDatabasePassword를 설정합니다.

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 pathSQL 파일 경로
-u user데이터베이스 사용자
-p password데이터베이스 비밀번호
-m mode설치 모드 FULL 또는 UPDATE
-t type서버 유형 LOGIN 또는 GAME
-c커스텀 테이블 설치
-mods모드(mods) 테이블 설치

관리자 계정 생성

L2J CLI를 사용하여 관리자 계정을 생성합니다. 8은 최고 계정 레벨(마스터)입니다.

account create -u Zoey76 -p -a 8
quit

서버 포트 개방

localhost에서 플레이하지 않는 경우 서버에서 일부 포트를 열어야 할 수도 있습니다.

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
경고

이 작업은 관리자 권한 명령 프롬프트가 필요합니다. 명령 프롬프트를 관리자 권한으로 실행해 주세요.

경고

플레이어로서 서버에 접속하려면 이 포트들만 개방하면 됩니다.

지오데이터 (Geodata)

L2J 서버는 서버에 환경 정보를 포함하기 위해 지오데이터 파일을 사용합니다.

게임 서버의 config 폴더 내 geodata.properties를 편집하여 이를 구성할 수 있습니다.

지오데이터는 data/geodata 폴더 안에 위치해야 하며, GeoDataPath 속성을 편집하여 이를 변경할 수 있습니다.

High Five의 최신 버전은 여기에서 다운로드할 수 있습니다.

서버 시작

초기 구성

이 명령들은 로그를 위한 필수 폴더를 생성하고 스크립트에 실행 권한을 부여합니다.

Windows에서는 필요하지 않습니다.

서버 시작

서버를 시작하려면 게임 서버용과 로그인 서버용 두 가지 스크립트를 실행해야 합니다.

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

서버 접속

서버에 접속하려면 다음과 같은 옵션이 있습니다.

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>

// L2를 .bin으로 시작하고 IP를 매개변수로 전달합니다.
// IP 또는 DNS를 IP 매개변수로 사용할 수 있습니다.
// 다른 매개변수도 포함할 수 있습니다.
// System 폴더 내에 L2.exe를 포함하지 않으려면 .bin 파일의 경로를 변경할 수 있습니다.
// 작성자: 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);
}
정보

컴파일된 버전은 여기에서 다운로드할 수 있으며, 자세한 정보는 여기에서 확인할 수 있습니다.

위험

L2J에서는 클라이언트 수정을 허용하지 않으며, 여기에는 GameGuard 및 L2.ini 변경이 포함됩니다.