HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Алгоритм монстров.
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Andrei
Частый гость

Дата регистрации: Mar 2012
Проживает: (void)
Сообщений: 36

Рейтинг



Алгоритм монстров.

Здравствуйте. Помогите разобрать как двигаются монстры. Хочу на кс1.6 создать монстрика.

Начал сам разбираться, застрял на построении , поставил movetype STEP, монстр невидимкой стал О_о А так обычно стоит PUSHSTEP

Сообщить модератору | IP: Записан
Сообщение: 138830

Старое сообщение 13-06-2014 17:25
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Pushstep - это для ящиков.
Монстры двигаются очень просто. Есть точка начала, есть точка конца пути. Они протаскиваются между этими точками трассой по хуллу. Если не могут протащиться - пытаются триангулировать обход препятствия. Ну и плюс отдельный код, чтобы по ступенькам подниматься. Вот и вся хитрость, тащемта.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138831

Старое сообщение 13-06-2014 18:06
-
Andrei
Частый гость

Дата регистрации: Mar 2012
Проживает: (void)
Сообщений: 36

Рейтинг



Цитата:
XaeroX писал:
триангулировать обход препятствия


Это интересует.

И

Цитата:
XaeroX писал:
Ну и плюс отдельный код, чтобы по ступенькам подниматься.


А в чем проблема, то, что зомбак невидимый ?

C++ Source Code:
1
void CZombie::Spawn( edict_t* pPlayer )
2
{
3
  edict_t* pEntity = CREATE_NAMED_ENTITY( ALLOC_STRING( "info_target" ) );
4
 
5
  SET_MODEL( pEntity, "models/barney.mdl" );
6
  SET_SIZE( pEntity, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX );
7
 
8
  pEntity->v.solid		= SOLID_SLIDEBOX;
9
  pEntity->v.movetype		= MOVETYPE_STEP;
10
 
11
  pEntity->v.modelindex	= g_iModelIndex;
12
  pEntity->v.health		= pPlayer->v.health;
13
  pEntity->v.origin		= pPlayer->v.origin + gpGlobals->v_forward * 100;
14
 
15
  pEntity->v.takedamage		= DAMAGE_AIM;
16
  pEntity->v.max_health		= pPlayer->v.health;
17
  pEntity->v.deadflag			= DEAD_NO;
18
 
19
  pPlayer->v.nextthink = gpGlobals->time + 0.1;
20
}

Сообщить модератору | IP: Записан
Сообщение: 138832

Старое сообщение 13-06-2014 18:23
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Andrei писал:
Это интересует.

Этот код есть в серверной библиотеке.
Цитата:
Andrei писал:
А в чем проблема, то, что зомбак невидимый ?

Проверь pEntity->v.effects, может, там EF_NODRAW стоит?
Ну и rendermode заодно.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138833

Старое сообщение 13-06-2014 18:41
-
Andrei
Частый гость

Дата регистрации: Mar 2012
Проживает: (void)
Сообщений: 36

Рейтинг



Всё равно невидимко:

C++ Source Code:
1
void CZombies::Spawn( edict_t* pPlayer )
2
{
3
  edict_t* pEntity = CREATE_NAMED_ENTITY( ALLOC_STRING( "info_target" ) );
4
 
5
  SET_MODEL( pEntity, "models/barney.mdl" );
6
  SET_SIZE( pEntity, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX );
7
 
8
  pEntity->v.solid			= SOLID_SLIDEBOX;
9
  pEntity->v.movetype		= MOVETYPE_STEP;
10
 
11
  pEntity->v.modelindex		= g_iModelIndex;
12
  pEntity->v.health			= pPlayer->v.health;
13
  pEntity->v.max_health		= pPlayer->v.health;
14
  pEntity->v.origin			= pPlayer->v.origin + gpGlobals->v_forward * 100;
15
 
16
  pEntity->v.effects			&= ~EF_NODRAW;
17
  pEntity->v.rendermode		= kRenderNormal;
18
  pEntity->v.renderamt		= 255;
19
  pEntity->v.takedamage		= DAMAGE_AIM;
20
  pEntity->v.deadflag			= DEAD_NO;
21
 
22
  pEntity->v.nextthink = gpGlobals->time + 0.1;
23
}


