TGViewer
L2-SERVERA | Блог о Lineage II L2-SERVERA | Блог о Lineage II @l2servera · 1.9K subscribers
Post #486 471
✍️ И так, как же сервер решает и определяет вашу позицию относительно монстра?

В функции PositionUtils как раз и «зашиты» углы, по которым движок решает: ты спереди, сбоку или сзади цели. Это напрямую влияет на применяемые множители урона (×1.2 со спины, ×1.1 сбоку), потому что ваш расчёт урона вызывает PositionUtils.getDirectionTo(...).

🟠 Константы:

* FRONT_MAX_ANGLE = 100 → фронт считается, если ты в секторе ±100° относительно направления взгляда цели (итого 200° спереди).
* BACK_MAX_ANGLE = 40 → «со спины» считается, если ты в секторе ±40° относительно «затылка» цели (угол её взгляда + 180°), итого 80° сзади.
* Остаток от 360° уходит в «бока»: 360 − (200 + 80) = 80° на бока суммарно, то есть примерно по 40° на каждый бок.

🟠Логика определения стороны:

  public static TargetDirection getDirectionTo(Creature target, Creature attacker) {
if (isBehind(target, attacker)) return BEHIND; // сначала проверяют «со спины» (±40°)
if (isInFrontOf(target, attacker)) return FRONT; // потом фронт (±100°)
return SIDE; // иначе — бок
}


🟠Как считают угол:

* calculateAngleFrom(A,B) даёт абсолютный азимут от A к B в градусах \[0..360).
* convertHeadingToDegree(heading) переводит «клиентский» heading (0..65535) в градусы делителем 182.044444444 (это 65536/360).
* В isInFrontOf и isBehind берут разницу между «углом взгляда цели» и «азимутом на атакующего», нормализуют её через ±360 и сверяют с порогами (100° для фронта, 40° для спины).

ℹ️ Итог по секторам (для ваших множителей урона)

Спина (BEHIND, ×1.2 урона)
Ты должен находиться в «конусе» ±40° относительно линии, противоположной взгляду цели (вектор назад). Узкий «коридор», попадать сложнее, но бонус самый жирный.

* Бок (SIDE, ×1.1 урона)
Всё, что не попало ни в спину (±40°), ни во фронт (±100°), — это «бок». В сумме 80° на оба бока, т.е. около ±40° относительно границы между фронтом и спиной с каждой стороны.

* Фронт (FRONT, ×1.0)
Широкий сектор ±100° по направлению взгляда цели (всего 200°). Проще всего «поймать», но без бонуса.

✏️ Практические выводы и советы

🟢 Чтобы стабильно ловить ×1.2, танк должен держать моба «лицом на себя», а дамагеры — стоять в узком коридоре за спиной (±40°). Любой поворот цели — и множитель пропадёт.
🟢 ×1.1 сбоку проще получить, чем «спину», но сектор всё равно узкий. Это награда за позиционирование, а не «автоматический» бонус.
🟢 Для blow/Backstab позиция критична: кроме внутренних правил самих скиллов, сверху ещё применится ваш позиционный множитель (если попадаешь в сектор).

Ну как вышло? Не сильно большая портянка? 😨



🤦‍♂ Новые сервера Lineage 2 😎 Телеграм
  • ❤ 8
  • 🔥 6
  • 🫡 4
  • ⚡ 1
More from @l2servera
  1. Sep 27, 2026Гном Maestro Reorin, один из десяти великих мастеров, всю жизнь мечтал о шедевре, который…
  2. Sep 25, 2026🔥 Сегодня стартует Interlude x30 — L2Eirin.com 25 сентября в 20:00 (GMT+3) открываем новы…
  3. Sep 25, 2026🎰 Cтарт ОБТ Запуск сервера для ОБТ будет в 12:00 На САЙТЕ уже доступен для скачивания кли…
  4. Sep 23, 2026В пещере под тенью Антараса беглец из Башни Слоновой Кости открыл школу для отверженных, г…
  5. Sep 22, 2026🩸 Почему не красится White Fabric — разбор механики Квест "An Arrogant Search" (348). Мно…
  6. Sep 21, 2026Post #1248
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →