Перейти к контенту

Справочник по функциям и классам


Рекомендуемые сообщения

Товарищи исследователи, может кто подскажет решение задачи. Есть точка (vector) и направление (vector) от неё, для моего случая это актор целящийся куда-либо из оружия. Хочется получить точку прицела на геометрии уровня/объекта, или указания что ничего нет по курсу.

Сойдут любые изощреные методы, включая вызов методов интефейсов Direct3D, работа с буфером вертексов или рендером движка. В теории должен быть самый легальный метод для частного случая актора, ведь движок имеет возможность показывать дистанцию до цели. Но вдруг есть и универсальный метод?

 

Типичную дистанцию отсечки, и косвенно через неё точку выцеливания можно посчитать так (псевдо-код):

g_hud := GetProcAddr ('xr_3da.exe', '?g_hud@@3PAVCCustomHUD@@A');
table := g_hud [$0034]; // + 52 byte
target_id := table[$0000]; // DWORD if game object
target_dist := table[$0004]; // float32
// lua code:
point = device().cam_pos
dir = device().cam_dir
dir:mul(target_dist)
point:add(dir)

Изменено пользователем alpet

Плавайте поездами аэрофлота!

Поделиться этим сообщением


Ссылка на сообщение

Спасибо! То что нужно. Кстати может разработчики движка ещё предусмотрели, как быстро определить статус точки indoor / outdoor (в смысле в здании или на улице)?

Плавайте поездами аэрофлота!

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, а как узнать направление дождя? Разве оно не всегда 0, -1, 0?

Плавайте поездами аэрофлота!

Поделиться этим сообщением


Ссылка на сообщение

Ещё раз спасибо, этого должно хватить.

Кстати если кто-то продолжает ковырять ТЧ 1.0006, предлагаю использовать map файл от xrGame.dll для скорейшего нахождения интересных функций и улучшения логов вылетов. Сейчас он очень помогает мне понять где вылет, если хоть какой-то стек вызовов доступен. Файл получен через обработку соответствующего для отладочной версии, фактически поправлены смещения. К сожалению пока руки не дошли до переноса vftable, которые тоже при раскопках важны. У меня накопилось много информации по движку, которую буду систематизировать и публиковать ближе к выходу NLC6, сейчас катастрофически времени не хватает.

  • Нравится 4

Плавайте поездами аэрофлота!

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
  • Куратор(ы) темы:

×
×
  • Создать...