|  | Страницы (2):     [1]  2  » Показать все 25 сообщений этой темы на одной странице | 
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Как заставить NPC идти в нужном мне направлении ? (https://hlfx.ru/forum/showthread.php?threadid=2557)
Как заставить NPC идти в нужном мне направлении ?
| 1 | int GoToEntity( CBaseMonster *pNewEntity, CBaseEntity *pTargetEntity ) | 
| 2 | 
| 3 | Vector vecDir = ( pTargetEntity->pev->origin - pNewEntity->pev->origin ); | 
| 4 | vecDir = vecDir.Normalize(); | 
| 5 | 
| 6 | float flYaw = UTIL_VecToYaw( vecDir ); | 
| 7 | 
| 8 | UTIL_MoveToOrigin( ENT(pNewEntity->pev), vecDir, flYaw, MOVE_NORMAL ); | 
| 9 | 
| 10 | return 1; | 
| 11 | } | 
| 12 | 
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
fire64 там не yaw, там dist.
Нахрена тебе yaw если у тебя уже есть вектор направления?
ну если чисто логически поразмыслить?
перед нормализацией найди VectorLength и подай его вместо yaw.
Добавлено 20-01-2011 в 22:27:
Да и учти, ходячий монстр не попрет вверх, только на одном уровне по Z.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Раз разговор о векторах - у меня вопросик.
Как сделать так чтобы func_door открывалась по диагонали? Т.е. сделать 4 дверки и чтоб они разъезжались в разные стороны по диагонали.
__________________
How interesting, just look at that! 
© Scientist
Точно так же, как в любом другом направлении - выставить нужный угол.
Ну и сам браш повернуть.
__________________
хм, NPC так и не ходит 
Единственный пока что удавшийся вариант, через StartTask
code:
pNewEntity->m_hTargetEnt = pTargetEntity; Task_t *pTask = new Task_t(); pTask->iTask = TASK_WALK_TO_TARGET; pNewEntity->StartTask( pTask );
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Подобными выкрутасами ты разрушаешь хрупкую систему Shedule/Task. Посмотри внимательно код scripted_sequece. Думаешь, они зря всё это нагородили, если бы можно было заставить монстра идти в нужную точку, вызвав пару функций?
Добавлено 21-01-2011 в 15:42:
В Volatile3D II да, можно одной луа-строкой заставить монстра идти, бежать и выполнять анимацию, но ради такого удобства мне пришлось внедрить в код ИИ целую систему, и не за один день.
__________________
Пришлось все же делать через TASK
| 1 | case TASK_RUN_TO_COORD: | 
| 2 | case TASK_WALK_TO_COORD: | 
| 3 |   { | 
| 4 | Activity newActivity; | 
| 5 | 
| 6 |   if ( pTask->iTask == TASK_WALK_TO_COORD ) | 
| 7 | newActivity = ACT_WALK; | 
| 8 |   else | 
| 9 | newActivity = ACT_RUN; | 
| 10 | 
| 11 |   if ( MoveToLocation( newActivity, 2, m_vecgocoord ) ) | 
| 12 |   { | 
| 13 | TaskComplete(); | 
| 14 | } | 
| 15 |   else | 
| 16 |   { | 
| 17 |     // no way to get there =( | 
| 18 |     ALERT ( at_aiconsole, "Can't going to coord: %f, %f, %f\n", m_vecgocoord.x, m_vecgocoord.y, m_vecgocoord.z ); | 
| 19 | TaskFail(); | 
| 20 | } | 
| 21 |   break; | 
| 22 | } | 
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Ну, и Task радостно прервётся, как только монстр встретит препятствие или врага?
__________________
Вопрос не по теме.
Где-нибудь на сервере есть глобальный тчинк, откуда бы я мог вызывать нужную мне функцию ?
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
fire64 
StartFrame емнип
__________________
__________________
How interesting, just look at that! 
© Scientist
Ну вот и вращай Angle на сколько тебе надо. Скажем, поставь 45 градусов.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
XaeroX  и дверь отъедет на 45 градусов. А мне нужно чтобы она ещё и ввех отъехала.
Дядя Миша Это сарказм или что?
__________________
How interesting, just look at that! 
© Scientist
-=DrTressi=- 
>> А мне нужно чтобы она ещё и ввех отъехала.
>> чтоб они разъезжались в разные стороны по диагонали.
Издеваешься?
Задавай углы тогда для остальных осей. На крайняк сделай поездом.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
| Временная зона GMT. Текущее время 01:42. | Страницы (2):     [1]  2  » Показать все 25 сообщений этой темы на одной странице | 
  На основе vBulletin версии 2.3.0
  Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
  Дизайн и программирование: Crystice Softworks © 2005 - 2024