Doom3.ru





















    •  Главная

  •  Doom3-форум   •  Прислать новости




  •  Doom3-info



  



  •  Doom3: RoE



  



  •  Статьи



  



  •  Quake4



  



  •  Quake Wars



  




Реклама
Рома зверь фото новые фото рома.




Добавляем новое оружие в Doom 3

 10.09.2004  02:53  Автор: iMiceman

Сегодня я покажу на наглядном примере как добавить в Doom 3 новое оружие, используя старое в качестве шаблона. Итак приступим! Сейчас перед нами стоит два вопроса, что будем делать и из чего, точнее, какую визуальную и физическую модель мы будем использовать для модификации? Я лично, как квейкер, не долго думая решил сделать рельсу (RailGun) из плазмогана (PlasmaGun). Чтобы осуществить данную конверсию для начала делаем следующее:

 

         1. Создаём в корневом каталоге Doom3 новую папку с именем "Test_weapon_mod".

         2. Создаём в ней три папки. Первую переименовываем в "def", здесь будут файлы с разрешением *.def, содержащие базовые параметры оружия, такие как модель, силу и т.п.  Вторую папку называем "guis", в ней будут файлы *.gui, то бишь дисплеи оружия. Используется только в том случае если мы изменяем оружие имеющее дисплей, а поскольку мы переделываем плазму в рельсу, то эта папка нам нужна. Третьей папке даём имя "script", она предназначена для файлов с расширением *.script, описывающих физическую модель оружия: его скорострельность, время перезарядки и т.п. В зависимости от объявленных переменных данного оружия, файл "doom_main.script" содержит лишь список скриптов используемых игрой.

         3. Копируем в эти папки оригинальные файлы с описанием оружия (weapon_*.*), а также файл "doom_main.script" из папки "script", и "player.def" из папки "def" (в него мы допишем наше новое оружие).

         4. Даём файлам новые названия (только weapon_*.* файлам), например, если мы взяли изначально плазму (и перегоняем в рельсу), то ренеймим все файлы "weapon_plasmagun.*" в "weapon_railgun.*";

 

         Из программ вы должны иметь:

        

         1. Quake 4 GUI Editor 0.25 (запускается как "Doom3.exe +editGUIs");

         2. Редактор для программистов имеющий подсветку синтаксиса С/С++ и пишущий номер строки кода (например,  Crimson Editor подходит идеально), В крайнем случае, если подобного редактора нет – используем WorldPad;

        

 

         Все, с начальными операциями разобрались, теперь приступим непосредственно к модификации. Сейчас нам нужно дописать в файл "doom_main.script" следующую строку (ВНИМАНИЕ!!! Все далее перечисленное относится только к портированию рельсы (поскольку будет использованы имена "weapon_railgun.*", прошу не забывать это, далее по тексту если вы не хотите добавлять рельсу прошу понимать "weapon_railgun.*" как "weapon_НАЗВАНИЕ_НОВОГО_ОРУЖИЯ.*" и "weapon_plasmagun.*" как "weapon_НАЗВАНИЕ_ОРУЖИЕ_ВЗЯТОГО_ЗА_ИСХОДНИК.*")):

 

            #include "script/weapon_railgun.script"

 

         В принципе не важно, в какое место вы ее впишете, но желательно после...

 

            // weapons

            #include "script/weapon_fists.script"

            ......

            #include "script/weapon_pda.script"

     

         То есть, вписать её после 30-й строки кода. Далее нам необходимо чтоб игра знала, что есть новое оружие, для этого мы открываем в редакторе файл "player.def" и переходим на строку 742, по идее мы увидим следующее (742-746):

 

            "def_weapon13"                           ""

            "weapon13_best"                          "0"

            "weapon13_cycle"                         "0"

            "weapon13_toggle"                        "0"

            "weapon13_allowempty"                    "0"

 

         Мы заменяем эти строки на следующие:

 

            "def_weapon13"                           "weapon_railgun"

            "weapon13_best"                          "1"

            "weapon13_cycle"                         "1"

            "weapon13_toggle"                        "0"

            "weapon13_allowempty"                    "1"

     

      Цифра в weaponХ означает каким по счету в инвентаре будет оружие, если хотите чтобы оно шло после плазмогана, то лучше впишите его под 7-мым номером, при этом не забудьте оригинальные имена последующих оружий сместить на одну цифру.

         Следующая операция - добавить новый тип патронов, но мы этого делать не будем, так как карт поддерживающих наше новоеоружие и его патроны просто не существует, если конечно мы сами их не создадим, но зачем так мучаться, ведь можно прописать "give weapon_railgun" и мы получим нашу рельсу.

         Теперь нам нужно подогнать файл "weapon_railgun.script" под наше оружие, для этого мы открываем файл в нашем редакторе, и заменяем с учетом регистра фразу "PLASMAGUN" на "RAILGUN", также заменяем уже "plasmagun" на "railgun".

         Остановимся на этом файле поподробней, нам нужно изменить поведение нашей рельсы, иначе она будет стрелять как плазма, для этого ищем строку (Х, значение которое будем менять):

 

            #define RAILGUN_FIRERATE                 Х //changed by Tim

 

         Меняем значение "Х" переменной "RAILGUN_FIRERATE" на число "1.45" (именно столько проходит времени перед тем как рельса готова стрелять, время выставляется в секундах, если например хотим создать мега-жестокий автомат, то думаю нужно выставить на 0.1), можно также удалить эту переменную и сразу вписать значение вместо "Х" сюда:

 

            next_attack = sys.getTime() + Х;

 

         Если есть желание удалить идиотский звук "Мало патронов", то надо просто удалить проверку на низкое количество патронов в следующих строках:

 

            if ( ammoClip == RAILGUN_LOWAMMO ) {

                  startSound( "snd_lowammo", SND_CHANNEL_ITEM, true );

            }

 

         Заодно можно удалить переменную, содержащую количество патронов, когда нужно пищать что их мало (строка 8):

 

            #define RAILGUN_LOWAMMO                  10

 

         Следующая переменная содержит количество патронов выстреливаемых нашим оружием (поскольку у рельсы 1, то не меняем) (строка 9):

 

            #define RAILGUN_NUMPROJECTILES           1

 

         Если нам не нужно чтоб оружие перезаряжалось, то можно просто удалить все упоминания о reload или поступить более элегантно, удалить проверку на количество патронов в обойме (строка 113):

 

            if ( ( currentTime >= next_attack ) && WEAPON_ATTACK && ( ammoClip > 0 ) ) {

     

Заменяем на:

           

            if ( ( currentTime >= next_attack ) && WEAPON_ATTACK ) {

 

         Есть много способов предотвратить перезарядку, например можно обьявить "ammoClip = ammoInClip();" как "ammoClip = 1000000;", или, например, в случае отсутствия патронов автоматом их добавлять, за это отвечают строки:

 

            if ( !ammoInClip() ) {

            weaponOutOfAmmo();

     

Заменяем на:

     

            if ( !ammoInClip() ) {

            addToClip( clipSize() );

 

         И нет проблем. Далее заканчиваем с этим файлом, сохраняем изменения и забываем про это. Следующий на очереди под раздачу файл "weapon_railgun.def", с ним будет сложнее, фокус "поиск-замена" тут не проходит, нужно не затронуть модель оружия при замене имен, поэтому будем ходить по строкам. Сейчас, для удобства, нужно дописать какой-нибудь коммент в заголовок, чтобы номера строк совпадали с моими.

Во всех перечисленных ниже строках мы должны заменить Plasma на Rail. Первая на очереди строка под номером 41 (кстати, бойцам поленившимся скачать редактор для программистов будет очень туго), потом 45, 56, 57, 62 - в этой строке если у оружия нет дисплея, или если вы не хотите его менять, можно оставить всё как есть, далее 65, 66. Теперь эти строки должны выглядеть так:

 

            entityDef weapon_railgun {

                  "editor_usage"                     "RailGun"

                  "inv_name"                         "RailGun"

                  "inv_weapon"                       "weapon_railgun"

                  "gui"                              "guis/weapons/railgun.gui"

                  "weapon_scriptobject"              "weapon_railgun"

                  "def_projectile"                   "projectile_railblast"

 

      Далее изменяем строки 104, 105:

 

            entityDef moveable_item_railgun {

                  "inherit"                          "weapon_railgun"

 

         Если есть желание изменить звуки то нам прийдется изменить строки 120, 123, 126, 134, 140, 143, 147, 150. В них прописаны имена звуков, которые используются на определенных кадрах анимации. Названия звуков берутся из файла sound/weapons.sndshd. В него естественно можно добавить что то своё, например прописать звук из Quake 3, чтоб создать эффект присутствия рельсы).

         Теперь правим строку 154 и 155, в 154 мы изменим имя объекта, а в 155 выставим повреждение от рельсы:

 

            entityDef   damage_railblast {

                  "damage"                           "100"

 

         Затем меняем название объекта в строке 161. Можно также изменить модель снаряда в строке 166. В 168 строке указываем имя объекта описывающего силу повреждения, оно содержится в строке 154, это "damage_railblast".

Далее: в строке 172 указываем скорость с которой снаряд покидает оружие, рельса очень шустра, поэтому ставим "10000 0 0"; строка  182 - масса снаряда, или дополнительный импульс трупу от попадания, от рельсы мы улетаем очень далеко, поэтому ставим "300"; строка 196 - ставим размер деколи, должна быть маленькой - "5", теперь эти строки выглядят так:

 

            entityDef projectile_railblast {

                  "def_damage"                       "damage_railblast"

                  "velocity"                         "10000 0 0"

                  "mass"                             "300"

                  "decal_size"                       "5"

                 

         Параметры партиклов можно не менять, это не так важно, хотя если запустить "+editParticles" и слегка поправить размеры, то только станет приятней глазу.

         Последние штрихи - GUI дисплей, запускаем редактор GUI и правим дефолтный экран, например, удаляем место, где пишется количество патронов в обойме, у рельсы нет обоймы, или дописываем сверху гордую надпись RailGun. Вроде с таким простым файлом GUI редактор не должен глючить, но на всякий пожарный случай сделайте бэкап.

         ВСЕ! Оружие готово, нужно протестировать. Запускаем Дум, в списке модов выбираем "Test_weapon_mod" (если его нет в списке, то нужно упаковать все файлы папки "Test_weapon_mod" в ZIP и назвать "pak000.pk4"). Если сразу, ещё при загрузке, ошибка не выскочила, то выбираем любую карту и пишем в консоли "give weapon_railgun". Прокручиваем инвентарь, потеем, нервничаем, если не выскочила ошибка - лады, выскочила - атас, вешаемся, стреляем в кого-то и смотрим что происходит… Если все, так как задумано, то поздравляю, если нет, то думаю, вам стоит скачать мой порт рельсы и посмотреть что не так: railgun_test.zip (если у меня изменены параметры, которые я тут не описал, то это ничего не значит, просто я слегка, в придачу ко всему вышеизложенному подстроил игру под себя на манеру Quake3, надеюсь это никому не помешает). Удачи!





Другие материалы рубрики:




Комментарии

#1  Stryker (-----.surnet.ru)   21:26  11.09.2004
Я первый
Круто,думаю стоит попробывать

#2  avco (-----.otts.ru)   21:50  11.09.2004
Если бы вчера inet у меня не вырубился, был бы я первым))
Новое оружие это конечно хорошо... Такой вопрос - где бы узнать как использовать некоторые из стандартных объектов DOOM-а ? Которые по правой кнопке вылазят... Или методом научного тыка?!

#3  iMiceman (-----.com.ua)   01:19  12.09.2004
2avco
В закладке "Entity" есть листбокс "Entity Class", в нем перечислены все объекты, выбираешь из списка и сразу появляется описание. За часок, два можно все перезырить (правдо мало чего запомнишь, но это не помеха)...

#4  avco (-----.otts.ru)   20:28  13.09.2004
2 iMiceman
Это да, я их прочитал в первый же раз когда запустил радиант, но знаешь... что то не то). Поэтому как насчет статейки))? Прочитай, кстати,последние коментарии по той статье что про карту была...

#5  iMiceman (-----.com.ua)   01:06  14.09.2004
2avco
Скоро будет.

#6  ch3w (-----.85.231)   12:20  22.09.2004
Интерестно :))
А скажите какой дамаж у какой пушки plz

