Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр 🔮✨Волшебство, любовь… и шерсть на одежде!
Ищи улики, решай головоломки — и помни: каждый твой шаг меняет ход сюжета.

Мой Любимый Кот

Новеллы, Головоломки, Коты

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
35
Nazumi
Nazumi
5 месяцев назад
Лига Геймеров

Ответ на пост «Как там твой клан без тебя? Ностальгия по Lineage II»⁠⁠1

От прочтенного защемило сердце и немножко навернулись слезы. ЛА2-это конкретный такой пласт моей молодости. Никогда не забыть, как всю ночь мы валили Валакаса, к которому попали через баг, т.к. играли на местном сервере с кучей дыр в карте. Умирали и ресались на последних каплях Маны и хп Шилки. Убивали его реально больше 12 часов. На часах было 6 утра, когда в чате полетели логи выпавшего шмота, включая корону Валакаса (блин, она падает рандомом, а я так хотела себе эту цацку!) Через 2-3 часа всем надо было на учёбу/работу, а мы, идиоты, притащились на наше место сбора в городе и жёстко надрались, забив на мирские дела простых смертных. Гнев игроков сервера не знал предела, когда утром эта новость облетела всех. Админы сервера вынуждены были сделать откат почти на сутки, нас публично отругали и обещали забанить навсегда (но шмот оставили, вроде😝).
Сейчас все давно разъехались и потерялись, но память об этой великой битве в наших сердцах.
Nazumi, клан tt, Данкосервер, Челябинск. Год не помню, че то типа 2006-2008.

[моё] Lineage 2 Игры MMORPG Ностальгия Видео Длиннопост Ответ на пост Текст
7
3
Lineage2JS
Lineage2JS
5 месяцев назад
ИТ-проекты пикабушников

Чистомэн бы не одобрил⁠⁠

Тестирую синхронизацию объектов на перемещение и атаку между NPC и игроком и немного намусорил. Дроп, который падает, показывает текущее местоположение объекта на стороне сервера. Каждый n-ный тик происходит синхронизация.

Блог про разработку сервера для Lineage 2 в телеге https://t.me/lineage2js

Показать полностью
[моё] Программирование Разработка Lineage 2 Javascript Nodejs Мусор Видео Короткие видео
1
1356
FeihyevoeBAPEHbE
FeihyevoeBAPEHbE
Обладательница больного воображения и планшета для рисования :)
Комиксы
5 месяцев назад

Когда играешь за Спойлера⁠⁠

Когда играешь за Спойлера
[моё] Procreate Рисование Юмор Комиксы Lineage 2 Спойлер Unboxing Игры Гномы
178
2
Psibox
Psibox
6 месяцев назад
Lineage 2

Lineage 2: Asterios Hunter x55 Осада⁠⁠

Для тех кто хочет поностальгировать

[моё] Lineage 2 Ностальгия Asterios Игры Олдфаги Видео YouTube
4
LeoneTomsk
LeoneTomsk
6 месяцев назад

Про Lineage2⁠⁠

В общем, я созрел, чем чёрт не шутит, готов отвалить немного деняк. Хочу заказать сервер для старой гвардии из солнечной Сибири, никаких донатов, чисто по фану. Короче, если найдутся единомышленники, го в чат, есть о чём поразмышлять.

https://t.me/+SwbojORwVVZmMDFi

[моё] Lineage 2 Без рейтинга Идея Компьютерные игры Текст
15
4
Lineage2JS
Lineage2JS
7 месяцев назад
ИТ-проекты пикабушников

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js⁠⁠

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Привет.

Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.

Столкнулся с проблемой синхронизации скорости персонажа на сервере с клиентом. Когда в игре вы нажимаете мышкой в то место, куда хотите перейти то происходит плавный переход с анимацией движения. На сервере в этот момент тоже происходит движение по таймеру, но не такое плавное.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

C(client) – двигается плавно из одной точки в другую. S(server) – делает прирост координат по таймеру.

Для примера я взял сборку написанную на java l2j-lisvus Сборок много. Но все они являются fork’ами проекта l2jserver https://l2jserver.com/И многое наследуется. В том числе и передвижение персонажа.

В l2j-lisvus, как и во всех сборках l2jserver перемещение персонажа на сервере идет при помощи таймера с приростом одинаковых значений.

