Меню
Страница 1 из 11
Форум » M.U.G.E.N » Tutorials » Tutorial on creating Rasengan (By me)
Tutorial on creating Rasengan
BloodLifeDate: Воскресенье, 17.11.2013, 14:18 | Message # 1
Твой господин (именно твой)
Group: Admin
Messages: 161
Awards: 0
Reputation: 7
Status: Offline
И так начнем!

В начале создаем стейт:

Код
[Statedef 1200]
type = S ;-Тип стоя
movetype = a ;-Тип движения для таких стейтов рекомендуется "a"
physics = s ;-Физика стоя
ctrl = 0 ;- Может ли противник двигаться во время стейта, тобишь прервать стейт нажатием какой либо кнопки.
anim = 600 ;- Тут я думаю объяснять не стоит.

Потом прописываем наш стейт в cmd:

Код
[State -1, rasengan]
type = ChangeState
value = 1200 ; Номер стейта   
trigger1 = power >= 1000 ; Количество чакры для вызова стейта в данном случае больше 1000
Triggerall = command = "b" ; на какую клавишу будет назначена активация стейта
trigger1 = ctrl && (statetype = S) ; Тип стейта стоя

Далее возвращаемся к стейту. Допустим мы хотим чтобы убывалась чакра при удержании стейта, для того чтобы это сделать в стейт добавляем это:

Код
[State 0, Chakra eater]
type = PowerAdd
trigger1 = time%2
value = -10 :количество убываемой чакры (настраивайте под себя)

Теперь добавим завершения стейта а то есть переход со стейта удержания в стейт бега, для этого добавляем это:

Код
[State 0]
type = Changestate
triggerall = time > 70 ;Перейдет в другой стейт, если будет удерживать кнопку в течении этого времени
trigger1 = command != "hold_b" :Перс перейдет в стейт бега при разжатии клавиши "b"
value = 1201
ctrl = 0


И так многие наверное заметят, что я добавил:
triggerall = time > 70
Это проверка на время удержания после которого при разжатии клавиши перс перейдет в другой стейт, это нужно чтобы было более реалистично.
Так же добавим переход в стейт стойки при малом удержании клавиши:

Код
[State 0]type = Changestate
triggerall = time > 5
triggerall = time > 10
triggerall = time > 20
triggerall = time > 30
triggerall = time > 40
triggerall = time > 50
triggerall = time > 60
trigger1 = command != "hold_b"
value = 0
ctrl = 1
А также добавим переход в стейт стойки при нулевом количестве чакры:

Код
[State 0]
type = Changestate
trigger1 = power = 0
value = 0
ctrl = 1

Так же добавим сам эффект расенгана для этого сначала создадим хелпер:

Код
[State 0, Helper]
type = Helper
trigger1 = animelem = 2 ; при втором кадре анимации хелпер появится
helpertype = normal ;player тип хелпера для расенгана рекомендуется ставить normal   
ID = 1204 ; айди хелпера, нужно для некоторых случаев
stateno = 1204 ; сам стейт хелпера
pos = 0,0 ; позиция хелпера по координатам х и у
postype = p1    ;p2,front,back,left,right ; на каком игроке и на каком ракурсе экрана будет появляться хелпер, а точнее это его дочерняя позиция.
facing = 1 ; в какую сторону будет повернут хелпер, имеются два значения поворота 1 и -1
keyctrl = 0 ; возожно ли вызвать хелпер на кнопку тобишь на команду.
ownpal = 1 ; будет ли отображаться эффекты от контроллера palfx когда они будут отображаться на игроке: 0 - будут, 1 - не будут. Для таких случаев рекомендуется ставить 1.   
size.xscale = 0.6 ; размер по х - также можно заменить простым scale = 0.6,0.6
size.yscale = 0.6 ; размер по у


Создаем стейт:

Код
;rasengan effect
[Statedef 1204]
type = S
movetype = a
physics = s
ctrl = 0
poweradd = 0
anim = 607 ; меняем на свою
sprpriority = 1 ; приоритет спрайтов в данном случае он должен быть больше чем у самого перса   

