Flag Based Goal Systems
Для создания режима захвата флага используем энтити item_teamflag
- это будет сам флаг. Флаги члены команды должны нести на свою базу - func_capturezone
- браш-энтити. Это что то типа области, куда нужно доставить и откуда нужно украсть доки. Хотя item_teamflags
и есть по идее флаг для захвата, но в игре будет отображаться как портфель с документами или просто "доки".
Энтити и input/output позволят сделать нам некоторые очень интересные с флагами вещи в Team Fortress 2.
Contents
Основа CTF (Capture The Flag)
Большинство карт для захвата флагов (CTF) (официальные) основаны на том, чтобы захватить чужой портфель с документами и доставить его на свою базу. Эта карта проста в построении, обычно она представляет из себя две симметричные по архитектуре (не визуально) части для каждой из команд. Пока что в Team Fortress 2 существует только 3 официальные CTF карты: ctf_well, вездесущий ctf_2fort и пользовательской сборки ctf_turbine.
В этом туторе рассказано, как устроенна CTF карта и как ее собственно собрать своимим руками.
Ориентиры
Для начала, можно (даже нужно) поместить на карту ориентиры. Это стрелки, указатели и прочие объекты, которые подскажут игроку, где находятся доки, респаун и прочее. Они не являются обязательным атрибутом для карты, это скорее чисто для визуального эффекта... но если вы их все же поместите, игроки в TF2 скажут вам спасибо. Итак, что же для этого нужно?
Ориентиры для флага
Для примера, мы будем использовать 2 простых блока (браша), на которых будут лежать документы обеих команд, что то типа опор. Начнем с красной команды, создайте браш (Shift+B), к примеру 96 на 80 юнитов длиной\шириной и 48 юнитов высотой, покрасьте этот браш любой текстурой (Shift+A), например "wood/grain_elevator_facade_14a"
, и превратим этот браш в энтитю "func_detail
" - Edit -> Tie To Entity (Ctrl+T).
Ориентиры для зоны захвата флага
Теперь создадим, как вы догадались, ориентир для зоны захвата. Создайте ориентир-границу на основе браша, 16 в длину, 2 в высоту и 4 юнита в ширину. Красим браш в текстуру, чтобы придать ей визуальный стиль - "props/hazardstrip001a
" , после покраски превращаем в энтити - "func_detail
". Также можно поставить декаль (Shift+D) "signs/capture_zone
", чисто как украшение
В принципе все выше описанное проделывать не обязательно, это служит чисто для визуального эффекта. Вы и сами можете поэкспериментировать с оформлением, ограничиваясь лишь своей фантазией. На стенах, к примеру, можно повесить различные указатели: prop_dynamic энтити, models/props_gameplay/sign_gameplay01_witharrow_r_sm.mdl Больше об устройстве карт можно почитать в TF2 Design Theory - теории дизайна.
Энтити item_teamflag
Далее, создаем энтити (Shift+E) item_teamflag
(будующий флаг) и помещаем его на заранее заготовленное место. В нашем примере мы делаем флаг для красной команды, поэтому в свойствах Edit -> Properties (Alt+Enter) item_teamflag
значение опции team (команда) ставим на RED.
Энтити func_capturezone
Наконец, создаем зону захвата флага func_capturezone
- - браш-энтити. Создаем браш, длину\ширину сделайте такими, какими у вас в общем сделаны ориентиры и границы для флага, высоту можно сделать примерно в 160 юнитов. Далее, Tools - Tie to Entity. В опциях этой энтити (Alt+Enter) func_capturezone
значение team (команда) ставим в нашем примере на RED.
Заключение
Теперь у вас есть флаг для красной команды. Чтобы сделать тот же флаг для синей, нужно всего лишь значения team item_teamflag и func_capturezone поставить на Blu. Как только сделаете флаг для синей команды, у вас будет полностью рабочая карта режима CTF. На этой карте автоматически будет написан брифинг для карт CTF и установлено стандартное число захватов для победы - 3.
Загрузить готовую карту можно здесь: http://www.mediafire.com/?1mw0lm0ej2i
Нейтральный флаг
Если в опциях флага item_teamflag
значение team поставить any (любой), то этот флаг будет нейтральным, то есть его смогут захватить члены любой из команд. Нейтральные портфели имеют серый цвет окраски.
Многократный флаг (одновременный)
Игрок может захватывать любой флаг, не принадлежащий его команде. Теоретически, можно сделать так много флагов, сколько пожелает ваша "безумная" фантазия. (Как это сделать, думаю, вы и так знаете.) Существовал даже баг: игрок может вполне "спереть" все вражеские и нейтральные флаги, которые есть на карте, но захватить получится только один, остальные застревали в нем.
Многократный флаг (последовательный)
Вы можете после каждого захвата менять расположение флага, чтобы игрокам было сложнее и интереснее воровать доки. Как это сделать? Смотрим ниже...
Имя флага
Для начала, удостоверьтесь в том, что у вас на карте есть несколько энтитей item_teamflags
, и все они имеют свои имена (name) в опциях. В нашем примере мы сделаем 3 месторасположения нейтрального (можете вполне поэкспериментировать с флагами отдельных команд) флага, в опциях - team - any, там же даем имена флагам - flag1, flag2, и flag3. Не забудьте сделать зону захвата для каждой команды - func_capturezones
.
Start disabled
Во всех ваших флагах, которые должны будут появляться после захвата предыдущего, в опциях должны иметь значение Start Disabled - yes. В нашем примере только flag1 имеет значение Start Disabled - no.
Outputs флага
Выберите флаг, который вы хотели бы сделать "первой жертвой" грязных рук игроков, в нашем примере это flag1. В его опциях (Alt+Enter) нужно будет поставить Output'ы, для того чтобы включить в игру следующий флаг и убрать этот. Смотрим ниже и ставим все как на рисунке:
My Output > Target Entity Target Input Parameter Delay Only Once OnCapture flag2 Enable 0.00 No OnCapture flag1 Disable 0.00 No
Для следующих флагов делаем так же, убирая предыдущие и ставя следующие.
Собственно все, мы сделали 3 последовательно идущих друг за другом флага.
Обратный CTF
Обратный CTF - это простая вариация стандартного CTF, в котором позиция флагов и зон захвата поменялись местами - поставлены на обратной стороне карты. Вместо доставки захваченного флага, цель - доставить флаг из дружественного конца карты во вражескую зону захвата.
CTF-футбол
Это режим типа Обратный CTF с нейтральным флагом. Подобно футболу, нужно захватить флаг и принести его на вражескую базу. Bombing Run режим игры подобен тому, что есть в Unreal Tournament.
Теория дизайна
- Комната с флагом должна иметь достаточно хорошие места для защиты и атаки, по крайней мере 2 выхода и хорошие места для укрытия.
- Поменять брифинг миссии, если вы делаете какой то нестандартный режим, можно в этом туторе - manually change the mission briefing .
- Не забывайте ставить ориентиры для флагов, чтобы их проще было заметить.