Registration - or - Enter
Nightmare House 2Nightmare House 2

Один из лучших хоррор-модов для Half-Life 2...

21/08/2010
G stringG string

First Person Shooter...

19/12/2011

В общем-то это самый лёгкий тутор который можно придумать.


  • Description
  • Link and installation

Новый монстр

В общем-то это самый лёгкий тутор который можно придумать.


Author/s of lesson : Jack-Hang
Views : 950 ( +1 )
Downloads : 0
Uploaded by : Streit
Created : 04/07/2011 5:48:35 PM
Source : http://www.hang-over.ucoz.ru
Rating :
 ( 0 ) 
Share :


Available following translations : | russian |

В общем-то это самый лёгкий тутор который можно придумать. Ну чтож начнём.Я слышал что кто-то там просил обяснить как сделать чтобы монстры дружили или воевали с вами.

Часть 1 : Война или Мир

Как за пример мы будем брать Барни, ну во первых потому что у него самый лёгкий код, а во вторых кода в нём мало. . Так откроем Barney.cpp :

Code:

//=========================================================
// Classify - indicates this monster's place in the
// relationship table.
//=========================================================
int CBarney :: Classify ( void )
{
   return CLASS_PLAYER_ALLY;
}

Code:

return CLASS_PLAYER_ALLY;

Означает то что Барни будет тебя любить и уважать, пока ты в него не выстрелиш. Теперь поговорим о других переменных класса. У вояк эта переменная заменена на :

Code:

return CLASS_HUMAN_MILITARY;

А у хеадкраба :

Code:

return CLASS_ALIEN_PREY;

У bullsquid :

Code:

return CLASS_ALIEN_PREDATOR;

Ладно так мы их будем перечислять до бесконечности. Вот вам весь список классов :

Code:

// For CLASSIFY
#define CLASS_NONE 0
#define CLASS_MACHINE 1
#define CLASS_PLAYER 2
#define CLASS_HUMAN_PASSIVE 3
#define CLASS_HUMAN_MILITARY 4
#define CLASS_ALIEN_MILITARY 5
#define CLASS_ALIEN_PASSIVE 6
#define CLASS_ALIEN_MONSTER 7
#define CLASS_ALIEN_PREY 8
#define CLASS_ALIEN_PREDATOR 9
#define CLASS_INSECT 10
#define CLASS_PLAYER_ALLY 11
#define CLASS_PLAYER_BIOWEAPON 12 // hornets and snarks.launched by players
#define CLASS_ALIEN_BIOWEAPON 13 // hornets and snarks.launched by the alien menace
#define CLASS_BARNACLE 99 // special because no one pays attention to it, and it eats a wide cross-section of creatures.

Ну надеюсь вы определились с классом. Переходим ко второй части собсно к самому коду Барника.

Часть 2 : Барни, коденный и моделленый

Тут главное умение копи-паистить. Открываем barney.cpp жмём CTRL+A потом CTRL+C. File→New→C++ Source File. Прописываем ему любое имя. Жмём ОК. Появляется пустое белое окно. Жмём CTRL+V и о чудо весь код барни оказался уже в другом файле. Ладно приступим к делу. Для начала вам придётся изменить все

Code:

CBarney

на

Code:

CBarneyMad

Затем :

Code:

monster_barney

мы заменим на

Code:

monster_barney_mad

А код :

Code:

monster_barney_dead

мы заменим на

Code:

monster_barney_dead_mad

Чуть незабыл!!!

Code:

CDeadBarney

Изменим на

Code:

CDeadBarneyMad

Я больше чем уверен что все умеют пользоватся Replace : придётся им воспользоваццо. Найдём :

Code:

tlIdleBaStand

И заменим всё эти надписи на

Code:

tlIdleMaStand

Далее найдём:

Code:

slIdleBaStand

и заменим на :

Code:

slIdleMaStand

Далее найдём :

Code:

tlBaFaceTarget