[State 0, BindToParent]
type = BindToParent ; привязка к ролителю по координатам х и у в данном случае будет привязан к стейту вызовшем хелпер
trigger1 = 1 ; контроллер будет работать всегда пока не завершиться стейт
time = -1; количество времени на которое он будет привязан к цели если стоит -1 то будет стоять бесконечно.
facing = 0; поворот в  нашем случае можно эту строчку убрать.
pos = 13,-20 ; позиция привязки по х и у

[State 0, Trans]
type = Trans ; задает прозрачность
trigger1 = 1; контроллер будет работать всегда пока не завершиться стейт
trans = add ; задает прозрачность 256 на 256, для того чтобы задать свою прозрачность нужно вместо add написать addalpha и после на следующей строчке alpha = 256,256 (настраиваем под себя)

[State 0, DestroySelf]
type = DestroySelf ; уничтожение стейта   
trigger1 = parent,stateno != 1200 ; стейт будет уничтожен если будет завершен стейт родителя

И так вот как это будет выглядить:

Код
[Statedef 1200]
type = S ;-Тип стоя
movetype = a ;-Тип движения для таких стейтов рекомендуется "a"
physics = s ;-Физика стоя
ctrl = 0 ;- Может ли противник двигаться во время стейта, тобишь прервать стейт нажатием какой либо кнопки.
anim = 600 ;- Тут я думаю объяснять не стоит.

[State 0, Helper]
type = Helper
trigger1 = animelem = 2 ; при втором кадре анимации хелпер появится
helpertype = normal ;player тип хелпера для расенгана рекомендуется ставить normal   
ID = 1204 ; айди хелпера, нужно для некоторых случаев
stateno = 1204 ; сам стейт хелпера
pos = 0,0 ; позиция хелпера по координатам х и у
postype = p1    ;p2,front,back,left,right ; на каком игроке и на каком   
ракурсе экрана будет появляться хелпер, а точнее это его дочерняя   
позиция.
facing = 1 ; в какую сторону будет повернут хелпер, имеются два значения поворота 1 и -1
keyctrl = 0 ; возожно ли вызвать хелпер на кнопку тобишь на команду.
ownpal = 1 ; будет ли отображаться эффекты от контроллера palfx когда   
они будут отображаться на игроке: 0 - будут, 1 - не будут. Для таких   
случаев рекомендуется ставить 1.   
size.xscale = 0.6 ; размер по х - также можно заменить простым scale = 0.6,0.6
size.yscale = 0.6 ; размер по у

[State 0, Chakra eater]
type = PowerAdd
trigger1 = time%2
value = -10 :количество убываемой чакры (настраивайте под себя)

[State 0]
type = Changestate
triggerall = time > 70 ;Перейдет в другой стейт, если будет удерживать кнопку в течении этого времени
trigger1 = command != "hold_b" :Перс перейдет в стейт бега при разжатии клавиши "b"
value = 1201
ctrl = 0

[State 0]type = Changestate
triggerall = time > 5
triggerall = time > 10
triggerall = time > 20
triggerall = time > 30
triggerall = time > 40
triggerall = time > 50
triggerall = time > 60
trigger1 = command != "hold_b"
value = 0
ctrl = 1

[State 0]
type = Changestate
trigger1 = power = 0
value = 0
ctrl = 1

;rasengan effect
[Statedef 1204]
type = S
movetype = a
physics = s
ctrl = 0
poweradd = 0
anim = 607 ; меняем на свою
sprpriority = 1 ; приоритет спрайтов в данном случае он должен быть больше чем у самого перса   

[State 0, BindToParent]
type = BindToParent ; привязка к ролителю по координатам х и у в данном случае будет привязан к стейту вызовшем хелпер
trigger1 = 1 ; контроллер будет работать всегда пока не завершиться стейт
time = -1; количество времени на которое он будет привязан к цели если стоит -1 то будет стоять бесконечно.
facing = 0; поворот в  нашем случае можно эту строчку убрать.
pos = 13,-20 ; позиция привязки по х и у

[State 0, Trans]
type = Trans ; задает прозрачность
trigger1 = 1; контроллер будет работать всегда пока не завершиться стейт
trans = add ; задает прозрачность 256 на 256, для того чтобы задать свою
   прозрачность нужно вместо add написать addalpha и после на следующей   
