DECORATE. Делаем оружие.

Подготовка

Сначала, скачайте спрайты оружия 1, 2, 3. Затем, поместите эти спрайты в свой wad. И задайте спрайтам правильное смещение. Для спрайтов оружия это делается так:

А именно, выбирается смещение(Offsets) в режиме HUD. В этом режиме удобней перетаскивать изображение так как виден HUD игрока.

У CWEPF0 чуть поднимите оружие.

Теперь приступим к коду.

Создание оружия.

Скопируйте данный код к себе в DECORATE.

Разберем по порядку:

Все оружия дума наследуются от Weapon, таково правило декорейта.

Weapon.SelectionOrder — задает номер, который учитывается при выборе оружия. Когда у тебя кончаются патроны у оружия, игра автоматически меняет твое оружие на другое. Так вот, игра меняет оружие основываясь на числе Weapon.SelectionOrder.

Inventory.PickupSound — задает звук поднятия оружия.

Weapon.AmmoGive — задает изначальное количество патронов, которое ты получаешь когда поднимаешь оружие.

Weapon.AmmoUse — указывает, сколько патронов тратит оружие за выстрел.

Weapon.SlotNumber — указывает, какую кнопку надо нажать чтобы выбрать оружие.

Weapon.AmmoType — указывает тип патронов, которое использует данное оружие.

+Floatbob — флаг, заставляет актор(оружие) летать в воздухе перемещаясь вверх/вниз. Спрайт оружия(CWEPF0) должен быть слега приподнят(я имею ввиду смещение), чтобы было достаточно места на перемещение.

AttackSound — указывает звук выстрела

Теперь разберем стейты. Со стейтом Spawn вы уже знакомы, поэтому перейдем к стейту Ready.

Стейт Ready.

Разберем функцию A_WeaponReady.

  • A_WeaponReady — функция которая проверяет нажатие кнопки стрельбы и переключения между оружиями. Эта функция является обязательной и должна вызываться в стейте Ready.

Стейт Deselect.

Стейт Deselect вызывается в момент, когда ты переключаешь это оружие на другое. Рассмотрим новые функции.

  • A_Lower — это функция, которая перемещает спрайт оружия под экран.

Стейт Select.

Стейт Select вызывается в момент переключения на наше оружие. Рассмотрим новые функции.

  • A_Raise — функция, которая поднимает оружие из под экрана(перемещает спрайт оружие вверх).

Стейт Fire.

Стейт Fire вызывается когда игрок стреляет. Рассмотрим новые функции.

  • A_FireCustomMissile (название_актора_снаряда) — это функция, которая выстреливает снарядом (название_актора_снаряда) из оружия.

Функция A_FireCustomMissile очень похожа на A_CusstomMissile. Запомните, A_FireCustomMissile используется для выстрела из оружия, A_CusstomMissile используется для выстрела монстра.

Еще, в качестве аргумента A_FireCustomMissile я выбрал «blueProj«, это снаряд сделанный в прошлой статье. По желанию, можете заменить «blueProj» на «Rocket«.

Далее идет функция A_ReFire. Она возвращает к началу стейта Fire, если нажата кнопка выстрела. В нашем случае, если игрок нажимает кнопку выстрела, то происходит следующее.

Проигрываются, по кругу, 2 спрайта оружия.

1ый спрайт
2ой спрайт

Но когда игрок отжимает кнопку выстрела, проигрываются все 4 спрайта.

3ий спрайт
4ый спрайт

Последняя комманда:

  • Goto — комманда безусловного перехода. В нашем случае, актор перепрыгивает на стейт Ready.

Перепрыгивание на стейт Ready является обязательным, если этого не сделать, то оружие зависнет.

Ну вот и все, мы разобрали оружия в DECORATE. Тема получилась объемной, если есть вопросы, задавайте их в комментариях.

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!