HLFX.Ru Forum Страницы (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)


Отправлено fire64 20-01-2011 в 16:18:

Как заставить NPC идти в нужном мне направлении ?

C++ Source Code:
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
 


Что не так в коде и как правильно ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 20-01-2011 в 19:27:

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'


Отправлено -=DrTressi=- 21-01-2011 в 04:51:

Раз разговор о векторах - у меня вопросик.
Как сделать так чтобы func_door открывалась по диагонали? Т.е. сделать 4 дверки и чтоб они разъезжались в разные стороны по диагонали.

__________________
How interesting, just look at that!
© Scientist


Отправлено XaeroX 21-01-2011 в 04:58:

Точно так же, как в любом другом направлении - выставить нужный угол.
Ну и сам браш повернуть.

__________________

xaerox on Vivino


Отправлено fire64 21-01-2011 в 09:26:

хм, NPC так и не ходит
Единственный пока что удавшийся вариант, через StartTask

code:
pNewEntity->m_hTargetEnt = pTargetEntity; Task_t *pTask = new Task_t(); pTask->iTask = TASK_WALK_TO_TARGET; pNewEntity->StartTask( pTask );


NPC вообще реально заставить выполнять нужные действия через внешний код, без Task_t, Shedule_t и так далее ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 21-01-2011 в 09:42:

Подобными выкрутасами ты разрушаешь хрупкую систему Shedule/Task. Посмотри внимательно код scripted_sequece. Думаешь, они зря всё это нагородили, если бы можно было заставить монстра идти в нужную точку, вызвав пару функций?

Добавлено 21-01-2011 в 15:42:

В Volatile3D II да, можно одной луа-строкой заставить монстра идти, бежать и выполнять анимацию, но ради такого удобства мне пришлось внедрить в код ИИ целую систему, и не за один день.

__________________

xaerox on Vivino


Отправлено fire64 21-01-2011 в 11:22:

Пришлось все же делать через TASK

C++ Source Code:
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
}

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 21-01-2011 в 11:25:

Ну, и Task радостно прервётся, как только монстр встретит препятствие или врага?

__________________

xaerox on Vivino


Отправлено fire64 21-01-2011 в 12:06:

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

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 21-01-2011 в 12:11:

fire64
StartFrame емнип

__________________

xaerox on Vivino


Отправлено -=DrTressi=- 21-01-2011 в 12:23:

Цитата:
XaeroX писал:
Точно так же, как в любом другом направлении - выставить нужный угол.
Ну и сам браш повернуть.


Но как? Там можно вращать Angle на 180 градусов либо Up либо Down

__________________
How interesting, just look at that!
© Scientist


Отправлено XaeroX 21-01-2011 в 12:27:

Ну вот и вращай Angle на сколько тебе надо. Скажем, поставь 45 градусов.

__________________

xaerox on Vivino


Отправлено Дядя Миша 21-01-2011 в 12:33:

Цитата:
-=DrTressi=- писал:
Но как? Там можно вращать Angle на 180 градусов либо Up либо Down

не юзай angle. Юзай angles.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено -=DrTressi=- 21-01-2011 в 13:33:

XaeroX и дверь отъедет на 45 градусов. А мне нужно чтобы она ещё и ввех отъехала.

Дядя Миша Это сарказм или что?

__________________
How interesting, just look at that!
© Scientist


Отправлено FiEctro 21-01-2011 в 13:38:

-=DrTressi=-
>> А мне нужно чтобы она ещё и ввех отъехала.

>> чтоб они разъезжались в разные стороны по диагонали.

Издеваешься?


Задавай углы тогда для остальных осей. На крайняк сделай поездом.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Временная зона GMT. Текущее время 08:04. Страницы (2): [1] 2 »
Показать все 25 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024