Ru/Creating a box dropper

В этой статье будет шаг за шагом показано, как создать "раздатчик кубов", который есть во всех тестовых камерах. Раздатчики могут быть использованы, чтобы дать игроку новый утяжеленный куб всякий раз, когда предыдущий уничтожен.
__NOTOC__
== Создание ==
=== Шаг 1 ===
Создайте энтити используя . Затем выберите модель models/props/box_dropper.mdl и выключите тени(Disable shadows). После этого создайте prop_dynamic и выберите модель models/props/box_dropper_cover.mdl и дайте ему имя box_dropper_model_cover. Совместите две модели так, чтобы они находились в том же месте, где должен находится раздатчик.
Image:Box dropper models.jpg|Раздатчик
=== Шаг 2 ===
Далее надо создать дыру в потолке, откуда будут выпадать кубы. Мы используем . Делаем арку 128l*128w*16h(длина, ширина, высота) вокруг нашего prop_dynamic со следующими настройками:
:Wall width: 24
:Number of Sides: 8
:Arc: 360
:Start Angle: 0
:Add Height: 0
Далее используем , чтобы переместить углы арки так, чтобы она напоминала квадрат с отверстием в середине. После этого покройте внутренний край арки текстурой metal/metalwall61f. Нижнюю часть арки покройте текстурой concrete/concrete_modular_ceiling001a.
Image:Box dropper arch.jpg|Арка
Image:Box dropper arch2.jpg|Арка после использования Vertex tool
Image:Box dropper arch3.jpg|Покрытая текстурами арка
=== Шаг 3 ===
Создаем шахту над нашим раздатчиком. Внутренние размеры шахты должны быть 128w*128l(ширина, длина). Высота шахты должна составить 256 юнитов. Разделите шахту на две стороны по 128 юнитов каждая. Нижнюю сторону покройте текстурой metal/metalwall_bts_006a, верхнюю сторону покройте текстурой metal/metalwall_bts_006b_gradient. Наконец, потолок шахты покройте текстурой lights/light_orange001.
Image:Box_dropper_shaft.jpg|Вид снаружи 
Image:Box_dropper_shaft2.jpg|Вид внутри с отключенным nodraw
=== Шаг 4 ===
Создайте маленькую 128w*128l*112h комнату над раздатчиком, покрытую текстурой . Далее мы делаем куб. Создайте энтити посередине комнаты и установите модель models/props/metal_box.mdl, дайте ему имя box. Укажите ему следующие Outputs:
	OnOutOfWorld	!activator 	Kill 	 	0.00	No
	OnOutOfWorld	logic_drop_box	Trigger	 	0.00	Yes
Создайте посередине куба. Дайте ему имя box_template и в Template 1 укажите box. Создайте где-нибудь в верху шахты и назовите его entity_box_maker, в Point_template to spawn укажите box_template.
Создайте в любом месте на карте . Задайте ему имя filter_boxes, в Filter Name укажите box.
=== Шаг 5 ===
Создайте браш 96w*96l*4h покрытый текстурой nodraw под крышкой раздатчика. Преобразуйте этот браш в энтити . Укажите ему имя stop_tube_plugging, и укажите Start disabled на Yes.
Далее создайте 128w*128l*128h Триггер вокруг модели самого раздатчика. Преобразуйте его в и дайте ему имя trigger_box_dropper_clear, задайте Start disabled на Yes и в Filter Name укажите "filter_boxes". Отправляйтесь во флажки, уберите флаг с "Clients" и поставьте флаг на "Physics objects". Задайте следующие output’ы:
	OnEndTouch	entity_box_maker 	ForceSpawn 	 	0.00	No
	OnEndTouch	box_dropper_model_cover	SetAnimation	close 	0.00	No
	OnEndTouch	stop_tube_plugging 	Enable 	 	0.00	No
	OnEndTouch	!self 	Disable 	 	0.00	No
	OnEndTouch	stop_tube_plugging 	Disable 	 	2.00	No
	OnTrigger 	!activator 	Wake 	 	0.00	No
Image:Box_dropper_stop_plugging.jpg|The tube_stop_plugging brush
Image:Box_dropper_trigger.jpg|The trigger_box_dropper_clear brush
=== Шаг 6 ===
Создайте и дайте ему имя logic_drop_box. Задайте ему следующие output’ы:
	OnTrigger	box_dropper_model_cover 	SetAnimation	open 	0.00	No
	OnTrigger	stop_tube_plugging 	Disable 	 	0.00	No
	OnTrigger	trigger_box_dropper_clear	Enable 	 	0.00	No
=== Шаг 7 ===
Создайте брашы и используйте чтобы придать им форму, как показано на скриншоте ниже. Преобразуйте их в entity.
Теперь раздатчик готов и может быть использован на карте.
Image:Box_dropper_funnel.jpg|The sloped brushes
== Внедрение на карту ==
=== Step 1 ===
Поместите раздатчик на потолке там, где куб должен упасть.
=== Step 2 ===
Установите триггер для отправки команды "Trigger" в энтити logic_drop_box. Это можно сделать несколькими способами, используя , чтобы создавать куб при старте уровня, используя чтобы создавать куб, когда игрок зайдет в комнату или используя для создания куба, когда игрок посмотрит на раздатчик.
=== Step 3 ===
Если на карте есть или , то куб должен заново спавниться, если тот утерян. Для поля антиэкспроприации или надо добавить output OnDissolveBox. Выглядеть это должно так:
	OnDissolveBox	logic_drop_box	Trigger	 	0.00	No
Для того, чтобы сделать респавн куба, если тот утонет в токсичной воде, надо создать trigger_multiple в "Токсичной воде", в фильтрах надо указать filter_boxes, во флажках надо поставить флаг на Physics objects, со следующими настройками:
	OnStartTouch	!activator 	Kill 	 	0.00	No
	OnStartTouch	logic_drop_box	Trigger	 	0.00	No
== Смотрите также ==
* 
Category:Russian