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

* Добавлен функционал планировщика (Scheduler)
* Удаление персонажей по запланированным задачам

Удаление персонажа добавлено как тестовое. Планировщик понадобится позже.

Схема работы планировщика Untitled diagram _ Mermaid Chart-2025-07-30-174041.webp
 

* Добавлен функционал планировщика (Scheduler)
* Удаление персонажей по запланированным задачам

Удаление персонажа добавлено как тестовое. Планировщик понадобится позже.

Схема работы планировщикаПосмотреть вложение 88248
Аж в голове закружилось от стрелочек))
 
* Добавлен функционал планировщика (Scheduler)
* Удаление персонажей по запланированным задачам

Удаление персонажа добавлено как тестовое. Планировщик понадобится позже.

Схема работы планировщика
<намалеванная схема>
Какие вы проблемы собираетесь решать используя такой планиривщик?

Почему вы выбрали такой подход для решения проблем удаления персонажей? Можно например использовать отдельную таблицу в БД гдe обозначается дата в epoch time где и когда удалять персонажи, или же отдельное значение в уже использованной таблице. Ведь на самом деле не нужно использовать таймеры или там все что связнно с временем (setTimeout/setInterval), а можно удалять персонажи когда запрашивается список активных персонажей. То есть простая проверка на время, типа сравнить epoch time и просто не показывать, а удалять можно отдельно что-бы не было синхронной связки с соединением клиента (то есть обработка пакетов не страдала от каких-то операций в БД).
 
Какие вы проблемы собираетесь решать используя такой планиривщик?

Почему вы выбрали такой подход для решения проблем удаления персонажей? Можно например использовать отдельную таблицу в БД гдe обозначается дата в epoch time где и когда удалять персонажи, или же отдельное значение в уже использованной таблице. Ведь на самом деле не нужно использовать таймеры или там все что связнно с временем (setTimeout/setInterval), а можно удалять персонажи когда запрашивается список активных персонажей. То есть простая проверка на время, типа сравнить epoch time и просто не показывать, а удалять можно отдельно что-бы не было синхронной связки с соединением клиента (то есть обработка пакетов не страдала от каких-то операций в БД).
* Управление включение, выключение, перезагрузка сервера
* Осады

Промежуточный тест

NPC(AI, Attack, Follow, Проверка на смерть персонажа)

 
как я понял, анимация атаки начинается после определенного временного интервала. например чтобы пробежать расстояние до цели. но что если во время движения изменится скорость бега? ( например бафнут вв. или наоборот дебафнут замедло). Этот таймер атаки собьется ? или задача на атаку будет отменена и пересчитана по новой?
 
как я понял, анимация атаки начинается после определенного временного интервала. например чтобы пробежать расстояние до цели. но что если во время движения изменится скорость бега? ( например бафнут вв. или наоборот дебафнут замедло). Этот таймер атаки собьется ? или задача на атаку будет отменена и пересчитана по новой?
Анимация атаки начинается сразу как состояние станет attack и дистанция будет короткой.

При назначении состояния атака потом идет проверка а далеко ли цель? Если далеко то переключаемся на состояние follow.
Это ответ на вопрос когда идет атака.

Вопрос про что будет при баффе и т.д.
Когда идет состояние follow то каждые 100мс идет перестройка маршрута.
Если цель стоит на месте то изменение маршрута отсутствует так как координаты всегда одинаковые.
Если же цель перемещается то каждые 100мс мы будем получать новые координаты и строить новый маршрут для игрока.
Это касается и остальных стат. Каждые 100мс будет проверка а не поменялись ли статы. Это пока не реализовано но будет.

Когда расстояние будет минимальное то follow переключится на attack.
 
Анимация атаки начинается сразу как состояние станет attack и дистанция будет короткой.

При назначении состояния атака потом идет проверка а далеко ли цель? Если далеко то переключаемся на состояние follow.
Это ответ на вопрос когда идет атака.

Вопрос про что будет при баффе и т.д.
Когда идет состояние follow то каждые 100мс идет перестройка маршрута.
Если цель стоит на месте то изменение маршрута отсутствует так как координаты всегда одинаковые.
Если же цель перемещается то каждые 100мс мы будем получать новые координаты и строить новый маршрут для игрока.
Это касается и остальных стат. Каждые 100мс будет проверка а не поменялись ли статы. Это пока не реализовано но будет.

Когда расстояние будет минимальное то follow переключится на attack.
А логику поведения боя, с птс переносил?
 
С какой версии птс?
 
А логику поведения боя, с птс переносил?
Что вы считаете логикой боя? Я понимаю что это встречный вопрос. Но в принципе то какая разница между поведением боя на ПТС и того что описал автор темы?
 
Что вы считаете логикой боя? Я понимаю что это встречный вопрос. Но в принципе то какая разница между поведением боя на ПТС и того что описал автор темы?
Именно то и считаю, что и написал.
Автор темы, фактически все понимает да и отвечает по факту вопроса (П.с. в разных версиях Л2, есть отличия поведения, но так как ПТС эти в шаре - то и эта инфа есть).

default AI, уникальные AI + база ко всему этому.
 
Назад
Сверху