[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Понятие Стейта и контроллеров
Черный_ВластелинДата: Среда, 27.08.2014, 15:31 | Сообщение # 1
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
StateDef===============================================
Итак, ты захотел делать персонажей, не так ли?
Так вот, слушай меня сюда, салага!
Персоделие- дело нелёгкое, требующее только 3 вещей: желания, умения и любви к своему труду!
Многие срезались, проходя это испытание...
Но кто это осиливал- тот с превеликой гордостью и моральным удовлетворением мог сказать "Это сделал я..." и скинуть в интернет.
Раз ты ещё здесь, значит у тебя есть желание. Любовь к труду проявляется в практике. А вот умения я вам немного дам. И ТОЛЬКО ПОПРОБУЙТЕ СТРЯПАТЬ МНЕ ГОВНО И ПОНИ, ПОНЯТНО?
[Немного правды]=====================================================
Если вы думаете, что сделать своего персонажа- это как два пальца обделать, то я вас спрашиваю- "ВЫ С КАКОГО РУБА ДУХНУЛИ?"
Персонаж- это множество кодов, спрайтов и анимаций, тесно связанных между собой. Каждый супер, каждый спец, каждый ударчик привязывается кодом. Каждый ударчик состоит из связки кодов.
Имя этой связке Стейт (State- Состояние).
[Понятие Стейта]=====================================================
Стейт- это приём в кодах. Состоит стейт из контроллеров. То есть да- Стейт- это связка контроллеров, отмеченная определённым номером. Нафига? Тут уже ждите уроков про CMD- поймёте нафига.
И учтите- коды не могут стоять 100% наобум ввиду того, что сам по себе стейт состоит из всего лишь 2 обязательных контроллеров- StateDef и любой из завершающих контроллеров.
[Код и его составляющие]===============================================
-Общий разжёв кода StateDef:
--[StateDef (Номер стейта)] - это обязательно.
--Type = Тип стейта- это положение персонажа во время выполнения приёма. Всего их 4- S (Стоя, Standing), C (Сидя, Crouching), L (Лёжа, Lie down) и A (В воздухе, Air). Учтите, что путаница в Типе приёма может стоить вам его работоспособности- если выполнить в воздухе приём с Типом S, то ждите его зависания в воздухе и ходьбу по ней в конце приёма.
--Movetype = Тип движения. Тут уже начинается путаница, мол "Нафиг 2 типа?". Так вот, этот тип уже другая история. Собственно, он регулирует саму суть приёма- A (Атака, Attack), I (Бездействие, Idle) или H (Урон, Hurt).
--Physics = Физика. Тут тоже есть, что может запутать, но на это не стоит обращать внимания- физика НЕ положение или суть. Физика- это физика, то есть A, S, C (Воздух, Стоя, Сидя) и N (Нет,None). Тут только корячиться смысла нет, потому я вам лишь скажу- правильная манипуляция физикой может помочь сделать интересные хитровыверты.
--Anim = Анимация. Важна как носорогу рог, ввиду того, что именно под неё вы и будете подстраивать код. Настройте стейт и потом смени номер анимации- приготовьтесь к какафонии. Например, Рю, делающий Шорьюкен на месте и из которого в определённый момент с выкриком "ХАДОКЕН!" вылетает файрбол. Ах, да! И ещё удара не будет...
Есть также много других дополнений, но на программу минимум код StateDef должен выглядеть так:

[Statedef 200]
Type = S
Movetype = A
Physics = S
Anim = 200

Дополнения я не беру лишь потому, что они обычно могут выражаться в отдельных контроллерах.
[Со StateDef покончили. Будут вопросы- ищите нужную тему!] =======================


 
Черный_ВластелинДата: Среда, 27.08.2014, 15:54 | Сообщение # 2
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
ChangeState============================================
Итак, сейчас вы будете читать про основной завершающий контроллер-  ChangeState (Сменить стейт).
Суть контроллера:
-Смена стейта, конечно. С помощью этого контроллера можно сделать так, чтобы после определённого Триггера (Курка, об этом в другой, будущей теме) персонаж перешёл в состояние стойки или выполнил другой приём.
==================(Составляющие кода ChangeState)======================
[Тут пиши, что хочешь! Это просто обязательно.]
--Type = ChangeState. Да, остальные контроллеры используют Type именно для определения СВОЕГО типа.
--Trigger = Триггер. То есть условие, при котором контроллер сработает. СУГУБО обязателен! И обязательно должен иметь номер (trigger1, trigger2, trigger3 и т.д.).
--Value = Значение. То есть сюда необходимо вставить номер стейта, отмеченный в StateDef. Понятно, для чего его теперь надо нумеровать? Этот параметр обязателен.
--Ctrl = Контроль (Control). В зависимости от записанной цифры будет определяться возможность контролировать персонажа после окончания стейта. 0- значит тыкай что хочешь! Пока по тебе не врежут ничего не сработает. 1- значит контроль над персонажем будет. В принципе, параметр необязателен, но уж если поставите, то удосужтесь его ставить правильно. Я думаю, что будет конфузно прервать захватывающий приём нажатием кнопки или невозможность выйти из состояния стойки.
--Anim = Анимация. Тут смысла объяснять нет- этот параметр может сделать так, чтобы после окончания стейта перс, например, менял анимацию стойки на анимацию ходьбы. Увы, сути стейта не меняет. Параметр СУГУБО необязателен!
=====================(Наглядный пример)=============================
[TEH END!!!!]
Type = ChangeState
Trigger1 = !AnimTime
Value = 0
Ctrl = 1.
==========================(P.S.)=================================
Запомни, анонимус!
Определённые стейты должны иметь ОБЯЗАТЕЛЬНЫЕ стейты с обязательно одним номером.
Например указанный выше State 0- стойка.
Запомни этот ноль, солдат. Он тебе всегда пригодится.
=================(Уже просто так разметку ставлю)=======================


 
Черный_ВластелинДата: Среда, 27.08.2014, 16:41 | Сообщение # 3
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
ChangeAnim===================================================
В первую очередь хочу поздравить салаг, которые освоили два предыдущих контроллера!
Если вы освоили их- вы освоили официальные азы кодинга приёмов.
Сейчас я вам написал про дополнительные контроллеры контроллеры- ChangeAnim и ChangeAnim2.
Суть контроллеров:
-Смена анимации без смены стейта. Прежде, чем написать про состав контроллера, я хочу уточнить, что по сути это 2 абсолютно одинаковых контроллера. Различия только в том, что если обычная версия применяется для смены анимации в обычном стейте, то CA2 применяется для смены анимации в стейтах для второго игрока (Например при кодинге броска у жертвы).
=======================(Составляющие кода)===========================
-[квадратные скобки. всегда]
-Type = ChangeAnim(2)
-Trigger
-Value = Значение. Тут надо указывать номер анимации, на которую надо сменить уже используемую.
-Elem = Элемент. Эта необязательная приколюшка позволяет не просто менять анимацию, го и сделать так, чтобы она начиналась с любого (а точнее, указанного) кадра анимации.
=======================(Наглядный пример)============================
[I WANNA KILL HIM!!!!]
Type = ChangeAnim
Trigger1 = movehit
Value = 220
===========================(P.S.)==================================
Это весьма себе хороший контроллер, однако доставляющий уйму неудобств, ибо теперь во всех триггерах всех кодов данного стейта придётся указывать то, что он должен работать при старой/новой анимации. А это дофига.


 
Черный_ВластелинДата: Четверг, 28.08.2014, 15:34 | Сообщение # 4
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
HitDef============================================================
К сожалению, сам тутор сюда уместить не удалось. Так что я себе позволил поступить так:
-Всё вырезал..
-Вставил в Word.
-И скинул файл сюда!
А жаль, ведь это тутор-разжёвывалка такого важного контроллера, отвечающего за удар.
Но ничего! Скачивайте и учитесь делать удары!
Приятного обучения, салаги! biggrin
======================================================================

======================================================================


 
Черный_ВластелинДата: Пятница, 29.08.2014, 03:25 | Сообщение # 5
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
PlaySnd=========================================================
Жаждешь окончить базовое обучение, салага?
Так вот гляди сюда! Это последний контроллер в "Базовом обучении". Если ты освоишь все предыдущие и этот один, то поздравляю- ты сможешь закодить свой первый полноценный удар!
======================================================================
Ты освоил главу стейта- Statedef?
Ты выучил завершающий контроллер ChangeState?
Ты научился манипулировать анимацией с помощью ChangeAnim?
И запомнил, как делать удар ударом с помощью HitDef?
Осталось только добавить пару PlaySnd для завершения своего первого полноценного удара.
======================================================================
Суть контроллера:
-Вставка в движения указанных звуков.
===========================(Составляющие кода)=============================
-[Пора бы было уже привыкнуть к квадратным скобкам в начале...]
-Type = PlaySnd.
-Trigger1 = animelem = нужный момент анимации.
-Value = Значение. Тут я кое-что уточню- если ты действительно выучил HitDef, то для тебя ничего незнакомого ЗДЕСЬ не будет, так как здесь ТА ЖЕ САМАЯ система, что и в том же самом Hitsound. То есть два числа через запятую. Первое число означает ГРУППУ звука, а второе означает НОМЕР звука. Также для "независимости от скринпаковского SND" перед номером группы люди ставят букву S. ВРУ! Тут наоборот: для пользования звуков из скринпаковского SND надо ставить перед группой букву F.
-Volume = громкость. Тут такая система: -1<0<1 = Тише<Норм<Громче. Но особой разницы не слышно всё равно.
Параметр необязателен.
-Channel= номер канала. Этот параметр позволит нескольким звукам одновременно воспроизвестись, не мешая друг другу. Главное, чтобы каналы были разные.
-Lowpriority= уменьшение приоритета. То есть этот звук НЕ прервёт предыдущий. Необязателен.
-Freqmul = множитель звуковой частоты. Ненужный, скорее всего даже нерабочий параметр.
-Loop = повторение. Ставь 1- и звук будет постоянно повторяться вновь и вновь.
-Pan = ...СМЕЩЕНИЕ ЗВУКА ОТНОСИТЕЛЬНО ИГРОКА?
-Abspan = ...СМЕЩЕНИЕ ЗВУКА ОТНОСИТЕЛЬНО ЦЕНТРА ЭКРАНА??????????????
=========(Хух, лучше бы я 2 последних и не читал... А теперь наглядный пример)=============
[I WON!]
type = playsnd
trigger1 = animelem = 3
value = 3,5


 
Черный_ВластелинДата: Пятница, 29.08.2014, 16:47 | Сообщение # 6
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Explod и ModifyExplod===================================
Чтож, ты теперь должен уметь создать простые удары... Но ты хочешь украсит его какой-нибудь красивой вспышкой типа молнии?
Пора переходить к новому уровню знания о контроллерах- этот контроллер как раз ТО, ЧТО ТЕБЕ НАДО!
======================================================================
-Суть контроллера Explod:
Explod по себе переводится как "Вспышка". То есть этот контроллер по себе даёт возможность, скажем так, "наложить анимацию поверх персонажа". То есть, например, с помощью Эксплода можно наложить на Шорьюкен Кена тот самый знаменитый эффект огня.
-Суть контроллера ModifyExplod:
Тут всё ещё проще! Если тот контроллер позволяет создавать вспышку, то этот контроллер позволяет ей манипулировать.
===========================(Небольшое отступление)==========================
Я хочу уточнить то, зачем я взял 2 контроллера вместо одного.
Прикол в том, что по составу они идентичны!
============================(Состав контроллеров)===========================
-[Можно я уже не буду уточнять квадратные скобки?]
-Type = (Modify)Explod
-Trigger1 = их уточнять я тоже заколупался. Триггеры, квадратные скобки и тип контроллера есть ВЕЗДЕ! И ВЕЗДЕ ОБЯЗАТЕЛЬНЫ! Всё, я буду их записывать просто "К.С.Т.Т.".
-Anim = и вы думали наложить анимацию без анимации? Если да, то глупо.
-ID = Идентификационный номер. Прикол в том, что с этого параметра идут уже одни необязательные. И это ожин их них. ID можно юзать во всяких триггерах и прочем кодинге. В общем, не бесполезно.
-Pos = позиция. Тут всё стандартно - идём в FF, ищем "Линеечку", находим нужные анимации, сверяем их "центры" и позиции по оси X и Y через запятую записываем после "pos = "! Элементарно. И вспомните математику: pos = x, y.
-PosType = тип позиции. Это уже интересней, так как тут можно выбрать, чтобы "светился" ваш персонаж "P1", ваш враг (P2), стена (край экрана) напротив игрока (Front), стена (край экрана) за игроком (Back), левый-верхний угол экрана (Left) и правый-верхний угол экрана (Right). И не забудьте, что меняя тип позиции вам придётся заново вымерять позицию относительно заданных точек!



-Facing = направление. Если выбрать 1, то ВСПЫШКО будет иметь своё естественное направление. В случае, если выбрал -1,  она будет отзеркалена в другую сторону.
-Vfacing = ВЕРТИКАЛЬНОЕ направление. То же самое, но отзеркаливание идёт не справа-налево, а сверху-вниз.
-Bindtime = время положения. То есть сколько времени в тиках вы укажете, столько времени эксплод будет находиться в постоянно указанном положении. Например, если ты указал позицию (30, 40) и bindtime = 50, то в течении 50 тиков эксплод будет обитать на указанной позиции, после чего он естественно замрёт. При bindtime следующие 2 параметра игнорируются до конца его действия.
-----Если указать в значении -1, то эксплод будет ВСЕГДА занимать указанную в pos позицию относительно postype.
-Vel = движение эксплода. Указал значение X, указал значение Y-  и радуйся тому, как эксплод движется относительно самого игрока. Правда, остановить его можно будет только посредством ModifyExplod.
-Accel = ровным счётом, то же самое.
-Random = тот же Pos, но уже это скорее указываются границы РАНДОМНОГО ПОЯВЛЕНИЯ!!!
-Removetime = время на исчезновение. То есть через указанное кол-во тиков эксплод исчезнет...
----- При значении -1 эксплод будет сущ-ать ВСЕГДА...
----- При значении -2 эксплод исчезнет только когда кончится анимация игрока.
-SuperMoveTime = время, которое эксплод может продолжать движение во время СУПЕР ПАУЗЫ. (Ждите контроллер SuperPause)
-SuperMove = ровным счётом то же самое. Разве что тут определяется просто движение эксплода вообще. Будет -1- эксплод тоже повиснет на всю паузу... При 1 будет существовать всю паузу.
-PauseMoveTime = то же самое, что и SuperPauseTime. Только не для контроллера SuperPause, а для контроллера Pause.
-Scale = размер. Тут и нечего объяснять! Сначала ставишь множитель для размера по оси X, потом по оси Y- и всё!
-----Сразу уточню, чтоя  назвал множитель лишь потому, что НАСТОЯЩИЙ РАЗМЕР спрайтов = 1. Его можно на что угодно множить. Уменьшить в 2 раза? 0.5!!!!
----------Опять уточнение: в МУГЕНЕ запятые юзаются для разделения того, что можно разделить. Например те же значения X и Y! В дробях в МУГЕНЕ принято ставить точку.
-Sprpriority = спрайтовый приоритет. Тут то же самое, про что я объяснял в HitDef. Разве что тут теперь не 2, а 3 слоя рассматриваются: игрок, враг и эксплод.
-Ontop = наверху. То есть "Заместитель Sprpriority"! Почему заместитель? А тут всё проще! Поставил 1- эксплод будет поверх всего! Поставил ноль или вообще удалил параметр = не будет поверх всего... Ненаю, что будет.
-Shadow = Тень. Ууууу... Тут такая байдень, что я не понял. Видимо, это имеет отношение к  PalFX... Скажу то, про что я нашёл:
-----Под Shadow ставятся 3 знака. Но от присутствия из всех смысла не будет, если поставить просто -1! Тогда будет использоваться палитра для тени самого уровня, что иногда ОЧЕНЬ полезно.
-----Без тени (Да, для всяких спецэффектов и т.д.) = 0,0,0 или удалить параметр.
-Ownpal = своя палитра. То есть пока у вас на этом параметре стоит 1 никакие PalFX не изменят его цвета! (Очень полезен при создании спецэффектов в EX приёме... ПОТОМУ ЧТО ЕСЛИ ОСТАВИТЬ 0 ИЛИ УДАЛИТЬ... То будет это...)


-Removeongethit = параметр, контролирующий то, чтобы по получении игроком удара Explod исчезал... Базово же стоит 0, что этого не делает...
-Ignorehitpause = параметр, отвечающий за игнор Эксплодом паузы при ударе, что позволяет анимации постоянно течь дальше. 0 или удаление параметра = при остановке игрока останавливается и Эксплод.
-Trans = transparency. Про него я вам рассказывать не буду потому, что я сам по него ещё ничего не знаю. Знаю только то, что тут надо ждать того, когда я дойду до тутора на параметр Trans- там уже и будут разборки в нём.
==========================(Наглядный пример)==============================
[FAYAAAAAAA!!!]
type = explod
trigger = !time
anim = 3010
pos = 0,0
postype = p2
removetime = -2
scale = 1,1
ontop = 1
ownpal = 1


 
Черный_ВластелинДата: Воскресенье, 31.08.2014, 10:40 | Сообщение # 7
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Helper============================================================
Чтож, Мы умеем делать так, чтобы во время стейта светилась определённая анимация.
Пора идти дальше! Теперь я вас научу такому контроллеру, который официально можно считать "Продвинутым Эксплодом"- Хэлперу. В чём же его прелесть?
======================================================================
-Суть контроллера:
Этот контроллер во много схож с Explod. Вот только если Explod позволял накладывать поверх персонажа просто анимацию, то Helper позволяет наложить сам СТЕЙТ! Не поняли? Вот вам примерное объяснение:
-----Explod = наложение просто анимации. То есть это просто "штучки-дрючки". А вот Helper = то, что надо кодеру хотя бы для того, чтобы было возможно создать нечто вроде бесконтактного боя- файрболы, взрывы, ДЕЙСТВИТЕЛЬНО ПОМОГАЮЩИЕ ПЕРСОНАЖИ (если в персонаже присутствуют спрайты этих самых других персонажей, конечно...). В общем, Helper'ы помогают создавать то, чего не может Explod.

==========================(Составляющие кода)=============================
-К.С.Т.Т.
-HelperType = Тип хелпера, которых, собственно, 2: Normal, который нормальный, и Player, за которым также, как за полноценным игроком, наблюдает камера.
-Name = Имя хелпера. Ненужная функция. Разве что если у вас дофига Хелперов в стейте, о так их можно различить... Ах, да... Есть же квадратные скобки...
-ID = Идентификационный номер. Не требует объяснения: потом благодаря этому номеру можно будет накодить что-нибудь более продвинутое.
-Pos = позиция. Чувак, если ты читал разжёвку Explod, то ты знаешь, что это такое и как им полизоваться. Особенно с наличием того же самого...
-PosType = тип позиции. Да, тут, в pos и связи между ними абсолютно аналогичны ситуации в Explod.
-Facing = направление. Тут мало смысла.
-StateNo = номер стейта, который ты хочешь сейчас призвать.
-KeyCtrl = Контроль над хэлпером. То есть да: если стоит 1, то помимо игрока ты сможешь контролить и его хэлпер. Опасно: почти не пашет... Но если найти путь и он всё-таки запашет... Остерегайтесь триггеров...
-OwnPal = сохранение Хэлпером собственной палитры при любой смене палитры "Родителя".
-Supermovetime и Pausemovetime - параметры, которые определяют время возможности Хэлперов двигаться при рабочих Контроллерах SuperPause и Pause.
-Scale = размер. Всё просто: сначала ставишь множитель на ось X, потом на множитель на ось Y. Прикол в том, что не смотря на то, что ещё добрые 3/4 кода тут должны идти параметры типа Scale, Helper отлично понимает и этот параметр, что делает их все абсолютно бессмысленными.
=========================(Наглядный пример)===============================
[999]
type = helper
trigger1 = animelem = 3
helpertype = normal
name = "HADOOOOKEN!!!"
pos = 70, -70
postype = p1
stateno = 1005
ownpal = 1
scale = 0.5, 0.5
=============================(Примечание)================================
Я же говорил, что Helper очень похож на Explod!
Но всё же, ввиду возможностей Helper относительно Explod, сабж гораздо совершенней "Вспышке".
Особенно если код глючный...  biggrin


 
Черный_ВластелинДата: Понедельник, 01.09.2014, 15:56 | Сообщение # 8
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Projectile=======================================================
Ладно, значит мы освоили Helper, да? Чтож, теперь же мы будем осваивать контроллер, который позволяет нам сделать "HADOOOOOOKEN!!"- Projectile (Снаряд). Прикол в том, что такие вещи гораздо лучше делать при помощи Helper'a. Так нафига я после него пишу этот тутор? Да просто потому, что я прослоупочил порядок и сложность. Так бы я Прожектайл гораздо раньше бы описал! biggrin
======================================================================
-Суть контроллера:
Как я уже сказал, эта фигня позволяет создать файрбол.
=======================(Составляющие контроллера)===========================
-К.С.Т.Т.
-ProjID = ID Прожектайла. Особо новых функций не несёт.
-ProjAnim = Анимация прожектайла.
-ProjHitAnim = Анимация, на которую прожектайл сменяется при столкновении.
-ProjRemAnim = Анимация, на которую прожектайл сменяется во время уничтожения. Тобишь аналог ProjHitAnim, на который при неналичии параметра и сменяется.
-ProjCanAnim = Анимация при столкновении с другим прожектайлом. При неналичии сменяется на ProjRemAnim.
-ProjScale = Размер прожектайла. Всё стандартно: первое число- множитель по X, вторая по Y.
-ProjRemove = Изничтожение прожектайла. 0 = не исчезнет. 1 = после удара разлетится к чертям собачьим!
-ProjRemoveTime = Время, через которое прожектайл исчезнет. При -1 не исчезает вообще.
-Velocity = Параметр, настраивающий движение прожектайла и его скорость. Всё так же: первое число- X, второе по- Y.
-RemVelocity = Скорость прожектайла при анимации его уничтожения (исчезновения).
-Accel = Ускоритель прожектайла. В коей-то степени даже аналог Velocity.
-VelMul = Множитель Velocity. То есть да, вместо того, чтобы высчитать, сколько будет "текущее значение * 2" и прописывать его в Vel, можно просто тут прописать это самое 2. Опять же: 2 числа- X и Y.
-ProjHits = Множитель кол-ва ударов прожектайла. То есть хочешь, чтобы прежде, чем он исчезнет, он нанёс некоторое число ударов- просто напиши это число.
-ProjMissTime = Время в тиках, через которое прожектайл нанесёт следующий удар. Если ProjHits = 1, то этот параметр бессмысленнен. Всё равно удар всего лишь 1, об каком времени на второй удар идёт речь?
-ProjPriority = Приоритет прожектайла. То есть если ваш прожектайл напорется на прожектайл с более низким приоритетом- низкоприоритетным будет просто проглочен высокоприоритетным прожектайлом!
-ProjSpritePriority = Спрайтовый приоритет спрайта. У кого выше- того спрайт и будет ближе к экрану.
-ProjEdgeBound = Расстояние от экрана (в пикселях), на котором прожектайл автоматически исчезнет. А что, по вашему он так и будет бесконечно лететь и лететь?
-ProjStageBound = То же самое, но "НУ ВААААЩЕ МАКСИМАЛЬНОЕ КОЛ-ВО ПИКСЕЛЕЙ".
-ProjHeightBound = То же самое, но теперь на расстояние не стены, а ПОТОЛКА / ПОЛА!!!! И тут двоякая система писание:
-----Выбирай слово, которое соответствует вертикальному значению движение прожейтайла: пол (LowBound) или потолок (HighBound).
-----После запятой вводи кол-во пикселей, через которое прожектайл погаснет.
-Offset = Положение. Аналог Pos в Helper, Explod и т.д.
-PosType = Тип позиции. Чувак если ты этого не знаешь- 2 предыдущих контроллера в помощь!
-ProjShadow = Тень прожектайла. А точнее её цвет, так как это параметр типа PalFX. Пропустим его.
-SuperMoveTime и PauseMoveTime = то же самое: если ты с ними не знаком- нафига перепрыгнул 2 предыдущих параметра?
Также тут есть параметры, относящиеся к AfterImage, но это уже тогда, когда мы до него дойдём.
===========================(Наглядный пример)=============================

[HADOKEN]type = projectile
trigger1 = animelem = 6
projanim = 1005
projhitanim = 1006
projscale = 1,1
velocity = 3,0
projhits = 1


 
Черный_ВластелинДата: Вторник, 02.09.2014, 16:07 | Сообщение # 9
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Velocity==========================================================
Тааакс, делать Хадукены мы научились- пора учиться делать Шорьюкен. А чего нам для него не хватает? Правильно! Контроллеров, отвечающих за движение!
Чтож, сегодня я вам разжую сразу 3 контроллера за раз- VelAdd, VelSet и VelMul. Почему?
ДА ПОТОМУ ЧТО ЭТИ КОНТРОЛЛЕРЫ ПОЧТИ ИДЕНТИЧНЫ И КРАЙНЕ КОРОТКИ! biggrin
======================================================================
-Суть контроллера VelAdd:
Собственно, добавляет скорости в указанный момент.
-Суть контроллера VelSet:
Регулирует определённую мкорость движения в указанный момент.
-Суть контроллера VelMul:
Множитель скорости. то есть помножает на себя уже существующий показатель скорости.
====================(Немного про разницу между ними)==========================
Если честно, то я не могу рассказать много про из различия.
Разве что при наличии в коде нескольких триггеров, то в зависимости от кода (VelSet или VelAdd) персонаж отреагирует по разному:
-Если у вас стоит VelSet, то персонаж пройдёт гораздо меньшее расстояние. По сути, различия между VelSet и VelAdd проявляются при различных значениях физики. Особенно ярко они проявляют себя при Physics = N. Я сделал вывод, что VelSet обеспечивает некоторое равномерное равноускоренное движение.

-При VelAdd происходит скорее сложение скоростей чем её регуляция. То есть скорость с каждым триггером увеличивается на то же самое указанное число.

======(Самое лёгкое написание "Составляющих контроллера" в истории моего туторинга)========
-К.С.Т.Т.
-X = кол-во пикселей для движения по оси X.
-Y = кол-во пикселей для движения по оси Y.
======================================================================
Также уточню направления, куда игрок задвижется при работе контроллеров.

==========================(Наглядный пример)==============================
[Diving Kick]
Type = VelSet
Trigger1 = AnimElemTime(3)>=0
X = 9
Y = 5


 
Черный_ВластелинДата: Среда, 01.10.2014, 15:40 | Сообщение # 10
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Pause===========================================
Итак. Прежде я хочу сказать, что за своё месячное отсутствие я не сделал нифига. Теперь готовьтесь- дух у сего тутора может быть другим слегка- отвык.
======================(Суть контролера)================
Собственно, временная остановка действия игры. Причём базово морозится всё и всея. Однако это всё можно и регулировать.
==================(Составляющие контроллера)=============
-К.С.Т.Т.
-Time = Время. А конкретно- кол-во тиков, которое контроллер будет действовать. Сразу замечу, что числа НИЖЕ НУЛЯ параметр не понимает. Параметр НЕ ОПЦИОНАЛЕН!!!!!! Но это единственный обязательный параметр.
-Movetime = Время на движение. То есть персонаж указанный промежуток времени будет "невосприимчивый" к всеобщей паузе.
-EndCmdBufTime = если честно, то в данной пукалке я так и не разобрался. Даже в переводе сей функции как таковой. Сможете разобраться- возьмите с полки пирожок.
-PauseBg = Пауза заднего фона. Всё просто: 1- фон в заморозке, 0- задник продолжает свои анимации.
===================(Наглядный пример)==================
[АЗАЗА, ИЗ-ЗА ЭТОГО МОЙ ПЕРС ТРАЛЬ А ВАШИ ЛАЛКИ, АЗАЗА!!!!!1!!!111!))0)))]
Type = Pause
Trigger1 = 1
Time = 2
MoveTime = 2
PauseBg = 0


 
Черный_ВластелинДата: Среда, 01.10.2014, 16:04 | Сообщение # 11
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
SuperPause===============================
Сразу скажу- ввиду немалой схожести сего контроллера с сабжем повыше я скопировал текст и ввёл в нём правки. Так что если вас охватит дежавю...
======================(Суть контролера)================
Собственно, временная остановка действия игры. Причём базово морозится всё и всея. Однако это всё можно и регулировать.
Однако функционал SuperPause слегка расширенней, чем в Pause. То есть теперь поверх паузы можно СРАЗУ НАЛОЖИТЬ EXPLOD!!!!!!!!!!!!!!!!
==================(Составляющие контроллера)=============
-К.С.Т.Т.
-Time = Время. А конкретно- кол-во тиков, которое контроллер будет действовать. Увы, тут сей параметр понизили до опционального. То есть да- по сути данный контроллер можно написать элементарно с одним K.C.T.T.
-Все опциональные параметры Pause. Назначения и значимость не изменились.
-Anim = Номер анимации, всплывающей при SuperPause. То есть анимация сопутствующего экспода.
-Pos = Позиция "Эксплода". Правда, только относительно самого игрока, но ничего. Тут всё базово- пикселя Х, пикселя У.
-Sound = Звук, сопровождающий СуперПаузу. Почему не эксплод? Да потому что эксплод неопционален и не все его юзают. А звук полезен. Тоже уже пора бы выучить: группа звука (Или SуверенныйГруппаЗвука) да Номер звука.
-P2DefMul = Множитель защиты противника при СуперПаузе. Этим всё сказано. 0= базово указанное в самом МУГЕНе значение, больше 0 = множитель.
-Darken = Затемнение экрана при СуперПаузе. Тут мы начинаем параметры, РАДИ КОТОРЫХ SуперPаузу и можно юзнуть разок-другой. 1 = при паузе темнеет. 0 = соответственно нет!
-PowerAdd = Прибыв энергии. То есть При начале Паузы к вам прибудет (Или убывёт, если значение меньше нуля) указанное кол-во энергии.
-Unhittable = НЕПРИКАСАЕМЫЙ!!!!! Can't touch this!!! ТУН-тунтунтун... Тун-Тун... ТУН-ТУН- Can't touch this! ТУН-тунтунтун... Тун-Тун... ТУН-ТУН...  То есть при супер паузе ваш игрок (при значении 1, конечно.) будет инвулен к ударам. Будет очень печально, если во время СуперПаузы перс наткнётся на Красный ХитБокс вражины и значение параметра = 0...


