Fly
Спасибо, но к сожалению это не работает с данными флагами - hitflag = MAFHDPL. Поражает одного противника 2 раза, второго также не трогает. С hitflag = MA работает нормально, хотя.
И ещё один вопрос:
Можно ли задать hitsound в зависимости от того, жив противник или ему наносится последний удар? Чтобы при смерти противника был другой звук. Расчёт оставшихся жизней пробовал делать, но это не учитывает увеличение защиты за счёт fall.defence_up и к тому же не будет нормально работать в режиме против двоих. Помещение в custom state тоже не подходит, т.к. это не будет работать с противниками, использующими hitoverride, которых нельзя поместить в custom state. В общем, уже как только ни пытался... всех испробованных способов даже не вспомню. Самый безглючный способ выходит, если поместить в постоянно действующий хелпер (чтобы не было багов с паузами) код:
[State 668, geyzer snd determiner]
type = ParentVarSet
trigger1 = !time
var(56) = enemy,alive + enemy(numenemy>1),alive
[State 668, geyzer snd]
type = playsnd
triggerall = numenemy
triggerall = (parent,projcontact1010 = 1, = [0,2])
trigger1 = enemy,alive + enemy(numenemy>1),alive != parent,var(56)
value = s10,4
[State 668, Shut Down]
type = ParentVarSet
trigger1 = enemy,alive + enemy(numenemy>1),alive != parent,var(56)
var(56) = enemy,alive + enemy(numenemy>1),alive
(parent,projcontact1010 = 1, = [0,2]) здесь нужно потому, что некоторые противники дохнут не в первую, а во вторую "единицу времени" (условно назову её "секундой") после контакта. Выражение enemy,alive + enemy(numenemy>1),alive != parent,var(56) даёт точную единицу времени смерти, т.к. оно верно только в эту "секунду".
Но данный код проигрывает только звук смерти, для обычного звука он не подходит. Если пытаешься добавить в него или в другое место условия для обычного звука, то во время смерти противника они проигрываются вместе друг за другом.