#7  BaSS (-----.net.ua)   17:30  23.09.2004
Сделайте электрошок!!!

#8  lexa (-----.mns.ru)   20:45  07.03.2005
a fizichiskiyi uron (smert)takoyi ge kak i u

plazmogana ?

#9  john (-----.180.250)   15:58  30.03.2005
^IMIceman , ya skachal tvoyi port relsы i kogda ia zagrugaю lюboyi uroven to u menя ,
pochemu to chёrnыyi ikran i viden odin priцel.

Таже фигня. ??

#10  john (-----.180.250)   16:00  30.03.2005
Invalid GUI

#11  lexa (-----.mns.ru)   13:49  04.05.2005
Invalid GUI
Koroche , udalite iz moda Imicemana nanku guis , i vcё budet good .

#12  Chaser (-----.gascom.ru)   08:40  05.02.2006
а где можно скачать редактор уровней для DOOM'a??или Quake 4 GUI Editor 0.25 ??подскажите!

#13  Konstanin (-----.sakhalin.su)   07:12  21.03.2006
Пистолет с глушителем
Хочу сделать пистолет с глушаком глушитель сделал в Майке перегнал в
lwo формат а редактор его не видит.
А идейка хорошая. Если вы помните на выстрелы вся армия монстров сбегается а так можно из-за угла отсреливать.

