Farengeit | Дата: Понедельник, 15.09.2014, 19:38 | Сообщение # 35 |
 Лейтенант
Группа: Администраторы
Сообщений: 51
Награды: 2
Репутация: 1010
Статус: Offline
| HitDef
Описывает один удар атаки игрока. Если поле Clsn1 (красное) вступает в контакт с Clsn2 (синим) полем оппонента и HitDef до или в этот конкретный момент времени, то указанный эффект будет применен. Это один из наиболее сложных, но наиболее часто используемых контроллеров. Один HitDef-контроллер действителен только для одного удара. Чтобы нанести несколько различных ударов нужно использовать несколько HitDef-контроллеров.
Обязательные параметры:
attr = hit_attribute (string) Это атрибут атаки. Он используется для определения, какой это удар и может ли он нанести повреждение P2 (если P2 использует контроллеры NotHitBy или HitBy). Он имеет Формат:
attr = arg1, arg2
Где: arg1 - символ "S", "C" или "A". Похоже на "Statetype"-параметр для StateDef, - определяет, что это атака стоя (stand), сидя (crouch), или воздушная атака (air).
arg2 - это 2-символьная строка. Первый символ - "N" для "normal", "S" для "special", или "H" для "hyper" (или "super", как их еще называют). Второй символ должен быть одним из следующих: "A" - "Attack" (обычная атака), "T" - "Throw" для броска, "P" - "Projectile" для проджектиля (например, фаербола или снаряда).
Необязательные параметры:
hitflag = hit_flags (string) Этот параметр определяет, в какой стейт будет помещен P2. Представляет строку, содержащуя комбинацию из следующих символов:
"H" - "high", "L" - "low" (оба для атак на земле - стоя или сидя, соответственно) или "A" - "air" (в воздухе). "M" - "mid" - эквивалентно записи "HL". "F" - "fall" - позволяет добивать противника, находящегося в воздухе после удара (т.н. juggle - жонглирование). "D" - "lying Down" - позволяет добивать противника, лежащего на полу. Символ "H", "L" или "A" (или "М") обязательно должен присутствовать в строке.
В этом параметре также могут быть использованы два необязательных символа - "+" или "-". Если добавить "+", то это будет означать, что данный удар нанесет повреждение игроку только в том случае, если он находится в gethit-state (то есть, в стейте повреждения от удара - ему только что был нанесен удар и он еще не вернулся в стойку). Это может быть использовано для цепных атак (комбо) - эти удары не будут влиять на противника, если он не был поражен первым ударом цепной атаки. Символ "-" дает противоположный эффект, - влияет на противника только в том случае, если он не находится в gethit-state, - поэтому используется в бросках и ударах, которые не должны входить в комбо. Символы "+" и "-" являются взаимоисключающими, т.е. не могут быть использованы одновременно.
По-умолчанию, этот параметр равен "MAF"
guardflag = hit_flags (string) Определяет, как P2 может блокировать данную атаку. Представляет строку, содержащуя комбинацию из следующих символов:
"H" - "high", "L" - "low" (оба для атак на земле - стоя или сидя, соответственно) или "A" - "air" (в воздухе). "M" - "mid" - эквивалентно записи "HL". Если этот аргумент опущен (по умолчанию используется пустая строка), то атака является неблокируемой.
affectteam = team_type (string) team_type определяет команду, игроки которой могут быть поражены этой атакой. "B" - "both" - обе команды (все игроки),"E" - "enemy" - команда врага (противника), "F" - "friendly" - своя команда (союзники). По умолчанию "E".
animtype = anim_type (string) Тип анимации P2. Значения выбирается из следующих вариантов: "light", "medium", "hard", "back", "up", или "diagup". Три первых говорят сами за себя, "Back" - если P2 сбивается с ног после атаки, "Up" следует использовать, когда P2 подбрасывается ударом вверх, в воздух (например, апперкот) и "DiagUp" используется, если P2 отбрасывается ударом вверх и назад в воздух с последующим приземлением на голову. Значение по умолчанию - "Light".
air.animtype = anim_type (string) То же, что и animtype-параметр, но для случая, если удар нанесен в воздухе, а не на земле. Значение по умолчанию (или если параметр опущен) - то же, что и значение animtype
fall.animtype = anim_type (string) То же, что и air.animtype, но для случая, если удар нанесен в воздухе при добивании в момент падения. По умолчанию "Up" (если "air.animtype" = "Up") или "Back" (в остальных случаях).
priority = hit_prior (int), hit_type (string) Задает приоритет для данной атаки. Атаки с более высокими приоритетами имеют преимущество над атаками с более низкими приоритетами. Допустимые значения для hit_prior являются 1-7. По умолчанию равно 4.
hit_type определяет класс приоритета атаки. Допустимыми классами приоритета являются "Dodge", "Hit", и "Miss" ("уклонение", "удар" и "промах"). Определяет tiebreaking(?) поведение персонажей в случае, если P1 и P2 одновременно бьют друг друга и значения приоритетов ударов совпадают. Поведение игроков при сочетании различных классов выглядит следующим образом:
Hit vs. Hit: оба (P1 и P2) наносят удар Hit vs. Miss: P1 ударяет, P2 промахивается Hit vs. Dodge: Оба промахиваются Dodge vs. Dodge: Оба промахиваются Dodge vs. Miss: Оба промахиваются Miss vs. Miss: Оба промахиваются
В случае no-hit tie(?) соответсвующий HitDef остается включенным. "Miss" или "Dodge" обычно используется для бросков, где P1 и P2 не должны быть в состоянии одновременного удара друг друга. Значение по умолчанию для hit_type - "Hit".
damage = hit_damage, guard_damage (int, int) hit_damage определяет урон P2 от удара. Параметр guard_damage - опционален, определяет урон Р2 при блокировании удара. По умолчанию (или, если опущены) равны 0.
pausetime = p1_pausetime, p2_shaketime (int, int) Это время, на которое каждый из игроков будет "заморожен" (поставлен на паузу) при успешной атаке . p1_pausetime - время (в тиках игрового времени), в течении которого будет заморожен P1, p2_shaketime - время (в тиках), в течении которого будет "дрожать" P2 перед тем, как его отбросит назад от удара. По умолчанию 0,0, если не указано.
guard.pausetime = p1_pausetime, p2_shaketime (int, int) То же, что и pausetime-параметр, но для случая, если атака блокирована. По умолчанию имеет то же значение, что и pausetime, если не указано.
sparkno = action_no (int) Номер анимации, которая будет отображатся при успешной атаке (т.н. hitspark). Если используется префикс "S" перед номером анимации, то используется анимация из .AIR-файла игрока, напр., "sparkno = S10". По умолчанию используется значение, указанное в переменных персонажа (параметр sparkno секции [Data]), если опущено.
guard.sparkno = action_no (int) То же, что и sparkno-параметр, но для случая, если атака блокирована (guardspark). Если используется префикс "S" перед номером анимации, то используется анимация из .AIR-файла игрока. По умолчанию используется значение, указанное в переменных персонажа (параметр guard.sparkno секции [Data]), если опущено.
sparkxy = spark_x, spark_y (int, int) Определяет координаты для hit/guard spark'ов. spark_x-координата рассчитывается относительно front'a P2. Отрицательное смещение переносит spark глубже внутрь P2. Front определяет смещение по оси x от P2 в сторону P1 на значение, которое берется из секции [size]переменных P2. spark_y рассчитывается относительно P1. Отрицательное значение делает spark выше. Вы можете использовать такой инструмент, как AirView, чтобы определить это значение, установив курсор на "attack spot" и считав значение y-координат. По умолчанию 0,0, если не указано.
hitsound = snd_grp, snd_item (int, int) Звук, который будет проигрываться при успешном ударе (из common.snd). Этот файл входит в комплект вместе с fight.snd и позволяет использовать звуки от 5,0 (слабый удар) до 5,4 (сильный удар). Для воспроизведения звука из .SND-файла персонажа, необходимо использовать префикс "S", напр., "hitsound = S1,0". По умолчанию используется значение, установленное в переменных игрока, если не указано.
guardsound = snd_grp, snd_item (int, int) Звук, который будет проигрываться при блокировке удара (из common.snd). Только 6,0 доступен на данный момент. Для воспроизведения звука из .SND-файла персонажа, необходимо использовать префикс "S". По умолчанию используется значение, установленное в переменных игрока, если не указано.
ground.type = attack_type (string) Это вид атаки, если P2 стоит на земле. Выбирается из: "High" - для атак, напрваленных в голову или врехнюю часть туловища, "Low" - в среднюю часть туловища (желудок), "Trip" - низкая атака по земле (подсечка. В этом случае y-velocity ground.velocity параметра должен быть не равен нулю, а fall-параметр равен 1, причем после падения на землю противник не отскакивает от неё), "None" - ничего не делает, кроме применения hitpause-параметров для P1 и P2. Если удар наносится в спину потивника, то "High" будет отображен, как "Low" и наоборот. Анимации P2 будут заменены в том случае, если AnimType = "Back". По умолчанию ,если опущено, используется значение "High".
air.type = attack_type (string) Это вид атаки, если P2 находится в воздухе. По умолчанию имеет то же значение, как "ground.type", если не указано.
ground.slidetime = slide_time (int) Это время в тиках, в течении которого P2 будут скользить назад после попадания в него (не включает в себя "pausetime" для P2). Применимо только для ударов, которые удерживают P2 на земле. По умолчанию 0, если опущено.
guard.slidetime = slide_time (int) Аналогично ground.slidetime, только для случая, если P2 блокировал удар. По умолчанию равно значению guard.hittime
ground.hittime = hit_time (int) Время (в тиках), в течении которого P2 остается в Hit-state после удара. Правильная регулировка параметра делает возможными комбо удары. По умолчанию 0, если опущено.
guard.hittime = hit_time (int) Аналогично ground.hittime, только для случая, если P2 блокировал удар. По умолчанию равно значению ground.hittime
air.hittime = hit_time (int) Время (в тиках), в течении которого P2 остается в Hit-state после удара в воздухе, после которого он снова может блокировать удары. Не имеет смысла, если "fall" параметр = 1. По умолчанию 20, если опущено.
guard.ctrltime = ctrl_time (int) Время (в тиках), по истечению которого P2 восстановит контроль в guard-state на земле. По умолчанию равно значению guard.slidetime, если опущено.
guard.dist = x_dist (int) Это x-дистанция от P1, находясь на которой P2 поставит блок (выполнит guard-state), если P2 будет удерживать направление от P1 (т.е., назад). По умолчанию равно значению, указанному в переменных персонажа. Обычно данный параметр не используется.
yaccel = accel (float) Определяет ускорение по оси y для P2, которое придается при удачном попадании. По умолчанию .35 при 240p, .7 при 480p, 1.4 при 720p.
ground.velocity = x_velocity, y_velocity (float, float) Начальная скорость, которая придается P2 после удара, если P2 находится на земле. Если y_velocity не равно нулю, то P2 будет подброшен в воздух. Оба значения по умолчанию 0, если не указаны. Вы можете не указывать y_velocity, если хотите, чтобы P2 оставался на земле.
guard.velocity = x_velocity (float) Скорость, придаваемая P2, если P2 блокировал удар. По умолчанию равно значению "x_velocity" параметра ground.velocity, если guard.velocity опущен.
air.velocity = x_velocity, y_velocity (float, float) Начальная скорость, которая будет придана P2, если он ударен в воздухе. По умолчанию 0,0, если не указано.
airguard.velocity = x_velocity, y_velocity (float, float) То же, что и air.velocity, но для случая, если P2 блокировал удар. По умолчанию равны x_velocity * 1.5, y_velocity / 2, где x_velocity и y_velocity - значения параметра air.velocity.
ground.cornerpush.veloff = x_velocity (float) Определяет дополнительную скорость (скорость смещения), которая придается игроку, если он наносит удар по противнику, стоящему на земле в углу экрана. Чем больше значение, тем дальше игрок будет отброшен назад (из угла). Если параметр опущен, то по умолчанию значение зависит от параметра attr (если значение arg1 параметра attr равно "A", значение ground.cornerpush.veloff равно 0, в других случаях 1.3 * guard.velocity[/size]).
air.cornerpush.veloff = x_velocity (float) Тоже, что и предыдущий параметр, но для случая, если противник находится в воздухе. По умолчанию равно значению ground.cornerpush.veloff, если опущено.
down.cornerpush.veloff = x_velocity (float) Тоже, что и предыдущий параметр, но для случая, если противник сбит с ног. По умолчанию равно значению ground.cornerpush.veloff, если опущено.
guard.cornerpush.veloff = x_velocity (float) Тоже, что и ground.cornerpush.veloff, но для случая, если противник заблокировал удар. По умолчанию равно значению ground.cornerpush.veloff, если опущено.
airguard.cornerpush.veloff = x_velocity (float) Тоже, что и air.cornerpush.veloff, но для случая, если противник заблокировал удар. По умолчанию равно значению ground.cornerpush.veloff, если опущено.
airguard.ctrltime = ctrl_time (int) То же, что и guard.ctrltime, но для случая, если противник находится в воздухе. По умолчанию равно значению guard.ctrltime, если опущено.
air.juggle = juggle_points (int) Количество дополнительных juggle point'ов, требуемых для хита. Не путать с параметром "juggle" в Statedef. Обычно не используется (в основном, используется для прожектилей - projectiles).
mindist = x_pos, y_pos (Int, Int) Смотрите ниже.
maxdist = x_pos, y_pos (Int, Int) Эти параметры" позволяют контролировать минимальное и максимальное расстояние P2 от P1 после удара. Эти параметры обычно не используются. По умолчанию никаких изменений в позиции P2, если не указано.
snap = x_pos, y_pos (int, int) Означает, что P2 после удара перемещается в заданное положение относительно P1. Этот параметр, как правило, не используется. Если вы хотите привязать P2 к определенной позиции для броска, рекомендуется использовать TargetBind контроллер в cтейте броска, а не данный параметр. По умолчанию никаких изменений в позиции P2, если не указано.
p1sprpriority = drawing_priority (int) Приоритет отрисовки спрайтов P1 (в случае как удачного удара, так блокированного P2). Вместе с p2sprpriority данный параметр, определяет, как изображается P1 - спереди или сзади P2. Значением по умолчанию является 1.
p2sprpriority = drawing_priority (int) То же, что и предыдущий параметр, но для P2. Значением по умолчанию является 0 (соответсnвенно, P1 будет изображен поверх P2).
p1facing = facing (int) Установите значение -1, чтобы повернуть P1 в другую сторону, если попадание будет удачным. Значение по умолчанию - без изменений для P1
p1getp2facing = facing (int) Установите значение 1, и P1 будет повернут лицом в ту же сторону, что и P2 (если попадание будет удачным), и -1, если P1 должен быть повернут лицом не в том направлении, в котором смотрит P2. Значение по умолчанию 0 (Нет изменений). Если не равно нулю, то этот параметр имеет приоритет над p1facing.
p2facing = facing (int) Установите значение 1, и P2 будет повернут лицом в ту же сторону, что и P1 (если попадание будет удачным), и -1, если P2 должен быть повернут лицом не в том направлении, в котором смотрит P2. Значение по умолчанию 0 (Нет изменений для направления P2).
p1stateno = state_no (int) Номер стейта для P1, который выполнится, если попадание будет удачным. Это должен быть стейт атаки (movetype = A) не менее 1 тика. Используется в основном для бросков. По умолчанию -1, изменений нет.
p2stateno = state_no (int) Номер стейта для P2, который выполнится, если попадание будет удачным. P2 наследует данные стейтов и анимаций P1 (т.е., P1 получает контроль над P2) до того момента, как P2 будет вновь ударен, либо контроллер SelfState не вернет управление P2 (вместе с данными стейтов и анимации). Стейт должен быть стейтом повреждения (movetype = H) не менее 1 тика. Используется в основном для бросков и ударов, требующих специфического поведения P2 после удара. По умолчанию -1, изменений нет.
p2getp1state = bvalue (boolean) Установите в 0, чтобы запретить P2 получать данные стейтов и анимаций P1 в случае удачного попадания, если вы не хотите, чтобы параметр "p2stateno" вел себя как обычно. Значение по умолчанию = 1, если "p2stateno" параметр используется. Игнорируется в противном случае.
forcestand = bvalue (boolean) Установите в 1, если хотите, чтобы P2 в вставал (в том случае, если он сидит) при удачном попадании. Ничего не дает, если P2 находится в воздухе. Обычно по умолчанию 0, но если y_velocity "ground.velocity" параметра не равен нулю, то значение по умолчанию 1.
fall = bvalue (boolean) Установите в 1, если хотите, чтобы игрок был сбит с ног после удачного удара без возможности восстановления контроля в воздухе (fall state). По умолчанию 0
fall.xvelocity = x_velocity (float) Это движение по оси x, которое сообщается P2 после того, когда отскакивая от земли при падении. По умолчанию-без изменений, если не указано.
fall.yvelocity = y_velocity (float) Это движение по оси y, которое сообщается P2 после того, когда отскакивая от земли при падении. По умолчанию -4.5 при 240p, -9 при 480p, -18 при 720p.
fall.recover = bvalue (boolean) Возможность "восстановления" при падении (игрок приземляется на ноги). По умолчанию равен 1 (может восстанвится)
fall.recovertime = recover_time (int) Это время, которое должно пройти прежде, чем P2 способен восстановится от падения, нажав опредленную комбинацию кнопок(обычно x+y). Не включает в себя время "p2_shaketime" параметра "pausetime". Значение по умолчанию равно 4, если не указано.
fall.damage = damage_amt (int) Определяет дополнительное повреждение от падения на землю (в момент столкновения с землей). По умолчанию 0, если не указано.
air.fall = bvalue (boolean) То же, что и "fall" параметр, но для того случая, когда P2 в момент удара находится в воздухе. По умолчанию то же значение, что и fall
forcenofall = bvalue (логическое) Установите в 1, чтобы вывести P2 из падения, если он один. Не влияет на P2, если он не в fall-state'е. Этот параметр игнорируется, если параметр "fall" установлен в 1. По умолчанию 0, если опущен.
down.velocity = x_velocity, y_velocity (float, float) Начальная скорость, которая будет придана P2, если он лежит на полу и ему нанесен удар. По умолчанию 0,0, если не указано. Если y_velocity не равен нулю, P2 будет подброшен в воздух, если равен нулю, то P2 будет скользить по земле. По умолчанию равно значению параметра air.velocity, если параметр опущен.
down.hittime = hit_time (int) Время, в течении которого P2 будет скользить назад после удара в случае, если он лежит на полу. Этот параметр игнорируется, если y_velocity параметра down.velocity не равен нулю.
down.bounce = bvalue (boolean) Установите в 1, если вы хотите, чтобы P2 отскочил от земли один раз (с использованием значений параметров fall.xvelocity и fall.yvelocity) после удара в случае, если он лежит на земле. Этот параметр игнорируется, если y_velocity параметра down.velocity равен нулю. По умолчанию 0, если не указан (P2 падает на землю и остается там).
id = id_number (int) Идентификатор удара. Используется для цепочечных атак. Можно использовать для того, чтобы в последствии обнаружить, если последний удар был конкретным Hitdef'ом. Этот номер называется TargetID. Использзуется в колнтроллерах типа TargetBind или ключевом слове для переадресации target(ID). Допустимыми являются значения >=1. Если этот параметр опущен, то по умолчанию 0 (нет ID). Не путать TargetID с PlayerID.
chainID = id_number (int) Используется для цепочечных атак. Если P2 был ударен P1 атакой с этим ID, то только в этом случае он может быть поражен HitDef'ом с этим chainID. Вы можете использовать это в следующих один за другим частях цепной атаки. Обратите внимание, что цепные атаки можно реализовывать также без использования "ID" и "СhainID" параметров. Допустимыми являются значения >=1. Если этот параметр опущен, то по умолчанию -1 (цепь строится от любого попадания).
nochainID = nochain_1, nochain_2 (int) Определяет до 2 ID-номеров, которые не могут использоваться в цепной атаке с этим ударом. Если равно -1 (по умолчанию), то цепочечные атаки не явно отключены для всех ID-номеров. nochain_2 может быть опущен. Кроме -1, значения nochainID не должно быть равно chainid. Этот параметр не имеет никакого эффекта, если P2 ударен третьим лицом между предыдущим HitDef'ом P1 и текущим HitDef'ом.
hitonce = hitonce_flag (boolean) Если установлено значение 1, HitDef влияет только на одного противника. Если удар будет успешным, все остальные цели (target) будут удалены. Обычно по умолчанию 0. Исключение составляет случай, когда "attr" параметр throw-типа, что делает его по умолчанию 1.
kill = bvalue (boolean) Задайте значение 0, если этот удар не должен нокаутировать (KO) противника, если удар выполняется успешно. Значение по умолчанию 1.
guard.kill = bvalue (boolean) Задайте значение 0, если этот удар не должен нокаутировать (KO) противника, если удар заблокирован. Значение по умолчанию 1.
fall.kill = bvalue (boolean) Задайте значение 0, если этот удар не должен нокаутировать (KO) противника, если нанесен во время падения на землю (см. fall.damage). Значение по умолчанию 1.
numhits = hit_count (int) hit_count показывает, сколько хитов этого hitdef добавляет к счетчику хитов (combo counter). Должно быть больше или равно 0. Значение по умолчанию 1.
getpower = p1power, p1gpower (int, int) p1power определяет количество силы, прибавляемое к текущему значению силы P1, если это HitDef выполняется успешно, а p1gpower - если это HitDef блокирован. Если этот параметр опущен, p1power по умолчанию равно значению hit_damage (параметра damage), умноженному на значение Default.Attack.LifeToPowerMul, указанному в data/mugen.cfg. Если p1gpower опущен, то по умолчанию используется значение, указанное для p1power, деленное на 2.
givepower = p2power, p2gpower (int, int) p1power определяет количество силы, прибавляемое к текущему значению силы P2, если это HitDef выполняется успешно, а p1gpower - если это HitDef блокирован. Если этот параметр опущен, p1power по умолчанию равно значению hit_damage (параметра damage), умноженному на значение Default.Attack.LifeToPowerMul, указанному в data/mugen.cfg. Если p1gpower опущен, то по умолчанию используется значение, указанное для p1power, деленное на 2.
palfx.time = palfx_time (int) См. ниже.
palfx.mul = r1, g1, b1 (int, int, int) См. ниже.
palfx.add = r2, g2, b2 (int, int, int) Если включены, то позволяют применять эффекты к палитры P2 (аналогично контроллеру PalFX), если попадание будет удачным. palfx_time - время в тиках, в течении которого будет применен эффект. palfx_time по умолчанию равен 0 (нет эффекта). Остальные параметры такие же, как в PalFX контроллере.
envshake.time = envshake_time (int) См. ниже.
envshake.freq = envshake_freq (float) См. ниже.
envshake.ampl = envshake_ampl (int) См. ниже.
envshake.phase = envshake_phase (float) Если включены, то определяет вертикальное дрожание экрана (аналогично контроллеру EnvShake), если попадание будет удачным. envshake_time - время в тиках, в течении которого будет дрожать экран. Остальные параметры такие же, как в EnvShake контроллере.
fall.envshake.time = envshake_time (int) См. ниже.
fall.envshake.freq = envshake_freq (float) См. ниже.
fall.envshake.ampl = envshake_ampl (int) См. ниже.
fall.envshake.phase = envshake_phase (float) Аналогично envshake.* параметрам, но применяются только тогда, когда P2 упадет на землю.
Детали: Поведение контроллера неопределено, если выполняется в [Statedef -2] при наследовании данных стейтов и анимации.
Пример: Нет
|
|
|
|