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

Step by step ) сначала 1 квест, потом второй. Если второй потребует переработку первого goto: 1 квест рефакторинг.
С гео первая задача: считывать Z координату

Потому что задача на перемещение по таймеру на сервере идет с расчетом на X.Y.

Клиент с сервером синхронизируются unit в unit на плоскости. Но когда клиент ходит по неровностям то тут расхождение с сервером. Клиент находится на одном месте а на сервере он либо дальше либо ближе на 30-40 unit'ов.
Я понимаю что вы говорите. Но я, со своей стороны и опыта разработки где уже все это перечисленное работает (кроме поиска пути, сейчас над этим и работаю) на моем сервере, просто напоминаю что это не просто привинтить болт или гайку и все будет круто.

Насчет разсинхронизации, тут нужно смотреть на клиент и какие параметры он отсылает на сервер (ValidatePosition). Да, есть дрифт, но я тоже компенсировал все это простой паузой в 100 ms.
 

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

Насчет разсинхронизации, тут нужно смотреть на клиент и какие параметры он отсылает на сервер (ValidatePosition). Да, есть дрифт, но я тоже компенсировал все это простой паузой в 100 ms.
Если сравнивать датапак и возможности то у вас в HF его много
C1 в этом плане попроще

P.S. так же рекомендую
Можно армию ботов сделать
 
Надеюсь с мобиуса прояснит момент по списку сервера с type.
 
Докер настраивать нужно и рЫегать еще там учетку, потом активировать почту.
Такого счастья точно не нужно, все можно проще сделать и портативно 🫠


Ничего не нужно устанавливать кроме
Также можно через

В папке с проектом создаём `default.nix`
Код:
{ pkgs ? import (fetchTarball {
    url = "https://github.com/nixos/nixpkgs/archive/nixos-unstable.tar.gz";
  }) {
    config.allowUnfree = true;
  } }:

pkgs.mkShell {
  buildInputs = with pkgs; [
    podman
    podman-compose
    podman-desktop
  ];

  shellHook = ''
    alias docker=podman
    alias docker-compose=podman-compose
    echo "✅ Development environment activated."
  '';
}

В папке с проектом просто
Bash:
nix-shell .
docker -v
docker-compose -v

И у вас все должно быть под рукой.
 
Что можно добавить в мир чтобы проверить Z координату?

Если использую пакеты DropItem или SpawnItem то Z координата не учитывается и всегда предмет падает или создается на поверхности земли.
 
Что можно добавить в мир чтобы проверить Z координату?

Если использую пакеты DropItem или SpawnItem то Z координата не учитывается и всегда предмет падает или создается на поверхности земли.
Как насчет пакета для передвижения персонажа? Там должны указываться полные координаты X, Y, Z
 
Как насчет пакета для передвижения персонажа? Там должны указываться полные координаты X, Y, Z
Мне нужны не координаты а добавить в мир предмет чтобы он "висел" в воздухе.

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

Пакет на передвижение тоже не учитывает Z координату и передвигается всегда по земле
На HighFive хрониках я использую пакет ExServerPrimitive. Не знаю есть такой пакет на C1. Но в принципе зачем делать что-бы висело? Я еще не видел что-бы клиент что-то подобное делал.
 
На HighFive хрониках я использую пакет ExServerPrimitive. Не знаю есть такой пакет на C1. Но в принципе зачем делать что-бы висело? Я еще не видел что-бы клиент что-то подобное делал.
Мне надо сверять данные с геодатой. Положение игрока на сервере и на клиенте по Z координате

Например как тут

Где-то было видео полета на виверне и синие метки были в воздухе. Возможно это мод или возможности C4 клиента. Мне нужно что-то похожее.

На HighFive хрониках я использую пакет ExServerPrimitive. Не знаю есть такой пакет на C1. Но в принципе зачем делать что-бы висело? Я еще не видел что-бы клиент что-то подобное делал.
Можно поподробнее про ExServerPrimitive ?
 
Можно поподробнее про ExServerPrimitive ?
Можно посмотреть на эти скриншоты здесь : https://mmo-dev.info/threads/Прорисовка-прохождения-пути.30341/post-229431