#14  Konstanin (-----.sakhalin.su)   07:14  21.03.2006
Пистолет с глушителем
Надо лишь параметр шум уменьшить до минимума мжно вообще звук затвора оставить глушак то у меня большой.

#15  ylhtq (-----.primorye.ru)   18:03  20.04.2006
интересно, но бесполезно.
кроме того, монстры и так не сложные.
plasmagun появился в quake(1)rouge и напоминал railgun, при использовании которого (в упор)можно обжечся.

#16  AIR (-----.112.90)   09:47  17.09.2006
novoe orugie
hochu sdelat svou model puski podskagyte kak!??!! I gde skachat !?!

#17  Михаил (-----.irtel.ru)   19:17  17.10.2006
Прочитайте статью http://doom3.ru/stat.php?id=142
Правда для модели, но в полне згодится.

#18  AIR (-----.0.47)   14:57  19.10.2006
HELP!! ЛЮДИ ОТЗОВИТЕСЬ!!
КАК СДЕЛАТЬ МОДЕЛИ ОРУЖИЯ ( MD5mesh MD5anim )Я УЖЕ ГОД МУЧАЮСЬ ВСЕ РУССКИЕ САЙТЫ О DOOM 3 ОБЛАЗИЛ СВЕРХУ ДО НИЗУ НИ ГДЕ НЕТ !! АНГЛОГОВОРЯЩИЕ САЙТЫ НЕ ПОНЯЛ ! 3D MAX УЖЕ ГЛЮЧЕТЬ НАЧАЛ ОТ ВСЕХ ЭТИХ MD5MESHImporterov MD5MESHExporterov А В MAYA У МЕНЯ ВООБЩЕ НИ ЧЕРТА НЕ ПОЛУЧАЕТСЯ ПОЖАЛУЙСТА СДЕЛАЙТЕ ТУТОР НА ЭТУ ТЕМУ ЗАРАНИЕ СПАСИБО!! ПОМОГИТЕ PLEASE!!!!!

