Регистрация - или - Войти

Восстановить пароль
×

Для восстановления пароля необходимо ввести логин или почту, которую Вы вводили при регистрации. После это, на Ваш почтовый ящик будет отпрвлено письмо с кодом.

Логин или почта :

Escape from the DarknessEscape from the Darkness

Мод о побеге из Чёрной Мезы учёного по имени Алекс Джонс....

22/12/2002
Kreedz ClimbingKreedz Climbing

Сетевой мод для любителей преодолевать препятствия на время....

22/12/2008
Статистика ( общая по модам ), шт.

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


  • Описание
  • КАК УСТАНОВИТЬ

Новый монстр

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


Автор / ы урока : Jack-Hang
Просмотров : 2342 ( +1 )
Скачиваний : 0
Прислал / (а) : Streit
Дата создания : 07.04.2011 20:48:35
Источник : http://www.hang-over.ucoz.ru
Рейтинг :
 ( 5 ) 
Поделиться :


Имеются следующие переводы : | русский |

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

Часть 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"
]

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



Похожие1. Монстры по сети - Для создания кооперативного мода или просто для включения монстров в сетевой игре
2. Летающие бочки и trigger_push - Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются.
3. Цвет HUD - Цвет HUD
4. Сохранение анимаций - как сделать так чтобы анимации на оружии(допустим) сохранялись, например все помнят КС вот там был Usp
5. Переключение оружия a la HL2 - Мне не нравится, как переключается оружие в ХЛ. Может, кому-то и интересно тыкать по менюшкам худа, но мне больше нравится реализация переключения в Unreal RTN, Quake Mission Packs и HL2
6. Наследование классов в С++ - В этом туторе я попытаюсь кратко рассказать про наследование классов в С++
7. Как сделать вортигонта из HL1 другом - Моя первая статья
8. Добавление эффектов блеска для энтити (entity) - Данная статья - перевод урока от OsirisGodoftheDead с ModDB...
9. Как сделать старый 640 худ из 2560/1280 нового худа - сидел, думал как вернуть старые времена, додумал
gabataka 02.08.2017, 15:36:12 пишет :
#1
а как открыть эти файлы то.
koka 11.04.2020, 7:19:29 пишет :
#2
ля а где брать то .cpp?!
Вы не можете комментировать, т.к. вы не зарегистрированы.
    Чикен из чикен гана
    Half-LifeЧикен из чикен гана
    Astrea: Six Sided Oracles (Раздача в EpicGamesStore)
    Astrea: Six Sided Oracles (Раздача в EpicGamesStore)
    Train Sim World 2: Sherman Hill: Cheyenne - Laramie Route Add-On
    Train Sim World 2: Sherman Hill: Cheyenne - Laramie Route Add-On
    Black Desert (Раздача в Steam)
    Black Desert (Раздача в Steam)