HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Каждому монстру свои джибсы
для мода
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



Question Каждому монстру свои джибсы

В общем вопрос такой,как сделать монстру свои джибсы? искал не нашел.

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

Старое сообщение 20-09-2010 14:41
- За что?
Ак47
падабум

Группа: Неопытный
Дата регистрации: Jan 2008
Проживает: - поживает
Сообщений: 319
Возраст: 29

Рейтинг



вроде они и так у каждого вида монстра есть.

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

Старое сообщение 21-09-2010 16:26
- За что?
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



нет. я в том смысле для каждого монстра отдельные модели джибсов. а не у каждого вида

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

Старое сообщение 21-09-2010 16:27
- За что?
PoD-Stas
Житель форума

Дата регистрации: Jul 2007
Проживает: Харьков
Сообщений: 586
Возраст: 34

Рейтинг



(epeFk@ ковыряй код, там ничего сложного

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

Старое сообщение 21-09-2010 16:34
- За что?
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



а в каком файле ковырять то?

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

Старое сообщение 21-09-2010 16:35
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



За "кускование" (кстати замечательный термин ) отвечает функция

СИмяМонстра::GibMonster

Перепиши её для нужного монстра на основе базовой функции (CBaseMonster::GibMonster), укажи свои модели кусков, свои звуки, если хочешь и т.д.

Я в своё время очень увлёкся кускованием, после того, как поиграл в мод Invasion, там почти у каждого монстра были свои куски. Взял и накодил для каждого из монстров индивидуальные куски, сортов 10 получилось =) Заколебался потом их в милке моделить.

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

Старое сообщение 21-09-2010 16:45
- За что?
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



Спасибо большое. Очень благодарен

Добавлено 21-09-2010 в 20:50:

а в каком cpp лежит эта функция?

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

Старое сообщение 21-09-2010 16:50
- За что?
qpAHToMAS
Интернетовское трепло

Дата регистрации: Sep 2007
Проживает: (void)
Сообщений: 1788
Возраст: 32

Рейтинг