#19  Diegox (-----.interlain.lv)   20:30  09.12.2006
люди а как зделать так чтоб оружие было безконечное? Имеется виду чтоб патроны некончялись! Или зделать хотябы так чтоб например в БФГ можно было 200 патронов вместить

#20  TнE FoREVERror (-----.vidnoe.net)   20:18  14.09.2007
Unlimited weap
Diegox - Для этого тебе нужен Weapons.def, открываешь его через блонкнот(Толь луше скопируй его на рабочий стол), и меняешь там все настройки.
Так-же можно пошаманить с отдельными пушками открыф ихнею дефлю (например Shotgun.def) там тоже можно кое-что изменить (например скорострельбность)
Я сам таким способом прикольный мод создал...

#21  TнE FoREVERror (-----.vidnoe.net)   20:20  14.09.2007
Unlimited weap 2
К стати, забыл сказать. Я пытался, но бесконечными патроны не сделал. Но можно просто сделать на 999.
А находються все дефли в папке - PAK000/DEFS

#22  кирилл (-----.200.34)   11:19  12.10.2007
как запустить редактор
везде говорят, что нужно для редактора создать ярлык и в поле обьект написать +edit но почему у меня это не проходит!
имя ярлыка у меня не DOOM3 а Loader.может из-за несоответствии версий?подскажите если знаете

