Doom3.ru





















    •  Главная

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




  •  Doom3-info



  



  •  Doom3: RoE



  



  •  Статьи



  



  •  Quake4



  



  •  Quake Wars



  




Реклама




Секреты Doom3-альфа. Часть V.

 08.09.2003  17:57  Автор: [ss]3L33T@ aka Cyber Optik

На этот раз я расскажу как изменять и программировать приборную панель (там где жизни броня и т.д.).

Для начала идём в папку doom3\base\guis и ищем файл hud.gui.

Ищем в нём строки:

//
//Hud Changes
//

Если вы их нашли, то я приступаю.

К ниже приведённому куску, почти к каждой строчке, я сделал комментарии, чтобы вы могли настроить интерфейс под себя.

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

Это работа не из простых и по этому, если не получается, то не стоит разносить на части вашу бабушку, которая подошла предложить вам поесть в момент вашей неудачи. :)

В общем, на то чтобы разгрести всё что здесь написано, уйдёт НЕМАЛО времени, поэтому настраивайтесь, запасайтесь пивом, сигаретами, а бабушку спрячте в чулан :), чтобы не приставала к вам с едой.

Кусок кода, который выделен в таки рамочки /*************************************/ - это код по изменению цвета брони и здоровья, в зависимости от её состояния (меньше 45 один цвет, больше 45 другой и т.д.).

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

Итак вот этот исправленный кусок:


...

//
//Hud Changes
//
/***********************************************************************/

if ("gui::player_armor" > 44) {
set "Armor1::matcolor" "0.3 0.7 0.6 0.3" ;
}

if ("gui::player_armor" <= 45) {
set "Armor1::matcolor" "0.3 0.6 0.6 0.3" ;
}

if ("gui::player_health" > 0) {
set "Health1::visible" "1" ;
set "Lines1::matcolor" "$normal" ;
set "HealthSpike::rect" "71 451 6 6" ;

}

if ("gui::player_health" <= 0) {
set "Health1::visible" "0" ;
set "Lines1::matcolor" "$redflicker" ;
set "HealthSpike::rect" "71 454 6 1" ;

}

if ("gui::player_health" <= 45) {
set "Health1::matcolor" "$redflicker" ;

}

if ("gui::player_health" >= 46) {
set "Health1::matcolor" "0.3 0.7 0.6 0.3" ;
}

if ("gui::player_ammo" <= 3) {
if ("gui::player_totalammo" <= 0) {
set "LeftFill::matcolor" "$redflicker" ;
}
}

if ("gui::player_totalammo" > 0) {
set "LeftFill::matcolor" "0.3 0.7 0.6 0.3" ;
}
}
/***********************************************************************/

//
//HUD
//
windowDef Lines { //это настройки оправы интерфейса с жизнями и бронёй
rect 2, 414, 256, 64 //положение оправы(x, y) и максимальные значения, по достижению которых она отсекается (просто её не видно)
background "guis/assets/hud/prjhud2/lines" //ссылка на файл, где взять картинку для оправы, можете сходить и посмотреть
matcolor 0.3, 0.5, 0.3, 1 //самая классная опция во всём файле, цвет оправы.
visible 1 // видем ли мы её(0 - нет, 1 - да)
}

//Ниже буду подписывать только новые опции, и что делает данная функция

windowDef ScanLine { //основной задний фон интерфейса
rect 0, 416, 256, 64
background "gui/hud/scanline"
matcolor 0, 1, 0, 0
visible 1
}

windowDef Ammobg { //цвет фона панели, где отображаются патроны(у меня - это меню, где отображаются жизни и броня)
rect 4, 444, 64, 32
background "guis/assets/hud/prjhud2/ammobg"
matcolor 0.3, 0.6, 0.3, 0.8/*0.05*/
visible 1
}

