HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Две головы одного охранника (https://hlfx.ru/forum/showthread.php?threadid=3973)
Отправлено Half 17-06-2013 в 15:35:
Две головы одного охранника
Приветствую всех форумчан!
Вот, возник вопрос: Играя в свой мод, на уровнях of1a1 (там лежат PCV и разводной ключ) и of1a5b (где трупер с учёным отправились в мир иной) я заметил что у толстого охранника Отиса всегда одна и та же голова (HEAD_WITH_HAIR). Однако в оригинале на of1a5b голова Отиса выглядит иначе (HEAD_BALD). Как моему Отису сделать две?
P. S. Лучше три головы, т. к. в Blue Shift есть третья голова – Отис-Негр (HEAD_BLACK).
+сама моделька: http://rghost.ru/46823656
__________________
Пруха длится всего 5 минут.
Отправлено Cybermax 17-06-2013 в 15:43:
ты бы свою модель залил на rghost.ru
Добавлено 17-06-2013 в 19:43:
В op4 отис с двумя головами. Это же все мапингом делается на картах.
__________________
ㅤ
Отправлено Дядя Миша 17-06-2013 в 16:17:
Я совершенно точно помню, что делал такого отиса, путем объединения двух моделек - из опфора и блушифта. Там есть какая-то сложность, но сделать реально.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Half 17-06-2013 в 16:25:
Ну так и я сделал. Там надо всего лишь поменять
"Torus01 17" на "Torus01 18" Делов то!
__________________
Пруха длится всего 5 минут.
Отправлено Half 18-06-2013 в 10:33:
Может лучше дать вам исходник, а вы поможете найти ошибку?
__________________
Пруха длится всего 5 минут.
Отправлено Qwertyus 18-06-2013 в 10:50:
Half:
Тебе же говорят, модель нормально сделана, вопрос не в этом. Нужно в настройках монстра на карте задать нужный тип головы, прямо указать на необходимость использования интересующего тебя варианта субмодели головы. Нужен параметр типа Body у модели и прописываешь туда цифру 0, 1 или 2 для выбора нужного варианта из трёх.
Отправлено Half 18-06-2013 в 10:55:
Qwertyus
я ведь не про OpFor. Я про свой мод, в котором есть тот же охранник, но не меняющий своей головы, даже если Body 1, 2 или 3. Потому и выложил исходник.
__________________
Пруха длится всего 5 минут.
Отправлено Дядя Миша 18-06-2013 в 11:13:
Ну в своём моде надо менять одновременно скин и боди.
Как у учёного сделано.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Half 18-06-2013 в 11:30:
В учёного смотрел я не один раз, результата 0, хотя... нет. Не меняет этот жирдяй своей головы.
__________________
Пруха длится всего 5 минут.
Отправлено GioHAUS0n 18-06-2013 в 12:11:
Так дайка свой .FGD мода и модель Otis.mdl, по колдую....
Отправлено Half 18-06-2013 в 12:17:
Моделька отиса есть в 1-м посте, а фгд аттачем:
Сейчас попытался прописать голову как у солдат, результат тот же.
__________________
Пруха длится всего 5 минут.
Отправлено GioHAUS0n 18-06-2013 в 12:30:
Теперь проверка:
Отправлено Half 18-06-2013 в 12:42:
GioHAUS0n
Одинаково
__________________
Пруха длится всего 5 минут.
Отправлено GioHAUS0n 18-06-2013 в 12:53:
Понял, проблему:
Отправлено Half 18-06-2013 в 12:58:
Мне кажется, я тебя запутал. Дело не в fgd-файлах, а в исходном коде монстра.
__________________
Пруха длится всего 5 минут.
Отправлено thambs 18-06-2013 в 13:01:
Дядя Миша
по моему, проще всего делать как в спирте/ксашмоде -- под каждую голову отиса свою модельку. у него ж там ещё боди с оружием/в кобуре/без оружия.
__________________
http://www.moddb.com/mods/monorail-quest
Отправлено Half 18-06-2013 в 13:09:
thambs
Спасибочки, обойдусь.
Этот Отис сделан на основе Барни, поэтому убирать и доставать оружие он умеет без проблем.
__________________
Пруха длится всего 5 минут.
Отправлено Дядя Миша 18-06-2013 в 13:29:
thambs Отисов сами делайте, у меня никогда не было такого риквеста.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Half 18-06-2013 в 14:27:
Готово!!!
На самом деле всё проще некуда!
Инструкция для тех, кому интересно:
Сначала задефайним головы Отиса:
C++ Source Code:
2 | #define OTIS_HEAD_GROUP 2 |
3 | #define OTIS_HEAD_BALD 0 |
4 | #define OTIS_HEAD_HAIR 1 |
5 | #define OTIS_HEAD_BLACK 2 |
Затем в функции Spawn запишем следующее: (460 строка)
C++ Source Code:
3 | m_iHead = RANDOM_LONG(0,2);// pick a head, any head |
7 | SetBodygroup( OTIS_HEAD_GROUP, OTIS_HEAD_BALD ); |
9 | else if ( m_iHead == 1 ) |
11 | SetBodygroup( OTIS_HEAD_GROUP, OTIS_HEAD_HAIR ); |
13 | else if ( m_iHead == 2 ) |
15 | SetBodygroup( OTIS_HEAD_GROUP, OTIS_HEAD_BLACK ); |
После этого скомпилите клиент и сервер.
Всё! Наслаждайтесь!
+ Обещанный Отис-Негр 
P. S. Сори за текст, что-то с табуляцией.__________________
Пруха длится всего 5 минут.
Отправлено Дядя Миша 18-06-2013 в 14:33:
Half Я тебе код малость поправил, а то смотреть же невозможно.
Добавлено 18-06-2013 в 18:33:
Хотя можно сделать в разы просче:
C++ Source Code:
2 | m_iHead = RANDOM_LONG(0,2); |
3 | if( m_iHead > 2 ) m_iHead = 2; |
4 | SetBodygroup( OTIS_HEAD_GROUP, m_iHead ); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Half 18-06-2013 в 15:08:
Дядя Миша
Спасибо, тоже вариант.
Добавлено 18-06-2013 в 22:08:
Надо бы теперь это оформить всё, как тутор. Типа: "Сделали из Барни - Отиса, а головы не меняются?..." и т.п.
__________________
Пруха длится всего 5 минут.
Отправлено Half 19-06-2013 в 08:09:
Небольшая поправка:
Как вы наверное уже заметили, при смерти пушка выпадает только от OTIS_HEAD_HAIR. Чтобы исправить эту ситуацию нужно в исходном коде Отиса заменить:
C++ Source Code:
#define OTIS_BODY_GUNHOLSTERED 0 |
#define OTIS_BODY_GUNDRAWN 1 |
#define OTIS_BODY_GUNGONE 2 |
(не знаю как у вас записан Отис, но вы разберётесь)
на
C++ Source Code:
2 | #define OT_GUN_HOLSTER 0 |
Далее в HandleAnimEvent ( 400 строка) заменим код:
C++ Source Code:
7 | // barney's bodygroup switches here so he can pull gun from holster |
8 | pev->body = OTIS_BODY_GUNDRAWN; |
13 | // change bodygroup to replace gun in holster |
14 | pev->body = OTIS_BODY_GUNHOLSTERED; |
(Или как там у вас)
вот на этот:
C++ Source Code:
7 | // otis's bodygroup switches here so he can pull gun from holster |
8 | SetBodygroup( OT_GUN_GROUP, OT_GUN_DRAWN ); |
13 | // change bodygroup to replace gun in holster |
14 | SetBodygroup( OT_GUN_GROUP, OT_GUN_HOLSTER ); |
Затем в Killed (640 строка) заменим:
C++ Source Code:
1 | if ( pev->body < OTIS_BODY_GUNGONE ) |
6 | pev->body = OTIS_BODY_GUNGONE; |
8 | GetAttachment( 0, vecGunPos, vecGunAngles ); |
10 | CBaseEntity *pGun = DropItem( "weapon_eagle", vecGunPos, vecGunAngles ); |
вот этим:
C++ Source Code:
1 | if ( GetBodygroup( OT_GUN_GROUP ) != OT_GUN_HOLSTER ) |
6 | SetBodygroup( OT_GUN_GROUP , OT_GUN_HOLSTER ); |
8 | GetAttachment( 0, vecGunPos, vecGunAngles ); |
10 | CBaseEntity *pGun = DropItem( "weapon_eagle", vecGunPos, vecGunAngles ); |
Теперь, при смерти мы получим пушку от всех трёх Отисов, если они вынули её из кобуры.__________________
Пруха длится всего 5 минут.
Отправлено Paopapel 20-06-2013 в 20:32:
Half
Если тебе нужно я доделаю. Моделька Отиса.
Отправлено SteamPlay43 23-06-2013 в 14:04:
Half Это не сложно! Смотри код от учёного:
C++ Source Code:
if ( pev->body == HEAD_LUTHER ) |
Добавлено 23-06-2013 в 21:04:
Half Так же как и в самой модели!