Вот и подошли к дверям... Основных типов дверей 2: отъезжающие и открывающиеся. Стандартный размер дверей 64х4х96 юнитов. 1. Отъезжающие Давайте сначала разберемся каким образом можно реализовать открытие дверей: 1. От кнопки\рычага 2. От use'a 3. От триггера Кнопка\рычаг Сначала, конечно, нужно сделать проем для дверей. Теперь, когда проем готов, вставляем в него браш-дверь. Примерно так: Теперь отсылаем браш-дверь to Entity в func_door. Потом определяем такие параметры: Name - если дверь открывать кнопкой\рычагом (и триггером), то этот параметр обязателен - с помощью него мы и активируем дверь. Speed - скорость открытия дверей. Move sound - звук при открытии. Stop sound - звук после открытия\закрытия. Delay before close - время до закрытия (после открытия:) ). Если стоит значение "-1" то дверь не будет закрываться (только в одном раунде - в начале следующего она снова будет закрыта). Damage inflicted when blocked - повреждения, которые нанесутся игроку если от встанет в проеме когда дверь будет закрыватся - его этой дверью хряснет:). Target - имя обьекта, который дверь после открытия активирует (короче, это не обязательно!). Ну а остальные параметры не важны (лично я ими никогда не пользуюсь) - не трогайте их... Flags (флаги): Starts open - при начале раунда открыта. Passable - делает дверь нематериальной - через нее можно пройти. Toggle - если флаг включен, то двери после открытия, закрыть можно будет только еще раз активировав (кнопкой, триггером, use'ом...). Use only - Дверь будет открыватся только от Use'a (стандартная клавиша "Е" - в игре). З.Ы. Вот я и рассказал как двери делать открывающимися от Use'a:) Остальные флаги не важны... Кстати, в закладке Class info (там где вы выставляете параметры энтитям) есть такая вещь, как Angle: эта стрелочка указывает в какую сторону (на 3D-виде) будет отъезжать дверь. Также можно поставить Up\down, чтобы дверь отъезжала, соответственно, вверх\вниз. Теперь надо сделать кнопку\рычаг для открытия дверей. Кнопка Делаем где-то около дверей (ну, как хотите) маленький браш-кнопку (закрашенный кнопочной текстурой). Вот так: Теперь отсылаем браш-кнопку to Entity в func_button со следующими пропертис: Targetted object - здесь вписываем имя двери, которую нужно этой кнопкой открыть. Delay before reset - время, через которое кнопку снова можно будет активировать. Лучше ставьте "0". Во флагах ставьте Don't move чтобы кнопка не двигалась после нажатия. Если не отметить этот флаг, то кнопка будет двигатся в направлении указаном стрелочкой Angle. Флаг Touch activates - если отмечен, то кнопка активируется когда до нее дотронется игрок, а не активирует. Вот и готова кнопка! Рычаг Это, по моему, совсем ненужная фича, но если кому-то нужно, то вот рецепт создания: Сначала нам нужна дверь (!обязательно дайте ей имя!). Когда дверь готова, делаем около нее браш-рычаг, можно сделать его из нескольких брашей: Потом делаем ось вращения - браш закрашенный текстурой ORIGIN (точкой вращения служит центр браша). Запомните это - еще понадобится! Получится примерно так: Далее выделяем наш рычаг (браш\браши) и ось вращения (ORIGIN-браш), и отправляем его to Entity в func_rot_button c такими пропертис: Targetted object - имя двери которую надо открыть. Speed - скорость вращения рычага. Delay before reset - время через которое снова можно будет активировать рычаг после его использования. Distance (deg) - угол вращения в градусах. Если поставить 90 - то рычаг повернется на 90 градусов, ну и так далее... Flags\флаги Not solid - если включен, то в игре рычаг будет нематериальным - не будет цеплять игрока (я всегда это ставлю, если конечно пользуюсь рычагом вместо кнопки:) ). Reverse dir - будет вращатся в обратную сторону. По дефолту крутится, вроде-бы, против часовой стрелки. Toggle - короче, если нажали рычаг, он покрутился, а обратно не будет - только если его снова нажать. X asis и Y asis - ну ось, по которой будет крутится рычаг. Если как на рисунке, то Y. Touch activates - активируется только от прикосновения игрока. Фух, разобрались... Триггер (trigger) Триггер - это браш окрашенный текстурой AAATRIGGER и отосланный to Entity в trigger_*** энтити (trigger_multiple, trigger_once...). В игре триггер невидим! Но после того как игрок пересечет его (или просто зацепит), то он активирует указанный обьект. Чтобы открыть дверь триггером, надо сначала создать ее (дверь), и дать ей уникальное имя. Когда готова, то создаем около нее браш-триггер окрашенный текстурой AAATRIGGER, и расположим ее около двери. Вот так: Теперь выделяем браш-триггер, и отсылаем to Entity в trigger_multiple с такими параметрами: Target - впишите сюда имя двери. Когда игрок пересечет триггер - он активирует дверь, и она откроется. На рисунке триггер расположен только с одной стороны двери, в этом случае дверь можно будет открыть только с этой стороны. Обычно надо распологать два триггера с разных сторон двери (с одинаковыми параметрами). Delay before reset - время, через которое триггер снова можно будет активировать после одного использования (ставьте 0). Flags\флаги Pushables - если этот флаг установлен, то триггер можно будет активировать не только игрокам, но и затолкнув в него, например, ящик (func_pushable). Вот и рассказал вам как сделать отъезжающую дверь. 2. Открывающиеся Открывающиеся двери (как на cs_militia) активируются как и отъезжающие (триггер, кнопка, use). Делаем точно так-же как и в случае с отъезжающими дверьми: дырка, браш-дверь... Когда браш-дверь готова (to Entity не отправлять!), строим ось - дверь-же вращаемая, поэтому нужна ось вращения. Точкой вращения будет центр ORIGIN-браша. Должно получится где-то так: Потом делайте браш-дверь и браш-ось (!выделять оба обьекта!) и отправляйте to Entity в func_door_rotating с такими пропертис: Точно такие-же как и у func_door'а, только еще: Distance (deg) - угол вращения. Поставите 90 - повернется на 90 градусов. Ну, вы поняли:). Ну а остальное не трогайте... Flags\флаги Starts open - в начале раунда дверь будет открыта. Revers dir - ставьте чтобы дверь открывалась в противоположную сторону. Toggle - если отмечена, то после открытия двери она не закроется пока снова ее не активировать. X asis и Y asis - ось по которой дверь будет открыватся. Короче, не трогайте эти флаги - не будет-же дверь у вас вверх или вниз открыватся:). Use only - если отмечена, то дверь можно будет открыть только активировав (в игре). Двери еще можно сделать со стеклом. Для этого "вырежьте" в дверях (func_door_rotating) дырку, и вставьте туда другую дверь (тоже func_door_rotating) с текстурой стекла. Далее нужно организовать одновременное открытие дверей и стекла, и с одной скоростью. Тоесть, стекло должно вертеться вместе с дверью, по такой-же оси, как будто стекло и дверь, это одно целое, и скорость открытия обоих дверей должна быть одинаковая. Потом, дайте одно имя и двери с дыркой, и двери-стеклу, и открывайте их, например, с помощью триггера. Теперь будет дверь со стеклом... НО! Стекло должно быть прозрачное. Для этого просто измените параметры отображения двери-стекла на такие-же, как и у обычного стекла (Render mode: Texture, FX amount: от 0 до 255 (прозрачность стекла)). Точно также, со стеклом, можно сделать не вращающуюся дверь, а отъезжающую. Просто и дверь, и дверь-стекло должны одновременно активироваться (с помощью имени), и вместе съезжать в одну сторону, с одинаковой скоростью. И напоследок еще одно важное примечание: если имя двери не указано, тогда она будет открываться автоматически, когда игрок к ней притронется (func_door_rotating будет открываться от игрока, как на cs_militia). Вот и разобрались с дверьми. Теперь попробуйте реализовать это на своей карте. |