===================(Наглядный пример)==================
[АЗАЗА, ИЗ-ЗА ЭТОГО МОЙ ПЕРС СУПЕР ТРАЛЬ А ВАШИ СУПЕР ЛАЛКИ, АЗАЗА!!!!!1!!!111!))0)))]
Type = SuperPause
Trigger1 = 1
Time = 2
MoveTime = 2
PauseBg = 0
Darken = 1
Anim = -1
Sound = S9, 9000
PowerAdd = 100
Unhittable =  1


 
Черный_ВластелинДата: Пятница, 14.11.2014, 15:13 | Сообщение # 12
Я покараю тебя одним лишь взглядом...
Группа: Администраторы
Сообщений: 62
Награды: 4
Репутация: 501
Статус: Offline
Variables====================================
Да уж... Давно я думал, о чём же можно написать... И тут мне наконец посоветовали: "Напиши про переменные. Это было бы бесценно.". И я подумал: "А ведь да- ведь переменные есть такие вещи, которые требуют разжёва." и решил вам поведать о контроллерах, связанных с переменной и заодно об самой переменной- без знания о переменной смысла от контроллеров будет немного.

====================[Переменная]=======================
Итак, что же такое переменная? Да то же самое, что и математическое значение- неопределённое число. Вот только это самое "число" есть ничто иное, как универсальный триггер. И с его помощью можно намутить достаточно байды, которую и не сделаешь путём других контроллеров как надо!
Например, можно сделать НЕСКОЛЬКО версий персонажа в одном!
Яркий пример- Рю от P.o.T.S.- там имеют место быть переменные. И ведь если бы он сделал сие чудо только с помощью PalNO, то нельзя было бы насторить так, чтобы был или только Нормальный Рю, или только Злой Рю или только Мастер Рю. Было бы только так: какие-то палитры значат норм, какие-то только злюку.
---------------------------------------------
Некоторые данные:
Всего переменных есть 2 вида:
-Var (Обыкновенный, вписываются целые числа) . Её номер может быть от 0 до 59
-Fvar (Float, с плавающей точкой, вписываются дробные числа). Её номер может быть от 0 до 39.
В случае вписывания в Fvar целого числа, то ничего страшного- дробная часть появляется. То же самое и если наоборот... Но наоборот.

