Ru/Creating a box dropper: Difference between revisions
No edit summary |
m (obsolete language category) |
||
(9 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Раздатчик кубов|Creating a box dropper}} | ||
|title=Раздатчик кубов | |||
| | |||
}} | |||
В этой статье будет шаг за шагом показано, как создать "раздатчик кубов", который есть во всех тестовых камерах. Раздатчики могут быть использованы, чтобы дать игроку новый утяжеленный куб всякий раз, когда предыдущий уничтожен. | В этой статье будет шаг за шагом показано, как создать "раздатчик кубов", который есть во всех тестовых камерах. Раздатчики могут быть использованы, чтобы дать игроку новый утяжеленный куб всякий раз, когда предыдущий уничтожен. | ||
Line 9: | Line 6: | ||
== Создание == | == Создание == | ||
=== Шаг 1 === | === Шаг 1 === | ||
Создайте энтити <code> | Создайте энтити <code>{{L|prop_dynamic}}</code> используя {{L|entity tool}}. Затем выберите модель <code>models/props/box_dropper.mdl</code> и выключите тени(Disable shadows). После этого создайте <code>prop_dynamic</code> и выберите модель <code>models/props/box_dropper_cover.mdl</code> и дайте ему имя <code>box_dropper_model_cover</code>. Совместите две модели так, чтобы они находились в том же месте, где должен находится раздатчик. | ||
<gallery> | <gallery> | ||
Image:Box dropper models.jpg|Раздатчик | Image:Box dropper models.jpg|Раздатчик | ||
Line 15: | Line 12: | ||
=== Шаг 2 === | === Шаг 2 === | ||
Далее надо создать дыру в потолке, откуда будут выпадать кубы. Мы используем | Далее надо создать дыру в потолке, откуда будут выпадать кубы. Мы используем {{L|Hammer Arch Properties|arch tool}}. Делаем арку <code>128l*128w*16h</code>(длина, ширина, высота) вокруг нашего <code>prop_dynamic</code> со следующими настройками: | ||
:'''Wall width''': 24 | :'''Wall width''': 24 | ||
:'''Number of Sides''': 8 | :'''Number of Sides''': 8 | ||
Line 22: | Line 19: | ||
:'''Add Height''': 0 | :'''Add Height''': 0 | ||
Далее используем | Далее используем {{L|Hammer Vertex Tool|vertex manipulation tool}}, чтобы переместить углы арки так, чтобы она напоминала квадрат с отверстием в середине. После этого покройте внутренний край арки текстурой <code>metal/metalwall61f</code>. Нижнюю часть арки покройте текстурой <code>concrete/concrete_modular_ceiling001a</code>. | ||
<gallery> | |||
Image:Box dropper arch.jpg|Арка | |||
Image:Box dropper arch2.jpg|Арка после использования Vertex tool | |||
Image:Box dropper arch3.jpg|Покрытая текстурами арка | |||
</gallery> | |||
=== Шаг 3 === | === Шаг 3 === | ||
Line 33: | Line 36: | ||
=== Шаг 4 === | === Шаг 4 === | ||
Создайте маленькую <code>128w*128l*112h</code> комнату над раздатчиком, покрытую текстурой | Создайте маленькую <code>128w*128l*112h</code> комнату над раздатчиком, покрытую текстурой {{L|nodraw}}. Далее мы делаем куб. Создайте энтити <code>{{L|prop_physics}}</code> посередине комнаты и установите модель <code>models/props/metal_box.mdl</code>, дайте ему имя <code>box</code>. Укажите ему следующие Outputs: | ||
{| {{OutputsTable}} | {| {{OutputsTable}} | ||
| [[ | | [[File:Io21.png]] || OnOutOfWorld || !activator || Kill || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io12.png]] || OnOutOfWorld || logic_drop_box || Trigger || || 0.00 || Yes | ||
|} | |} | ||
Создайте <code> | Создайте <code>{{L|point_template}}</code> посередине куба. Дайте ему имя <code>box_template</code> и в <code>Template 1</code> укажите <code>box</code>. Создайте <code>{{L|env_entity_maker}}</code> где-нибудь в верху шахты и назовите его <code>entity_box_maker</code>, в <code>Point_template to spawn</code> укажите <code>box_template</code>. | ||
Создайте в любом месте на карте <code> | Создайте в любом месте на карте <code>{{L|filter_activator_name}}</code>. Задайте ему имя <code>filter_boxes</code>, в <code>Filter Name</code> укажите <code>box</code>. | ||
=== Шаг 5 === | === Шаг 5 === | ||
Создайте браш <code>96w*96l*4h</code> покрытый текстурой nodraw под крышкой раздатчика. Преобразуйте этот браш в энтити <code> | Создайте браш <code>96w*96l*4h</code> покрытый текстурой nodraw под крышкой раздатчика. Преобразуйте этот браш в энтити <code>{{L|func_brush}}</code>. Укажите ему имя <code>stop_tube_plugging</code>, и укажите <code>Start disabled</code> на ''Yes''. | ||
Далее создайте <code>128w*128l*128h</code> [[Tool_textures#trigger|Триггер]] вокруг модели самого раздатчика. Преобразуйте его в <code> | Далее создайте <code>128w*128l*128h</code> [[Tool_textures#trigger|Триггер]] вокруг модели самого раздатчика. Преобразуйте его в <code>{{L|trigger_multiple}}</code> и дайте ему имя <code>trigger_box_dropper_clear</code>, задайте <code>Start disabled</code> на ''Yes'' и в <code>Filter Name</code> укажите "<code>filter_boxes</code>". Отправляйтесь во флажки, уберите флаг с "Clients" и поставьте флаг на "Physics objects". Задайте следующие output’ы: | ||
{| {{OutputsTable}} | {| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnEndTouch || entity_box_maker || ForceSpawn || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnEndTouch || box_dropper_model_cover || SetAnimation || close || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnEndTouch || stop_tube_plugging || Enable || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io21.png]] || OnEndTouch || !self || Disable || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnEndTouch || stop_tube_plugging || Disable || || 2.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io21.png]] || OnTrigger || !activator || Wake || || 0.00 || No | ||
|} | |} | ||
Line 72: | Line 75: | ||
=== Шаг 6 === | === Шаг 6 === | ||
Создайте <code> | Создайте <code>{{L|logic_relay}}</code> и дайте ему имя <code>logic_drop_box</code>. Задайте ему следующие output’ы: | ||
{| {{OutputsTable}} | {| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || box_dropper_model_cover || SetAnimation || open || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || stop_tube_plugging || Disable || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || trigger_box_dropper_clear || Enable || || 0.00 || No | ||
|} | |} | ||
=== Шаг 7 === | === Шаг 7 === | ||
Создайте брашы и используйте | Создайте брашы и используйте {{L|clipping tool}} чтобы придать им форму, как показано на скриншоте ниже. Преобразуйте их в <code>{{L|func_detail}}</code> entity. | ||
Line 96: | Line 99: | ||
=== Step 2 === | === Step 2 === | ||
Установите триггер для отправки команды "Trigger" в энтити <code>logic_drop_box</code>. Это можно сделать несколькими способами, используя <code> | Установите триггер для отправки команды "Trigger" в энтити <code>logic_drop_box</code>. Это можно сделать несколькими способами, используя <code>{{L|logic_auto}}</code>, чтобы создавать куб при старте уровня, используя <code>{{L|trigger_once}}</code> чтобы создавать куб, когда игрок зайдет в комнату или используя <code>{{L|trigger_look}}</code> для создания куба, когда игрок посмотрит на раздатчик. | ||
=== Step 3 === | === Step 3 === | ||
Если на карте есть | Если на карте есть {{L|Creating a portal/object fizzler|Поле антиэкспроприации}} или {{L|Creating poison water|Токсичная вода}}, то куб должен заново спавниться, если тот утерян. Для <code>поля антиэкспроприации</code> или <code>{{L|trigger_portal_cleanser}}</code> надо добавить output ''OnDissolveBox''. Выглядеть это должно так: | ||
{| {{OutputsTable}} | {| {{OutputsTable}} | ||
| [[ | | [[File:Io21.png]] || OnDissolveBox || logic_drop_box || Trigger || || 0.00 || No | ||
|} | |} | ||
Line 107: | Line 110: | ||
Для того, чтобы сделать респавн куба, если тот утонет в токсичной воде, надо создать <code>trigger_multiple</code> в "Токсичной воде", в фильтрах надо указать <code>filter_boxes</code>, во флажках надо поставить флаг на Physics objects, со следующими настройками: | Для того, чтобы сделать респавн куба, если тот утонет в токсичной воде, надо создать <code>trigger_multiple</code> в "Токсичной воде", в фильтрах надо указать <code>filter_boxes</code>, во флажках надо поставить флаг на Physics objects, со следующими настройками: | ||
{| {{OutputsTable}} | {| {{OutputsTable}} | ||
| [[ | | [[File:Io21.png]] || OnStartTouch || !activator || Kill || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnStartTouch || logic_drop_box || Trigger || || 0.00 || No | ||
|} | |} | ||
== Смотрите также == | == Смотрите также == | ||
* | * {{L|Portal Level Creation|Создание уровней Portal}} | ||
{{ACategory|Level Design}} | |||
[[Category:Russian]] | [[Category:Russian]] | ||
{{ACategory|Portal}} |
Latest revision as of 03:43, 22 August 2024
В этой статье будет шаг за шагом показано, как создать "раздатчик кубов", который есть во всех тестовых камерах. Раздатчики могут быть использованы, чтобы дать игроку новый утяжеленный куб всякий раз, когда предыдущий уничтожен.
Создание
Шаг 1
Создайте энтити prop_dynamic
используя entity tool . Затем выберите модель models/props/box_dropper.mdl
и выключите тени(Disable shadows). После этого создайте prop_dynamic
и выберите модель models/props/box_dropper_cover.mdl
и дайте ему имя box_dropper_model_cover
. Совместите две модели так, чтобы они находились в том же месте, где должен находится раздатчик.
Шаг 2
Далее надо создать дыру в потолке, откуда будут выпадать кубы. Мы используем arch tool . Делаем арку 128l*128w*16h
(длина, ширина, высота) вокруг нашего prop_dynamic
со следующими настройками:
- Wall width: 24
- Number of Sides: 8
- Arc: 360
- Start Angle: 0
- Add Height: 0
Далее используем vertex manipulation tool , чтобы переместить углы арки так, чтобы она напоминала квадрат с отверстием в середине. После этого покройте внутренний край арки текстурой metal/metalwall61f
. Нижнюю часть арки покройте текстурой concrete/concrete_modular_ceiling001a
.
Шаг 3
Создаем шахту над нашим раздатчиком. Внутренние размеры шахты должны быть 128w*128l
(ширина, длина). Высота шахты должна составить 256 юнитов. Разделите шахту на две стороны по 128 юнитов каждая. Нижнюю сторону покройте текстурой metal/metalwall_bts_006a
, верхнюю сторону покройте текстурой metal/metalwall_bts_006b_gradient
. Наконец, потолок шахты покройте текстурой lights/light_orange001
.
Шаг 4
Создайте маленькую 128w*128l*112h
комнату над раздатчиком, покрытую текстурой nodraw . Далее мы делаем куб. Создайте энтити prop_physics
посередине комнаты и установите модель models/props/metal_box.mdl
, дайте ему имя box
. Укажите ему следующие Outputs:
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnOutOfWorld | !activator | Kill | 0.00 | No | |
![]() |
OnOutOfWorld | logic_drop_box | Trigger | 0.00 | Yes |
Создайте point_template
посередине куба. Дайте ему имя box_template
и в Template 1
укажите box
. Создайте env_entity_maker
где-нибудь в верху шахты и назовите его entity_box_maker
, в Point_template to spawn
укажите box_template
.
Создайте в любом месте на карте filter_activator_name
. Задайте ему имя filter_boxes
, в Filter Name
укажите box
.
Шаг 5
Создайте браш 96w*96l*4h
покрытый текстурой nodraw под крышкой раздатчика. Преобразуйте этот браш в энтити func_brush
. Укажите ему имя stop_tube_plugging
, и укажите Start disabled
на Yes.
Далее создайте 128w*128l*128h
Триггер вокруг модели самого раздатчика. Преобразуйте его в trigger_multiple
и дайте ему имя trigger_box_dropper_clear
, задайте Start disabled
на Yes и в Filter Name
укажите "filter_boxes
". Отправляйтесь во флажки, уберите флаг с "Clients" и поставьте флаг на "Physics objects". Задайте следующие output’ы:
Шаг 6
Создайте logic_relay
и дайте ему имя logic_drop_box
. Задайте ему следующие output’ы:
Шаг 7
Создайте брашы и используйте clipping tool чтобы придать им форму, как показано на скриншоте ниже. Преобразуйте их в func_detail
entity.
Теперь раздатчик готов и может быть использован на карте.
Внедрение на карту
Step 1
Поместите раздатчик на потолке там, где куб должен упасть.
Step 2
Установите триггер для отправки команды "Trigger" в энтити logic_drop_box
. Это можно сделать несколькими способами, используя logic_auto
, чтобы создавать куб при старте уровня, используя trigger_once
чтобы создавать куб, когда игрок зайдет в комнату или используя trigger_look
для создания куба, когда игрок посмотрит на раздатчик.
Step 3
Если на карте есть Поле антиэкспроприации или Токсичная вода , то куб должен заново спавниться, если тот утерян. Для поля антиэкспроприации
или trigger_portal_cleanser
надо добавить output OnDissolveBox. Выглядеть это должно так:
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnDissolveBox | logic_drop_box | Trigger | 0.00 | No |
Для того, чтобы сделать респавн куба, если тот утонет в токсичной воде, надо создать trigger_multiple
в "Токсичной воде", в фильтрах надо указать filter_boxes
, во флажках надо поставить флаг на Physics objects, со следующими настройками:
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnStartTouch | !activator | Kill | 0.00 | No | |
![]() |
OnStartTouch | logic_drop_box | Trigger | 0.00 | No |