windowDef Lines1 { //???
rect 0, 416, 256, 64
background "guis/assets/hud/prjhud2/lines"
matcolor 1, 0, 0, pdflick2 [ time * .0025 ] / 4.5
visible 1
definevec4 "$redflicker" 1, 0.2, 0.2, pdinouthold[ time * 0.004 ] / 3
definevec4 "$normal" 1, 1, 1, pdflick2 [ time * .0025 ] / 4.5
}

windowDef LeftFill { //???
rect -1, 415, 128, 64
background "guis/assets/hud/prjhud2/leftfill"
matcolor 0.4, 0.6, 0.6, 0.4
visible 1
definevec4 "$redflicker" 1, 0.2, 0.2, pdinouthold[ time * 0.002 ] / 1.5
}

windowDef HealthBg { //Цвет оправы линии жизней
rect 59, 447, 128, 16
background "guis/assets/hud/prjhud2/health"
matcolor 0.87, 0.87, 1, 1
visible 1
}

windowDef Health { //Цвет линии жизней
rect 59, 447, ("gui::player_health" * 1.1), 16
visible 1

windowDef Health1 {
rect 0, 0, 128, 16
background "guis/assets/hud/prjhud2/health"
matcolor 0, 1, 0, 1
visible 1
definevec4 "$redflicker" 1, 0.2, 0.2, pdinouthold[ time * 0.002 ] / 1.5
}
}

windowDef Stamina { //Цвет оправы стамины
// rect 57, 459, 128, 8
rect 57 ,459 ,("gui::player_stamina" * 1.28) , 8
background "guis/assets/hud/prjhud2/stamina"
matcolor 0.8, 0.6, 0.4, 0.4
// matcolor 1.4-("gui::player_stamina" / 100), 0.6, ("gui::player_stamina" * 0.007), 0.3
// matcolor 1, ("gui::player_stamina" * 0.005)+0.2, ("gui::player_stamina" / 100)-0.45, 0.3
visible 1
}

windowDef ArmorBg { //Цвет оправы индикатора брони
rect 56, 463, 128, 16
background "guis/assets/hud/prjhud2/armor"
matcolor 0.75, 0.5, 1, 0.5
}

windowDef Armor { //Цвет индикатора брони
rect 56, 463, ("gui::player_armor" * 1.1), 16
visible 1

windowDef Armor1 {
rect 0, 0, 128, 16
background "guis/assets/hud/prjhud2/armor"
matcolor 0, 0, 1, 1
visible 1
}
}

windowDef ArmorA { //Задний цвет индикатора брони
rect -14, 463, ("gui::player_armor" * 0.9), 16
visible 1

windowDef Armor2 {
rect 70, 0, 128, 16
background "guis/assets/hud/prjhud2/armor2"
matcolor 0.3, 0.7, 0.65, 0.2
visible 1
}
}

windowDef HealthSpike { //Цвет пульса (слева на линии жизней, сердцебиение)
visible 1
rect 71, 451, 6, 6
background "hud/healthspike"
matcolor 1 , 0, 0, 1

}

windowDef ArmorIcon { //Цвет иконки брони
visible 1
rect 10, 463, 8, 8 //соответственно её положение
background "guis/assets/hud/prjhud2/armoricon"
matcolor 0, 0, 0 , 0.85 /*0.15*/
}

windowDef BulletIcon { //Цвет иконки патронов в обойме
visible 1
rect 50, 5, 16, 16
background "guis/assets/hud/prjhud2/bulleticon"
matcolor 1, 0, 0 ,0.7

}

windowDef ClipIcon { //Цвет иконки патронов в запасе
visible 1
rect 55, 20, 8, 8
background "guis/assets/hud/prjhud2/clipicon"
matcolor 1, 0, 0, 0.7
}

windowDef ammovalue1 { //Цвет надписи кол-ва патронов в обойме
text "gui::player_ammo"
font "fonts/chain"
rect 5 ,5/*450*/ ,46 ,20
forecolor 1, 0, 0, 0.85
visible 1
textscale 0.3 //Размер надписи кол-ва патронов
textalign 1
}

