ACS.Делаем добивания (Fatality). Часть 2.

Подготовка

Перед началом, скачайте необходимые спрайты с MEGA.

Поместите спрайты между маркерами S_START и S_END.

Это изображение имеет пустой атрибут alt; его имя файла - fatal3.jpg

И укажите необходимое смещение (offset)

Это изображение имеет пустой атрибут alt; его имя файла - fatal4-1024x538.jpg

Пишем код

Сделаем так, что-бы фаерболл импа, вызывал сцену фаталити. Для этого в DECORATE, добавим к фаерболлу атрибут DamageType.

Actor CupImpBall : DoomImpBall replaces DoomImpBall 
{
  DamageType Cup
}

И добавим к нашему игроку, новый стейт «Death.Cup«

ACTOR MyPlayer : DoomPlayer {
  states {
    Death.Cup:
      TNT1 A 1 ACS_NamedExecute("FatalityCamera",0,0,0,0)
      PLAC ABCDEFGHIJ 3
      PLAC J -1
      Stop
    }
}

Стейт Death.Cup, вызовется лишь тогда, когда игрок умрет от проджектайла (в нашем случае фаерболла), с DamageType = Cup. Вы можете создать другие DamageType, и прописать им, соответствующие Death стейты, по следующему шаблону:

Death.название_Damage_Type

Кстати, таким же способом, реализована система Fatality в Brutal Doom и HDoom. Теперь, перейдем к главному, к разбору кода.

ACTOR MyPlayer : DoomPlayer {

Наш актор MyPlayer наследуется от класса игрока (DoomPlayer)

TNT1 A 1 ACS_NamedExecute("FatalityCamera",0,0,0,0)

Как только игрок умер (Death.Cup), вызывается скрипт, который создает камеру, за спиной игрока. Данный скрипт, мы сделали в уроке ACS. Делаем добивания (Fatality). Часть 1.

PLAC ABCDEFGHIJ 3
PLAC J -1
Stop

Дальше, воспроизводится анимация нашего Fatality, в нашем случае, кружка раздавливает думера.

Игрок создан, теперь у него появился стейт Death.Cup, отвечающий за анимацию Fatality. Последнее что осталось, это зарегистрировать класс игрока в MAPINFO. Добавьте туда следующий код:

GameInfo
{
   PlayerClasses = "MyPlayer"
}

Готово, теперь смерть от фаерболла импа, стала еще более болезненной.

Заключение.

Теперь, вы можете создавать собственные добивания, указывая проджектайлам DamageType и прописывая соответствующие Death стейты, для каждого DamageType.

Также, отдельно хочется поблагодарить Dungeon and Doom Marine, за объяснение скрипта камеры, и, за предоставление исходного кода своего мода. Босс Dio из JOJO, среди всего этого толерантного мусора, получился вполне удачным.

Не поленитесь, и подпишитесь на его канал, он этого заслуживает.

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

avatar

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

Please disable your adblocker or whitelist this site!