Перейти к содержимому


Фотография

Получение индекса объекта, упоминаемого персонажами в диалогах


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 PawnLomaster

PawnLomaster

    Участник

  • Пользователь
  • PipPip
  • 112 сообщений

Отправлено 19 Ноябрь 2021 - 14:29

Привет!
Ищу возможность получить индекс объекта, на который смотрели выжившие, когда с помощью колеса фраз, они выбрали вариант "Глядите!".
GetClientAimTarget не подходит, так как чтобы персонаж обратил внимание на объект, необязательно центром экрана смотреть прямо на него.
Неплохо было бы ещё заиметь способ отслеживания самих фраз с их типом (имеется в виду, что фраза относится к "Глядите!"), чтобы можно было обработать колбеком.
 

UPD: SceneProcessor (https://forums.allie...30&postcount=45) умеет отслеживать фразы (если я правильно понял, что всё строится на команде vocalize). Хотя из всего, что там есть, мне пригодиться только лисенер команды и её аргументы. Осталось найти способ определить, на что смотрит персонаж.

 

UPD2: Проп m_vocalizationSubject не дал вразумительных результатов. Попытка схитрить через FindUseEntity почти удалась, но зараженные таком образом не обнаруживаются (в декомпилированном коде я нашёл проверку команды, то есть нельзя "использовать" предметы и игроков из другой команды )

UPD3: Похоже, что всем этим делом заведует CTerrorPlayer::GetSmartLookConcept(CBaseEntity *,char *,int). На выход концепт - строка с фразой. То есть достать объект, на который смотрят, не получится (я так и не понял, что за CBaseEntity в параметрах, но команда вокалайза передаёт туда null ). Выход один - симуляция поиска через HullTrace. Но нужно подобрать фильтр и ширину луча.


Сообщение отредактировал PawnLomaster: 19 Ноябрь 2021 - 18:46



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных