Sidebar

[HL2] Различные модели для зомби

  • Рекомендуется задавать вопросы только относительно темы с уроком. Для остальных вопросов существует раздел [url=http://cs-mapping.com.ua/forum/forumdisplay.php?f=12]«Помощь»[/url].

    Темы с просьбами помощи будут удаляться без предупреждения и без объяснения причины.

    Запрещается поднятие старой темы оффтопом. Ваше сообщение будет удалено, а в профиль будет выписано замечание.

Noxter

Simpla Developer
02.09.2007
2 688
31
[HL2] Различные модели для зомби

Товарищ lexxda написал туториал как добавить несколько классов для стандартного зомби. Минус туториала был в том что просто указать модельку для npc_zombie было невозможно, а как вариант выбирать модель из списка который записан в коде npc, что не совсем удобно.
Я решил написать свой туториал как добавить к npc_zombie выборку модельки персонажа.

Откройте файл npc_zombie.cpp (src_mod\game\server\hl2\).
Для начала нам нужно в функцию void CZombie::precache( void ) добавить
Код:
//Noxter
PrecacheModel( STRING( GetModelName() ) );
//
Прокрутите чуток ниже до функции void CZombie::SetZombieModel( void ) и замените всю функцию на
Код:
void CZombie::SetZombieModel( void )
{
	//Noxter
	char *szModel = (char *)STRING( GetModelName() );
	if (!szModel || !*szModel)
	{
		szModel = "models/zombie/classic.mdl";
		SetModelName( AllocPooledString(szModel) );
	}

	Hull_t lastHull = GetHullType();

	if ( m_fIsTorso )
	{
		SetModel( "models/zombie/classic_torso.mdl" );
		SetHullType( HULL_TINY );
	}
	else
	{
		//SetModel( "models/zombie/classic.mdl" );
		//Noxter
		SetModel( szModel );
		SetHullType( HULL_HUMAN );
	}

	SetBodygroup( ZOMBIE_BODYGROUP_HEADCRAB, !m_fIsHeadless );

	SetHullSizeNormal( true );
	SetDefaultEyeOffset();
	SetActivity( ACT_IDLE );

	// hull changed size, notify vphysics
	// UNDONE: Solve this generally, systematically so other
	// NPCs can change size
	if ( lastHull != GetHullType() )
	{
		if ( VPhysicsGetObject() )
		{
			SetupVPhysicsHull();
		}
	}
}
С кодингом закончили, теперь переходим к FGD.
Откройте блокнотом файл halflife2.fgd (лежит в папке sourcesdk\bin\source2007\bin) и найдите строку
Код:
@NPCClass base(BaseNPC) studio("models/Zombie/Classic.mdl") = npc_zombie : "Zombie"
[
]
И замените ее на
Код:
@NPCClass base(BaseNPC) studio() = npc_zombie : "Zombie"
[
	model(studio) : "World model" : "models/barney.mdl"
]
Проверяйте отписывайтесь.
 

Вложения

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

Noxter

Simpla Developer
02.09.2007
2 688
31
2 lexxda:
Только вот не могу понять откуда берется в хаммере параметр skin, в fgd такого параметра нет как и в коде.

[ADDED=Noxter]1310916701[/ADDED]
Надумываю добавить флаг для npc_zombie для подключения\отключения хедкраба к голове.
 

Вложения

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

Dimex

Well-known member
27.03.2008
2 205
27
72
48
Belarus
  • Бронзовая медаль 115
  • Золотая медаль 115
Ого, так можно серьезный зомби мод устроить, отличные вещи делаешь.
 

setMan

Рядовой клапан
24.03.2009
70
28
Noxter сказал(а):
2 lexxda:
Только вот не могу понять откуда берется в хаммере параметр skin, в fgd такого параметра нет как и в коде.
В хаммере такого параметра (для зомби) тож нету ;)
Откуда он у тебя взялся - интересный вопрос.
Вероятно ручками прописан. :bigsmile:
 

