Настройки
http://lfforever.ru/design/black.css http://lfforever.ru/design/ds_dw.css http://lfforever.ru/design/xmas.css
Присоединяйся к каналу LFF в Discord!
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Бутылка Великого Тана
13.12.14 19:43 | #1

Репутация: 122
Постов: 854
Хочу представить вниманию Бутылку Великого Тана, преследующую Шэда:

В данной теме я разберу отдельно что и как, но для этого нужно скачать файлы из аттача. (Айди Нового Дэвиса - 600, бутылки - 622. D>J - создание. DvJ - пить)

Извиняюсь за большой объем текста посередине.. Я рассчитываю, что читающий смотрит на код у себя и видит всё, о чем я написал.
Начну с того, что каждый кадр Дэвиса имеет спец. бди:
Код
bdy:
        kind: 0  x: 39  y: -1226018  w: 35  h: 62
     bdy_end:

Примечание: есть еще другие варианты бди, но они нужны в определенных ситуациях.
У меня он записан в одну строчку, т.к. быстрее использовать старенький датаченджер, чем студию.
Особенно ВАЖНО обратить внимание на координаты этого тела: они смещены в сторону.. переда Дэвиса. Это нужно для правильной работы бутылки, если Дэвис повернется в противоположную сторону (относительно того момента, когда он ее создал)

Дэвиса пока что детально рассматривать нет смысла, поэтому переходим к бутылке.
Не буду обращать внимание на простые очевидные вещи, в данном случае интересуют особенности, обеспечивающие работу.

Код
itr:
        kind: 8  x: 12  y: -1226200  w: 6  h: 300 zwidth: 0 dvx: 100   
     itr_end:
     itr:
        kind: 8  x: 51  y: -1226200  w: 6  h: 300 zwidth: 16 dvx: 1   
     itr_end:


Первый итр для создания визуальной бутылки, если Дэвис не развернулся в другую сторону. Если же он развернулся, то срабатывает второй, и тогда невидимая бутылка развернется и создаст визуальную.
Процесс проверки-создания зациклен, но только в случае успешной проверки, если Дэвиса там не оказалось, то это значит что он сдвинулся с места. Для обычной ходьбы и мелких смещений работает все та же проверка. Даже для бега, если увеличить размеры итр, но я хотел сделать отдельную анимацию для бега, поэтому у Дэвиса в кадрах бега (а еще и в Дэше, Дэшатаке, Дэш атаке оружием на всякий случай) отдельный бди, на другой высоте. Если Бутылка не цепляется за Дэвиса, то она переходит на проверку бега. Если же и тут неудача, то она зацикливается в кадрах 19-20 на проверку и создание визуальной бутылки.

Но если Дэвис на самом деле бежит, то создается кадр визуальной бутылки. После этого кадр на проверку бега (7 кадр). Если Дэвис все еще бежит, то это зацикливается (в моем варианте это будет не совсем верно, но к этому вернусь ниже. это лишь разборка работы). Так вот, то это зацикливается (кадры 4-7). Если Дэвис перестал бежать, т.е. отсутствует тело кадров бега (или же он слишком быстро переместился, чего в обычном беге не произойдет), то переход в кадр 21. Это проверка на остановившегося Дэвиса, тут границы сдвинуты еще чуть дальше и увеличены для фикса проблемы изза микроскопического перехода между кадрами и движением Дэвиса по инерции (или просто другим движением в ту же сторону, но без тела для бега. Таким образом Дэш в беге возможен и не вызывает никаких проблем). Если же не удается "поймать" Дэвиса ив этот раз,то возвращаемся в первую проверку на бег, где еще раз проверяем. Если и тут неудача, то по уже рассмотренному пути переходим в кадры ожидания, когда нас подберет Дэвис.

В моем варианте неск. проверок на бег, это нужно для создания эффекта заторможенной реакции на бег. Это достигается путем задержек между переходами от создания визуальных бутылок к проверкам на бег, те же визуальные бутылки тоже имеют задержку на 1 больше (это изза того, что эта единичка набегает изза нулевых переходов между кадрами). Каждая бутылка существует время равное задержке следующей бутылки (это не касается 2 последних бутылок). Проверка в кадрах 21-24 - это постепенный откат назад, все равно все оканчивается 3 кадром. Не знаю точно зачем я сделал такую долгую систему.. Но с ней чтото было связано, что в итоге было не использовано.. Можно сделать проще и обойтись одним лишь 21 кадром...

Хотьба есть, бег есть, разворот есть.. Но в нулевом кадре присутствуют еще 2 проверки:
Код
itr:
        kind: 8  x: 51  y: -1224200  w: 6  h: 300 zwidth: 16 dvx: 25   
     itr_end:
     itr:
        kind: 8  x: 51  y: -1222200  w: 6  h: 300 zwidth: 16 dvx: 31   
     itr_end:

Первая - это помощь Дэвису во время обычной атаки.
Вторая - Удаление бутылки при использовании Дэвисом нового приема, когда он использует своего компаньона по назначению. Однако без проверки на существование бутылки Дэвис просто создает ее из ничего. Поэтому понадобилось взаимодействие бутылки и Дэвиса способом, о котором я узнал на ЛФЕ. Это все тот же ИК8, но без надписи "Com". Я просто скопирую код из примера оттуда с переведенными фразами:
Код
<frame> 0
   pic: 99 state: 3005 wait: 0 next: 1
     
<frame> 1
   pic: 99 state: 3005 wait: 0 next: 2
   opoint: kind: 2 action: 1200 oid: ?←зависит от используемого type: 0. Также, помните про opoint: kind: 2
   wpoint: kind: 1 weaponact: ??? ← кадр type: 0, в котором он должен находиться
     
<frame> 2
   pic: 99 state: 3005 wait: 0 next: 3
   wpoint: kind: 1 weaponact: ??? ← tкадр type: 0, в котором он должен находиться
     
<frame> 3
   pic: 99 state: 3005 wait: 0 next: 1000
   wpoint: kind: 1 weaponact: 1000 ←после weaponact, использование next в type: 0 - бесполезно, потому weaponact: 1000 магическим образом удаляет type:0

Ссылка на источник: http://www.lf-empire.de/forum/showthread.php?tid=5173
Также хочу обратить внимание на action: 1200, Именно благодаря ему надпись "Com" не видна

Надеюсь было полезно, если придет чтото еще в голову - поведаю.

[ Маленький Фриз говорит: это сообщение было отредактировано!]
Прикрепленные файлы: davis.dat (98.1 Kb) · companion.dat (10.0 Kb)
  • Страница 1 из 1
  • 1
Поиск: