![]() |
Страницы (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. Текущее время 08:04. | Страницы (2): [1] 2 » Показать все 25 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024