Проблема проявляется, когда нам надо сделать какое-то действие после того, как персонаж добежал до пункта назначения. Например, нанести удар по NPC.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях проблема незаметна. Нога наступает точно в монету.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На длинных расстояниях действие атака начинается раньше, чем персонаж добегает до цели.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

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

Как работает передвижение персонажа на сервере.

За основу взяты базовые характеристики персонажа. Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

126 — это количество внутренних unit’ов за секунду.

На данной схеме идет прирост координат персонажа каждые 1000мс на 126 unit’ов. Исходя из схемы выше пример кода для действий персонажем после достижения пункта назначения:

// Прироста координат нет. Просто считаем когда персонаж дойдет до конечных координат.
const distance = 1500;
const playerSpeed = 126;
const ticks = distance / playerSpeed; // 11.90
const time = ticks * 1000; // 11900mc

setTimeout(() => {
// действие персонажа после бега
}, time);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На длинных расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на длинных расстояниях.

Зеленой зоной показана точка куда должна ступить нога персонажа если бы не было расхождений.

Рост скорости при развитии персонажа.

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

Данные о характеристиках персонажа передаются от сервера к клиенту.

Пакет UserInfo.js 83 строчка.

writeD(player.runSpeed);
writeD(player.walkSpeed);

Базовые значения:

runSpeed: 126

walkSpeed: 88

Выставляю значения walkSpeed: 126. Если скорость ходьбы будет равна скорости бега, то расхождения должны пропасть.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Нога персонажа достигает правильной конечной точки.

Персонаж синхронизирован и начинает атаку вовремя. Теперь надо понять, как скорость ходьбы влияет на расхождения между клиентом и сервером.

Сколько же персонаж успевает пройти перед тем, как начинает бежать?

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

runSpeed: 10

walkSpeed: 600

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Ходьба быстрее бега.

При скорости шага в 600 персонаж успевает пройти 250, прежде чем начинает бежать.

600 / 250 = 2.4

700 / 291 = 2.4

800 / 333 = 2.4

Из этого вывод, что персонаж перед тем, как начать бежать успевает пройти расстояние в 2.4 раза меньше, чем его скорость ходьбы.

Значит при скорости ходьбы 88 персонаж пройдет 36 unit’ов.

88 / 2.4 = 36

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Первое деление — это начало движения (ходьба) а следующие деления — это бег.

Решение

Формула для расчета времени:

сколько_прошли_на_старте = скорость_ходьбы / 2.4

(((дистанция_между_нпц_и_игроком - сколько_прошли_на_старте) / скорость_бега) * 1000мс) + время_которое_прошли

Для примера дистанция 1500.

Из них мы 36 прошли.

1500 - 36 = 1464 расстояние для бега.

Скорость бега 126 в секунду.

1464 / 126 = 11.61 (количество отрезков, которое мы пройдем за секунду).

11.61 * 1000 = 11610мс бега.

к 11610 надо прибавить время ходьбы

Скорость ходьбы 88 в секунду.

1000 / 88 = 11.36мс за 1 unit

36 unit * 11.36мс = 408мс

11610 + 408 = 12018мс

12018мс является точным временем от начала старта и до конца.

Сравниваем со старым временем 11900мс. Разница в 118мс.

setTimeout(() => {
player.attack(npc);
}, 12018);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 900.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 900.

Как видно выше разница положения ног при разных скоростях отсутствует, а значит решение работает.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью 19
[моё] Программирование Разработка Lineage 2 Javascript Nodejs Гифка Длиннопост
6
157
akatosh199512
akatosh199512
7 месяцев назад
Лига Геймеров

Потому мы(я) не стали рублёвыми миллионерами⁠⁠

Компьютерные игры Игры Lineage 2 Биткоины Видео Вертикальное видео Короткие видео
49
8
Lineage2JS
Lineage2JS
7 месяцев назад
ИТ-проекты пикабушников

Все оружие в Lineage 2 C1 за 1 минуту⁠⁠

Привет.

Занимаюсь разработкой сервера для Lineage 2 C1 на JavaScript(Node.js). Копался в клиенте игры и решил сделать перебор всего оружия для теста.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью
[моё] Программирование Разработка Lineage 2 Javascript Nodejs Видео Вертикальное видео Короткие видео Игры
16
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии