Lineage2TS - HF сервер написанный на Typescript

зачем такой Геморой?
Тупо установи node js
Скомпилируй исходники и запускай
Отвечаю на вопрос mizurkin
так есть готовый compose зачем разбираться с билдом и прочей хренью?
 

так есть готовый compose зачем разбираться с билдом и прочей хренью?

ну я в портейнер этот файлик кинул, завелось сразу.
 
Добрый вечер уважаемый MrThirtyOddSix , подскажите пожалуйста все решил сделать по интсрукции, но у меня возникли проблемы, немогли бы вы немного помочь,

LoginServer Запустился


В CLI попробовал создать пользователя для входа, но и тут закралась ошибка
Ошибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?

Насчет другой ошибки, я поправлю.
 
Ошибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?

Насчет другой ошибки, я поправлю.
Генерировал через CLI
- run cli
- choose `operation type` as `Server Database`
- choose `SQLite` (MariaDB is not currently supported)
- choose `Install`
- choose `Both`
- observe `login.database` and `game.database` files are created
- choose `Exit` and `Exit` to terminate cli application
Далее в меню выбирал создание Create-User, создаю login and password и вылизала ошибка
SqliteError: NOT NULL constraint failed: accounts.createdTime

Если попробовать создать так, он пишет что пользователь создан, но в базе пишет
CREATE TABLE IF NOT EXISTS `accounts` (
`login` TEXT NOT NULL default '' PRIMARY KEY,
`password` TEXT,
`createdTime` INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
`lastAccess` INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
`accessLevel` INTEGER NOT NULL DEFAULT 0,
`lastServerId` INTEGER DEFAULT 1,
`variables_json` TEXT NOT NULL DEFAULT '{}',
`passwordVersion` INTEGER NOT NULL DEFAULT 1
);

SqliteError: no such table: account_data

Ошибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?

Насчет другой ошибки, я поправлю.
Немного доковырял Game-Server и сначала я подумал что его запустил, но в процессе инициализации

ℹ Game Server: using 'dotenv' engine
ℹ Game Server: Hot reloading is disabled.
✔ Game Server: Loaded 27 configs.
[18:06:47.378] INFO (L2TS Game/20828): AgathionData : loaded 21 item associations
[18:06:47.378] INFO (L2TS Game/20828): AgathionData : loaded 118 npc associations
[18:06:47.379] INFO (L2TS Game/20828): BaseStats loaded 0 attribute sets.
[18:06:47.379] INFO (L2TS Game/20828): CategoryData loaded 0 types.
[18:06:47.379] INFO (L2TS Game/20828): EnchantItemOptions : loaded 0 levels for 0 item ids using 0 records.
[18:06:47.379] INFO (L2TS Game/20828): ExperienceData loaded 0 levels.
[18:06:47.379] INFO (L2TS Game/20828): HtmlData : cached 0 individual paths
[18:06:47.379] INFO (L2TS Game/20828): HtmlData : cached 0 known bypass actions
[18:06:47.380] INFO (L2TS Game/20828): InitialEquipmentData loaded 0 classes from 0 records.
[18:06:47.380] INFO (L2TS Game/20828): InitialShortcutData : loaded 0 class groups.
[18:06:47.380] INFO (L2TS Game/20828): InitialShortcutData : loaded 0 total shortcuts from 0 records.
[18:06:47.380] INFO (L2TS Game/20828): InstanceData : loaded 0 names.
[18:06:47.380] INFO (L2TS Game/20828): InstanceData : loaded 0 instance property sets.
[18:06:47.380] INFO (L2TS Game/20828): KarmaData loaded 0 levels from 0 records.
[18:06:47.381] INFO (L2TS Game/20828): EnchantSkillGroups loaded 0 groups using 0 records.
[18:06:47.381] INFO (L2TS Game/20828): EnchantSkillGroups updated 0 skill trees.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 individual skills.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 enchantable skills.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 available skills and 0 existing function templates
[18:06:47.381] INFO (L2TS Game/20828): SkillLearnData loaded 0 npcs
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 class trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 transfer trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 collect trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 fishing trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 pledge trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 subclass trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 sub-pledge trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 transform trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 common trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 noble trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 game master trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 game master aura trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 class mappings
C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\models\holders\SkillHolder.ts:8
throw Error( `Skill not found for id = ${id}, and level = ${level}` )
^
Error: Skill not found for id = 3620, and level = 1
at getExistingSkill (C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\models\holders\SkillHolder.ts:8:15)
at getSkill (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:54:28)
at forEach (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:87:42)
at Array.forEach (<anonymous>)
at method (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:77:23)
at showLoadStatus (C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\loader\DataLoader.ts:52:44)
at call3 (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\util.js:103:12)
at EachSeries.iterateArraySeries [as _iterate] (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\collection.js:152:21)
at EachSeries._callResolve (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\eachSeries.js:43:12)
at resolve (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\util.js:184:14)
npm ERR! Lifecycle script `server` failed with error:
npm ERR! Error: command failed
npm ERR! in workspace: [email protected]
npm ERR! at location: C:\Users\user\Desktop\lineage2ts-master\game-server
 