#23  Alien.Com (-----.ab.ru)   14:31  11.01.2008
Double Barrel
Подскажите пожалуйста, какие нужны файлы, чтоб перенести двустволку из Doom 3 - Ressurection Of Evil в Doom 3.

#24  Начинающий маппер (-----.119.10)   12:23  24.03.2008
как запустить редактор
Ну, я сам не знаю основу дума-3, но в курсах, что надо вводить не +edit, а +editor, а также рекоменду дописать +r_fullscreen "0". И кстати редактор не запускается на первых версиях дума(если честно - полный абсурд - даже в алфа-версиях можно открыть едитор)

#25  Начинающий маппер (-----.119.10)   12:25  24.03.2008
как запустить редактор
Да, кстати не +r_fullscreen "0", а +set r_fullscreen "0".

#26  BMGod (-----.mtu-net.ru)   17:21  26.04.2008
А как заменить у нового оружия текстуру, ненавредив этим стандартному оружию с такой же моделью?

#27  Demon Lord (-----.6.7)   13:09  03.06.2008
...
Люди а как забайндить созданное оружие под какую-нить цифру? А то в Autoexec тока какие-то импульсы непонятные :((

#28  intaron (-----.volia.net)   01:51  17.01.2010
народ, скажите, как сделать модель оружия (от первого и третеего лица) я вообще хочу в DooM побольше холодного оружия добавить, мечи ножи и т.п, как это замутить?
ещё было бы не плохо замутить что то вроде щита и лука/арбалета, как это сделать если такое вообще возможно...

#29  Ваня Григорьев (-----.avangarddsl.ru)   16:50  31.03.2010
x-mass мод
скачал xmass мод(не помню от куда =))а он не запускается.пробовал перенисти оружие voodoo и когда я его беру выходит((((( что не так???

#30  Ваня Григорьев (-----.avangarddsl.ru)   16:59  31.03.2010
x-mass мод
вот сылка нашол

http://doom3.filefront.com/file/x_MASS;96759

#31  Саша (-----.vinfast.net)   01:49  05.04.2010
iMiceman,не заню на сколько это возможно,и под силу ли тебе,но вот такая просьба,(так как я не даже если бы и хотел наврятли смогу это зделать),в 3 дум вместо дробовика,зделать двустволку,или добавить ее в асортимент вооружения нашего героя....Если это реально,и ты можешь это реализовать,был бы тебе блогодарен....

#32  Bill Leeb (-----.175.35)   00:43  09.07.2010
А не мог бы ты рассказать как сделать новое оружие не на основе шаблона, а полностью НОВОЕ?

#33  TUURNGAIT (-----.mts-nn.ru)   18:21  05.09.2010
Пожалуйтса помогите!Извините что не в тему но как добавить HUD в вид от третьего лица!

#34  Фотография 7 (-----.10.68)   16:57  27.10.2011
савы
чм

#35  саша (-----.10.68)   17:01  27.10.2011
савы
я знаю чит коды 3 GIVE ALL GOD
NOCLIP

#36  Борис (-----.net.ua)   11:03  17.05.2012
Двустволка
Тут уже просили но действительно столько модов и тому подобного но нльзя ли сделать двустволку в Дум 3, не шотган с двойной силой, а именно двустволку, ато способы есть но хочеться и двушку и чтоб душекуб остался

#37  Пётр (-----.adc.am)   06:32  24.03.2013
мод двустволка из рое



Добавить комментарий
Имя - заполнять обязательно

Е-майл

Заголовок

Текст комментария - заполнять обязательно

Введите эти цифры в это поле.






Розовый





















Valuehost.Ru


Яндекс цитированияRambler's Top100Rambler's Top100
DOOM3 is a registered trademark of id'Software
Copyright 2002-2018 © Doom3.ru