=======================[VarAdd]========================
Собственно, данный контроллер отвечает за прибавление к значению переменной нового.
-------Составляющие контроллера:
-К.С.Т.Т.
-v = номер переменной... Да, там пишется тупо V. По сути, номер нужен для идентефикации переменной как таковой. Да, это нечто вроде ID. Также данный параметр устанавливает тип переменной: v = целая, fv = дробная. Вот как-то так...
-value = значение переменной. В данном случае это такое значение, которое данный контроллер прибавит к уже существующему.

=======================[VarSet]========================
По своей функции данный контроллер схож с предыдущим. По строению так вообще идентичен. Но разница в функции всё-таки есть.
-------Составляющие контроллера:
-К.С.Т.Т.
-v = номер переменной. Всё аналогично.
-value = значение переменной. Тут уже контроллер УСТАНАВЛИВАЕТ определённое значение. То есть если предыдущий случай выглядел так (пред.знач. + нов.знач.), тот этот случай имеет такую схему (пред.знач. заменяется на нов.знач.). Вот так вот...

======================[VarRandom]======================
А этот контроллер работает интересней. Он УСТАНАВЛИВАЕТ значение, но АБСОЛЮТНО СЛУЧАЙНОЕ из указанного промежутка.
-------Составляющие контроллера:
-К.С.Т.Т.
-v = номер переменной. Тут всё опять так же. Отличие лишь одно- на дробной переменной не пашет.
-range = промежуток. То есть да, мы задаём определённый промежуток от одного числа к другому, а уж конкретное значение решает святой рандом. Пишется так: range = [(наим.знач.),(наиб.знач.)].

