This article relates to the game "Team Fortress 2". Click here for more information.

Flag Based Goal Systems

From Valve Developer Community
Jump to: navigation, search
English (en)한국어 (ko)Русский (ru)Translate (Translate)


Для создания режима захвата флага используем энтити item_teamflag(en) - это будет сам флаг. Флаги члены команды должны нести на свою базу - func_capturezone(en) - браш-энтити. Это что то типа области, куда нужно доставить и откуда нужно украсть доки. Хотя item_teamflags и есть по идее флаг для захвата, но в игре будет отображаться как портфель с документами или просто "доки".

Энтити и input/output позволят сделать нам некоторые очень интересные с флагами вещи в Team Fortress 2.


Основа 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(en) энтити, models/props_gameplay/sign_gameplay01_witharrow_r_sm.mdl Больше об устройстве карт можно почитать в TF2 Design Theory(en) - теории дизайна.

Энтити 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

Note.pngПримечание:Зона захвата команды не обязательно должна быть в том же месте, где и флаг, она может быть расположена гду угодно на карте. Однако, если игрок из вражеской команды прикоснется к ней, неся флаг, то он увидит сообщение, "Доставьте ФЛАГ на ВАШУ БАЗУ".

Нейтральный флаг

Если в опциях флага item_teamflag значение team поставить any (любой), то этот флаг будет нейтральным, то есть его смогут захватить члены любой из команд. Нейтральные портфели имеют серый цвет окраски.

Icon-Bug.pngБаг:Имейте ввиду, что когда вы несете нейтральный флаг, на худе будет показано, что вы несете вражеский флаг.  [todo tested in?]

Многократный флаг (одновременный)

Игрок может захватывать любой флаг, не принадлежащий его команде. Теоретически, можно сделать так много флагов, сколько пожелает ваша "безумная" фантазия. (Как это сделать, думаю, вы и так знаете.) Существовал даже баг: игрок может вполне "спереть" все вражеские и нейтральные флаги, которые есть на карте, но захватить получится только один, остальные застревали в нем.

Многократный флаг (последовательный)

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

Имя флага

Для начала, удостоверьтесь в том, что у вас на карте есть несколько энтитей item_teamflags, и все они имеют свои имена (name) в опциях. В нашем примере мы сделаем 3 месторасположения нейтрального (можете вполне поэкспериментировать с флагами отдельных команд) флага, в опциях - team - any, там же даем имена флагам - flag1, flag2, и flag3. Не забудьте сделать зону захвата для каждой команды - func_capturezones.

Start disabled

Во всех ваших флагах, которые должны будут появляться после захвата предыдущего, в опциях должны иметь значение Start Disabled - yes. В нашем примере только flag1 имеет значение Start Disabled - no.

Outputs флага

Второй последовательный флаг и его output'ы.

Выберите флаг, который вы хотели бы сделать "первой жертвой" грязных рук игроков, в нашем примере это flag1. В его опциях (Alt+Enter) нужно будет поставить Output'ы, для того чтобы включить в игру следующий флаг и убрать этот. Смотрим ниже и ставим все как на рисунке:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapture flag2 Enable 0.00 No
Io11.png OnCapture flag1 Disable 0.00 No

Для следующих флагов делаем так же, убирая предыдущие и ставя следующие.

Собственно все, мы сделали 3 последовательно идущих друг за другом флага.

Обратный CTF

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

CTF-футбол

Это режим типа Обратный CTF с нейтральным флагом. Подобно футболу, нужно захватить флаг и принести его на вражескую базу. Bombing Run режим игры подобен тому, что есть в Unreal Tournament.

Теория дизайна

  • Комната с флагом должна иметь достаточно хорошие места для защиты и атаки, по крайней мере 2 выхода и хорошие места для укрытия.
  • Поменять брифинг миссии, если вы делаете какой то нестандартный режим, можно в этом туторе - manually change the mission briefing(en).
  • Не забывайте ставить ориентиры для флагов, чтобы их проще было заметить.

См. Также