Подготовка
Перед началом, скачайте необходимые спрайты с MEGA.
Поместите спрайты между маркерами S_START и S_END.
И укажите необходимое смещение (offset)
Пишем код
Сделаем так, что-бы фаерболл импа, вызывал сцену фаталити. Для этого в 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, среди всего этого толерантного мусора, получился вполне удачным.
Не поленитесь, и подпишитесь на его канал, он этого заслуживает.