Defence Wall

Категория: M.U.G.E.N / Учебник M.U.G.E.N
рейтинг 4,3 из 5
  • Добавил: Manoichi
  • Дата: 6-09-2016, 23:03
  • Просмотры: 325
  • Отзывы: 25
  • Автор: Midnight

  • Внимание: Данный файл предоставлен для бесплатного скачивания всем пользователя Муген проекта. Пожалуйста отблагодарите автора комментарием и подпиской на наш проект.

    При размещении матералов выложенных на нашем ресурсе активная обратная ссылка на источник обязательна!
    Пожалуйста уважайте труд пользователей.

    Для данной техники нужно создать 2 хелпера... Назовем их Хелпер"илюзия" и Хелпер "барьер". Илюзия будет составлять видимую часть техники, Барьер же исполнять нужные функции присущее технике данного типа. 
    для начала, определимся каким критериям должна соответствовать данная техника: 
    1)непропускать противника сквозь себя 
    2)находясь за стеной игрок должен быть неуязвим для атак, их должна принимать на себя техника. 
    3)её должно быть возможно сломать, иначе будет читерно, и теряется элемент реальности 
    ________________________________________ 
    итак начнем с хелпера "илюзии". для удобства его призывают в стейте игрока, он ничем не отличается от обычного хелпера. вот пример: 
    ________________________________________ 
    [State 0, Helper] - данный хелпер являет собой образ стены, её изображения, поэтому ставить на его спрайты коробочки в анимациях не надо 
    type = Helper 
    trigger1 = * условие появы хелпера 
    trigger1 = !numhelper(1000)>0 - данная формулировка предотвращает призыв стены больше 1 раза 
    helpertype = normal 
    name = "Defence_Wall" 
    ID = 1000 
    stateno = 1000 
    pos = *,* - позиция где появиться стена по х,у 
    postype = p1 
    facing = 1 
    keyctrl = 0 
    ownpal = 1 
    supermove = 9999 
    pausemove = 9999 

    ну эт понятно, обычный хелпер, терь посложней 

    итак, перейдем к стейтам стены: 
    [StateDef 1000] 
    type = S 
    movetype= A 
    physics = S 
    juggle = 1 
    velset = 0,0 
    ctrl = 0 
    anim = * анимация стены. 
    poweradd = 0 
    sprpriority = 10 

    [State 0, Helper] - а вот уже этот хелпер как раз будет исполнять нужные нам функции. в его анимации спрайтов быть не должно, ток коробочка по контуру спрайтовхелпера илюзии 
    type = Helper 
    trigger1 = * условие призыва хелпера. Желательно чтоб призывался в тот момент когда закончено построение стены 
    trigger1 =!numhelper(2000) 
    helpertype = Normal 
    name = "Shield" 
    ID = 2000 
    stateno = 2000 
    pos = 0,0 
    postype = p1 
    facing = 1 
    keyctrl = 0 
    ownpal = 1 
    supermove 
    pausemove 
    size.ground.back = 20 - задний размер хелпера 
    size.ground.front = 20 - фронтальный размер хелпера 
    size.height = 100 - высота хелпера 

    3 последнии строки обязательно должны быть указаны иначе не будет работать принцып "непроницаемости". их значений подстраивают под спрайты техники. Проверить правильно ли заданы значения можно нажав во время игры комбинацию кнопок Ctrl+C и глянуть не выходят ли рамки хелпера за спрайт 

    [State 0, AssertSpecial] - убирает тень 
    type = AssertSpecial 
    trigger1 = 1 
    flag = noshadow 

    [State 0, LifeSet] - задает Жизнь стены 
    type = LifeSet 
    trigger1 = 1 && NumHelper(2000) = 1 - означает что код будет работать когда количество хелперов с ID 2000 (барьерный) будет равно 1 и постоянно обновляться. 
    value = Helper(2000),Life - означает что Илюзионный Хелпер перенимает себе значения жизни Барьерного хелпера 

    [State 0, ChangeState] - переход в стейт разрушения 
    type = ChangeState 
    trigger1 = life <= 1 - активируется когда жизнь упадет ниже 1 
    value = 1001 - номер стейта разрушения Хелпера Илюзии. 
    ctrl = 1 

    [Statedef 1001] 
    type = S 
    movetype = I 
    physics = S 
    juggle = 4 
    poweradd = 0 
    ctrl = 0 
    velset = 0,0 
    anim=* - номер анимации разрушения техники 

    в данный стейт можно добавлять разнообразные спецэффекты типа экплодов и других хелперов что б сделать окончание техники более эффектным 

    [State 0, DestroySelf] - уничтожает хелпер 
    type = DestroySelf 
    trigger1 = * - условие исчезновения хелпера 

    Примичание: Сцена разрушения техники может и состоять из нескольких стейтов, через использование ChangeState, но в самом конце обязательно должен стоять DestroySelf 

    ________________________________________ 
    с хелпером Илюзии разобрались. 
    Теперь рассмотрим Барьерный: 
    ________________________________________ 
    [Statedef 2000] 
    type = S 
    movetype = I 
    physics = S 
    juggle = 4 
    poweradd = 0 
    ctrl = 0 
    velset = 0,0 
    anim= * 

    [State 0, AssertSpecial] - убирает тень 
    type = AssertSpecial 
    trigger1 = 1 
    flag = noshadow 

    [State 0, LifeSet] - задает жизнь барьеру 
    type = LifeSet 
    trigger1 = !Time&&Life>* - условие активации хелпера, означает что жизнь задаеться сразу после создания и если прежднее значение жизни меньше указанного значения 
    value = * - указываем величину жизни хелпера. Должно совпадать со значением указанным строкой выше. 

    [State 0, PosSET] - фиксирует хелпер 
    type = PosSET 
    trigger1 = 1 - постоянно работает 
    x = Helper(1000), Pos X - означает что Барьерный фиксирован к Илюзионному 

    [State 0, PlayerPush] - код не дающий пройти насквозь 
    type = PlayerPush 
    trigger1 = 1 - постоянно обновляется 
    value = 1 - если 1 - пройти насквозь нельзя, если 0 будет проницаемым. 
    IgnoreHitPause=1 - игнорировать паузы от ударов, 1 - активно, 0 - неактивно 

    [State 0, LifeAdd] - код отнимающий жизнь у хелпера при ударах 
    type = LifeAdd 
    trigger1 = !Time 
    value =-GetHitVar(damage) - данный контроллер будет фиксировать урон нанесенный Барьеру и отнимать его у заданого количества жизни 

    [State 0, HitOverride] - переназначает свойства удара противника, и возвращает барьер обратно в свой стейт. Таким образом после ударов он не теряет свойств и не реагирует на параматры ХитДефа противника. 
    type = HitOverride 
    trigger1 = 1 
    attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT 
    slot = 0 
    stateno = stateno 
    time = 0 
    forceair = 0 

    [State 0, ChangeState] - переход в стейт разрушения 
    type = ChangeState 
    trigger1 = life <= 1 - активируется когда жизнь упадет ниже 1 
    value = 2001 - номер стейта разрушения Хелпера Барьра. 
    ctrl = 1 

    [Statedef 2001] 
    type = S 
    movetype = I 
    physics = S 
    juggle = 4 
    poweradd = 0 
    ctrl = 0 
    velset = 0,0 
    anim=9999 - стандартный, "пустой" номер анимации, без спрайтов и коробочек. 

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

    [State 0, DestroySelf] - уничтожает хелпер 
    type = DestroySelf 
    trigger1 = time=1 - условие уничтожения. Желательно через 1 тик что б хелпер илюзии успел среагировать на жизнь барьерного 
    ________________________________________ 

    что ж с самой техникой разобрались как бы. Но есть ещё одна функция которую мы не задали - защита от атак 
    для того что б находясь за Стеной быть неуязвимым для атак, используем [statedef -2] в него запишем вот такое: 

    [State 0, NotHitBy] 
    type = NotHitBy 
    trigger1 = helper(1000),p2dist x > 0 
    trigger1 = helper(1000),ParentDist x < 0 
    trigger1 = helper(1000),stateno != 1001 
    trigger1 = helper(1000),abs (p2dist Y)<100 
    trigger1 = helper(1000),facing = 1 
    value = SCA,NA,SA,SP,ST, 
    value2 = S,NA 
    time = 1 

    [State 0, NotHitBy] 
    type = NotHitBy 
    trigger1 = helper(1000),p2dist x < 0 
    trigger1 = helper(1000),ParentDist x > 0 
    trigger1 = helper(1000),stateno != 1001 
    trigger1 = helper(1000),abs (p2dist Y)<100 
    trigger1 = helper(1000),facing = 1 
    value = SCA,NA,SA,SP,ST, 
    value2 = S,NA 
    time = 1 

    [State 0, NotHitBy] 
    type = NotHitBy 
    trigger1 = helper(1000),p2dist x > 0 
    trigger1 = helper(1000),ParentDist x < 0 
    trigger1 = helper(1000),stateno != 1001 
    trigger1 = helper(1000),abs (p2dist Y)<100 
    trigger1 = helper(1000),facing = -1 
    value = SCA,NA,SA,SP,ST, 
    value2 = S,NA 
    time = 1 

    [State 0, NotHitBy] 
    type = NotHitBy 
    trigger1 = helper(1000),p2dist x < 0 
    trigger1 = helper(1000),ParentDist x > 0 
    trigger1 = helper(1000),stateno != 1001 - номер стейта разрушения 
    trigger1 = helper(1000),abs (p2dist Y)<100 - значение высоты хелпера 
    trigger1 = helper(1000),facing = -1 
    value = SCA,NA,SA,SP,ST, 
    value2 = S,NA 
    time = 1 

    что б не расписывать кажный триггер отдельно, долго и нудно, лучше напишу суть действия даной формулировки кода: 

    ЕСЛИ игрок призвавшый технику находиться ЗА ней и в тоже время противник находится с другой её стороны, но не выше уровня стены (типа в воздухе, прижок и все такое) и сама техника не находиться в стейте разрушения, ТО игрок будет неуязвимым. 
    ЕСЛИ же нарушиться ХОТЬ ОДНО из условий (игрок вышел из за стены; противник перепыгнул стену; противник взлетел выше стены; разрушыл стену; (сори за тавтологию)) игрок будет уязвим 

    Ну вот... как то так выглядит полноценная техника "Защитная Стена" 

    Смотреть Defence Wall онлайн:

    Теги:
    mugen helper tutorial
    Теги: mugen helper tutorial
    Скачать материалы Defence Wall
    Статус раздачи: Активна
    Раздают: 108 Качают: 23 Размер: 708,24Mb Скачали: 36 раз(а)
    Имя файла: Defence Wall.torrent
    Последняя активность: сентябрь 6, 2016, 11:03 pm
    Похожие материалы
    Отзывы пользователей
    off
    • Написал: Georgepr
    • Дата: 22 марта 2017 04:30
    сайт по движку муген сделан очень профессионально, и легко читается. То, что мне нужно. И многим другим.
    Ответить
    off
    • Написал: Shisui4167
    • Дата: 16 апреля 2017 01:34
    5ка! Отличный пост!
    Ответить
    off
    Я Очень люблю Мугены и легко разбираюсь в комбинациях персонажей) ;-)
    Ответить
    off
    • Написал: lirelovarer90
    • Дата: 16 апреля 2017 20:56
    Класс! Афтару респект!
    Ответить
    off
    • Написал: VertTit
    • Дата: 17 апреля 2017 15:27
    how usualy best work
    Ответить
    off
    • Написал: AlimaVus
    • Дата: 18 апреля 2017 17:44
    ну что тут скажешь…
    Ответить
    off
    • Написал: Shisui4167
    • Дата: 24 апреля 2017 00:00
    Ну спасибо.Выручили
    Ответить
    off
    • Написал: AkaschaEr
    • Дата: 26 апреля 2017 19:30
    Хорошее начало дня
    Ответить
    off
    • Написал: iydyxkguwhr
    • Дата: 22 мая 2017 16:30
    Спасибо большое!
    Ответить
    Ошибка!
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Добавить отзыв
    Ваше имя:*
    Ваш e-mail:*
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
    Введите код:*
    Кликните на изображение чтобы обновить код, если он неразборчив