windowDef ammovalue2 { //Цвет надписи кол-ва патронов в запасе
text "gui::player_totalammo"
font "fonts/chain"
rect 8 ,15/*462*/ ,36 ,20
forecolor 1, 0, 0, 0.85
visible 1
textscale 0.3
textalign 1
}

windowDef WeapIcon1 { //Цвет иконки пистолета
visible 1
rect 170, 446, 64, 32
background "guis/assets/hud/prjhud2/pistol"
matcolor 1, 0.86, 0.86, 0
notime 1

onTime 0 {
set "matcolor" "1 1 1 0.3" ;
}
onTime 700 {
transition "matcolor" "1 1 1 0.3" "1 1 1 0" "700" ;
}
}

windowDef WeapIcon2 { //Цвет иконки шотгана
visible 1
rect 168, 446, 128, 32
background "guis/assets/hud/prjhud2/sg"
matcolor 1, 0.86, 0.86, 0
notime 1

onTime 0 {
set "matcolor" "1 1 1 0.3" ;
}
onTime 700 {
transition "matcolor" "1 1 1 0.3" "1 1 1 0" "700" ;
}
}

windowDef WeapIcon3 { //Цвет иконки MachineGun'а
visible 1
rect 165, 428, 64, 64
background "guis/assets/hud/prjhud2/mg"
matcolor 1, 0.86, 0.86, 0
notime 1

onTime 0 {
set "matcolor" "1 1 1 0.3" ;
}
onTime 600 {
transition "matcolor" "1 1 1 0.3" "1 1 1 0" "700" ;
}
}

// Ну теперь народ держись, начинается нова жизнь. То самое СЕКРЕТНОЕ МЕНЮ, но сильно не волнуйтесь, оно
// Выглядит слабовато и в релизе наверняка всё будет по другому. Первые четыре функции - это разные параметры с цветом
//и положением, а вот дальше...:)

windowDef IopLines {
rect 378, 444, 256, 32
background "guis/assets/hud/prjhud2/iopline"
matcolor 1, 0, 0, 0 /*0.08*/
visible 1
}

windowDef ScanLine1 {
rect 380, 446, 256, 32
background "gui/hud/scanline2"
matcolor 1, 0, 0, 0/*0.1*/
visible 1
}

windowDef IopLines1 {
rect 380, 446, 256, 32
background "guis/assets/hud/prjhud2/iopline"
matcolor 0.7, 1, 0.7,/* pdflick2 [ time * .0025 ] / 5 */ 1
visible 1
definevec4 "$redflicker" 1, 0.2, 0.2, pdinouthold[ time * 0.004 ] / 3
definevec4 "$normal" 1, 1, 1, pdflick2 [ time * .0025 ] / 5
}

windowDef Iop1 {
rect 380, 446, 256, 32
background "guis/assets/hud/prjhud2/iop1"
matcolor 0.4, 0.3, 0.2, 0.6
visible 1
}


windowDef Inv { // Это настройки надписи "inv", конечно её можно поменять
text "SS TEAM"// Сама надпись
rect 505 ,456 ,38 ,15 // её положение и ограничение
forecolor 1, 0.2, 0.2, 0.8 // Цвет надписи
textscale 0.2 // размер текста
textalign 1 // ???

}

windowDef Obj { //Настройки надписи "obg", у меня это надпись "WILL RULLE"
text "WILL RULLE"
rect 535 ,456 ,68 ,15
forecolor 0.6, 1, 0.4, 0.86 //in secret PDA color of text - "obg"
textscale 0.2
textalign 1

}

windowDef Pda { //Настройки надписи "PDA".
text "ALL"
rect 583 ,456 ,38 ,15
forecolor 0.7, 0.5, 1, 0.65 //in secret PDA color of text - "pda"
textscale 0.2
textalign 1

}

