
Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS |
Модератор форума: Manoichi, Skamp |
Mugen Форум | Сообщество разработчиков M.U.G.E.N Туториалы / Tutorials Помощь в кодинге |
Помощь в кодинге |
Дата: Пятница, 27.07.2012, 18:54 | Сообщение # 154
скажите пожалуйста, мне нужен эффект для атаки в виде шлейфа за персонажем. т.е. атака - персонаж атакует с выпадом вперед и за ним шлейф идет из его спрайтов определенное время. мне шаблон нужен, желательно с пояснениями что и где. заранее спасибо!
|
Дата: Пятница, 27.07.2012, 19:54 | Сообщение # 155
AfterImage
Активирует эффекты шлейфа. Фрэймы бойца сохраняются в буфер, и отображаются после задержки как шлейфы. Дополнительные параметры: time = длительность (целое) Уточняет количество тиков, на протяжении которых будет отображаться шлейф. Выберите -1 для бесконечного отображения. По умолчанию 1. length = количество фрэймов (целое) Выбирается вместимость буфера по фрэймам. Буфер будет показывать количество недавно сохранённых фрэймов игрока. Принимая постоянные значения для timegap и framegap, увеличение продолжительности может увеличить число и «возраст» (за неимением лучшего термина) шлейфов, отображённых единажды. Максимальная длина 60, по умолчанию 20. palcolor = цветов (целое) palinvertall = обратить_всё (булево, 0 или 1) palbright = add_r, add_g, add_b (целые) palcontrast = mul_r, mul_g, mul_b (целые) palposbright = add2_r, add2_g, add2_b (целые) Эти параметры определяют эффекты палитры применительно ко всем шлейфам. Первый уровень цвета добавляется следовательно значению palcolor, потом, если invertall не ноль, цвета обращаются. В последствии, компоненты palbright добавляются к соответствующему компоненту палитры игрока, потом каждый компонент умножается соответствующим компонентом palcontrast, разделённым на 256, затем компоненты palposbright добавляются к результату. Значение диапазона palcolor от 0 (в серых тонах) до 256 (нормальный цвет). Для примера, если красный компонент палитры бойца указан как pal_r, затем красный компонент палитры шлейфа будет в виде: (pal_r + add_r)*mul_r/256 + add2_r , надменно значения palcolor и palinvertall остаются при значениях по умолчанию. Действительные значения для palcolor - от 0 до 256, 0-255 - для компонентов palbright и palposbright, и любые неотрицательные значения для компонентов palcontrast. Умолчания: palcolor = 256 palinvertall = 0 palbright = 30, 30, 30 palcontrast = 120, 120, 120 palposbright = 0, 0, 0 paladd = add_r, add_g, add_b (целое) palmul = mul_r, mul_g, mul_b (плавающие числа) Эти параметры уточняют эффекты палитры, которые приняты повторно для удавшихся фрэймов в шлейфе в одном применении этих эффектов палитры, первые компоненты paladd добавляются к палитре шлейфа, затем компоненты умножаются множителем palmul. Умолчания: paladd = 10, 10, 25 palmul = .65, .65, .65 timegap = значение (целое) Этот параметр контролирует, как много фрэймов пропускать между сохранениями фрэймов игрока для истории буфера при отображении шлейфа. По умолчанию 1 (фрэймы не пропускаются). Чтоб сохранить каждый третий фрэйм (для примера), вы должны использовать timegap = 3. framegap = значение (целое) Каждый указанный фрэйм в истории буфера будет отображён как шлейф. Для примера, если framegap = 4 (по умолчанию), затем первый, пятый, девятый, … фрэймы, сохранённые в буфер, будут отображены как шлейфы. trans = тип (ограничение) Уточняет тип прозрачности для шлейфов. Действительными типами являются «none» для непрозрачного шлейфа, «add», «add1» и «sub». AfterImageTime Изменяет продолжительность эффектов шлейфа игрока, если шлейф в данный момент активен. Если в данный момент нет активного шлейфа, этот контроллер не подействует. Известные баги: если параметр timegap в первоначальном AfterImage-контроллере не равняется единице, использование этого контроллера заставит все местоположения фрэймов перезапуститься. Необходимые параметры: time = новая_продолжительность (целое) Выбирается новое число тиков для отображения шлейфа, по окончанию тиков он уберётся с экрана. Альтернативный синтаксис: value = новая_продолжительность (целое) |
Дата: Пятница, 27.07.2012, 21:37 | Сообщение # 156
спасибо. еще пара вопросов. как сделать способность, работающую один раз за раунд?. как сделать включение и выключение способности, т.е. два стейта включающих или отключающих какое либо состояние (например шаринган) при нажатии на одну и ту же кнопку (кажется делается как то через Varset) заранее спасибо!
я сейчас пытаюсь персонажа редактировать - там вобщем не получается сделать пока что. есть призыв хелпера, но нет врзможности его отпустить. я в стейте призыва делаю [State ....] type = VarSet trigger1 = AnimTime = 0 v = 0 value = 1 а при отзыве [State другой стейт] type = VarSet trigger1 = AnimTime = 0 v = 0 value = 0 и в .cmd ставлю триггеры triggerall = var(0) = 1 например так на отзыв вроде тут должно работать, но я не могу сделать правильно стейт destroyself. как его оформить правильно подскажите. призыв срабатывает ( я его не трогал такой автор перса сделал), далее эту же кнопку жму проходит анимация отзыва, но пет остается. а дальше еще жму кнопку еще один такой же пет призывается, в компанию к старому. кстати я неправильно может делаю, я destroyself подвешиваю на отдельный стейт |
Дата: Суббота, 28.07.2012, 10:48 | Сообщение # 157
blister, если ты имеешь ввиду трансформацию то вотт пример
[Statedef 2800] type = S movetype= A physics = S anim = 2800 velset = 0, 0 ctrl = 0 poweradd = -9000 sprpriority = 3 [State 0] type = PlaySnd trigger1 = AnimElem = 4 value = 1500, 3 [State 0] type = VarSet trigger1 = time = 0 v = 7 value = 1 [State 0] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 после этого в команды пропиши как удар обычный чтобы в этом режиме сменялась анимации то например в стейт стойки рядом с номером анимации ставь + var(7) к номеру анимации прибавится 1 и получится номер анимации второй формы что бы запретить что либо делать в этой форме в кмд ставь trigger1 = var(7)=!1 "!" означает запрет если просто закрепить за формой его ставить не надо а что бы сделать "чтобы один приём был за игру один раз" также пропиши как тансформацию его и в кмд этого приёма поставь запрет trigger1 = var(7)=!1 |
Дата: Понедельник, 30.07.2012, 19:55 | Сообщение # 160
смотря из какого он сезона.
у меня еще вопрос есть - если поможете, буду благодарен. для клифф гаары хочу слепить песочный щит, благо в нем спрайты есть на него, но как я понял самого щита нету. начал писать код, попробую расписать чтобы понятно было. щит работает (по крайней мере внешне), но гаара не исчезает после его завершения если не выждать time = 400 когда уже щит исчезнет и начнет работать анимация сворачивания щита. ;sand shield stance [StateDef 1200] - стейт на который ссылается .cmd , с него начинается прием type = S movetype= A physics = S juggle = 1 velset = 0,0 ctrl = 0 anim = 1200 ; стойка гаары во время щита poweradd = 50 sprpriority = 2 [State 1200, PlaySnd] type = PlaySnd trigger1 = AnimElem = 1 value = S2,0 volume = 900 channel = -1 [State 1200, helper] type = Helper trigger1 = animelem = 1 helpertype = normal name ="sand shield" ID = 1 stateno = 1201 анимация появления щита вокруг гаары. сама анимация появления короткая, но может висеть долго последний кадр анимации pos = 0,0 postype = p1 facing = 1 keyctrl = 0 ownpal = 0 supermovetime = 200 pausemovetime = 0 [State 1200, end] type = ChangeState trigger1 = command != "hold_a" value = 1203 ctrl = 1 ;------ ;sand shield [Statedef 1201] anim = 1201 ; стейт появления щита ctrl = 0 type = S movetype = A physics = S velset = 0,0 juggle = 15 sprpriority = 3 [State 1201, destroyself] type = destroyself trigger1 = command != "hold_a" trigger1 = time > 400 ; здесь я пробовал оставить триггер только hold_a но вобще не запустился хелпер. про длительность приема мне кажется тут надо что то придумать [State 1201, end] type = changestate trigger1 = parent, stateno != 1200 value = 1203 ;--------------- ; stance shield off [statedef 1203] type = S movetype= A physics = S juggle = 1 velset = 0,0 ctrl = 0 anim = 1200 ; все та же анимация стойки гаары poweradd = 50 sprpriority = 2 [State 1203, helper] type = Helper trigger1 = animelem = 1 helpertype = normal name ="sand shield" ID = 1 stateno = 1202 pos = 0,0 postype = p1 facing = 1 keyctrl = 0 ownpal = 0 supermovetime = 200 pausemovetime = 0 [State 1203, end] type = ChangeState trigger1 = time = 44 value = 0 ctrl = 1 ;------ ; shield off [Statedef 1202] anim = 1202 ; анимация снятия щита ctrl = 0 type = S movetype = A physics = S velset = 0,0 juggle = 15 sprpriority = 3 [State 295, destroyself] type = destroyself trigger1 = time = 44 что то у меня с триггерами не то. и еще - я хочу чтобы этот щит можно было бы удерживать пока зажата клавиша (например если прием - вниз+А, то при удерживании А) заранее спасибо. добавлю - появилась идея разбить на три этапа - появление щита от него ссылка на стейт удерживания щита неограниченное время, при отпуске кнопки переход в стейт снятия щита. как время будет так попробую |
Дата: Вторник, 31.07.2012, 08:43 | Сообщение # 162
спасибо исправил, чет не заметил сразу. 400 тиков можно и не ждать, я наверно поставлю большое кол-во времени, потому что второй триггер hold_a, отпустить щит я могу в любой момент
а как грамотно сделать чтобы щит отражал метательное, удары итд. т.е. кунаи брошен в щит отлетает от него, а ущерба здоровью нету |
Дата: Суббота, 04.08.2012, 18:28 | Сообщение # 163
blister, это не в щите делается
если в кунае заложено отскакивать от красных квадратов то он будет Добавлено (04.08.2012, 18:28) |
| |||