Немного доковырял Game-Server и сначала я подумал что его запустил, но в процессе инициализации

ℹ Game Server: using 'dotenv' engine
ℹ Game Server: Hot reloading is disabled.
✔ Game Server: Loaded 27 configs.
[18:06:47.378] INFO (L2TS Game/20828): AgathionData : loaded 21 item associations
[18:06:47.378] INFO (L2TS Game/20828): AgathionData : loaded 118 npc associations
[18:06:47.379] INFO (L2TS Game/20828): BaseStats loaded 0 attribute sets.
[18:06:47.379] INFO (L2TS Game/20828): CategoryData loaded 0 types.
[18:06:47.379] INFO (L2TS Game/20828): EnchantItemOptions : loaded 0 levels for 0 item ids using 0 records.
[18:06:47.379] INFO (L2TS Game/20828): ExperienceData loaded 0 levels.
[18:06:47.379] INFO (L2TS Game/20828): HtmlData : cached 0 individual paths
[18:06:47.379] INFO (L2TS Game/20828): HtmlData : cached 0 known bypass actions
[18:06:47.380] INFO (L2TS Game/20828): InitialEquipmentData loaded 0 classes from 0 records.
[18:06:47.380] INFO (L2TS Game/20828): InitialShortcutData : loaded 0 class groups.
[18:06:47.380] INFO (L2TS Game/20828): InitialShortcutData : loaded 0 total shortcuts from 0 records.
[18:06:47.380] INFO (L2TS Game/20828): InstanceData : loaded 0 names.
[18:06:47.380] INFO (L2TS Game/20828): InstanceData : loaded 0 instance property sets.
[18:06:47.380] INFO (L2TS Game/20828): KarmaData loaded 0 levels from 0 records.
[18:06:47.381] INFO (L2TS Game/20828): EnchantSkillGroups loaded 0 groups using 0 records.
[18:06:47.381] INFO (L2TS Game/20828): EnchantSkillGroups updated 0 skill trees.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 individual skills.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 enchantable skills.
[18:06:47.381] INFO (L2TS Game/20828): SkillData loaded 0 available skills and 0 existing function templates
[18:06:47.381] INFO (L2TS Game/20828): SkillLearnData loaded 0 npcs
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 class trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 transfer trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 collect trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 fishing trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 pledge trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 subclass trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 sub-pledge trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 transform trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 common trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 noble trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 game master trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 game master aura trees
[18:06:47.381] INFO (L2TS Game/20828): SkillTreesData loaded 0 class mappings
C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\models\holders\SkillHolder.ts:8
throw Error( `Skill not found for id = ${id}, and level = ${level}` )
^
Error: Skill not found for id = 3620, and level = 1
at getExistingSkill (C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\models\holders\SkillHolder.ts:8:15)
at getSkill (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:54:28)
at forEach (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:87:42)
at Array.forEach (<anonymous>)
at method (C:\Users\user\Desktop\lineage2ts-master\game-server\source\data\type\sqlite\ArmorSetsData.ts:77:23)
at showLoadStatus (C:\Users\user\Desktop\lineage2ts-master\game-server\source\gameService\loader\DataLoader.ts:52:44)
at call3 (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\util.js:103:12)
at EachSeries.iterateArraySeries [as _iterate] (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\collection.js:152:21)
at EachSeries._callResolve (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\eachSeries.js:43:12)
at resolve (C:\Users\user\Desktop\lineage2ts-master\node_modules\aigle\lib\internal\util.js:184:14)
npm ERR! Lifecycle script `server` failed with error:
npm ERR! Error: command failed
npm ERR! in workspace: [email protected]
npm ERR! at location: C:\Users\user\Desktop\lineage2ts-master\game-server
Нужно правильно сделать datapack.database . Как вы его смогли делать? По виду он почти пустой. Нет ни скиллов, ни html страниц, ни остальных данных...

Генерировал через CLI
Тут проблема в том что нужно файлы расставить в различные фолдеры, немного усложнено из-за использования частичных данных от датапака L2J (те данные которые я еще не перенес из PTS данных). Сложно это? Нет. Но тут нужно все акуратно расставлять как датапака так и для гео-пака.

Ну и наконец для тех людей которые хотят не мучаться а получить уже готовые файлы. Можно все файлы скопировать с изображения для докера:
Код:
docker run --entrypoint /bin/cat registry.gitlab.com/mrtrex/lineage2ts/server:latest /opt/lineage2ts/game-server/datapack.7z > premade.datapack.7z
docker run --entrypoint /bin/cat registry.gitlab.com/mrtrex/lineage2ts/server:latest /opt/lineage2ts/game-server/geopack.7z > premade.geopack.7z

Вам понадобиться архиватор 7z для того что-бы извлечь файлы.

Насчет ошибки создания пользователя. Проверьте обновление. Все теперь должно работать.
 