//А вот дальше, интереснее. Всё что написано ниже, у вас нет, так как это
//програмый код, написанный мною. Что же он означает?
//На самом деле это положение, цвет, ограничение по координатам надписи ваших жизней и
//вашей брони, не в виде полоски, а в виде цифр. Удобнее???
//И я так же считаю.
windowDef Hel
{
font "fonts/chain"
text "gui::player_health"
rect 10 ,450 ,38 ,25
forecolor 1, 0.2, 0.3, 0.75 // health see
textscale 0.22
textalign 1
}

windowDef Ar
{
font "fonts/chain"
text "gui::player_armor"
rect 10 ,462 ,38 ,25
forecolor 0, 0, 0., 0.75 //armor see
textscale 0.23
textalign 1
}

...



Кто-то может спросить, для чего это всё нам?
А ведь это - настройки интерфейса + настройка менюшки, которую мало кто видел. Я везде писал цвет того-то и того-то, имея ввиду, что там и цвет и координаты и всё остальное (просто цвет – это самая крутая опция, которая позволит вам сделать свой неповторимый, удобный лично для вас интерфейс)
В общем исправляйте, редактируйте, творите, придумывайте свои стили и пишите отзывы (это обязательно для всех)




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




Комментарии

#1  D.I.Y (-----.tmb.ru)   01:37  09.09.2003
Охуеть можно...

#2  VVS (-----.84.3)   23:01  12.09.2003
pricol ato cruto

#3  Free (-----.46.15)   19:08  13.09.2003
Молодец

#4  Kr@vchiK_ruleZZ (-----.kuzbass.net)   06:48  14.09.2003
Движок
Знаешь,Cyber Optik, тебе не менюшки делать надо, А ДВИЖОК ОПТИМИЗИРОВАТЬ.

Я ТРЕБУЮ ЧТОБЫ В СЕКРЕТАХ DOOM3 ALPHA VI ТЫ ВСЕТАКИ ЕГО ОПТИМИЗИРОВАЛ.:)))))))

#5  [ss]3L33T@ (-----.irtel.ru)   07:26  14.09.2003
Будет.... WhiteFox, что-то очень тормозит...
У него тама штуки 4 секретных настроек...

#6  Artem (-----.groteks.lv)   00:21  15.09.2003
Ura

#7  DM (-----.farlep.net)   05:56  15.09.2003
А какое количество цвета вообще доступно, и хотелось бы знать значения и какой цвет они означают!?!?!?

#8  [ss]3L33T@ (-----.irtel.ru)   16:36  15.09.2003
Значения от 0 до 1, 01, например.
Их комбенировать надо.

#9  Miller (-----.rol.ru)   01:22  22.09.2003
Cyber Optik, хватит уже цвета всей это фигни менять - попробуй лучше присвоить imp'у свойство куклы (ragdoll) - очень оригинально...!
А еще интересно, дум 3 можно завтавить работать на последних драйверах?
Параметы монстров - огромная тема...
Вот например немного поковырявшись в думе можно сделать так чтобы тебя бегали и кусали ученые всякие... десантники не омертвевшие :)

#10  Miller (-----.rol.ru)   01:24  22.09.2003
... Вперемешку со стандарными мертвяками...
классы новые где надо... анимацию присвоить.. карту поковырять...

#11  Payalnik (-----.245.58)   13:56  25.09.2003
Weapos in doom3
Cyber optic, ты видел скрин из сайта с огнеметом? Слабо такой забабахать?
А на самом деле там нихера сложного нет:
Ставишь "проджектайлы" автомату от "имп файрбол" и время между выстрелами сокращаешь и получаешь офигенный огнемет.
P.S. Только на слабых машинах тормозит чуть-чуть :-(



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

Е-майл

Заголовок

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

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






Розовый





















Valuehost.Ru


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