Принцип простой. Ресуются как точки, так и линии. Можно различного зцвета. Можно даже с текстом.

Когда я привинчивал гео-дату на свой проект, я использовал пакет клиента по передвижению. Там сразу можно узнать какую Z клиент посылает. Зачем? Это значени будет статичным (не изменяется от каких либо параметров), так что можно сразу узнать насколько различна у вас величина геодаты напротив того что клиент посылает (это значение все равно будет использоватся на сервере, так как оно будет отвечать куда клиент хочет идти). Ну а потом привинтил точечное поле что-бы видно было как геодата различется в клиенте.
 
Можно посмотреть на эти скриншоты здесь : https://mmo-dev.info/threads/Прорисовка-прохождения-пути.30341/post-229431

Принцип простой. Ресуются как точки, так и линии. Можно различного зцвета. Можно даже с текстом.

Когда я привинчивал гео-дату на свой проект, я использовал пакет клиента по передвижению. Там сразу можно узнать какую Z клиент посылает. Зачем? Это значени будет статичным (не изменяется от каких либо параметров), так что можно сразу узнать насколько различна у вас величина геодаты напротив того что клиент посылает (это значение все равно будет использоватся на сервере, так как оно будет отвечать куда клиент хочет идти). Ну а потом привинтил точечное поле что-бы видно было как геодата различется в клиенте.
В C1 Такого нет
 
Поподробнее)) как это сделать. Есть какое-то API клиента?
Точно не могу сказать очень давно разбирал это, более 6+ лет назад.
Из того что явно выделяется это реализация в unrealScript Engine.u
1740596175503.webp

Как именно нужно "Натягивать текстуру" и правильно ли это я не могу сказать.

Но вот C++ Реализация,
1740596335772.webp Здесь масса всего , от отрисовки иконок, до 3д текста , точек, квадратов
1740596411131.webp
там самое главное получить указатель на UCanvas класс, из экспортируемого класса UEngine, точные значения смешений чуть позже могу посмотреть.
Применяется это вот так
1740597222523.webp
1740597798840.webp

1740597786899.webp
Код:
int __thiscall NCWnd__DrawTexture(NCWnd* this, float X,float Y,float XL,float YL, float U,float V,float UL,float VL, UTexture*pTexture)
        NCWnd::DrawTexture(a2, 0, 21, 214, 127, 0, 0, 214, 127, textureLoginBack)

Как то так.
 
Точно не могу сказать очень давно разбирал это, более 6+ лет назад.
Из того что явно выделяется это реализация в unrealScript Engine.u
Посмотреть вложение 84802

Как именно нужно "Натягивать текстуру" и правильно ли это я не могу сказать.

Но вот C++ Реализация,
Посмотреть вложение 84803Здесь масса всего , от отрисовки иконок, до 3д текста , точек, квадратов
Посмотреть вложение 84804
там самое главное получить указатель на UCanvas класс, из экспортируемого класса UEngine, точные значения смешений чуть позже могу посмотреть.
Применяется это вот так
Посмотреть вложение 84805
Посмотреть вложение 84807

Посмотреть вложение 84806
Код:
int __thiscall NCWnd__DrawTexture(NCWnd* this, float X,float Y,float XL,float YL, float U,float V,float UL,float VL, UTexture*pTexture)
        NCWnd::DrawTexture(a2, 0, 21, 214, 127, 0, 0, 214, 127, textureLoginBack)

Как то так.
А с сервера это как-то можно послать на клиент? Или надо возможности клиента расширять?
 
А с сервера это как-то можно послать на клиент? Или надо возможности клиента расширять?
Если расширите то можно будет =) Там не сложно, функции экспортируемые из Engine.dll, указатель на UEngine так же экспортируем, смешение для UCanvas, я по позже могу посмотреть, если нужно ?
 
Если расширите то можно будет =) Там не сложно, функции экспортируемые из Engine.dll, указатель на UEngine так же экспортируем, смешение для UCanvas, я по позже могу посмотреть, если нужно ?
Очень нужно. Если я смогу что-то рисовать в клиенте я смогу синхронизировать клиента с геодатой
 
Назад
Сверху