DOOMCENTER.RU - Сайт о Doom и Quake
 DOOMCENTER.RU
 Главная | Новости
 Архив новостей
 О проекте
 Ссылки
 Форум
 
 Doom 3
 Обзоры
 Коды Doom 3
 Враги (бестиарий)
 Оружие
 Секреты
 Прохождение
 Статьи о Doom 3
 
 Моды Doom 3
 В разработке
 Новые уровни
 Маппинг
 
 Doom 3: RoE
 Новые уровни
 
 Doom 2
 Об игре
 Руководство
 Предыстория
 Монстры
 Оружие
 Скрины
 
 Doom
 Об игре
 Предыстория
 Монстры
 Оружие
 Скрины
 





Форум о Doom 3

 Добавить в "Избранное"

Quake 4

 Обзоры
 Чит-коды
 Скрины
 

Quake 3

 Обзоры
 Чит-коды
 Скрины
 

Quake 2

 Скрины
 Чит-коды
 

Quake

 Чит-коды
 Скрины
 

Разное

Архив новостей

 2009 год
 2008 год
 2007 год
 2006 год
 2005 год
 2004 год
 


 

 


Разъяснение неясностей. Часть II




 Автор руководства: iMiceman



Доброго всем времени суток, уважаемые господа. Поскольку на белом свете остались еще такие люди, которые не могут делать двери, лифты, и слово "func" у них вызывает нецензурную ассоциацию, я буду продолжать писать статьи где буду разъяснять неясности. Как вы поняли, сегодня я поведаю о функциях, а вернее о главных функциях (или можно сказать самых эффектных) и некоторых мелочах.

Функции или "func". Что же мы называем функциями (только не пугаться, сорить терминами никто не собирается)? В редакторе Doom Edit это просто класс объектов и этого нам хватит. Функции помогают нам создавать такие прекрасные вещи как двери, лифты, землетрясения, телепорты, платформы (типа тех, что в Quake), делать котлеты... упс... извините, заговорился. Такс, приступим с самого начала...

Дверь [func_door]: Простая функция двери, все двери в думе скриллируют, тобиш, когда мы заходим в зону активации открытия двери, она плавно скроллирует в заданное направляение и скрывается на 90% (этот параметр можно изменить, см. [lip]) в стене, мы имеем в распоряжении следующие параметры для настройки поведения/внешнего вида двери:
  1) [time] - [время_в_секундах] = время, за которое открывается/закрывается дверь;
  2) [speed] - [цыфровое_знач] = скорость перемещения двери, с параметром [time] несовместим;
  3) [angle] - [знач_от_0_до_360] = угол открытия двери (рекомендуется использовать вместо [movedir]);
  4) [movedir] - [малые_знач] = направление открытия, не совместим с [angle];
  5) [model] - [назв_модели] = модель двери, находятся в папке [models/mapobjects/doors];
  6) [wait] - [время_в_секундах] = сколько времени ждать перед возвращением;
  7) [snd_СОСТОЯНИЕ] - [имя_звука] = имя звука, используемого в определенном состоянии двери;
  8) [triggerСОСТОЯНИЕ] - [имя_объекта] = какой объект нужно активировать в определенном состоянии двери;
  9) [triggersize] - [знач] = размер триггера активации открытия (тобиш, на сколько он простирается возле двери);
  10) [dmg] - [знач] = какое повреждение причинять во время блокировки двери;
  11) [start_open] - [знач_1_или_0] = респавнить дверь в открытом состоянии;
  12) [toggle] - [знач_1_или_0] = ждать в каждой позиции пока снова не подействует триггер;
  13) [crusher] - [знач_1_или_0] = дверь не реверсирует если заблокирована;
  14) [no_touch] - [знач_1_или_0] = некосаема, нужно затриггерить для открытия;
  15) [locked] - [знач_1_или_2] = параметр работает вместе с [no_touch], что делаем после триггера:
   1 - открывать;
   2 - дать двери статус 'открытая';
  16) [lip] - [знач] = какой участок двери останется видимым после завершения движения.

ПРИМЕЧАНИЕ: Дверь также может иметь GUI для управления, нужно просто выбрать модель с поддержкой GUI, и потом выставить в параметр "gui" имя файла GUI. Дополнительные опции по управлению с определенного GUI зависит лишь от GUI, ничего конкретно сказать не могу, для ознакомления с управлением дверью от GUI изучайте карты от ID. Пример двери можно скачать тут: doors.zip
 
 

