так есть готовый compose зачем разбираться с билдом и прочей хренью?зачем такой Геморой?
Тупо установи node js
Скомпилируй исходники и запускай
Отвечаю на вопрос mizurkin
Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
так есть готовый compose зачем разбираться с билдом и прочей хренью?зачем такой Геморой?
Тупо установи node js
Скомпилируй исходники и запускай
Отвечаю на вопрос mizurkin
так есть готовый compose зачем разбираться с билдом и прочей хренью?
Попробуйте такой docker-compose.ymlа нет под рукой примера compose файлика ?
version: '3.3'
services:
lineage2ts:
container_name: lineage2ts-servers
image: registry.gitlab.com/mrtrex/lineage2ts/server:latest
restart: always
ports:
- "7777:7777"
- "2106:2106"
environment:
GS.server.ExternalServerIP: "127.0.0.1"
Ошибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?Добрый вечер уважаемый MrThirtyOddSix , подскажите пожалуйста все решил сделать по интсрукции, но у меня возникли проблемы, немогли бы вы немного помочь,
LoginServer Запустился
В CLI попробовал создать пользователя для входа, но и тут закралась ошибка
Генерировал через CLIОшибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?
Насчет другой ошибки, я поправлю.
Если попробовать создать так, он пишет что пользователь создан, но в базе пишет
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
Немного доковырял Game-Server и сначала я подумал что его запустил, но в процессе инициализацииОшибка получаеться от неправлильно сформированного датапака. Вы как файл datapack.database генерировали?
Насчет другой ошибки, я поправлю.
Нужно правильно сделать datapack.database . Как вы его смогли делать? По виду он почти пустой. Нет ни скиллов, ни html страниц, ни остальных данных...Немного доковырял 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
Тут проблема в том что нужно файлы расставить в различные фолдеры, немного усложнено из-за использования частичных данных от датапака L2J (те данные которые я еще не перенес из PTS данных). Сложно это? Нет. Но тут нужно все акуратно расставлять как датапака так и для гео-пака.Генерировал через CLI
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
Да вы правы хотел посмотреть как это работает при сборке руками, а не получить готовый вариант(без dockerа). Datapack так-же делал через ваш cli через меню. И раскидывал файлы .database по своим местам которые описаны в readme.md файлах. Почему datapack.database собрался пустым я пока не понял. Но я еще покопаю, и еще потестирую. мало ли что еще интересного найду. Мне просто стал проект интересен, т.к изучаю js и ts пока на любительском уровне. А тут еще к этому любимая игра моей молодости на таких технологиях. Это вам огромное уважение! И технологии покопать и поиграть прям вдохновляет на дальнейшее изучение jsНужно правильно сделать datapack.database . Как вы его смогли делать? По виду он почти пустой. Нет ни скиллов, ни html страниц, ни остальных данных...
Инструкции для датапака и геопака находятся здесь:Да вы правы хотел посмотреть как это работает при сборке руками, а не получить готовый вариант(без dockerа). Datapack так-же делал через ваш cli через меню. И раскидывал файлы .database по своим местам которые описаны в readme.md файлах. Почему datapack.database собрался пустым я пока не понял. Но я еще покопаю, и еще потестирую. мало ли что еще интересного найду. Мне просто стал проект интересен, т.к изучаю js и ts пока на любительском уровне. А тут еще к этому любимая игра моей молодости на таких технологиях. Это вам огромное уважение! И технологии покопать и поиграть прям вдохновляет на дальнейшее изучение js
Если нет цели запустить коммерческий проект, то ХФ идеальный клиент под неспешную и комфортную разработку. Например, лично я пилю ХФ потому, что он последняя хроника, которая еще хоть как-то похожа на ту л2, которую я знаю. Не играя на новых хрониках, без доступа к актуальным ликам, не получится сделать качественно эмулятор. Разработка новых хроник - это всегда гонка с офом, где нужен пак одетых и прокаченных персонажей и спец.софт. При этом соревноваться с корейцами в наркомании можно и на ИЛ, было бы желание.Прошло 15 лет с выхода HF. Они все пилят сервера.Надо хоть под классик клиент чтоли... Пробовать... Все свои мысли высказал
Автору успехов в разработке!
Хочеться добавить что можно получить административные привилегии для своего персонажа при использовании команд под секцией "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!
Инструкции для датапака и геопака находятся здесь:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вот примеры скриптов которые генерируют все БД:
-Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
-Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Я только за! Можно все обсудить на Discord-е вот тутДобрый день! Спасибо вам большое за инструкции, сервер полностью запустил. Даже получил доступ до админской учетки и смог воспользоваться //admin и gmshop, работает все шустро(не все конечно, т.к одному такой проект сложно тянуть).
Т.к много работы руки тоже не всегда доходят. Запустил чисто на windows10 без докеров.
P.S Подскажите пожалуйста, обладаю навыками html,css раньше занимался версткой, немного программировал на vue делал небольшие проекты. Сам в области it. Можно вам вообще как то помочь, на первых парах в простых вещах, и постепенно немного усложняться. Например сначала заняться командами для gmshop или админ панели.
Что то в диске пусто, чата нет куда писать, везде права нужны... Собственно бегло глянул, и сразу возник вопрос по датапакуЯ только за! Можно все обсудить на Discord-е вот тутВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вы правы чтo инстансы не работают. Пока ими не занимался. Но папку вы нашли правильную.Что то в диске пусто, чата нет куда писать, везде права нужны... Собственно бегло глянул, и сразу возник вопрос по датапаку
Посмотреть вложение 88262
Судя по доке датапак берется от лыжи. И Cli конвертирует статику и пакует ее в sqlite? А вот что делается с квестами, инстами и аи сходу не понял. В данной реализации данные механики перенесены условно в ядро и разделены на более мелкие механики? Как пример возьмем допустим инст тиады из лыжи. Он лежит в датапаке и в нем описаны методы спавна, ивенты, стейты, кондишины. В общем то вся механика описана в файле инста. Что то подобное у вас это папка listeners, и там даже есть папка instances, но там только два инста. Я и подумал что возможно присутствует деление на мелкие механики, но пока не нашел, те я искал логику нпц которое может телепортировать в инст, аи боса, но не нашел. Или это просто не реализовано? Возможно стоит описать структуру проекта, что бы было понятно как что задумал автор?)
Сейчас все проверил с только-что регистророванным акаунтом, можно писать как в general так и в bugs и development. Единственное что было неправильно настроенно так это нельзя было увидить прошлый чат.Что то в диске пусто, чата нет куда писать, везде права нужны... Собственно бегло глянул, и сразу возник вопрос по датапаку
Более подробно о частях сервера. Это не нужно воспринимать как архитектуру или что-либо подобное. Архитектура зачастую не передает важных элементов соединений блоковых частей, и не показывает почему соединение нужно.Возможно стоит описать структуру проекта, что бы было понятно как что задумал автор?)
Пожалуйста, тестируйте. Из того что я тестировал, все должно работать. Вы ожидаете что сервер сложит ласты?Интересно, а что случится с таким проектом, при онлайне хотя бы в 500 тел?
Я считаю, что даже если попытаться оптимизировать тайпскрипт для работы с л2 серверами, он будет проигрывать даже яве в реальных нагрузках. Как эсперемент для обучения, возможно он не плох, но в боевые реалии он не сможет.Пожалуйста, тестируйте. Из того что я тестировал, все должно работать. Вы ожидаете что сервер сложит ласты?
Хочу добавить что автоматическое тестирование производиться при любом обновлении сервера с использованием 24 клиентов паралельно (тут лимит скорее пожелезу, так как тестирование производиться из CI, да и в докере, что чревато последствиями краша всего процесса, но зачастую это все работает на ура).
Считайте. Я не против. Из того чтo я видел Ява и Node ну уж очень похожи по производительности. Вы уверенны что вы случайно не смотрели на Python? Там действительно все плохо, аж по крайней мере в 10 раз (как по производительности, так и ергономике програмиирования).Я считаю, что даже если попытаться оптимизировать тайпскрипт для работы с л2 серверами, он будет проигрывать даже яве в реальных нагрузках. Как эсперемент для обучения, возможно он не плох, но в боевые реалии он не сможет.
Если не ошибаюсь, то тайпскрипт это однопоточный яп, он ограниченно может в многопоток через дополнения.Считайте. Я не против. Из того чтo я видел Ява и Node ну уж очень похожи по производительности. Вы уверенны что вы случайно не смотрели на Python? Там действительно все плохо, аж по крайней мере в 10 раз (как по производительности, так и ергономике програмиирования).
Насчет боевых реалий. Время проверит. Но то что я видел и сейчас занимаюсь по официальной работе, Ява вообще не применима. Из-за многих причин. Но самое главное то что сама Ява не изменилась на столькo что-бы быть производительной (тут память, скорость загрузки, библиотеки с современными алгоритмами и структурами, да и применение вне серверных вариантов в облачных технологий). Многое о ней написанно, но не многоe можно применить. Поетому посмотрим как и к чему.
Во первых Typescript это язык. Это не являеться платформой для запуска программ. Typescript используется для компилирования исходников в Javascript для Nodejs. Сейчас есть планы (более одного) для использования Typescript как промежного языка который можно будет компилировать в бинарный код, по сути как и C++ . Вот посмотрим и проверим как это все будет.Если не ошибаюсь, то тайпскрипт это однопоточный яп, он ограниченно может в многопоток через дополнения.
Но интересно было бы посмотреть на реальный сервер на тайпскрипте.
сейчас, появилосьСейчас все проверил с только-что регистророванным акаунтом, можно писать как в general так и в bugs и development. Единственное что было неправильно настроенно так это нельзя было увидить прошлый чат.
а каков план, опираться на логику лыжи или на птс скрипты?Вы правы чтo инстансы не работают. Пока ими не занимался. Но папку вы нашли правильную.
Да это бред. Нормально у js с производительностью. При вменяемой реализации, проблемы быстрей упрутся в возможности клиента, который не переваривает масс замесы.Я считаю, что даже если попытаться оптимизировать тайпскрипт для работы с л2 серверами, он будет проигрывать даже яве в реальных нагрузках. Как эсперемент для обучения, возможно он не плох, но в боевые реалии он не сможет.