Написание сервера для lineage 2 chronicle 1 на node.js

С помощью ИИ, котрый изучил проекты L2J, мне была предложина формула для расчёта времени выполнения анимации скила на основе casting speed.

Hit Time = Base Casting Time * (1.1 - (0.0006 * Magic Speed))

Где Base Casting Time это время каста скила из скриптов PTS (Например для wind strike это 4000мс)
А Magic Speed это скорость каста персонажа. Базовое значение 333.
Данное значение нужно подставлять в пакет MagicSkillUse.

Таким образом формула отлично подходит для всего диапазон между 333 и 1500.

P.S.
Откуда эта формула - не известно. Источников нет. Но ИИ пишет, что она добыта империческим путем разработчиками L2J. В сурсах я ее тоже не находил. Даже значений таких нет.
Вроде формулы уже есть: и зависит от Wisdom номерка

На акисе намного просто , но все-зе зависит от WIS характеристик
 
Ну я к тому, что ты написал, что формула покрывает значения от 333 до 1500, но на деле, каст может быть и ниже 333, и выше 1500
В данный момент для бета релиза этого может хватить а так можно формулу потом обновить и подогнать для каста от 1 до 2500.
 
Вроде формулы уже есть: и зависит от Wisdom номерка

На акисе намного просто , но все-зе зависит от WIS характеристик
Привет
А ты какие формулы используешь в своем сервере?
И ты эти формулы, что в по ссылкам, проверил на значениях?

Например у многих java серверов для расчета действий после физической атаки используется константа 470000. Хотя даже в самом Prima guide есть подсказка и правильное число это 500000. 500000 / pSpd = время реакции после удара.

По поводу магических ударов. Я подставил значения к формуле и получились очень большие разбросы.

SpeedПредыдущая формула (1.1 - (0.0006 ...))L2J формула
3333600 мс4000 мс
5003200 мс2664 мс
10002000 мс1332 мс
1700320 мс784 мс
 
Привет
А ты какие формулы используешь в своем сервере?
И ты эти формулы, что в по ссылкам, проверил на значениях?
Применяю те же самые формулы как и на Яве. Но как таковые формулы не проверял насколько они отличаються от того что может быть в PTS. Да и других формул в принципе то нету.

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

Насчет ИИ. Я понимаю что хочеться сравнивать. Но возможно ИИ и выдало не полную формулу, так как в зависимости от хроник сами формулы тоже изменяються. И возможно ИИ не сильно фокусировалось на определенной хронике, а вывело более урезанный вариант.
 
Применяю те же самые формулы как и на Яве. Но как таковые формулы не проверял насколько они отличаються от того что может быть в PTS. Да и других формул в принципе то нету.

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

Насчет ИИ. Я понимаю что хочеться сравнивать. Но возможно ИИ и выдало не полную формулу, так как в зависимости от хроник сами формулы тоже изменяються. И возможно ИИ не сильно фокусировалось на определенной хронике, а вывело более урезанный вариант.

Вопрос в том, должна ли формула L2J плавно переходить?

При 333 анимация медленная 4000мс
А при 500 кажется быстрой 2600мс
 
Вроде формулы уже есть: и зависит от Wisdom номерка

На акисе намного просто , но все-зе зависит от WIS характеристик
Вообще ты прав.
(SkillHitTime / CastSpeed) * 333

Работает на больший диапазон каста и без всяких непонятных magic number.
 
Привет.
Текущее состояние проетка
альфа тест

* Скилы (откат, анимация, удар)
* Пермещение (до цели в радиус атаки)
* Смерть (телепорт в город)
* Предметы
* Регенерация hp, mp

 
На сколько % готов сервер на данный период ? Чтобы приблизительно прикинуть сколько ещё лет ждать =)
 
На сколько % готов сервер на данный период ? Чтобы приблизительно прикинуть сколько ещё лет ждать =)
Смотря как мерить.
Готов 1 квест из 131.
Но при этом есть базовые механики. Атака, прокачка, покупка, дроп, удаление и т.д. Чтобы сделать релиз сервера версии 0.1.0 нужно время. В скором времени будут доделаны механики. Открытый тест. Фикс багов после теста и релиз. Ориентировочно 1ый квартал этого года.
 
На сколько % готов сервер на данный период ? Чтобы приблизительно прикинуть сколько ещё лет ждать =)
Это будет не скоро судя по всему, так что просто можете внести свой вклад и помочь автору сделать быстрее, прокачаетесь в создании механик MMORPG сервера и в JavaScript, а это довольно полезный скилл ;)
 
Смотря как мерить.
Готов 1 квест из 131.
Но при этом есть базовые механики. Атака, прокачка, покупка, дроп, удаление и т.д. Чтобы сделать релиз сервера версии 0.1.0 нужно время. В скором времени будут доделаны механики. Открытый тест. Фикс багов после теста и релиз. Ориентировочно 1ый квартал этого года.
В чем проблема спарсить ai.obj ( исходники ) в формат удобный для javascript, или даже напрямую парсить исходники или obj ?
 
В чем проблема спарсить ai.obj ( исходники ) в формат удобный для javascript, или даже напрямую парсить исходники или obj ?
В том что по времени переписать квест быстрее чем делать парсер. Потому как тесты это не отменяет.
 
