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

ТОП Загрузки
  • SA Bot Alpha 6 (681)
  • Otmopo3ok (621)
  • Doom3 Demo (568)
  • Harley (534)
  • D3 Parallax Mapping Mod ver. 1.1 (466)
  • Doom3 OpenCoop (433)
  • ASSault (430)
  • Doom RPG (426)
  • NIGHTMARE! (378)
  • Uacbot2 (361)
  • Новые файлы
  • D3 Parallax Mapping Mod ver. 1.1 (466)
  • Voland`s Quake 4 Mod ver. 2.0 (93)
  • 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 (31)
  • Prey1.1 (19)
  • Prey1.1 (142)
  • Как создавался BOUNCEMOD

    Для создания данного мода потребуется сделать три идентичных изменения в коде. Это касается плазмы, базуки и 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


    Прочитать полный
    Версия для печати
    Комментарии к статье отсутствуют

    Добавление комментария

    Данные
    Ваше имя *
    Ваш e-mail
    Детранслитеризатор
    Смайлики
    Лимит знаков:

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

    Счётчик
    Ваш IP52.91.90.122

    Сегодня :
    Хитов : 68
    Хостов : 38
    Онлайн : 9
    Всего :
    Хитов : 154
    Хостов : 65
    Рекорд : 18 посетителей одновременно 11.12.2018 (16:22)

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

    GameTop

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

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

    [ © DOOM GATE | 2004-2018 | 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.14192 sec][Gzip: выключен]