GAME [ArenA] logo

G A M E [ A r e n A ]
Это журнал обо всём в мире Игр... Самые интересные, свежие новости. Лучшие обзоры игр. Всё о CyberSport'е. И даже инфо о разных КланВаров...


Редактирование Half-Life. Создание модов

Введение.

Нестареющая игра Half-Life написана на языке Visual C++. Valve (производитель Half-Life) для нас, пользователей, в 1999-2000 году выпустила SDK (Software Development Kit). Это исходные файлы, на которых и написан наш любимый HL. С помощью программы Visual C++ 6.0 и SDK вы сможете изменять Half-Life по своему усмотрению.

Как-то:

1) Создавать новое оружие (например можно вставить в HL пушку m249 из Counter-Strike или огнемёт из Team-Fortress).

2) Изменять характеристики старого. Можно например вставить в Egon Secondary Attack - teleportal. При использовании Secondary Attack из Egon‘а вылетают телепорталы, при попадании они переносят противника в произвольную точку на карте.

3) Возможно создание собственного мода: Single, Deathmatch и даже смешанного!!! Представьте себе: бежите вы по карте Crossfire, забегаете в бункер, нажимаете кнопку (вы знаете о чём я) и... Вместо привычного взрыва на Crossfire появляются Zombie (или любые другие монстры). Вы преспокойно отсиживаетесь в бункере, а другие... А что другие, кто не успел, тот опоздал.

4) Изменять характеристики мостров в Single Player. Возможно создание симбиоза двух монстров. Например плюющийся кислотой, летающий, среляющий огнём Zombie.

5) Прописать каждому оружию название. Когда выбираешь оружие, в левом-нижнем углу высвечивается его название.

6) Эффект дыма во время появления.

7) Вставка дополнительных фич. (Бинокль, прибор ночного видения, радар).

8) Лазерная указка на любое оружие.

9) Можно менять скорость перемещения, высоту прыжков.

10) Стрельба сквозь стены.

Этот список можно продолжать до бесконечности.

 

Итак с чего начинается мод:

1) Желание. Без желания нет мода.

2) Программы для редактирования Half-Life. Список нужных для редактирования программ приведён ниже.

3) Концепция. Нужно определиться, какой мод вы хотите сделать.

4) Команда. Одному делать движок, карты и модели нецелесобразно и очень долго.

Файлы, которые можно редактировать и программы, которые редактируют эти файлы.

DLL - В Халфе два ДЛЛ - файла доступных для редактирования (серверный и клиентный). Редактор: Visual C++ 6.0.

WAD - Это архив в котором хранятся текстуры для уровня и некоторая системная графика. Редактор: Wally.

PAK - Это архив в который можно запихнуть любые файлы вашего мода. Смотреть с помощью PakExplorer.

CFG - В таких файлах хранятся настройки. Редактор: любой текстовый редактор.

MDL - Это своеобразная модель-архив. Потому как в ней хранятся и модели, и анимация, и текстуры. Редакторы: MilkShape и 3DStudio Max.

SPR - Это обычный спрайт, то есть 2D-анимация. Смотреть с помощью SPR View, Редактор: SPR Wizard.

BSP - Формат карты. Создание и редактирование (только *.rmf и *.map) - WorldCraft, Декомпилировать (получить *.map) - WinBSP.

FGD - Этот файл не влияет на работу мода, но нужен для создания карт. Редактор: любой текстовый редактор.

 

Первые шаги. Создание cобственного мода.

Во-первых создаём директорию MyMod (c:/games/half-life/mymod)

Во-вторых создаём файл liblist.gam. Он выглядит примерно так:

game "mymod"

version "BETA 1.0"

url_info "http://ваш сайт.ru/"

startmap "map01"

trainingmap "t0a0"

mpentity "info_player_deathmatch"

gamedll "dllshl.dll"

gamedll_linux "dlls/hl_i386.so"

В-третьих создаём директорию gfxshell и записываем в неё файл splash.bmp.

В-четвёртых создаём директорию dlls и записываем в неё вашу hl.dll.

Вот и всё, заходим в half-life, custom game, выбираем появивщуюся

надпись mymod и нажимаем activate.

А где взять свою hl.dll, спросите вы, отвечаю: с помощью SDK.

Создание собственной hl.dll.

Как я уже говорил, нужен Visual C++ 6.0, если он у вас есть, приступим:

Запускаем Visual C++ 6.0, File/Open, Sdk/SourseCode/dlls/ в графе тип файлов выбираем Pojects (.dsp), затем, открываем hl.dsp. Изменяем то что нужно (об этом позже), сохраняем файл и нажимаем F5. Вправом окне смотрим путь, куда записалась готовая библиотека. Находим её на диске и вставляем в /half-life/mymod/dlls. Вот и всё, запускаем hl, активируем mymod и смотрим результат.

Пример: как добавить надпись с названием текущего оружия около цифр жизней.

ЧАСТЬ 1:

Откроем файл "weapons.h".

Нам нужно добавить поле к структуре ItemInfo...

    int iFlags;
    int iWeight;
    const char *weaponName; //***** NEW
    } ItemInfo;

Опускаемся ниже по этому файлу к CBasePlayerWeapon class. Здесь мы увидим:

    virtual void UpdateItemInfo( void ) {}; // updates HUD state

Сменим на...

    virtual void UpdateItemInfo( void );

ЧАСТЬ 2:

Откроем "weapons.cpp".

Прямо перед "weaponbox code", добавим:

    void CBasePlayerWeapon::UpdateItemInfo( void )
    {
    ItemInfo iInfo;

    memset(&iInfo, 0, sizeof(iInfo));
    if (GetItemInfo(&iInfo))
    {
    if (iInfo.weaponName)
    {
    char szText[201];
    hudtextparms_t hText;

    sprintf(szText, "%s selected...", iInfo.weaponName);

    memset(&hText, 0, sizeof(hText));
    hText.channel = 1;
    // These X and Y coordinates are just above
    // the health meter.
    hText.x = 0.01;
    hText.y = 0.9;

    hText.effect = 0; // Fade in/out

    hText.r1 = hText.g1 = hText.b1 = 255;
    hText.a1 = 255;

    hText.r2 = hText.g2 = hText.b2 = 255;
    hText.a2 = 255;

    hText.fadeinTime = 0.2;
    hText.fadeoutTime = 1;
    hText.holdTime = 1.5;
    hText.fxTime = 0.5;

    UTIL_HudMessage(m_pPlayer, hText, szText);
    }
    }
    }

ЧАСТЬ 3:

Теперь нужно добавить название для каждого оружия.

Для примера откроем "crowbar.cpp"...

Теперь добавляем параметр WeaponName:

    p->iId = WEAPON_CROWBAR;
    p->iWeight = CROWBAR_WEIGHT;
    p->weaponName = "Crowbar"; //***** NEW
    return 1;

Сделайте это для каждого оружия и все готово. Удачи!

Автор обзора: Inferno[DR] || Источник : www.halflife.ru


Copyright by [DR] clan - ADOLO, Inferno, Karnash, Ferro, KING
Копирование и использование данных материалов разрешается только в случае указания на журнал "GAME [ArenA]", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта garena.by.ru.