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

Ну мне много то не надо. Мне просто интересно именно то место про раздупление узнать и что к чему. Вы ведь говорили что там и таймеры и код. Я просто непойму как это все относиться именно к первичной атаке или нападению к нпц.
 
Речь была про то, что келтир начинает реагировать на удар персонажа ДО непосредственного хита.
Первая причина в том, что я написал выше, а именно hit_time_factor. ИИ моба получило событие атаки практически мгновенно, еще не обработав даже сам хит по НПЦ.
В обычном случае, на ПТС, между атакой на НПЦ и ответным действием проходит два больших тика. Первый тик идет на оповещение ИИ об атаке(которая проходит спустя небольшую задержку после атаки, а не моментально). После этого событие встает в очередь, которая будет обработана на начало следующего серверного тика, который 1000 мс. Т.е минимальная задержка уже начинается как дельта к времени ближайшего тика. После этого проходит ряд проверок. Если НПЦ уже в состоянии атаки и имеет PhysicalState ATTACK, то просто обновляется приоритетная цель, обновляя приоритетную очередь целей, на базе хейта. Если же НПЦ не в состоянии атаки, то начинается второй большой тик, т.к переключение физических стейтов происходит по таймеру, который в данном случае будет установлен на 1000, т.к это результат того, что функция AddAttackDesire добавила в приоритетную очередь таск атаковать цель с определенным весом, и скорее всего именно этот таск будет на верху очереди, из-за его наибольшего веса. От таска будет запрошен соответствующий физический стейт, в который будет переключен моб, после чего будет вызван этот же таск повторно, через 1000мс, и он будет уже обработан для состояния ATTACK.
Те же 1000мс, это не константа. По сути, у ИИ просто есть несколько стеков, куда кладутся события и вызывается таймер. ИИ по истечению таймера забирает первый элемент и выполняет его логику.
 
А для чего такая инфа ? Ты пилишь свой эмулятор на java ? На самом деле это уже серьезная механика, либо ты гений ли бо второй Блендер )
 
Ну как бы
Тема 'Lineage2TS - HF сервер написанный на Typescript'
 
Промежуточный тест одежды, оружия. (переработал items)

 
Реакции: PrizraKZN

    PrizraKZN

    Баллов: 26
    Чел ты красава, не слушай некого делай ради хобби бро
Как расчитывается время реакции после каста скила?

Wind strike - hittime 4000мс. (Базовая скорость анимации скила)
4000 * 0.87264(maleAttackSpeedMultiplier для HumanMage 1 уровень) = 3490.56

Расчет верный? То есть после каста скила сервер должен реагировать через 3500мс?
 
Это нужно скорее всего смотреть в NASC("Исходники" имеются), если там конечно стоит таймер под каждый объект/событие .
 
На примере ХФ от L2J там немного запутанно, но ответ да. Сами эффекты скилла будут наложенны на цель через время анимации скилла в клиенте (или скорее то число времени что сервер выдал клиенту как и вы вычислили). Но есть нюансы. Как и возможность прекратить каст скилла, так и проверка цели на годность эффектов для цели (эта та запутанная часть о которой можно достаточно долго обсуждать как и что).

Посмотреть код можно тут (в L2J сделанно по очень запутанной логике между несколькими файлами, смотреть на номерок 400 для понимания) :
-
-
 
Мне кажется формула дожна быть такой же простой как с физической атакой. Где (500000 / на скорость атаки) = время реакции после удара.

К примеру 500000 / 330(скорость атаки Human Fighter) = ~1500мс
 
Не смотрел в тоталчекер от классика?
 
Открывать через IDA, и в ней же подгрузить pdb файл. Получится какой-никакой декомпил, в который можно подглядывать (правда, часть механик по наложению эффектов иная в лоу хрониках)
 
С помощью ИИ, котрый изучил проекты 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. В сурсах я ее тоже не находил. Даже значений таких нет.
 
Таким образом формула отлично подходит для всего диапазон между 333 и 1500.
Максимальная скорость каста на старых хрониках не ограничена, позже были введны лимиты, 2к на маг каст, и 1.5к на физ скорость
 
Будем решать проблемы по мере их поступления
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…