Ну в игре есть соответствующая инструкция. Ах лана, вот те код)
Стандартный код рыцаря ада, собсна копнём чуть глубже.
У монстра есть стандартная зашитая в движок инструкция A_BruisAttack, поэтому в потоке mellee тупо ни чё нет, точнее при переходе в этот поток, игра сразу переходит в поток Missile. Mellee означает милийную или ближную атаку, а Missile обозначает атаку файрболлом. Зачем это объяснение, а за тем, что нам придётся таки переписать эти два потока под себя. Собсна правленый код:
Собсна что же я сделал, я в поток Melee добавил инструкцию A_CustomMeleeAttack(6), а в поток Missile добавил A_CustomMissile("BaronBall"). Первая инструкция обозначает удар в ближнем бою.
У этой инструкции есть ещё параметры, а именно:
A_CustomMeleeAttack ( ущерб,"звук попадания", "звук промаха", "дамаг тип", будет ли кровоточить актор при попадании)
ущерб - число, означает ущерб, который получаешь при попадании по тебе.
"звук попадания" - звук попадания, это звук, который будет звучать, когда по тебе попадают.
Пишется звук так же в ковычках"звук промаха" - звук, который воспроизведётся при промохе(если по тебе не попали, но монстр атаковал)
Пишется тоже в кавычках"дамаг тип" - это специальный параметр. Например ты захотел, чтобы у тебя монстр вырывал сердце при смерти, собсна этот параметр это и делает, указывает конкретный тип атаки, на сколько помню, сюда так же можно забить тип "пуфов" свой. Если не собираешься делать что то особенное - не юзай.
Тоже в ковычкахбудет ли кровоточить актор при попадании - так и расшифровывается как написано, чуть не забыл, тут пишется число, на сколько помню 1 это да, а 0 это нет.
Пример:
A_CustomMeleeAttack(30, "hiting", "hitingFail", "Mydamage", 1), думаю расшифровывать не нужно)
Так собсна A_CustomMissile("BaronBall")Эта инструкция говорит выстрелить монстру 1 проджектайлом(снарядом), в нашем случае фаирболлом барона. Да да, рыцарь ада и барон юзают один и тот же фаирболл.
Так и под конец ещё кое что. Заменяем нашего нового рыцаря ада, на того, который был.
Actor NewHellKnight : HellKnight replaces HellKnight
{
States
{
Melee:
BOS2 EF 8 A_FaceTarget
BOS2 G 8 A_CustomMeleeAttack(6)
Goto See
Missile:
BOS2 EF 8 A_FaceTarget
BOS2 G 8 A_CustomMissile("BaronBall")
Goto See
}
}
Этот код упрощёный и одновременно изменённый, так же заменяет оригинального рыцаря ада, на нового.
Небольшая расшифровочка:
Actor NewHellKnight : HellKnight replaces HellKnight - Тут мы создаём нового рыцаря ада, который основывается на старом(
Actor NewHellKnight : HellKnight) и заменяем обычного рыцаря на нового(
replaces HellKnight). Почему создаём, а не редачим? Чтобы потом мы в дальнейшем не удивлялись почему у нас игра при компиляции в окошке выдаёт варнинг, а потом в процессе тупит.
Нижние строки взяты из нашего модифленого рыцаря ада. Надо всего 2 потока, т.к. у нас
монстр не нулячий, а именно основан, то игра автоматически берёт параметры и код сразу из двух мест.
Ну и ответ на твой вопрос в конце концов, тебе нужно редачить инструкцию A_CustomMeleeAttack, добавляешь по желанию в неё нужные тебе звуки(звук попадания, звук промаха) и урон. Кстати под конец, урон можно сделать рандомным, если хочется чего то необычного. Достаточно в уроне прописать вот так - random(число1, число2), число1 и число2 задают диапазон рандома, т.е. если будет например random(4, 10), то игра будет автоматически брать случайное число в диапазоне 4-10. Дерзай.
Собственно всё. Если чё не понятно, задавай вопросы.