Здесь я расскажу вам как делать простой катун (на удержание)
Сразу говорю, это туториал для тех кто уже знает основы и хочет чего-то большего, а в рунете ничего такого не найти)
Начнем:
Сначала создаем стэйт (что это такое вы уже знаете)
Код
[Statedef 1078]; это будет стейт стойки для катуна
type = S
movetype= I
physics = S
juggle = 1
ctrl = 0
anim = 6083 : тут номер анимации стойки
poweradd = -500 ; сколько чакры отбавляет
sprpriority = 7 ; приоритет спрайтов (можно не менять)
Потом создаем хелпер (скорее всего вы не знаете что это)
Код
[State 0, Helper] ; хелпер - это ссылка на стейт самого огня
type = Helper
trigger1 = animelem = 1 ; это условие появления
helpertype = normal ; это камера (лучше normal)
ID = 1079 ; это номер хелпера (редко бывает нужен но все же)
stateno = 1079 ; тут должен быть стейт самого огня
pos = 50,-50 ; позиция по оси X и Y
postype = p1 ; это значит что отсчет позиции идет от первого игрока (от второго это p2)
facing = 1 ; это так и оставьте (означает в какую сторону будет повернут)
keyctrl = 0
size.xscale = 0.7 ; размер по оси X
size.yscale = 0.7 ; размер по оси Y
ownpal = 0
Теперь делаем чтобы чакра постепенно тратилась во время катона
Код
[State 0, Эта штука жрет чакру пока катон активен]
type = PowerAdd
trigger1 = numhelper(1079) = 1 ; Номер хелпера горения катона
trigger1 = numhelper(1079)!=0 ; Тот же номер хелпера
value = -5 ; Сколько чакры жрет (если много или мало указываем свое
Дальше ставим завершение стейта
Код
[State 0, ChangeState] ; завершение стейта
type = ChangeState
trigger1 = command != "hold_b" ; заканчивается если разожмете кнопку b
trigger2 = power = 0 ; заканчивается если кончится чакра
value = 0 ; это на какой стейт перейдет (тут перейдет в стойку)
ctrl = 1 ; может двигаться после завершения или нет
Теперь создаем стейт пламени
Код
[Statedef 1079]
type = S
movetype= A ; тут из нового только тип стейта (А - это атакующий)
physics = S
velset = 0,0
ctrl = 0
anim = 6031
poweradd = 0
sprpriority = 99999999999 ; ну и приоритет тут должен быть большой, чтобы врага загораживал)
Теперь уберем тень при помощи простого кода
Код
[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = noshadow
Ну и самое важное! это HitDef он нужен чтобы ваше пламя наносило урон (не забудьте в спрайты пламени поставить красные квадраты)
Код
[State 0, 1] ; это сам HitDef (не Пушкин же)
type = HitDef
trigger1 = time%2 ; при этом триггере урон будет наноситься пока есть пламя (если есть красные квадраты)
attr = S, NA
damage = 1, 1 ; урон (тут лучше ставить 1, из-за триггера time%2), (урон после запятой это урон в блоке)
animtype = Heavy ; тип анимации (в данный момент у врага проигрывается анимация при тяжелом уроне)
hitflag = MAF
priority = 3, Hit
pausetime = 0, 8 ; затормаживание после удара (1ое число тормозишся ты, 2ое тормозится враг
sparkno = -1 ; спарк при ударах (лучше не ставить при катуне, не красиво)
sparkxy = -10, -76 ; позиция спарка по оси X и Y
hitsound = 0, 0 ; звук при попадании
guardsound = 6, 0 ; звук при попадании в блок
ground.type = High
ground.slidetime = 5
ground.hittime = 12
ground.velocity = 0 ; отталкивание врага при ударах по оси X и Y (тут лучше не ставить а то улетит)
airguard.velocity = -1.9,-.8 ; тоже самое но в блоке и в воздухе
air.type = High
air.velocity = 0,0 ; отталкивание врага в воздухе по оси X и Y
air.hittime = 12
palfx.time = 8 ; palfx это окрашивание врага при ударах, тут я все оптимально настроил под катун, ну в этой строке время
palfx.add = 240,50,0
palfx.mul = 250,224,120
palfx.sinadd = 110,55,85,10
fall = 1 ; упадет ли враг после этого (1 - да, 0 - нет)
Теперь переход к оканчанию горения пламени
Код
[State 0, ChangeState]
type = ChangeState
trigger1 = parent, stateno != 1078 ; это значит, что когда кончится стойка пламя перейдет в стейт окончания горения пламени, на деле это не так сложно как выглядит)
value = 1080 ; ссылка на стейт окончания горения пламени
ctrl = 1
Сам стейт окончания горения
Код
[Statedef 1019]
type = S
movetype= I
physics = S
velset = 0,0
ctrl = 0
anim = 6032 ; анимация окончания горения, а так тут ничего нового
poweradd = 0
sprpriority = 99999999999
[State 0, AssertSpecial] ; это тень убирает )
type = AssertSpecial
trigger1 = 1
flag = noshadow
[State 0, DestroySelf] ; а это убирает пламя
type = DestroySelf
trigger1 = animtime = 0 ; этот триггер значит, что пламя пропадает после окончания анимации горения
Почти все но теперь давайте откроем CMD файл и вставим туда команду
Код
[State -1, Катун дыхание]
type = ChangeState
value = 1078 ; это ссылка на стейт стойки
triggerall = command = "hold_b" ; это команда (лучше пока оставьте такую, потом настроите) (эта команда обозначает зажимание кнопки b)
triggerall = power > 500 ; это значит что катун можно использовать, когда у вас больше чем 500 чакры
trigger1 = statetype = S ; это значит что используется в стоя (а не в воздухе или сидя)
trigger1 = ctrl
Я надеюсь что вам понравилось, оставляем комменты и всего наилучшего! (я устал)