В Counter-Strike все карты состоят лишь из двух типов объектов: *Брашей
*Энтитей
1. Браши
Начнем с брашей (brush). Браши можно сравнить со строительными плитами. Посмотрите на картинку ниже, на ней изображено 5 брашей, составляющих некую открытую комнату.
Из подобных брашей и состоят карты. Игроки бегают по земле, состоящей из брашей и между стенами — тоже брашами. Естественно, игрок видит раскрашенные (затекстурированные) браши, а не такие одноцветные, как на нашей картинке. 2. Энтити
Энтити (entity) — объекты, обладающие свойствами. Примеры энтитей: открывающаяся дверь, кнопка, источник света (лампочка), звук, машина — у всех этих объектов есть свойства (скорость, громкость и пр.).
При помощи энтити-объектов мы можем сделать карту более интересной — добавить в нее звуки, сделать воду и прочие спецэффекты.
Но энтити это не только спецэффекты, но и объекты, управляющие событиями на карте. Например, чтобы сделать карту с бомбой нужно вставить на нее энтити-объект одного типа, а если с заложниками — другого.
К слову сказать, ни одна карта в Counter-Strike не обходится без использования хотя бы нескольких энтити-объектов, поэтому их изучение не менее важная часть, чем усвоение техники создания карт, которая описывается в Учебнике.
Классы энтити-объектов
Всего для создания CS-карт может быть использовано 118 энтити-объектов, которые разбиты на 7 классов. Класс, к которому принадлежит тот или иной энтити-объект, указывается в названии, например:
func_door — объект класса func
info_target — объект класса info
game_text — объект класса game
Список классов энтити-объектов:
env
func
game
info
trigger
xen
все остальные
Для создания самой простой карты необходимо знать от 3 до 5 энтити-объектов. Для более сложной карты потребуется знание 15-20 объектов. Ну, а обычно число различных объектов на карте не превышает 25-30.
Где хранятся описания энтитей
Все энтити описаны в файле с расширением *.fgd (game definition file). Существуют 2 таких файла: стандартный и расширенный (экспертный), в котором добавлено несколько новых видов энтитей и изменены некоторые свойства уже существующих. Его мы и рекомендуем использовать
Проверить номер версии своего FGD-файла можно, открыв его в Блокноте, — номер написан во второй строке сверху.
Энтити точечные, энтити брашевые
Энтити-объекты интересны тем, что могут выглядеть, как обычные браши, также они могут быть прозрачными, а могут вообще не иметь размеров! Все зависит от типа энтити-объекта. Давайте разберемся какие же существуют типы энтити-объектов.
Энтити-объекты делятся на два типа:
* Брашевые (brush-based или материальные энтити)
* Точечные (point-based или нематериальные)
На картинке ниже схематически представлена структура карты:
Брашевые (brush-based) энтити Брашевые (brush-based) энтити — это энтити, в основе которых лежит браш. Обычно такие энтити мы можем увидеть в игре, но бывают и такие, которые видны только в редакторе карт, но не в игре.
Примеры: машина, дверь, стекло, кнопка (это видимые энтити); триггеры (невидимые энтити)
Грубо говоря, брашевые энтити — это браши со свойствами. Точечные (point-based) энтити
Точечные (point-based) энтити — это энтити невидимые в игре, их размер не имеет значения, главное у таких объектов — свойства.
Примеры: звуки, источники света, места рождения игроков и др.
В редакторе точечные энтити изображаются в виде прямоугольников (квадратов) фиолетового цвета, а в трехмерном виде — иконками. На рисунке ниже приведены примеры иконок из 3D-вида редактора: место рождения контра, источник звука, источник света (слева направо).
В игре Вы не увидите никаких иконок, но объекты существуют и выполняют свои функции. Редактирование свойств энтитей
Свойства энтити-объектов вызываются сочетанием клавиш [Alt-Enter] или в 2d-виде в меню правой кнопки мыши, пункт Properties. Прежде чем вызывать свойства энтити-объекта, его необходимо выделить (что вполне логично :).
Свойства всех энтити-объектов выглядят примерно так:
Пояснения к рисунку: Class
Название энтити-объекта. В начале названия идет класс, а через знак подчеркивания «_» название самого объекта. Превратить один объект в другой проще простого. Просто выбирете в списке другой объект.
Attributes
Свойства объекта. У каждого объекта есть как свои собственные свойства, так и общие, которые есть у большинства объектов. К общим свойствам можно отнести: Name и Target.
Name
Имя объекта. Имя нужно давать объекту в том случае, если он будет активироваться (включаться/выключаться) другим объектом.
Target
В это поле записывается имя того объекта, который должен быть активирован. Например, у нас есть лампочка с именем LAMP и кнопка. Чтобы лампочка включалась от нажатия на кнопку, необходимо прописать имя LAMP в параметр «Target» кнопки.
Помните, что не обязательно выставлять все свойства, имеющиеся у объекта, достаточно указать только необходимые. Часто бывает так, что объект имеет, скажем, 10-15 свойств, из которых действительно полезны и часто применяемы лишь 2-3.
Angle
Для некоторых объектов (источники света, некоторые типы дверей, кнопки и др.) важным параметром является «Angle» (см. рис. выше), устанавливающий направление действия объекта (сторону открытия дверей, направление световых лучей и т.п.) Вы можете указывать направление градусами или в черном кружке, задавая необходимый угол черточкой.
Кнопка Smart Edit
«Smart Edit» — это кнопка, переключающая режимы отображения свойств энтити-объектов. По умолчанию «Smart Edit» нажата, и Вы видите свойства любого объекта, как показано на рисунке выше. Для некоторых же объектов таких свойств нет. В этом случае необходимо отжать «Smart Edit» и производить изменение свойств в несколько менее удобном виде (но ничего не поделаешь, хорошо хоть объектов таких всего пара штук). Но на первых порах с такими объектами Вы встречаться не будете. Просто имейте это в виду.
Закладка Flags
Многие энтити наряду со свойствами имеют флаги (дополнительные параметры). Флаги выставляются в закладке «Flags». Например, для звука существует флаг «Play everywhere» (чтобы звук играл по всей карте). Флаги, так же как и свойства, могут быть различными у разных объектов. И опять же, не стоит выставлять все флаги — только необходимые.
[/url]
На последок хочется сказать, что не все объекты работают правильно и не глючат. Если у Вас что-то не получается, просто попробуйте реализовать свою идею при помощи других объектов. Проявите изобретательность, свойственную русскому человеку!