и заменим на :

Code:

tlMaFaceTarget

Далее найдём :

Code:

slBaFaceTarget

и заменим на :

Code:

slMaFaceTarget

Далее найдём :

Code:

tlBarneyEnemyDraw

и заменим на :

Code:

tlMadEnemyDraw

Далее найдём :

Code:

slBarneyEnemyDraw

и заменим на :

Code:

slMadEnemyDraw

Далее найдём :

Code:

tlBaFollow

и заменим на :

Code:

tlMaFollow

Далее найдём :

Code:

slBaFollow

и заменим на :

Code:

slMaFollow

Так всё если уже сейчас компилировать то Барни у нас работает. Но мы забыли самое главное!!! Модель!!!! Ну чтоже : В функции :

Code:

void CBarneyMad :: Spawn()

Есть строка

Code:

SET_MODEL(ENT(pev), "models/barney.mdl");

Мы будем хитрее!!! Мы заменим эту строчку на вот такую :

Code:

if (pev->model)
   SET_MODEL(ENT(pev), STRING(pev->model)); //LRC
else
   SET_MODEL(ENT(pev), "models/barney.mdl");

А в функции Precache :

Code:

if (pev->model)
   PRECACHE_MODEL((char*)STRING(pev->model)); //LRC
else
   PRECACHE_MODEL("models/barney.mdl");

Я потом обьясню что нам это даст!!! В функции :

Code:

void CDeadBarneyMad :: Spawn( )

Есть строки :

Code:

PRECACHE_MODEL("models/barney.mdl");
SET_MODEL(ENT(pev), "models/barney.mdl");

Зделаем с ними тоже самое что и с первой и второй.

Code:

if (pev->model)
{
   PRECACHE_MODEL((char*)STRING(pev->model));
   SET_MODEL(ENT(pev), STRING(pev->model));
}
else
{
   PRECACHE_MODEL("models/barney.mdl");
   SET_MODEL(ENT(pev), "models/barney.mdl");
}

Часть 4 : Заключение

Теперь обьясняю что нам это дало. Это дало нам возможность в самом редакторе карт менять модели барни, это значит что мы создаём мапу, задаём барни модель, компилируем мапу, и вот у нас уже не обычный барни а с другой моделью, это даёт возможность несоздавать слишком много новых монстров, например тоже самое я зделал с зомби, просто заменил им модель и вот у меня уже три новых зомбика вместо одного, ладно что-бы можно было на карту вставлять нашего барника нужна волшебная строчка. Откроем Half-Life.fgd он находится гдето в папке с Хаммером. И в конце файла добавим :

Code:

@PointClass base(Monster,TalkMonster) size(-16 -16 0, 16 16 72) studio () = monster_barney_mad : "Barney" [
model(studio) : "Model"
]

Ну незнаю помойму это всё что нужно чтобы наш новый барни работал, я также думаю что кому-то этот тутор очень помог.



Similar1. Создание нового оружия - В этом туторе не будет объяснено КАК сделать новое оружие, ибо для каждого оружия нужен свой код. Здесь просто будет приведена информация о тех нюансах без которых ваше оружие не будет работать
2. Исходный код снайперки - weapon_sniperrifle с оптическим прицелом
3. Летающие бочки и trigger_push - Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются.
4. Как перекрасить пули в ХЛ - Здесь я вам расскажу, как можно перекрасить пули в Half-Life1 и приведу свой пример
You cannot comment, because you are not registered.
    UT3 Evangelion Model Pack v1.1 Final
    Unreal Tournament 3UT3 Evangelion Model Pack v1.1 Final
    OldSkool Amp'd
    Unreal Tournament 99OldSkool Amp'd
    Csejte Castle HerdCoop Map Pack V3
    Unreal Tournament 99Csejte Castle HerdCoop Map Pack V3
    Unreal Tournament 3 Original Soundtrack
    Unreal Tournament 3 Original Soundtrack