Лифт [func_elevator]: Это лифт, назвать его простой функцией сложно, поскольку нужно определенное количество мозга (и смекалки), для того чтоб сделать работоспособный лифт.

 Как он делается? - Чтобы сделать лифт, нужно сначала создать "func_elevator", выставить параметр "model", выбрать GUI, выставить параметры GUI, сделать и забиндить двери, согласовать звуки со временем перемещения. В принцыпе все, но, это простой лифт, есть много опций для его настройки, но я перечислю лишь те, которые на мой взгляд самые необходимые (почти все, лишь некоторые опущены):
  1) [model] - [имя_модели] = название модели лифта [models/mapobjects/elevators];
  2) [move_time] - [время_сек] = время перемещения между этажами;
  3) [move_speed] - [точек/сек] = скорость перемещения между этажами, востребован при использовании loop звука - просто не нужно будет согласовывать движение со звуком;
  4) [*cel_time] - [время_сек] = время ускорения/притормаживания лифта;
  5) [innerdoorХ] - [имя_двери] = дверь, прикрепленная к лифту, если она одна, то параметр без значения Х, если две или более, то первая дверь без Х, следующая с Х (например, innerdoor1);
  6) [floorPos_Х] - [X Y Z] = положения пола, значение Х в параметре - номер этажа, собственно от того сколько мы выставим таких параметров и какой GUI мы выберем, будет зависеть сколько этажей;
  7) [floorDoor_X] - [имя_двери] = имя внешней двери, Х - на каком этаже;
  8) [floor] - [номер_этажа] = этаж, на котором изначально должен быть лифт;
  9) [pauseOnFloor] - [номер_этажа] = этаж, на котором сделать паузу перед открытием двери;
  10) [pauseTime] - [время_сек] = время паузы из предыдущего параметра;
  11) [snd_СОСТОЯНИЕ] - [имя_звука] = звук, который будет проигрываться в определенном состоянии лифта;
  12) [gui] - [назв_файла_gui] = GUI, используемый для управления лифтом, обычно можно два определить - первый параметром [gui], второй [gui1], первый - внутри лифта в виде дисплея управления, второй - подсветка вверху номера этажа или типа того (если не сможете найти нормальный файл GUI, то ищите в папке guis/doors/elevator*);
  13) [gui_parmX] - [знач] = параметр GUI (далее следуют описания параметров дефолтного двухэтажного GUI);
   а) [gui_parm2] - [1] = с этажа 1 на 2, или [2] = с 2 на 3;
   б) [gui_parm3] - имя верхнего этажа (можно мультистрочное через БЭКСЛЕШn);
   в) [gui_parm4] - имя нижнего этажа (можно мультистрочное через БЭКСЛЕШn);
   г) [gui_parm5] - цвет GUI. [0] - дефолтный, [1] - красный, [2] - желтый, [3] - голубой, [4] - зеленый цвет;
 
ПРИМЕЧАНИЕ: Рекомендую сделать внутри лифта следующие вещи и прибиндить их к модели лифта - свет, в местах, где нужна подсветка - браш с текстурой "sfx/flare", возможно прибить какую-то модель снизу, если мы не делаем внешнюю дверь. Пример лифта/анимации (это так, оффтоп слегка, но с подобными анимациями карта выглядит живенько) можно скачать тут: elevator.zip
 
 

Землетрясение [func_earthquake]: Землетрясения собственной персоной. Создаем эту функцию, выставляем параметры, цепляем на триггер и как лупанет, что хоть прячься, а теперь о параметрах подробнее:
  1) [playerOriented] - [1_или_0] = откуда будет трясти, от положения объекта (0), или от положения игрока (1), тобиш близь места где будет триггер;
  2) [wait] - [знач_или_-1] = сколько ждать перед тем как жахнуть снова, [-1] - только раз;
  3) [randomDelay] - [знач_интенсивности] = разнообразие пауз;
  4) [triggered] - [1_или_0] = объект будет ждать триггера, перед тем как трухануть;
  5) [snd_quake] - [имя_звука] = определяет какой звук играть при землетрясении;
 

Телепорт [func_teleporter]: Ничего примечательного, триггерный телепорт, создаем объект, цепляем к триггеру и при активации триггера перемещаемся на позицию нашего объекта-телепорта. Вынужден сказать, что телепорт глючная штука, при паршивой сборке карты и неправильной компиляции может и не заработать.
  1) [angle] - [знач_угол] = направление к лицу;
  2) [wipe] - [имя_звука] = звук, который использовать при телепортировании;
 

Платформа [func_plat]: Летающая платформа, типа тех, что мы можем наблюдать в Quake. Нужно создать объект, выставить конечное положение и высоту, на которую платформа должна переместиться. Все просто.
  1) [height] - [точки] = высота, на которую поднимется платформа, по дефолту - высота модели;
  2) [model] - [имя_модели] = модель платформы;
  3) [lip] - [точки] = без камментов, такое же описание, что и у дверей;
  4) [speed] - [точек/сек] = скорость перемещения;
  5) [dmg] - [знач_поврежд] = какое повреждение давать при блокировке (может зажало);
  6) [no_touch] - [1_или_0] = работать только через триггер;
  7) [snd_СОСТОЯНИЕ] - [имя_звука] = какой звук издавать в определенном состоянии;

ПРИМЕЧАНИЕ: Координаты модели на карте и есть координаты конечной позиции, в изначальном состоянии уже на карте платформа будет находиться на тех же координатах, минус от Z параметра [height]. Пример платформы: plat.zip

Вот собственно и перечень функций, которые могут показаться сложными для изучения методом тыка (кроме телепорта), остальные достаточно просты. Если вы хотите узнать больше информации о функциях, то могу порекомендовать следующее - зайдите в папку Doom3/base/def (или Doom3/base/pak000.pk4/def, если игра изначально сжата), откройте файл func.def в Блокноте (или в более приличном редакторе), и посмотрите список всех функций. Как ориентироваться в файле? Ответ прост, строки, на которые стоит обратить внимание:

  entityDef func_НАЗВАНИЕ_ФУНКЦИИ {...тело_функции...} //Тело функции, тобиш все, что в нее напичкано
  "editor_usage" "ОПИСАНИЕ" //Описание действия функции на англ. языке
  "editor_var ПАРАМЕТР" //Описание параметра функции на англ. языке
  "ПАРАМЕТР" "ЗНАЧЕНИЕ ПО-УМОЛЧАНИЮ" //Дефолтные значения

Как использовать эту информацию?
Во-первых, вы будете знать дефолт, и избегите повторения параметров,
во-вторых, узнаете описания и сможете их, например, если вы не знаете английского, скопировать и отправить в переводчик,
в-третьих, сможете также поменять дефолтные значения на те, которые будут удобны вам. На этом все. Спасибо за внимание.






 
 
Rambler's Top100 liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня Рейтинг@Mail.ru