Редактирования стадий (Stage Mode) - Data Changing - Статьи - :Little Fighter Forever:

~Авторизация~

Вы зашли как Bandit
Уровень доступа:
Бандиты





E-mail:
Пароль:

Последние сообщения на форуме


Последние 20 сообщений...
Последние 20 сообщений

Новинки в каталоге файлов

Конкурс "Спрайтинг 3"




О сайте

- История
- Персонал
- Путеводитель
- Форум

Описание

- Little Fighter
- Little Fighter 2
- Little Fighter Online

Арена

- Сетевая Игра
- Соревнования
- Мероприятия
- Тактики

Творчество

- Создание
- Альбом
- Видео
- Библиотека

Модострой

- Вступление
- Data Changing
- EXE Changing
- Media Work
- Программы
- Каталог файлов

Субпроекты

- FoE
- NTSD
- OGLC
- Hero Fighter

Ссылки

- Официальный
- Русскоязычные
- Иностранные
- Проект Hyper Mult




Добро пожаловать на портал Little Fighter Forever
На нашем портале вы можете найти множество самых разных дополнений для игры, видео, как развлекательное так и обучающее, найти себе достойного соперника и, конечно, принять участие в наших эвентах.
И не забывайте принимать участие в дискуссиях на форуме :)

Объявление

О вступлении в отрядаз, развивающие портал вы можете узнать здесь и, по желанию, вступить в них на желаемую должность

Основатель обязуется выполнять и следить за выполнением пунктов:
1. Обучение в желаемой должности
2. Стажировка по должности
3. Специальный e-mail адресс типа мыло@lfforever.ru
4. Обеспечение V.I.P. функциями БЕЗ ограничений
5. Возможность повышения и продвижения по должности: выше ранг - больше самостоятельности в действиях
6. Обеспечение равноправия между всеми членами персонала

Little-афоризм:

Главная » Статьи » Data Changing

Редактирования стадий (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  
11 Джим   (2010-08-25 6:15 PM)
кстати а как можно добавить новые зоны? а то больше 5 неполучается зделать у меня...

0  
10 Джим   (2010-08-25 5:07 PM)
Отличные инструкции! понятные и на Русском! 10000000

0  
9 SiavaGris   (2010-06-29 10:16 Am)
Вот да... возможно ли создать обрыв, или платформу, висящую в воздухе?

0  
8 lubko   (2010-03-26 6:52 PM)
как поменять карту стадии

0  
6 nike   (2009-08-25 7:16 PM)
Что нужно сделать если у тебя на экране появляется rudolf и начинает размножаться до 350 штук потом магия уже не работает скажите как сделать что бы работала. monk_wall

0  
7 EdL   (2009-08-25 9:10 PM)
не создавать таких условий) не делай столько рудольфов, чтобы не размножался)

0  
4 Edik92   (2009-04-23 5:23 PM)
очень очень глупый вопрос
чё ты с ним сделаешь если его нет? den_lol

0  
3 UchihaMadara2229   (2009-04-23 3:45 PM)
Yushi что делать если нет файла stage.dat T_T

0  
5 EdL   (2009-04-23 5:45 PM)
его не может не быть))))

0  
2 EdL   (2008-11-04 0:54 Am)
так....пора писать статью о персах....

0  
1 Zik   (2008-05-20 0:05 Am)
СПС за уроки

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Linad
Shad90
DS-animation
Вам удобнее скачивать файлы с
Rating All.BY
LiveRSS: Каталог русскоязычных RSS-каналов
Поиск в RSS новостях и блогах

Онлайн всего: 5
Гостей: 3
Авторизованных: 2

Online users:
Shad90, АгентБлиНчик

Новички:


Сегодня нас посетили:





HTML карта LFF

Купить рекламу на сайте
Copyright Little Fighter Forever © 2006-2010