Меню сайта


[DS]: Half-Life Server
[DS]: Half-Life Server


[DS]: CS:S GunGame v34 Server
[DS]: CS:S GunGame v34 Server


[DS]: CS:S v34 Server
[DS]: CS:S v34 Server


Поиск

add_newДобавить новость
Последние добавленные
Название игры: S.I.P: Out Life
Жанр: FPS, с элементами RPG
Язык: с++, скрипты lua
G API: DirectX 9
Сайт: sip-game.su
Группа Vk: vk....
Читать далее

<JAM>
m1-palinka


HL-HEV
hl-hev

DS-Servers
Статьи
Туториалы
Маппинг
Goldsrc
Создание карт
Стекла

Стекло прозрачное с одной стороны (бьющееся)



Стекло прозрачное с одной стороны (бьющееся)
Добавил: root
2013-01-07 13:12:43
29 просмотров

В этой статье мы продолжим наши эксперименты c односторонними стеклами и сделаем их разбиваемыми. Если Вы хорошо усвоили материал предыдущей статьи и поняли, как работает трюк с односторонним стеклом, то никаких проблем у Вас не возникнет. Статья взята с сайта http://countermap.counter-strike.net/Tutorials. Благодарим автора: Sam.

Итак, одностороннее стекло у нас уже есть. Теперь сделаем его разбиваемым. Для этого первое стекло, у которого одна сторона покрашена текстурой {BLUE, превратим из func_wall в func_breakable (выделяем в 3d-виде, жмем Alt-Enter и в списке выбираем func_breakable).

Теперь выставим свойства:

Name — glass1 (имя стекла, укажите обязательно);
Material type — Glass;
Strenght — 50 (в данном случае прочность стекла не важна, об этом чуть далее);
Render Mode — Solid;
FX Amount — 255

Как видите, параметры отображения прежние. Теперь выделяем второе стекло, которое полностью окрашено текстурой GLASSGREEN. Также превращаем в func_breakable и выставляем следующие свойства:

Name — glass1 (обязательно точно такое же имя, как и у первого стекла);
Material type — Glass;
Strenght — 50 (прочность);
Render Mode — Texture;
FX Amount — 70 (прозрачность от 0 до 255, чем ближе к 0, тем стекло прозрачнее)

Казалось бы, все — запускай игру и разбивай стекло. Но не все так просто. Стекла-то у нас два, следовательно, и разбивать надо 2 стекла, а игрок-то в полной уверенности, что стекло одно. Разбив одно из стекол, игрок с удивлением обнаружит второе и поймет, что его жестоко обманули :)

Наша задача состоит не только в том, чтобы игрока обмануть, но и чтобы он обмана не заметил :) Вот именно поэтому надо чтобы оба стекла разбивались одновременно, когда игрок разбивает только одно из них.

Перейдем к реализации этой идеи. Посмотрите на картинку ниже.

Вид сверху. Создаем прозрачный триггер поверх двух стекол



Пунктиром обозначен новый объект, который мы сейчас создадим. Это тоже func_breakable. Размеры у данного объекта точно такие же, как и у стекол, только по толщине несколько шире (шире чем оба стекла вместе взятые).

Закрасим все стороны func_breakable текстурой {BLUE. На рисунке ниже данный объект показан в 3d-виде (стекол не видно, т.к. новый объект должен быть немного толще, т.е. оба стекла находятся как бы внутри этого объекта).

Создаем func_breakable, со всех сторон окрашенный текстурой {BLUE



Свойства func_breakable следующие:

Target on break — glass1 (вписываем сюда имя двух стекол, оно одинаковое);
Material type — Glass;
Strenght — 1 (прочность*);
Render Mode — Solid;
FX Amount — 255

Вот и все. Теперь на самом деле игрок будет разбивать вовсе не стекла, а наш новый абсолютно прозрачный объект func_breakable. А тот, в свою очередь, мгновенно разобьет оба стекла сразу. Игрок обманут, стекла разбиты, трюк работает, можно и пивка попить :)

* Желаемую прочность стекол необходимо выставлять в параметре Strenght именно нового объекта func_breakable. Понятно, что игрок будет стрелять не в стекла, а в этот невидимый объект, поэтому прочность самих стекол в расчет не принимается.

Как говорила несколько лет назад в одной рекламе певица Валерия: «результат налицо»:

Левое стекло из func_wall неразбиваемое, правое из func_breakable - разбиваемое



Вот и все. Со стеклами разобрались.


oneway_glass.zip [15Кб] — в архиве карта-пример в форматах BSP и RMF.

§ 11.1 Бьющиеся и небьющиеся стекла
§ 11.2 Стекло прозрачное только с одной стороны
§ 11.3 Стекло прозрачное с одной стороны (бьющееся)

Поделиться:
Тэги:

DS-Servers.com
Copyright © 2012-2016. All Rights Reserved.
При копировании материала ссылка на источник обязательна
За материалы, размещенные пользователями, администрация сайта ответственности НЕ несет