Dimex

Well-known member
27.03.2008
2 205
27
72
48
Belarus
  • Бронзовая медаль 115
  • Золотая медаль 115
Возможно автоматом, ибо у многих моделей есть скины. Да и это ведь хорошо, можно модель с несколькими скинами вставить.
 

Noxter

Simpla Developer
02.09.2007
2 688
31
2 DNK:
Можешь попробовать по этому тутору добавив пару строк кода из npc_citizeт17.cpp и npc_citizen17.h, но минус будет тем, что прихешить нужно будет много моделек зомби в то же время это забивает память.
Смотри код из npc_citizen17.cpp строка 626.
 

lexxda

New member
05.02.2008
201
29
2 DNK:
Меняй модельки,делай свои,прописывай из в причёче и в сетмодел. Сделай универсальную модельку,типо просто кусок мяса итп.
 

DNK

=)
11.07.2009
611
32
Но вот, тут какая суть этого кода - то что указывается на модель что будет в качестве зомби!
А эти два обрубка от зомби они же будут использоваться же одни и те же, пусть хоть какой укажешь путь.

Наверно нужно доработать код? - чтоб указывать и на эти обрубки?; или чтоб автоматом добавлялся префикс к названию модели и искал модели этих кусков с этим префиксом.
Например: модель "ManZombi.mdl" добавляется префикс типа "1_ManZombi.mdl" и "2_ManZombi.mdl" типа 1 - это туловище, а 2 - это ноги.

Конечно я не кодер лишь балуюсь, но были бы умения и знания сам нашаманил=)
 

DNK

=)
11.07.2009
611
32
хотел узнать что это из этогоозначает: PrecacheModel( STRING( GetModelName() ) );
STRING - это что дает? и это - GetModelName?

Насчет "FGD" где - этот параметр "World model" привязан в коде?

И как реализовать свою вторую вкладку в FGD для частей тела, писал это по своему "PrecacheModel( STRING( GetModelName() ) );" типа подписывал в конце T - торс, и пытался прикрутить к classic_torso, чтоб можно было выбирать модель для торса но ошибка, типа надо объявить свой измененный "PrecacheModel( STRING( GetModelName() ) );" а первый то где объявлен? чтоб свой второй обвить? блин, наверно тупость....
 

igm_2010

=НЯША=
31.07.2011
16
22
0
0
2 Noxter:
Даш сылку на модельки зомби как на картинке=)
 

Noxter

Simpla Developer
02.09.2007
2 688
31
2 igm_2010:
http://garrysmod.org/

[ADDED=Noxter]1325001722[/ADDED]
2 DNK:
STRING это путь до модельки который ты выбираешь когда ставишь модель на карту.
GetModelName получаем эту модель и отображаем.

DNK сказал(а):
Насчет "FGD" где - этот параметр "World model" привязан в коде?
model(studio) - завязан в движке
 
Последнее редактирование:

Dead_NicK

New member
21.02.2012
112
0
0
У меня ошибка во время компиляции...

Оффтоп
 

Dead_NicK

New member
21.02.2012
112
0
0
А хотя нет, уже исправил)

Не подскажите, как к другим моделям присвоить анимацию зомбарей?
 

Пила

New member
24.03.2012
427
12
0
Dead_NicK сказал(а):
Не подскажите, как к другим моделям присвоить анимацию зомбарей?
декомпилишь модель зомби и получаешь скилет и анимации зомби, потом прикрепляешь к своей модели и в qc прописываешь пути к анимациям
 

Half-Life: Alyx release

000
Дней
00
часа(ов)
00
minutes
00
Секунды
До выхода Half-Life: Alyx
Half-Life: Alyx вышел!

Новые сообщения

Донат - Хостинг

Итого
125.00 $
Цель
600.00 $

Доноры Красавчики

Пользователи онлайн