|
|
Добро пожаловать на портал Little Fighter Forever
На нашем портале вы можете найти множество самых разных дополнений для игры, видео, как развлекательное так и обучающее, найти себе достойного соперника и, конечно, принять участие в наших эвентах.
И не забывайте принимать участие в дискуссиях на форуме :)
Объявление
О вступлении в отрядаз, развивающие портал вы можете узнать здесь и, по желанию, вступить в них на желаемую должность
Основатель обязуется выполнять и следить за выполнением пунктов:
1. Обучение в желаемой должности
2. Стажировка по должности
3. Специальный e-mail адресс типа мыло@lfforever.ru
4. Обеспечение V.I.P. функциями БЕЗ ограничений
5. Возможность повышения и продвижения по должности: выше ранг - больше самостоятельности в действиях
6. Обеспечение равноправия между всеми членами персонала
|
|
Редактирования стадий (Stage Mode)
Разбираем файл stage.dat , расположенный в корневой папке data.
Вначале уточним некоторые моменты. Во-первых в стадиях, как и в любом элементе игры идет присвоение id номера каждому элементу. В стадиях же присваивается каждая стадия и подстадия. Например стадии 1-1, 1-2 и 3-4 имеют каждый свой сосбственный id. id - номер индетификации. Итак, приступим. Открыв файл stage.dat вы сразу же увидите верхнюю строчку:
<stage> id: 44 #stage 5-5
это как раз то о чем мы говорили выше. уровню с азванием 5-5 присвивается id: 44 номера id нужны для того чтобы упорядочить проходимость стадий, т.е. чтобы они были по порядку. но есть не менее важный элемент. Отсчет id ведется от нуля. Т.е. самая-самая первая стадия какая будет в игре будет иметь id: 0 Но если вы присмотритесь, то вы никак не сможете набрать все 44 id, хоть 5-5 и есть последняя стадия. причина же этого явления в том, что изначально разработчики не использовали все id. таким образом например первые две стадии будут иметь следующие id:
id 0 = 1-1 id 1 = 1-2 id 2 = 1-3 id 3 = 1-4 id 4 = 1-5 id 10 = 2-1 id 11 = 2-2 id 12 = 2-3 id 13 = 2-4 id 14 = 2-5
почему при переходе на стадию 2 id увеличилось на 10? игра имеет кодировку в виде xyxy, т.е. например стадия 2-4 имеет id: 13. тройка указывает на порядок подстадии в стадии, а на то какая стадия используется указывает единица. в стадиях по типу 1-1 всего одна цифра, но выше мы писали, что отсчет идет от нуля. таким образом когда мы пишем например id: 2 , код воспринимается как id: 02.
данные моменты очень важны не только в стадиях, но и среднем по сложности кодинге обычных персонажей.
Итак, возмем в пример один большой кусок сверху:
<stage> id: 44 #stage 5-5 <phase> bound: 1500 id: 300 hp: 100 act: 40 x: 900 y: 0 reserve: 5 id: 300 hp: 100 act: 50 x: 900 y: 0 reserve: 5 id: 300 hp: 100 act: 50 x: 900 y: 0 reserve: 5 id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk ratio: .7 id: 123 x: 300 #beer id: 123 x: 300 #beer ratio: .7 id: 3000 hp: 50 times: 3 ratio: 1 id: 34 hp: 100 times: 3 id: 34 hp: 100 times: 3 ratio: .5 <phase_end>
<phase> bound: 1800 id: 1000 hp: 250 <boss> id: 1000 hp: 250 <boss> id: 1000 hp: 250 <boss> id: 1000 hp: 250 <boss> ratio: .2 id: 33 hp: 150 x: -1000 ratio: .5 id: 34 hp: 100 x: -1000 ratio: .6 id: 33 hp: 150 x: -1000 id: 31 hp: 50 x: -1000 id: 31 hp: 50 x: -1000
id: 37 hp: 200 ratio: .4 id: 37 hp: 200 <phase_end> <phase> bound: 2000 id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk ratio: .7 id: 123 x: 300 #beer id: 123 x: 300 #beer ratio: .7 id: 3000 hp: 50 times: 2 ratio: 1 id: 34 hp: 100 times: 2 id: 34 hp: 100 times: 2 ratio: .5 <phase_end> <phase> bound: 2200 id: 52 hp: 2500 <boss> id: 1000 hp: 250 times: 3 ratio: .2 <soldier> id: 33 hp: 150 x: -1000 <soldier> times: 7 ratio: .4 id: 34 hp: 100 x: -1000 <soldier> times: 13 ratio: .6 id: 33 hp: 150 x: -1000 <soldier> times: 13 id: 31 hp: 50 x: -1000 <soldier> times: 7 id: 37 hp: 200 <soldier> times: 13 ratio: .5 id: 37 hp: 200 <soldier> times: 7 id: 39 hp: 150 x: -1000 <soldier> id: 39 hp: 150 x: -1000 <soldier> ratio: .4 <phase_end> <stage_end>
как видите в коде есть тэги:
<stage> и <stage_end> - указывает на саму стадию, т.е. например на то что все между этими тегами это стадия 1-2 там, или 4-5. в id как раз и указывается что за стадия, а содержимое стадии прописывается между этими тэгами.
<phase> и <phase_end> - стадии нападения или будем называть это "фазы". Фазы могут быть довольно большых колличесв, но всё же если их слишком много есть шанс, что игра просто будет выдавать ошибку и вылетать. каждая фаза имеет показатель bound. числовое значение этого показателя пиксельно определяют как далеко открыта карта от левого края (начала). Если показатель слишком маленький (меньше 600~700), то появится эффект невидимой стены и игрок не сможет продвигаться дальше этих координат. Данный параметр приписывают к каждой фазе, постепенно увеличивая числовое значения координат, чтобы игрок смог продвигаться по карте дальше и дальше. Каждая фаза это отдельная волна и пока она не будет полностью уничтожена перехода к следующей фазе не произойдёт. P.S. начало карты (левый край) это координата с показателем ноль. P.P.S. показатель bound можно изменять по своему желанию не только для увеличения территории, но и для её резкого сокращения. Однако если игрок оказался дальше, чем новый допустимый показатель, то есть просто автоматически сместит назад.
Для разбора возмем самую первую фазу из этой стадии.
<phase> bound: 1500 id: 300 hp: 100 act: 40 x: 900 y: 0 reserve: 5 id: 300 hp: 100 act: 50 x: 900 y: 0 reserve: 5 id: 300 hp: 100 act: 50 x: 900 y: 0 reserve: 5 id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk id: 122 x: 300 #milk ratio: .7 id: 123 x: 300 #beer id: 123 x: 300 #beer ratio: .7 id: 3000 hp: 50 times: 3 ratio: 1 id: 34 hp: 100 times: 3 id: 34 hp: 100 times: 3 ratio: .5 <phase_end>
bound: 1500 - показывает, чтоот левого края вы можете продвинуться на 1500 пикселей вправо. В игре на экране помещается примерно 600~700 пикселей в ширину.
Далее идет описание того, что появляется в данной волне. между тэгами волны указываются id объектов, которые появяться. разберем эту строчку:
id: 34 hp: 100 times: 3 ratio: .5
id: 34 - указание id объекта т.е. таки образом вы указываете кто или что появится на карте. все id прописываются в блокноте data.txt в папке data. вот содержимое блокнота, откуда будут считываться данные о том что вы "призываете" на карту:
<object> id: 0 type: 0 file: data\template.dat id: 52 type: 0 file: data\julian.dat id: 51 type: 0 file: data\firzen.dat id: 50 type: 0 file: data\louisEX.dat id: 38 type: 0 file: data\bat.dat id: 39 type: 0 file: data\justin.dat id: 37 type: 0 file: data\knight.dat id: 36 type: 0 file: data\jan.dat id: 35 type: 0 file: data\monk.dat id: 34 type: 0 file: data\sorcerer.dat id: 33 type: 0 file: data\jack.dat id: 32 type: 0 file: data\mark.dat id: 31 type: 0 file: data\hunter.dat id: 30 type: 0 file: data\bandit.dat id: 1 type: 0 file: data\deep.dat id: 2 type: 0 file: data\john.dat id: 4 type: 0 file: data\henry.dat id: 5 type: 0 file: data\rudolf.dat id: 6 type: 0 file: data\louis.dat id: 7 type: 0 file: data\firen.dat id: 8 type: 0 file: data\freeze.dat id: 9 type: 0 file: data\dennis.dat id: 10 type: 0 file: data\woody.dat id: 11 type: 0 file: data\davis.dat
id: 100 type: 1 file: data\weapon0.dat #stick id: 101 type: 1 file: data\weapon2.dat #hoe id: 120 type: 1 file: data\weapon4.dat #knife id: 121 type: 4 file: data\weapon5.dat #baseball id: 122 type: 6 file: data\weapon6.dat #milk id: 150 type: 2 file: data\weapon1.dat #stone id: 151 type: 2 file: data\weapon3.dat #wooden_box id: 123 type: 6 file: data\weapon8.dat #beer id: 124 type: 1 file: data\weapon9.dat #< id: 217 type: 2 file: data\weapon10.dat #louis_armour id: 218 type: 2 file: data\weapon11.dat #louis_armour id: 300 type: 5 file: data\criminal.dat #criminal
id: 200 type: 3 file: data\john_ball.dat id: 201 type: 1 file: data\henry_arrow1.dat id: 202 type: 1 file: data\rudolf_weapon.dat id: 203 type: 3 file: data\deep_ball.dat id: 204 type: 3 file: data\henry_wind.dat id: 205 type: 3 file: data\dennis_ball.dat id: 206 type: 3 file: data\woody_ball.dat id: 207 type: 3 file: data\davis_ball.dat id: 208 type: 3 file: data\henry_arrow2.dat id: 209 type: 3 file: data\freeze_ball.dat id: 210 type: 3 file: data\firen_ball.dat id: 211 type: 3 file: data\firen_flame.dat id: 212 type: 3 file: data\freeze_column.dat id: 213 type: 1 file: data\weapon7.dat #ice_sword id: 214 type: 3 file: data\john_biscuit.dat id: 215 type: 3 file: data\dennis_chase.dat id: 216 type: 3 file: data\jack_ball.dat id: 219 type: 3 file: data\jan_chaseh.dat id: 220 type: 3 file: data\jan_chase.dat id: 221 type: 3 file: data\firzen_chasef.dat id: 222 type: 3 file: data\firzen_chasei.dat id: 223 type: 3 file: data\firzen_ball.dat id: 224 type: 3 file: data\bat_ball.dat id: 225 type: 3 file: data\bat_chase.dat id: 226 type: 3 file: data\justin_ball.dat id: 228 type: 3 file: data\julian_ball.dat id: 229 type: 3 file: data\julian_ball2.dat
id: 998 type: 5 file: data\etc.dat id: 999 type: 5 file: data\broken_weapon.dat <object_end>
заметьте, что лишь между тэгами <object> и <object_end> будет проводиться считывание. в data.txt есть и другие тэги, но на карту считывается только то что указано между этими тэгами.
Итак, ищем наш id: 34 и находим вот что:
id: 34 type: 0 file: data\sorcerer.dat
вуаля... командой
id: 34 hp: 100 times: 3 ratio: .5
мы вызываем на карту sorcerer. не сложно, ведь правда?
hp - показатель сколько будет выдано ему жизней.
times - показатель, который отображает сколько раз после смерти данного объекта он будет вызван повторно. т.е. вы убили одного sorcerer, появился ещё 1 такой же. колличество таких повторов появления как раз указывается в показателе times. в данном случае у нас имеется 3 повтора times.
ratio - один из самых моторных показателей. указывает сколько будет выпущено на карту тех или иных объектов в определенных соотношениях. вы наверняка замечали, что когда вы играете один, то врагов на карте куда меньше, если вас двое или больше. как раз этот показтель и определяет что на каждого игрока (только самх игроков, заложники не учитываются!!) будет выдаваться определенная кучка врагов. В начале статьи мы писали что отсчет ведется от нуля, а ночь в свою очередь можно и не обозначать. так вот, сейчас мы имеем
ratio: .5
это равносильно
ratio: 0.5
т.е. на каждого игрока будет выдано по 5 врагов. иными словами данный показатель определяет соотношение игроки\враги в игре. причем это идет с учетом показателя times. т.е. допустим у нс times имеет показатель 3, а ratio на 1 игрока выпускает 5 вграгов. значит 3*5=15. В итоге 15 врагов придется уложить одному бедолаге.
главное эксперементировать)
разберем чуть более сложную строку:
id: 300 hp: 100 act: 40 x: 900 y: 0 reserve: 5
про id, hp мы уже всё хорошо знаем, так обсудим другие показатели.
act - показатель определяет какой кадр будет использоваться у бойца когда он появится. Таким образом вы можете например Джона который только появился тут же заставить пустить один свой диск. Потом он будет действовать дальше сам. Подробнее о том какие кадры бывают у бойцов мы разберем в других статьях. Главное запомните. act определяет первый кадр который будет выполняться при появлении объекта.
x - числовой показатель. он так же как и bound берет отсчет с левого края (начала) карты. Обычно x всегда больше, чем bound, чтобы враги приходили к вам, а не появлялись из неоткуда. Если же вы укажите х меньше чем bound, то вы увидите, что враг появися из неоткуда. Можно использовать на руку, всё зависит от вашей фантазии. P.S. Если показатель х меньше нуля, т.е в минусе, то враг придет слева карты (ведь начало карты это ночь, начало отсчета). P.P.S. если х не прописан вообще, это будет означать что враг появится с правого края карты.
y - показывает высоту. или появление на определенной высоте над уровнем земли. если он не прописывается, то объект появляется согласно базовым данным. Т.е. бойцы на земле, а вещи упадут с воздуха.
reserve - особый показатель. Если вы посмотрите id 300 ,то увидите, что это id для заложников. Это означает, что когда вы ударите по заложнику и освободите его, ему будут присвоены указанные вами hp и reserve. Reserv - это запас восрешений заложника, т.е. когда его убьют, он сможет появится вновь и есть reserv.
В принципе разбор кода приведенного выше на этом заканчивается. Но разберем ещё вот какие строки:
id: 50 hp: 1000 <boss> join: 1000 id: 33 hp: 150 x: -1000 <soldier>
новые показатели:
join: когда враг будет убит, он присоединится к вам. Число которое вы присвоете в Join будет количество жизей, которые боец получит когда присоединится к вам.
<boss> - босс, так и называется, подсвечивается розовым именем Com
<soldier> - солдаты или в народе "охрана". Бойцы с такой пометкой не будут прекращать появляться после смерти снова и снова до тех пор, пока все бойцы с показателем <boss> не будут убиты. Можно считать что показатель <soldier> дает неограниченный показатель times, пока босс(ы) жив(ы).
В принципе на этом всё. Есть ещё способ пометок, например:
id: 122 x: 400 #milk
тут #milk указывается что это падает молоко. сама надпись ничего для кода не значит, это лично ваши пометки, чтобы не запутаться лишний раз. Пометки делаются с использованием знака # .
Позравляем, всю основу кодинка в stage вы изучили) Но всё же несколько моментов надо чтобы вы помнили всегда. Самое главное это то, что все ваши показатели hp и колличество врагов будут точь-в-точь такими же в игре только в режиме normal. В режиме Easy показатели будут уменьшены на 25%-50% В режиме Difficult будут увеличены на 25%-50% В режиме Crazy будут увеличены на 50%-75%.
Т.е. например задав врагу показатель hp: 100 , врагбудет иметь в режиме normal как раз эти 100 hp, а в режиме Crazy 175 hp. В принципе если вы берете заоблачные цифры вы можете бысренько просчитать проценты для себя или попробовать поэксперементировать.
На этом всё, дорогие кодеры, пробуйте свои навыки и тренеруйтесь ;)
|
Категория: Data Changing | Добавил: EdL (2008-01-16)
| Автор: Akinari
|
| Просмотров: 630
| Рейтинг: 5.0/4 |
| Всего комментариев: 11 | |
0
Yushi что делать если нет файла stage.dat T_T
|
|
|
|
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|