Предисловие
Создавать проджектайлы(снаряды) даже проще чем декорации. Для этого:
- Используйте свойство Projectile
- Установите нужную высоту и радиус(Height и Radius)
- Установите 2 стейта — Spawn и Death, стейт Spawn Должен быть зациклен(loop).
Создаем снаряд.
Сначала скачайте спрайты для снаряда с MEGA.

Затем, cкопируйте данный код, к себе в DECORATE.
actor blueProj
{
height 8
radius 6
damage 5
speed 20
PROJECTILE
states
{
Spawn:
CBUL AB 4 bright
loop
Death:
CBUL CDE 6 bright
stop
}
}
- height — высота снаряда
- radius — радиус снаряда
- damage — урон, наносимый при попадании
- speed — скорость с которой летит снаряд
- PROJECTILE — свойство, которое говорит декорейту, что данный актор является снарядом.
Остальной код, наверное, вам понятен. Если нет, задавайте свои вопросы в комментариях.
Снаряд создан. Его будет выпускать монстр randMonster с помощью фукнкции A_CustomMissile. Код измененного стейта Missile для актора randMonster оставлю внизу. Монстра randMonster мы создали в предыдущих уроках.
Missile:
RANF A 1 A_FaceTarget
RANF AAAAAAAAAAAAA 1 A_CustomMissile("blueProj")
goto See
Сохраняем, запускаем.

Снаряд создан, но он не издает звуков, и это плохо. Чтобы исправить это, мы добавим 2 звука:
- SeeSound — звук который проигрывается во время выстрела.
- DeathSound — звук который проигрывается при столкновении.
Эти звуки вы можете скачать с MEGA.
Добавляем звучание.
Добавьте следующий строки к себе в DECORATE, можете добавить их в любое место(в пределах актора blueProj), главное не трогайте блок states.
seesound "blast1"
deathsound "blast2"
Синтаксис у seesound следующий:
seesound "название_переменной"
- название_переменной — это название той самой переменной в которой хранится звук.
У deathsound синтаксис такой же как и в seesound.
Данный код, пока, не может проиграть звук, потому что переменных blast1 и blast2 не существует. Их нужно добавить в SNDINFO. SNDINFO это такой же текстовый файл как и DECORATE.
Работаем с SNDINFO
Создайте в своем ваднике файл SNDINFO. В него напишите следующее.
BLAST1 BLAST1
BLAST2 BLAST2
Синтаксис у SNDINFO следующий:
путь_до_звука название_переменной
В нашем случае, путь_до_звука это название звука(расширение файла указывать не нужно), потому что SNDINFO и звук, находятся в одном месте. Название_переменной может быть любым, но ради простоты, я выбрал то же название что и файла.
Сохраняем, запускаем. Теперь мы можем слышать звуки стрельбы.

Последние штрихи.
Еще, можно изменить тип рендера актора(снаряда). Добавьте следующую строку к себе в декорейт. Больше о типах рендера можно узнать на вики.
renderstyle add
Например, тип рендера add делает актор прозрачным.
Сохраняем, проверяем.
Итоговый результат.
