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)
Отправлено 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 Так же как и в самой модели!