строчке alpha = 256,256 (настраиваем под себя)

[State 0, DestroySelf]
type = DestroySelf ; уничтожение стейта   
trigger1 = parent,stateno != 1200 ; стейт будет уничтожен если будет завершен стейт родителя

Но это еще не все... Мы должны создать стейт бега с расенганом:

Код
[Statedef 1201]
type = S ;-Тип стоя
movetype = a ;-Тип движения для таких стейтов рекомендуется "a"
physics = s ;-Физика стоя
ctrl = 0 ;- Может ли противник двигаться во время стейта, тобишь прервать стейт нажатием какой либо кнопки.
anim = 600 ;- Тут я думаю объяснять не стоит.

[State 0, Helper]
type = Helper
trigger1 = animelem = 2 ; при втором кадре анимации хелпер появится
helpertype = normal ;player тип хелпера для расенгана рекомендуется ставить normal   
ID = 1205 ; айди хелпера, нужно для некоторых случаев
stateno = 1205 ; сам стейт хелпера
pos = 0,0 ; позиция хелпера по координатам х и у
postype = p1    ;p2,front,back,left,right ; на каком игроке и на каком   
ракурсе экрана будет появляться хелпер, а точнее это его дочерняя   
позиция.
facing = 1 ; в какую сторону будет повернут хелпер, имеются два значения поворота 1 и -1
keyctrl = 0 ; возожно ли вызвать хелпер на кнопку тобишь на команду.
ownpal = 1 ; будет ли отображаться эффекты от контроллера palfx когда   
они будут отображаться на игроке: 0 - будут, 1 - не будут. Для таких   
случаев рекомендуется ставить 1.   
size.xscale = 0.6 ; размер по х - также можно заменить простым scale = 0.6,0.6
size.yscale = 0.6 ; размер по у

[State 0, VelSet]
type = VelSet
trigger1 = 1
x = 9 ; скорость бега по х

[State 0]
type = Changestate
trigger1 = movehit
value = 1206
ctrl = 0

[State 0]
type = Changestate
trigger1 = time = 120
value = 0
ctrl = 1
Создаем второй хелпер эффекта:

Код
;rasengan effect
[Statedef 1205]
type = S
movetype = a
physics = s
ctrl = 0
poweradd = 0
anim = 607 ; меняем на свою
sprpriority = 1 ; приоритет спрайтов в данном случае он должен быть больше чем у самого перса   

[State 0, BindToParent]
type = BindToParent ; привязка к ролителю по координатам х и у в данном случае будет привязан к стейту вызовшем хелпер
trigger1 = 1 ; контроллер будет работать всегда пока не завершиться стейт
time = -1; количество времени на которое он будет привязан к цели если стоит -1 то будет стоять бесконечно.
facing = 0; поворот в  нашем случае можно эту строчку убрать.
pos = 13,-20 ; позиция привязки по х и у

[State 0, Trans]
type = Trans ; задает прозрачность
trigger1 = 1; контроллер будет работать всегда пока не завершиться стейт
trans = add ; задает прозрачность 256 на 256, для того чтобы задать свою
   прозрачность нужно вместо add написать addalpha и после на следующей   
строчке alpha = 256,256 (настраиваем под себя)

[State 0, DestroySelf]
type = DestroySelf ; уничтожение стейта   
trigger1 = parent,stateno != 1201 ; стейт будет уничтожен если будет завершен стейт родителя
И так осталось создать финальный стейт удара расенганом!)

Код
[Statedef 1206]
type = S ;-Тип стоя
movetype = a ;-Тип движения для таких стейтов рекомендуется "a"
physics = s ;-Физика стоя
ctrl = 0 ;- Может ли противник двигаться во время стейта, тобишь прервать стейт нажатием какой либо кнопки.
anim = 600 ;- Тут я думаю объяснять не стоит.

[State 0, Helper]
type = Helper
trigger1 = animelem = 2 ; при втором кадре анимации хелпер появится
helpertype = normal ;player тип хелпера для расенгана рекомендуется ставить normal   
ID = 1207 ; айди хелпера, нужно для некоторых случаев
stateno = 1207 ; сам стейт хелпера
pos = 0,0 ; позиция хелпера по координатам х и у
postype = p1    ;p2,front,back,left,right ; на каком игроке и на каком   
ракурсе экрана будет появляться хелпер, а точнее это его дочерняя   
позиция.
facing = 1 ; в какую сторону будет повернут хелпер, имеются два значения поворота 1 и -1
keyctrl = 0 ; возожно ли вызвать хелпер на кнопку тобишь на команду.
ownpal = 1 ; будет ли отображаться эффекты от контроллера palfx когда   
они будут отображаться на игроке: 0 - будут, 1 - не будут. Для таких   
случаев рекомендуется ставить 1.   
size.xscale = 0.6 ; размер по х - также можно заменить простым scale = 0.6,0.6
size.yscale = 0.6 ; размер по у

[State 0, VelSet]
type = VelSet
trigger1 = 1
x = 0 ; скорость бега по х

[State 0]
type = Changestate
trigger1 = time = 220
value = 0
ctrl = 1
Так же создаем тот же хелпер эффекта шара и так же в него добавляем контроллер нанесение урона HitDef :

Код
;rasengan effect
[Statedef 1207]
type = S
movetype = a
physics = s
ctrl = 0
poweradd = 0
anim = 607 ; меняем на свою
sprpriority = 1 ; приоритет спрайтов в данном случае он должен быть больше чем у самого перса   

[State 0, BindToParent]
type = BindToParent ; привязка к ролителю по координатам х и у в данном случае будет привязан к стейту вызовшем хелпер
trigger1 = 1 ; контроллер будет работать всегда пока не завершиться стейт
time = -1; количество времени на которое он будет привязан к цели если стоит -1 то будет стоять бесконечно.
facing = 0; поворот в  нашем случае можно эту строчку убрать.
pos = 13,-20 ; позиция привязки по х и у

[State 4150]
type = HitDef
trigger1 = time%2 ; контроллер будет работать в течении этого времени, так же можно использовать timemod и настраивать его под себя, кому как удобнее.
attr = S, NA ; условия в каком типе стейта должен стойть противник чтобы контроллер работал и наносил урон   
damage = 1 ; наносимый урон
animtype = Light ; тип анимации при уроне в данном случае легкая анимация получения урона
hitflag = MAF ; тип удара если напишем MAFD то можно будет бить противника когда тот находить в стейта когда он лежит на земле
priority = 99, Hit ; приоритет удара если он то удар пробьет удар противника
pausetime = 0,0 ; пауза при ударе первое число пауза первого игрока а второе  после запятой пауза второго игрока
sparkno = -1 ; номер анимации спарка
sparkxy = 0, 0 ; позиция спарка по координатам х и у
hitsound = s18, 5 ; номер группы звука при ударе
guardsound = -1, 0 ; номер группы звука при блоке
ground.type = High ; тип анимации при ударе противника  когда тот находится на земле
ground.slidetime = 0 ; на словах увы объяснить не могу   
ground.hittime  = 10 ; как быстро будет наносится удар когда тот находится на земле
ground.velocity = 0, 0 ; движение противника по х и у   
airguard.velocity = 0,0 ; движение противника по х и у  только при блоке в воздухе
air.type = High ; тип анимации при ударе противника  когда тот находится в воздухе
air.velocity = 0, 0  ; движение противника по х и у   
air.hittime = 12 ; как быстро будет наносится удар когда тот находится в воздухе

[State 0, Trans]
type = Trans ; задает прозрачность
trigger1 = 1; контроллер будет работать всегда пока не завершиться стейт
trans = add ; задает прозрачность 256 на 256, для того чтобы задать свою
   прозрачность нужно вместо add написать addalpha и после на следующей   
строчке alpha = 256,256 (настраиваем под себя)

[State 0, DestroySelf]
type = DestroySelf ; уничтожение стейта   
trigger1 = parent,stateno != 1206 ; стейт будет уничтожен если будет завершен стейт родителя
И так мы закончили!)Это тутор по созданию простейшего расенгана)Спасибо за внимание!)



 
Форум » M.U.G.E.N » Tutorials » Tutorial on creating Rasengan (By me)
Страница 1 из 11
Поиск: