Итак, сначала рисуем место где будут стоять витражи. Рисуем основную комнату, с высотой к примеру 176(1), дорисовываем комнату для помещения витража, с высотой 128(2)(прим. для сектора с витражом рекомендую всегда брать высоту 128, а то фигого задействует).
Затем приделываем сектор виража и поднимаем пол до потолка (3).
теперь поставим текстуры к передней стенке(А). На Front Side lower ставим GLASS01, GLASS03 лио GLASS05. На Front side middle и Back side middle ставим GLASS07. На Front side upper ставим GLASS02 либо GLASS04 либо GLASS06.
перед витражом ставим Map spot(9001),"это буду осколки после того как разобъется вираж".стаим им Thing tag 1. далее сектору витража присваеваем Sector tag 2.
Теперь откроем скрипты(меню Scripts > edit BEHIVARIOR lump...)
и пишем следующий скрипт
Code
#include "common.acs"
script 1 (int arg0, int arg1, int arg2)
{
int var0;
Floor_LowerInstant(arg0, 0, 16);
thingsound(arg1, "GlassShatter", 127);
delay(const:1);
var0 = 20;
while(var0 > 0)
{
var0--;
Thing_ProjectileGravity(arg1, random(54, 63), random(0, 255), random(10, 40), random(5, 20));
Thing_ProjectileGravity(arg2, random(54, 63), random(0, 255), random(10, 40), random(5, 20));
}
}
Теперь Компилируем (Compile) его и закрываем его.
Присваеваем передней стенке витража (А) следующие параметры:
- Linedef action 80 (выполнение скрипта);
- Script Number 1 (указывает что будет выполнятся первый скипт);
- map number 1 (указывает что скрипт будет на первой карте);
- Script argument 1 : 2 (Здесь указывается сектор витража);
- Script argument 2 : 1 (Здесь указываются Map spots'ы где будут спаунится осколки);
Также поставьте Activation на Projectile hits.
Вот кажется и все, сохраняем и тестируем, если не получится смотрим glass_painting_tutorial.wad