Ты видимо человек крайностей. То берёшься за самое простое, то за самое сложное. К чему это ? Сделай что-то опрятное, чистое, и с небольшой изюминкой. Подбери красивые эффекты, звуки, протестируй от ошибок - вот и всё. В общем, не отчаивайся, не опускай руки не обижайся - возможно в будущем тебе этот опыт пригодится. Придумайте идею персонажа, и воплотите её.
Ладно, уговорили, вот вам небольшой урок для "самых маленьких" пользователей мугена.
Это я писал довольно давно, не знаю зачем, может пригодится. За основу брал бойца из простого мугена, KFM, но простые удары в МКР почти не отличаются от мугенских.
Начнём с простого, это стейт обычного лёгкого удара рукой. Начинается он так :
[Statedef 200]
type = S ;Тип стейта. S - standing - стоящий на земле, С - Crouching - сидящий на корточках, А - Air - в воздухе. От этого стейта зависит и то, из какой стойки будет делаться приём и то, как его муген будет воспринимать.
movetype= A ;Тип движения атакующего персонажа - А - Atack - атакующий тип. H - get Hit - когда персонаж получает удар, I - не то, не другое, бег там, прыжки, анимации какие)
physics = S ;Физика s: S-stand, C-crouch, A-air. Физика отвечает за тип проведения атаки, её надо согласовывать с типом стейта. Естественно атака в воздухе отличается от атаки на земле и в нижнией стойке.
juggle = 1 ;Количество джаглов, которые можно сделать этим ударом. тоесть если этот удар подкидывает игрока в воздух, то сколько раз ещё этим ударом можно ударить игрока. В данной ситуации удар в воздух противника не подбрасывает, поэтому больше одного джагла не надо
Просто, не так ли ?) Это пока, идём далее. Второй раунд :
velset = 0,0 ;Этот пункт отвечает за движение атакующего персонажа - как он сам двигается при выполнении удара. Первая цифра - Х, вертикаль, вторая У - горизонталь. 0,0 означает, что боец не двигается проводя удар
ctrl = 0 ;Пункт CTRL ( от англ Control) отвечает за то, сможете ли вы ( игрок) управлять персонажем, пока он выполняет атаку/движение. 0 означает что на время движения управлять им нельзя, 1 что можно. Для ударов 1 не рекомендуется.
anim = 200 ;Номер анимации в Air файле, думаю, тут всё просто.
sprpriority = 2 ;Порядок спрайтов - спрайты с большем значением будут отображаться поверх спрайтов с низшим значением. Рекомендую для ударов ставить значение именно 2.
Это мы тоже поняли. Что же, едем дальше - самое вкусное. HitDef это важный элемент удара - в нём содержится вся информацию о поведении противника при получении удара. Учтите, ХитДеф срабатывает когда в анимации удара появляется фрейм с красным ободком.
[State 200, 1]
type = HitDef ;Тип стейта. В зависимости от типа зависит что будет делать этот хитдеф. Типов огромное множество
trigger1 = AnimElem = 3 ;Тригер - условие, при котором этот стейт сработает. В данном случае условие в том, что в анимации удара идёт фрейм с номером 3.
attr = S, NA ;Аттрибут. Тут используются значения Standing (стоящий) Normal Attack ( Обычная атака). Аттрибутов много, но сейчас я аббревиатуры не помню.
damage = 23, 0 ;Два типа урона - первое значение - урон, если удар попал в цель, второе, если его заблокировали.
animtype = Light ;тип анимании - до сих пор не понимаю. Юзайте текущий тип и не парьтесьAnimation type: Light, Medium, Heavy, Back (def: Light)
guardflag = MA ;Это означает, каким будет блок удара, его условия.Если убрать это, то удар не блокируется
hitflag = MAF ;Это флаг, как удар будет работать. Убирать не стоит.
priority = 3, Hit ;Приоритет атаки - от нуля, до 7
;Hit/Miss/Dodge type (Def: Hit)
pausetime = 8, 8 ;Время на которое после удара боец застывает и время, которое оппонент трясётся при получении удара.
sparkno = 0 ;Анимация дополнительних эффектов ( из файла FightFX.AIR ) - либо это кровь, либо всякие там световые эффекты
sparkxy = -10, -76 ;Позиция этих обьектов по отношению ко второму игроку ( х,у)
hitsound = 5, 0 ;Звук который играется при нанесении удара.
guardsound = 6, 0 ;Звук который играется при блоке. Оба звука берутся либо из файла бойца, либо из Fight.SND
ground.type = High ;Точно не понмаю, но судя по всему это параметр, обьясняющий мугену, куда приходится удар.
ground.slidetime = 5 ;Время которое противник отъезжает назад при получении удара.
ground.hittime = 12 ;Время которое которое опонент получает удар. Обратить внимание, если бы удар был бы в в воздухе во всех 3х вышеприведённых пунктов был бы не ground a air.hittime и т.п
ground.velocity = -4 ;Скорость/направление ( ?) на которое игрок толкнут
airguard.velocity = -1.9,-.8 ;непонятный мне пункт - тип движения при блоке в воздухе (def: (air.xvel*1.5, air.yvel/2))
air.type = High ;Type: High, Low, Trip (def: same as ground.type)
air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed,
;Y-velocity at which opponent is pushed
air.hittime = 12 ;Time before opponent regains control in air
Последнии пункты я пока не разобрал до конца )
Вот самое главное мы прошли. И остаточные стейты в этом простом стейтдефе.
[State 200, 1]
type = PlaySnd ; Звук удара ( в данном случае берётся из SND файла бойца)
trigger1 = Time = 1
value = 0, 0
Ну и про что не стоит забывать - вернуть после выполнения удара игрока обратно с стейт 0 - боевую стойку.
[State 200, 7]
type = ChangeState ; вот и тип стейта - сменить стейтдеф.
trigger1 = AnimTime = 0 ; Условия - время анимации кончилось.
value = 0 ; Значение стейта - 0, стейт стойки, основной. Не забывать!
ctrl = 1 ; И хорошо бы вернуть управление в руки игрока, иначе само оно не вернётся!