=====================[VarRangeSet]======================
Самый интересный, но бесполезный контроллер. Смесь VarSet и VarRandom, но с другого конца- теперь мы определяем одно значение для указанного промежутка САМИХ ПЕРЕМЕННЫХ. То есть если мы всегда указывали и манипулировали со ЗНАЧЕНИЕМ переменной, то тут уже всё с точностью, да наоборот. Найдёте его применение- напишите его мне в личные сообщения!
-------Составляющие контроллера:
-К.С.Т.Т.
-value = значение переменной. То же самое, что и было всегда, только тут теперь ОНА разделяется на те же самые виды: value = целая, fvalue = дробная.
-first = номер наименьшего номера переменной в промежутке. Необязателен, так как при удалении сего параметра избирается что там, что там старый добрый ноль...
-last = номер наибольшего номера переменной в промежутке. Тоже необязателен, так как при удалении для указанного типа Var (Его мы указываем в Value) выбирается свой максимум: 59 для целых или 39 для дробных.

=======================[Под конец]=======================
Да, с первого раза суть и смысл переменной может не даться.
Но когда вы наглядитесь на триггеры типа var(59)=24 и поймёте, что переменные сами как таковые не создаются при приёме и что они существуют постоянно, не зависимо от сознания, то манипуляции с ними вы сможете освоить без труда.


 
  • Страница 1 из 1
  • 1
Поиск: