Главная Скачать Статьи Ссылки О проекте
Меню
Скачать
Classic Doom
Doom III
Quake
Quake II
Quake III Arena
Quake IV
PREY
Программы
Загрузить
Обучение
Статьи
Маппинг
Моддинг
DG FAQs
Скрипты
Другое
Галерея
Флэшки
Устав

ТОП Загрузки
  • SA Bot Alpha 6 (704)
  • Otmopo3ok (624)
  • Doom3 Demo (581)
  • Harley (542)
  • D3 Parallax Mapping Mod ver. 1.1 (475)
  • Doom3 OpenCoop (448)
  • ASSault (438)
  • NIGHTMARE! (385)
  • Uacbot2 (368)
  • G-mod (355)
  • Новые файлы
  • D3 Parallax Mapping Mod ver. 1.1 (475)
  • Voland`s Quake 4 Mod ver. 2.0 (97)
  • Storm4dm4 beta2 (0)
  • X-Battle 0.31 (2)
  • Classic Doom 3 1.1 Final (60)
  • CPMA 1.38 Upgrade (10)
  • QSC Tourney 4 (78)
  • SP Style v4 (32)
  • Prey1.1 (20)
  • Prey1.1 (145)
  • Для создания данного мода потребуется сделать три идентичных изменения в коде. Это касается плазмы, базуки и BFG. Но, чтобы не писать много раз одно и тоже, я покажу всё это на примере рокетлаунчера.

    Добавление нового флага
    Открывай 'g_local.h', переходи к строке 32 и добавь строки, помеченные синим цветом:


    // gentity->flags
    ...
    #define FL_NO_HUMANS 0x00004000 // spawn point just for bots
    #define FL_ROCKETBOUNCE 0x00008000 //boncemod
    #define FL_PLASMABOUNCE 0x00020000 //boncemod
    #define FL_BFGBOUNCE 0x00040000 //boncemod
    ...


    Внедряем команды
    Теперь, нам нужно добавить команду 'rbounce'. Для этого открывай 'g_cmds.c' и добавляй следующий код в районе 1548 строки:


    /*
    = = = = = = = = = = = = = = = = =
    Cmd_RBounce_f
    = = = = = = = = = = = = = = = = =
    */


    void Cmd_RBounce_f( gentity_t *ent ) {

    char *msg; // message to player

    ent->flags ^= FL_ROCKETBOUNCE;

    if (!(ent->flags & FL_ROCKETBOUNCE))
    msg = "Rocket Bounce OFFn";
    else
    msg = "Rocket Bounce ONn";
    trap_SendServerCommand( ent-g_entities, va("print "%s"", msg));
    }
    Переходи к 1727 строке и добавляй:

    ...
    else if (Q_stricmp (cmd, "setviewpos") == 0)
    Cmd_SetViewpos_f( ent );
    else if (Q_stricmp (cmd, "rbounce") == 0)
    Cmd_RBounce_f( ent );
    ...


    Данные манипуляции позволят игроку включать и отключать отскок ракет консольной командой 'rbounce'. Аналогичные команды для плазмы и BFG.


    Изменяем физику
    Открой уже знакомый нам файл 'g_missile.c' и переходи к функции 'fire_rocket'. Добавь синие строчки в свой код:


    ...
    bolt = G_Spawn();
    bolt->classname = "rocket";
    if (self->flags & FL_ROCKETBOUNCE)
    bolt->nextthink = level.time + 2500;
    else
    bolt->nextthink = level.time + 10000;
    bolt->think = G_ExplodeMissile;
    bolt->s.eType = ET_MISSILE;
    bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
    bolt->s.weapon = WP_ROCKET_LAUNCHER;
    if (self->flags & FL_ROCKETBOUNCE)
    bolt->s.eFlags = EF_BOUNCE;
    bolt->r.ownerNum = self->s.number;
    ...


    Итак, условие if (self->flags & FL_ROCKETBOUNCE) включен ли клиент FL_ROCKETBOUNCE, если да, то ракета взорвётся через 2.5 (вместо 10, как обычно). Наиболее интересная часть - это добавление к ракете эффекта EF_BOUNCE. Данная функция была написана програмёрами ID Software и мы без труда можем её использовать. Советую также заглянуть в 'bg_public.h', там, начиная с 221 строки, идут обьявления всех EF_ флагов.

    Вот собственно и все. Если ты понял, как действуют команды, то без труда сможешь добавить к списку плазму и т.д. Осталось только откомпилировать qvm файл и наслаждаться.


    Автор: MasTer (cubik@list.ru)
    Статья взята с айта: quake3radiant.by.ru
    Автор: MasTer

    Вернутся назад
    Последние статьи
  • Установка Quake 3 Arena под Linux
  • Установка DOOM3 под Linux
  • Я, бензопила и марс…
  • Пасхальные яйца в играх от id
  • Улучшение интерфейса старых программ
  • Онлайн
    Администраторы: 0
    Редакторы: 0
    Пользователи: 0
    Гости: 13
    .: Список :.
    .: Пользователей :.
    Зарегистрировано: 2009
    Новичок: epydyc

    Счётчик
    Ваш IP35.172.193.238

    Сегодня :
    Хитов : 1773
    Хостов : 954
    Онлайн : 13
    Всего :
    Хитов : 27235
    Хостов : 12756
    Рекорд : 55 посетителей одновременно 24.03.2024 (23:45)

    Другие счётчики

    Яндекс цитирования

    Баннеры
    DOOM POWER Все ресурсы DOOM на одном сайте!
    Всё о Quake, и немного о DOOM'e и Wolf'е
    Ремонт автоэлектрики и инжекторов
    NIGHT Блог
    Блог системного администратора

    [ © DOOM GATE | 2004-2024 | NIGHTMARE! ]

    Rambler's Top100

    DOOM GATE © 2004-2006 NIGHTMARE!
    NEW DOOM GATE © 2006 DOOM GATE TEAM & x26 Team
    All rights reserved.
    Все права защищены.
    [Page generated in 0.056571 sec][Gzip: выключен]