Нужно правильно сделать datapack.database . Как вы его смогли делать? По виду он почти пустой. Нет ни скиллов, ни html страниц, ни остальных данных...
Да вы правы хотел посмотреть как это работает при сборке руками, а не получить готовый вариант(без dockerа). Datapack так-же делал через ваш cli через меню. И раскидывал файлы .database по своим местам которые описаны в readme.md файлах. Почему datapack.database собрался пустым я пока не понял. Но я еще покопаю, и еще потестирую. мало ли что еще интересного найду. Мне просто стал проект интересен, т.к изучаю js и ts пока на любительском уровне. А тут еще к этому любимая игра моей молодости на таких технологиях. Это вам огромное уважение! И технологии покопать и поиграть прям вдохновляет на дальнейшее изучение js
 
Да вы правы хотел посмотреть как это работает при сборке руками, а не получить готовый вариант(без dockerа). Datapack так-же делал через ваш cli через меню. И раскидывал файлы .database по своим местам которые описаны в readme.md файлах. Почему datapack.database собрался пустым я пока не понял. Но я еще покопаю, и еще потестирую. мало ли что еще интересного найду. Мне просто стал проект интересен, т.к изучаю js и ts пока на любительском уровне. А тут еще к этому любимая игра моей молодости на таких технологиях. Это вам огромное уважение! И технологии покопать и поиграть прям вдохновляет на дальнейшее изучение js
Инструкции для датапака и геопака находятся здесь:

Вот примеры скриптов которые генерируют все БД:
-
-
 
Прошло 15 лет с выхода HF. Они все пилят сервера. :) Надо хоть под классик клиент чтоли... Пробовать... Все свои мысли высказал :)
Автору успехов в разработке!
 
Прошло 15 лет с выхода HF. Они все пилят сервера. :) Надо хоть под классик клиент чтоли... Пробовать... Все свои мысли высказал :)
Автору успехов в разработке!
Если нет цели запустить коммерческий проект, то ХФ идеальный клиент под неспешную и комфортную разработку. Например, лично я пилю ХФ потому, что он последняя хроника, которая еще хоть как-то похожа на ту л2, которую я знаю. Не играя на новых хрониках, без доступа к актуальным ликам, не получится сделать качественно эмулятор. Разработка новых хроник - это всегда гонка с офом, где нужен пак одетых и прокаченных персонажей и спец.софт. При этом соревноваться с корейцами в наркомании можно и на ИЛ, было бы желание.

В большинстве случаев портирование пакетки с более свежих хроник - вопрос месяца факультативной работы по 1-2 часа в день. Тем более, что на большинстве актуальных доступных эмулей, кроме пакетки, отличия кодовой базы от ХФ можно по пальцам пересчитать. :pandaredlol:
 
Хочеться добавить что можно получить административные привилегии для своего персонажа при использовании команд под секцией "AccountPrivileges Voiced Command". То есть когда вы уже играете персонажем вы можете напечатать код в чате и получить временные привилегии админа. При этом вы увидите сообщение о том как сохранить привилегии в будущем для своего персонажа. Удачной игры!

I would like to add one more thing. In order to claim admin privileges please note server output where you can see "AccountPrivileges Voiced Command" and a few lines below it containing what looks like a jumbled sequence of letters. You can enter such sequence (for example something like, ".IneedAdmin007") in chat once you are connected and playing on server and you will gain temporary admin privileges to execute any command you need. It will even tell you what command you need to make admin privilege permanent! Happy playing!

Инструкции для датапака и геопака находятся здесь:

Вот примеры скриптов которые генерируют все БД:
-
-

Добрый день! Спасибо вам большое за инструкции, сервер полностью запустил. Даже получил доступ до админской учетки и смог воспользоваться //admin и gmshop, работает все шустро(не все конечно, т.к одному такой проект сложно тянуть).
Т.к много работы руки тоже не всегда доходят. Запустил чисто на windows10 без докеров.
P.S Подскажите пожалуйста, обладаю навыками html,css раньше занимался версткой, немного программировал на vue делал небольшие проекты. Сам в области it. Можно вам вообще как то помочь, на первых парах в простых вещах, и постепенно немного усложняться. Например сначала заняться командами для gmshop или админ панели.
 
Добрый день! Спасибо вам большое за инструкции, сервер полностью запустил. Даже получил доступ до админской учетки и смог воспользоваться //admin и gmshop, работает все шустро(не все конечно, т.к одному такой проект сложно тянуть).
Т.к много работы руки тоже не всегда доходят. Запустил чисто на windows10 без докеров.
P.S Подскажите пожалуйста, обладаю навыками html,css раньше занимался версткой, немного программировал на vue делал небольшие проекты. Сам в области it. Можно вам вообще как то помочь, на первых парах в простых вещах, и постепенно немного усложняться. Например сначала заняться командами для gmshop или админ панели.
Я только за! Можно все обсудить на Discord-е вот тут

Или же в приватной переписке здесь на форуме или на Telergram-e (смотрите мой профиль).

Насчет страниц //admin команд, то на данный момент они не работают так как используются страницы от L2J и соответственно ихние команды не будут работать так же как на Lineage2TS. Команды немного переименованны да и добавлений куча, так что будет интересно все это править.
 
Назад
Сверху