Цитата:
XaeroX писал:
Этот код есть в серверной библиотеке.


А можно конкретней ?

Сообщить модератору | IP: Записан
Сообщение: 138835

Старое сообщение 13-06-2014 19:08
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Andrei писал:
А можно конкретней ?

Find in files -> "Triangulate"
Цитата:
Andrei писал:
Всё равно невидимко:

SET_ORIGIN ещё надо бы добавить.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138837

Старое сообщение 13-06-2014 19:27
-
Andrei
Частый гость

Дата регистрации: Mar 2012
Проживает: (void)
Сообщений: 36

Рейтинг



Спасиб. А ступеньки ? С SET_ORIGIN ничего не изменилось.

Сообщить модератору | IP: Записан
Сообщение: 138838

Старое сообщение 13-06-2014 19:43
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Ступеньки автоматически, если MOVETYPE_STEP стоит.

pEntity->v.modelindex = g_iModelIndex; - а вот это зачем? Ты же уже вызвал SET_MODEL.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138839

Старое сообщение 13-06-2014 20:10
-
Andrei
Частый гость

Дата регистрации: Mar 2012
Проживает: (void)
Сообщений: 36

Рейтинг



Убрал.. Ничего не изменилось.

Я это ставил, мол типа сказали попробуй, вдруг поможет и забыл убрать.

Сообщить модератору | IP: Записан
Сообщение: 138840

Старое сообщение 13-06-2014 20:54
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Да, загадка.
Я всегда подозревал, что эти метамод-хаки до добра не доведут.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138841

Старое сообщение 13-06-2014 21:12
-
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Может, потому не видно, что в КС 1.6 монстры вырезаны? Это мультиплерный мод.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | IP: Записан
Сообщение: 138842

Старое сообщение 13-06-2014 21:27
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Ghoul [BB]
Ну так он своего монстра кодит.
Понятно, что в кс вырезаны.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138843

Старое сообщение 13-06-2014 21:47
-
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Так под контру исходников нету...

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | IP: Записан
Сообщение: 138844

Старое сообщение 14-06-2014 12:08
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Ghoul [BB]
Ты из какого года вылез? Из 2002-го?

__________________

Сообщить модератору | IP: Записан
Сообщение: 138847

Старое сообщение 14-06-2014 12:29
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6843
Возраст: 34

Рейтинг



Да там скорее всего что-то наговнокодено в AddToFullPack и передаче энтварсов. А вполне возможно, что в клиентке, коде рисования моделек. Там вроде как продвинутый предиктинг для игрока. А вообще:

Цитата:
Andrei писал:
edict_t* pEntity = CREATE_NAMED_ENTITY( ALLOC_STRING( "info_target" ) );

SET_MODEL( pEntity, "models/barney.mdl" );
SET_SIZE( pEntity, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX );

pEntity->v.solid = SOLID_SLIDEBOX;
pEntity->v.movetype = MOVETYPE_STEP;

pEntity->v.modelindex = g_iModelIndex;
pEntity->v.health = pPlayer->v.health;
pEntity->v.max_health = pPlayer->v.health;
pEntity->v.origin = pPlayer->v.origin + gpGlobals->v_forward * 100;

pEntity->v.effects &= ~EF_NODRAW;
pEntity->v.rendermode = kRenderNormal;
pEntity->v.renderamt = 255;
pEntity->v.takedamage = DAMAGE_AIM;
pEntity->v.deadflag = DEAD_NO;

pEntity->v.nextthink = gpGlobals->time + 0.1;

Что это за ауно? Почему мы насильно делаем монстра из инфо_таргета? Инфо таргет у нас что? Правильно, CPointEntity. А монстр должен наследоваться от CBaseMonster. Не в этом ли затык? Может быть что-то специфическое для монстров пропущено. И эта, UTIL_SetOrigin где?

Сообщить модератору | IP: Записан
Сообщение: 138851

Старое сообщение 14-06-2014 14:14
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 17:39. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Алгоритм монстров.
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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