Последнее редактирование:
Меня мучает вопрос, что NodeJS уже потихоньку завозят типы в runtime из TypeScript (может что-то ещё добавили, не слежу за Node последние пол годика, но несколько месяцев назад были новости о типах без TS), то есть сейчас по сути NodeJS движется к TypeScript и разрешает писать уже в файлах *.ts, которые запускаются через node.
Есть ли в планах перевести код на TypeScript? Просто писать проект в стиле CommonJS (CJS) в 2026, как бы можно, но многие стараются уйти от этого подхода, а большая часть индустрии вообще уже сидит плотно на TS. Да и всё же типы дают больше уверенности в том, что меньше накосячишь. Насколько знаю проект можно переводить постепенно (я не профи TypeScript), но смотрел пару видосов где это обсуждали из книги какого-то автора по TypeScript, что возможет плавные переход. Microsoft уже трудится над компилятором TypeScript на Go и в обозримом будущем подвезут это чудо, вроде бы обещали даже в 2026 году. Если всё сложится сборки будут собираться очень быстро, а это удобно, сейчас это не так удобно и быстро как хотелось бы
 
Меня мучает вопрос, что NodeJS уже потихоньку завозят типы в runtime из TypeScript (может что-то ещё добавили, не слежу за Node последние пол годика, но несколько месяцев назад были новости о типах без TS), то есть сейчас по сути NodeJS движется к TypeScript и разрешает писать уже в файлах *.ts, которые запускаются через node.
Есть ли в планах перевести код на TypeScript? Просто писать проект в стиле CommonJS (CJS) в 2026, как бы можно, но многие стараются уйти от этого подхода, а большая часть индустрии вообще уже сидит плотно на TS. Да и всё же типы дают больше уверенности в том, что меньше накосячишь. Насколько знаю проект можно переводить постепенно (я не профи TypeScript), но смотрел пару видосов где это обсуждали из книги какого-то автора по TypeScript, что возможет плавные переход. Microsoft уже трудится над компилятором TypeScript на Go и в обозримом будущем подвезут это чудо, вроде бы обещали даже в 2026 году. Если всё сложится сборки будут собираться очень быстро, а это удобно, сейчас это не так удобно и быстро как хотелось бы
- Есть ли в планах перевести код на TypeScript?
На данно этапе нет.
 
NodeJS уже потихоньку завозят типы в runtime из TypeScript (может что-то ещё добавили, не слежу за Node последние пол годика, но несколько месяцев назад были новости о типах без TS), то есть сейчас по сути NodeJS движется к TypeScript и разрешает писать уже в файлах *.ts, которые запускаются через node.
На самом деле нода под капотом просто выполняет type stripping для erasable кода. Если в TS коде используются фичи, которые требуют генерации js кода (enum, namespace содержащие runtime код, etc...), то запускать ноду необходимо с флагом --experimental-transform-types. Это заставит встроенный TS-loader помимо type stripping выполнять также трансформацию для TS-only синтаксиса. После всего этого Amaro отдаст уже обычный js, который и будет выполнен нодой.
При этом всем никакой проверки TS типов не происходит и нода без каких-либо жалоб выполнит невалидный (с точки зрения TS) код:
Также есть ограничения:
  • Конфиг tsconfig.json игнорируется.
  • В импортах надо указывать расширения файлов: import ... './file.ts' вместо import ... './file'
  • Для импорта типов надо писать import type ...
Там вроде еще есть какие-то ограничения, уже не помню.
В общем пока эта фича не имеет какой-то особой практической ценности.
Если прям хочется сразу запускать ts, то проще сделать так: npx tsx test.ts

Насколько знаю проект можно переводить постепенно
Да, и это достаточно удобно. Я так на работе один из древних сервисов, который был написан еще хз когда, перевел на ts. Новый функционал уже пишется на ts, а старый js код вполне себе сосуществует с ts и по мере наличия свободных ресурсов перепиливается на ts.
 
EasyGameProtection, прикольно, но жаль, что автор не планирует уходить от чистого JavaScript, и классно, что TS позволяет плавно переезжать с JS. Я сам иногда использую JavaScript последние лет 10-12 в вебе/парсерах/скриптах, и долгое время тоже отрицал TS, но со временем понял, что это удобно, особенно после того как ты до JS писал на C# (как это было у меня в далёких 2010-х). Как мне кажется с ростом кодовой базы проект на чистом JS трудно будет читать, обслуживать и будут вылазить неприятные баги связанные с отсутствием типов, ну да ладно, время покажет, что из этого выйдет. Конечно лучше бы такие энтузиасты забили бы на переписывание древнейшего C1-C4 (La2 в целом) и занялись реверсом новых MMORGP: ToL (TL), World of Jade Denasty или других игр, я бы и сам таким позанимался, но сейчас просто нет времени
 
EasyGameProtection, прикольно, но жаль, что автор не планирует уходить от чистого JavaScript, и классно, что TS позволяет плавно переезжать с JS. Я сам иногда использую JavaScript последние лет 10-12 в вебе/парсерах/скриптах, и долгое время тоже отрицал TS, но со временем понял, что это удобно, особенно после того как ты до JS писал на C# (как это было у меня в далёких 2010-х). Как мне кажется с ростом кодовой базы проект на чистом JS трудно будет читать, обслуживать и будут вылазить неприятные баги связанные с отсутствием типов, ну да ладно, время покажет, что из этого выйдет. Конечно лучше бы такие энтузиасты забили бы на переписывание древнейшего C1-C4 (La2 в целом) и занялись реверсом новых MMORGP: ToL (TL), World of Jade Denasty или других игр, я бы и сам таким позанимался, но сейчас просто нет времени
В первую очередь это фан проект. Фан проект сервера на JavaScript'е с ностальгией по C1.
 
Назад
Сверху Снизу