Цитата:
(epeFk@ писал:
а в каком cpp лежит эта функция?

Скачай ты какой-нибудь Notepad++, натравь его поиск на директорию с исходниками и произведи поиск по *.* (всем) файлам.

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

Старое сообщение 21-09-2010 17:03
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



(epeFk@ у тебя студии нету? Если так, то юзай Notepad++. А если студия есть, юзай Find In Files.

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

Старое сообщение 21-09-2010 17:07
- За что?
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



а нашел но что с ними делать не знаю,так ка я в кодинге 0. не можете подробно рассказать как и что.

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

Старое сообщение 22-09-2010 07:10
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



(epeFk@ экспериментируй. Разжёвывать никто не будет. Я например, первое что в кодинге сделал - написал клон барни.

Выглядеть должно примерно так:

C++ Source Code:
1
//=========================================================
2
// GibMonster - make gun fly through the air.
3
//=========================================================
4
void CHGrunt :: GibMonster ( void )
5
{
6
  Vector	vecGunPos;
7
  Vector	vecGunAngles;
8
 
9
  if ( GetBodygroup( 2 ) != 2 )
10
  {// throw a gun if the grunt has one
11
  GetAttachment( 0, vecGunPos, vecGunAngles );
12
 
13
  CBaseEntity *pGun;
14
  if (FBitSet( pev->weapons, HGRUNT_SHOTGUN ))
15
  {
16
    pGun = DropItem( "weapon_shotgun", vecGunPos, vecGunAngles );
17
  }
18
  else
19
  {
20
    pGun = DropItem( "weapon_9mmAR", vecGunPos, vecGunAngles );
21
  }
22
  if ( pGun )
23
  {
24
    pGun->pev->velocity = Vector (RANDOM_FLOAT(-100,100), RANDOM_FLOAT(-100,100), RANDOM_FLOAT(200,300));
25
    pGun->pev->avelocity = Vector ( 0, RANDOM_FLOAT( 200, 400 ), 0 );
26
  }
27
 
28
  if (FBitSet( pev->weapons, HGRUNT_GRENADELAUNCHER ))
29
  {
30
    pGun = DropItem( "ammo_ARgrenades", vecGunPos, vecGunAngles );
31
    if ( pGun )
32
    {
33
      pGun->pev->velocity = Vector (RANDOM_FLOAT(-100,100), RANDOM_FLOAT(-100,100), RANDOM_FLOAT(200,300));
34
      pGun->pev->avelocity = Vector ( 0, RANDOM_FLOAT( 200, 400 ), 0 );
35
    }
36
  }
37
}
38
 
39
CBaseMonster :: GibMonster();
40
}

Так выглядит функция кускования десантника.

Удали из неё строку CBaseMonster :: GibMonster(); вставь вместо неё:
C++ Source Code:
1
TraceResult	tr;
2
BOOL		gibbed = FALSE;
3
 
4
EMIT_SOUND(ENT(pev), CHAN_WEAPON, "common/bodysplat.wav", 1, ATTN_NORM);
5
 
6
// only humans throw skulls !!!UNDONE - eventually monsters will have their own sets of gibs
7
if ( HasHumanGibs() )
8
{
9
  if ( CVAR_GET_FLOAT("violence_hgibs") != 0 )	// Only the player will ever get here
10
  {
11
    CGib::SpawnHeadGib( pev );
12
    CGib::SpawnRandomGibs( pev, 4, 1 );	// throw some human gibs.
13
  }
14
  gibbed = TRUE;
15
}
16
 
17
if ( gibbed )
18
{
19
  // don't remove players!
20
  SetThink ( SUB_Remove );
21
  pev->nextthink = gpGlobals->time;
22
}
23
else
24
{
25
  FadeMonster();
26
}

Теперь у тебя своя функция кускования для морпеха. Но он по-прежнему кускуется на стандартные человеческие останки. Есть два способа сделать для него индивидуальные куски.

Первый:
заменить строчки

CGib::SpawnHeadGib( pev );
CGib::SpawnRandomGibs( pev, 4, 1 );

На что-нибудь вроде

CGib::HgruntHeadGib( pev );
CGib::HgruntRandomGibs( pev, 4, 1 );

и написать эти новые функции на основе старых, заменив в них модели кусков.

Второй способ (по принципу создания обломков для Апача):
воткнуть вместо

CGib::SpawnHeadGib( pev );
CGib::SpawnRandomGibs( pev, 4, 1 );

вот это:
C++ Source Code:
1
Vector vecSpot = pev->origin + (pev->mins + pev->maxs) * 0.5;
2
 
3
vecSpot = pev->origin + (pev->mins + pev->maxs) * 0.5;
4
MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, vecSpot );
5
WRITE_BYTE( TE_BREAKMODEL);
6
 
7
// position
8
WRITE_COORD( vecSpot.x );
9
WRITE_COORD( vecSpot.y );
10
WRITE_COORD( vecSpot.z );
11
 
12
// size
13
WRITE_COORD( 100 );
14
WRITE_COORD( 100 );
15
WRITE_COORD( 32 );
16
 
17
// velocity
18
WRITE_COORD( 0 );
19
WRITE_COORD( 0 );
20
WRITE_COORD( 200 );
21
 
22
// randomization
23
WRITE_BYTE( 8 );
24
 
25
// Model
26
WRITE_SHORT( m_iVgib );	//model id#
27
 
28
// # of shards
29
WRITE_BYTE( 8 );
30
 
31
// duration
32
WRITE_BYTE( 200 );// 10.0 seconds
33
 
34
// flags
35
 
36
WRITE_BYTE( BREAK_FLESH );
37
MESSAGE_END();

не забудь прекешировать m_iVgib. Это должна быть модель нужных тебе кусков. Поиграйся с параметрами скорости, количества и прочими.

Первый способ предпочтительнее, т.к. там можно сделать декали крови и кровавые шлейфы за кусками. Но он сложнее, там нужно переписывать не только код монстра, но и кусков.

Копай в combat.cpp, там всё это есть.

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

Старое сообщение 22-09-2010 07:35
- За что?
Jimmy C.
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 618
Возраст: 28

Рейтинг



спасибо. буду пробовать

Добавлено 22-09-2010 в 11:45:

Ku2zoff, а ты случаем не знаеш как отключить кускование от монтировки,а то както не реально

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

Старое сообщение 22-09-2010 07:45
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 06:55. Новая тема    Ответить
  Предыдущая тема   Следующая тема
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