alpet 77 Опубликовано 10 Января 2013 (изменено) Товарищи исследователи, может кто подскажет решение задачи. Есть точка (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) Изменено 10 Января 2013 пользователем alpet Плавайте поездами аэрофлота! Поделиться этим сообщением Ссылка на сообщение
alpet 77 Опубликовано 10 Января 2013 Спасибо! То что нужно. Кстати может разработчики движка ещё предусмотрели, как быстро определить статус точки indoor / outdoor (в смысле в здании или на улице)? Плавайте поездами аэрофлота! Поделиться этим сообщением Ссылка на сообщение
alpet 77 Опубликовано 11 Января 2013 malandrinus, а как узнать направление дождя? Разве оно не всегда 0, -1, 0? Плавайте поездами аэрофлота! Поделиться этим сообщением Ссылка на сообщение
alpet 77 Опубликовано 11 Января 2013 Ещё раз спасибо, этого должно хватить. Кстати если кто-то продолжает ковырять ТЧ 1.0006, предлагаю использовать map файл от xrGame.dll для скорейшего нахождения интересных функций и улучшения логов вылетов. Сейчас он очень помогает мне понять где вылет, если хоть какой-то стек вызовов доступен. Файл получен через обработку соответствующего для отладочной версии, фактически поправлены смещения. К сожалению пока руки не дошли до переноса vftable, которые тоже при раскопках важны. У меня накопилось много информации по движку, которую буду систематизировать и публиковать ближе к выходу NLC6, сейчас катастрофически времени не хватает. 4 Плавайте поездами аэрофлота! Поделиться этим сообщением Ссылка на сообщение