Пятница, 25.05.2012, 01:17

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Модератор форума: allxumuk 
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Конструкторы игр жанра Fighting » Little Fighter 2 - для создания фатингов (LF2)
Little Fighter 2 - для создания фатингов
loxvekaДата: Воскресенье, 29.08.2010, 17:22 | Сообщение # 1
был не раз
Сообщений: 4
Сейчас нет на сайте
Litlle Fighter 2

Движок в котором основу берёт файтинг.На двежке можно создать до 56 персонажей с разными приёмами.Кодинг в программе не сложный.

1.Скачиваете любую версию LF2

2. Необходимые программы.
Для создания персонажа вам обязательно потребуется кодировщик и декодировщик для редактирования *.dat файлов из LF2. Одной из лучших программ для этого я считаю Data Changer by Jiquera Mondilano. Конечно можно использовать и программы Decrypt и Encrypt, но в них не так удобно работать, как в Data Changer. Также потребуется хороший редактор графики и просмоторщик, например Adobe Photoshop и ACDSee.

3. Начинаем работу.
Ну что, если вы готовы приступить, то запускайте Data Changer и открывайте davis.dat (мы будем использовать персонажа Davis в качестве примера). Когда программа загрузит файл, в окне редактора мы увидим примерно следующее:

name: Davis

head: sprite\sys\davis_f.bmp

small: sprite\sys\davis_s.bmp
file(0-69): sprite\sys\davis_0.bmp w: 79 h: 79 row: 10 col: 7

file(70-139): sprite\sys\davis_1.bmp w: 79 h: 79 row: 10 col: 7

file(140-209): sprite\sys\davis_2.bmp w: 79 h: 79 row: 10 col: 7

walking_frame_rate 3

walking_speed 5.000000

walking_speedz 2.500000

running_frame_rate 3

running_speed 10.000000

running_speedz 1.600000

heavy_walking_speed 3.700000

heavy_walking_speedz 1.850000

heavy_running_speed 6.200000

heavy_running_speedz 1.000000

jump_height -16.299999

jump_distance 10.000000
jump_distancez 3.750000

dash_height -10.000000

dash_distance 18.000000

dash_distancez 5.000000

rowing_height -2.000000
rowing_distance 5.000000

Эта часть - самая главная часть кода персонажа, сейчас я подробно объясню вам, что означает каждая строка в этом коде:
name: Davis --> Имя персонажа.
head: sprite\sys\davis_f.bmp --> Путь к спрайту davis_f.bmp в папке LF2. Этот спрайт отвечает за картинку при выборе персонажа в LF2.
small: sprite\sys\davis_s.bmp --> Путь к спрайту davis_s.bmp в папке LF2. Этот спрайт отвечает за маленькую картинку персонажа на статус баре во время игры.

file(0-69): sprite\sys\davis_0.bmp w: 79 h: 79 row: 10 col: 7

file(70-139): sprite\sys\davis_1.bmp w: 79 h: 79 row: 10 col: 7
file(140-209): sprite\sys\davis_2.bmp w: 79 h: 79 row: 10 col: 7
Эти строчки показывают путь к спрайтам davis_0, davis_1, davis_2. В этих спрайтах содержаться анимация персонажа.
Параметр w: 79 означает, что ширина одной яйчейки под картинку, в файле спрайта, равна 79.
Параметр h: 79 означает, что высота одной яйчейки под картинку, в файле спрайта, равна 79.
Параметры row: 10 и col:7 показывают сколько всего рядов и колонок в файле спрайта. В случае с Davis - 10 рядов и 7 колонок.

walking_speed --> Скорость ходьбы.
walking_speedz --> Скорость ходьбы по кооординате Z (вверх/вниз), во время ходьбы по координате X (влево/вправо).
running_speed --> Скорость бега.
running_speedz --> Скорость бега по кооординате Z (вверх/вниз), во время бега по координате X (влево/вправо).
heavy_walking_speed --> Скорость ходьбы, когда персонаж держит тяжелый предмет (например камень).
heavy_walking_speedz --> Скорость ходьбы по координате Z, когда персонаж держит тяжелый предмет (например камень) и двигается по координате X.
heavy_running_speed --> Скорость бега, когда персонаж держит тяжелый предмет.
heavy_running_speedz --> Скорость бега по координате Z, когда персонаж держит тяжелый предмет.
jump_height --> Высота прыжка.
jump_distance --> Дистанция прыжка по оси X.
jump_distancez --> Смещение по координате Z во время прыжка в дистанцию с нажатой кнопкой Up или Down.
dash_height --> Высота прыжка во время бега.
dash_distance --> Дистанция прыжка во время бега.
dash_distancez --> Смещение по координате Z во время прыжка в дистанцию во время бега с нажатой кнопкой Up или Down.
rowing_distance --> Дистанция подката.

=====================================================================
-Мы будем использовать бег и удар Дєвиса для следующих нескольких примеров.
_________________________________________________________________________________

72 super_punch

pic: 8 state: 3 wait: 2 next: 73 dvx: 0 dvy: 0 dvz: 0 centerx: 28 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0

itr:

kind: 0 x: 40 y: 5 w: 35 h: 45 dvx: 3 dvy: -10 fall: 70 arest: 15 bdefend: 60 injury: 40

itr_end:

bdy:

kind: 0 x: 26 y: 12 w: 35 h: 66

bdy_end:

_________________________________________________________________________________
72 super_punch ---> номер кадра и название движения (имя обычно сокращенное)+(название движения здесь только для того чтоб было легче найти нужный кадр)
pic: 8 ---> картинка которую загружает кадр (!картинки в спрайтах считаются от левого угла до правого и первая картинка не 1 а 0!)
state: 3 ---> состояние персонажа*
wait: 2 ---> как долго длится кадр
next: 73 ---> следующий кадр
dvx: 0 ---> насколько персонаж продвигается в перед
dvy: 0 ---> насколько персонаж продвигается вверх \ вниз (!Когда в небе и на земле НЕ вверх и вниз вовремя ходьбы!)
dvz: 0 ---> насколько персонаж продвигается вверх \ вниз (!теперь это верх и вниз вовремя ходьбы!)
centerx: 28 ---> centerx используется чтоб показать где центр персонажа (!Я не советую вам парится с этим!)
centery: 79 ---> точка в которой ноги персонажа (если показатель больше 79 то персонаж окажется в воздухе)

-----------------------------------------------------------------------------------------------------------------
hit_a: 0 ---> указывает какой кадр последует дальше если вы нажмете атаку
hit_d: 0 ---> указывает какой кадр последует дальше если вы нажмете защиту
hit_j: 0 ---> указывает какой кадр последует дальше если вы нажмете прыжок
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
hit_fj: ---> указывает какой кадр последует дальше если вы нажмете d>j вовремя этого кадра
hit_uj: ---> указывает какой кадр последует дальше если вы нажмете d^j вовремя этого кадра
hit_dj: ---> указывает какой кадр последует дальше если вы нажмете dvj вовремя этого кадра
hit_fa: ---> указывает какой кадр последует дальше если вы нажмете d>a вовремя этого кадра
hit_ua: ---> указывает какой кадр последует дальше если вы нажмете d^a вовремя этого кадра
hit_da: ---> указывает какой кадр последует дальше если вы нажмете dva at вовремя этого кадра
hit_ja: ---> указывает какой кадр последует дальше если вы нажмете dja вовремя этого кадра

-----------------------------------------------------------------------------------------------------------------
itr: ---> атака начинается
kind: 0 ---> тип атаки*
x: 40, w: 35 ---> как далеко атакует (!вперед и назад!) (если вы учили алгебру то должны знать что ось х это движение влево и вправо ,а w это ширина)
y: 5, h: 45 ---> как высоко атакует (!вверх и вниз на земле и в небе!) (y – верх низ h - высота)
dvx: 3 ---> как далеко падает враг от удара (допустимы негативные значения)
dvy: -10 ---> как высоко подлетит противник после удара (!негативное значение допустимо!)
fall: 70 ---> шанс того что противник упадет
arest: 15 ---> хз
bdefend: 60 ---> шанс пробить защиту противника
injury: 40 ---> сколько атака наносит урона*
itr_end: ---> конец атаки
----------------------------------------------------------------------------------------------------------------
bdy: ---> начяло команд относящихся к телу (действия тела)
kind: 0 ---> ?Special Effect? (I'm not sure what will happen, maybe I'll experiment with it later)
x: 26, w: 35 ---> How far when attacked
y: 12, h: 66 ---> How far when attacked
bdy_end ---> конец команд относящихся к телу

----------------------------------------------------------------------------------------------------------------
mp: сколько манны жрет скил
==============================================================
ЗВУК
---------------------------------------------------------------- -----------------------------------------------
Добавить звук в игру не трудно, труднее сделать чтоб звук использовался в нужный момент
Чтобы добавить новый звук нужно скопировать его в папку "Data"
Чтобы добавить движению звук нужно в кадре во второй строке
(после pic:, etc): !sound: data\(sound name).wav!

Пример:
У меня есть звук "beep.wav" в папке "Data"
Теперь я хочю чтоб этот звук играл когда мой персонаж идет
Я ставлю!sound: data\beep.wav! во вторую линию кадра ходьбы
Теперь когда персонаж идет звук играет.

==============================================================
УРОН

--------------------------------------------------------- ------------------------------------------------------
Мы знаем что увеличивая значение параметра injury мы увеличиваем урон наносимый противнику но есть еще спец команды для этого параметра:
effect: 0 --> просто удар
effect: 1 --> Острое оружие (эффект крови)
effect: 2 --> Огонь
effect: 3 --> Лед
effect: 4  проходит сквозь врагов (?используется например для отхиливающих магий чтоб не хилило врагов?)
effect: 5 или выше ---> ?
effect: 20 огонь _______________________________________________________________________________

injury: 40

+++++++++++++++++++
Потом добавляем effect: 2

+++++++++++++++++++

injury: 40 effect: 2

--------------------
Теперь атака бет на 40 урона и поджигает

________________________________________________________________________________

======================================= =======================
СПРАЙТЫ

-------------------------------------------------------------------------------------------------------- --------
The Высота и ширина спрайта может бить изменена в начале даты. Стандартно 79 на 79 пикселей.
!первая картинка спрайта 0 не 1!
Когда говорят 2 ряда это значит не количество рядов а количество картинок

==============================================================

$ $
$Здесь заканчивается базовый курс. $

$ $

x: ширина стартовой точки в спрайте
y: высота стартовой точки в спрайте

-1

-1 -0---------------------79

-----------------------

-----------------------

-----------------------

79
Но всё место 79x79 чаще всего не используется.
К примеру ударDavisа

72 super_punch

pic: 8 state: 3 wait: 2 next: 73 dvx: 0 dvy: 0 dvz: 0 centerx: 28 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0

itr:

kind: 0 x: 40 y: 5 w: 35 h: 45 dvx: 3 dvy: -10 fall: 70 arest: 15 bdefend: 60 injury: 40

itr_end:

bdy:

kind: 0 x: 26 y: 12 w: 35 h: 66 bdy_end:

>pic: 8

the pic no. from 0 to the no.

>state: 3
Состояние персонажа
state: 0 = стоит
state: 1 = идет
state: 2 = бежит
state: 3 = атакует
state: 7 = защита
state: 1700 = хил самого себя

>wait: 2
Как долго длится кадр.

>next: 73
Номер картинки в спрайте.

>dvx: 0 dvy: 0 dvz: 0

example:
dvx: 10 перемещается вперед на 10 кубов ,если -10 это значит движение назад
dvy: -10 движение вверх на 10(like jump) если 10 движение на землю на 10
dvz: - это позиция движения относительно земли

>centerx: 28 centery: 79
centerx: 28 не важно, centery: 79, высота персонажа (если больше 79 персонаж летает)

>hit_a: 0 hit_d: 0 hit_j: 0
hit_a: 0 смотрите выше

hit_fj: d>j

hit_uj: d^j

hit_dj: dvj

hit_fa: d>a

hit_ua: d^a

hit_da: dva

hit_ja: dja

> itr:

kind: 0 x: 40 y: 5 w: 35 h: 45 dvx: 3 dvy: -10 fall: 70 arest: 15 bdefend: 60 injury: 40

itr_end:
kind: 0—тип атаки 0 – нормальная, 10 - флейта
x: 40—стартовая точка x y: 5 стартовая точка y
w: 35—ширина из x, h: 45—высота из y

>bdy:

kind: 0 x: 26 y: 12 w: 35 h: 66

bdy_end:
kind: 0 – тип атаки

x: 26 y: 12 w: 35 h: 66> attack a bit
effect—эффект атаки (см выше)

special:

4300: hp-40 mp-300

10100: hp-100 mp-100,etc

-5050: hp+500 mp+500,etc
fall—падения персонажа если 70 персонаж падает если 60 персонаж згибается если 1 перс никогда не упадет,
bdefend—сколько процентов защиты пробито у противника
,когда вы атакуете этот параметр увеличивается...
Transform - трансформация
state: 80xx xx=id перса

команда opoint сумонит оружие (как меч фриза), параметр oid указывает id оружия.

Создание лвлов

1 id: 0 #stage 1-1

2 bound: 900

3 id: 30 hp: 50 times: 2 ratio: 1.0

4

5 bound: 1300

6 id: 30 hp: 50 times: 2 ratio: 1.0

7 id: 31 hp: 50 times: 1

8 id: 31 hp: 50 times: 1 ratio: .4

9

10 bound: 1700

11 id: 3000 hp: 50 times: 2

12 id: 3000 hp: 50 times: 2 ratio: 1.0

13

14 bound: 2200

15 id: 122 x: 1100 #milk

16 id: 123 x: 1100 #beer

17 id: 30 hp: 50 ratio: 1

18 id: 30 hp: 50

19 id: 31 hp: 50

20 id: 31 hp: 50 ratio: .4

21 id: 31 hp: 50 ratio: .2

22

23
В строке 1, мы видим параметр "id: 0" and "#stage 1-1".
"id: 0"означает какой это уровень. Значение "0" укажет на уровень 1, а "1" укажет на уровень 2 и тд. уровень 2 на самом деле в игре уровень 1-2 а уровень 7,в id: "8", будет уровнем 2-2.
"#stage 1-1" это коментарій чтоб легче было понять что это за уровень. Все что пишется после знака # не влияет на код.
В строках 2-4,мы видим параметры в которых показаны фазы появления врагов . кждая фаза в игре обозначается стрелочкой Go и сопровождается появлением врага если врагов больше нет то стрелка указывает на переход на следующий уровень.
"bound: 900" указывает на длину участка одной фазы, в конце этой длинны пока фаза не закончилась нас остановит невидимая стена. Длинна второй фазы еще 1300, на фазе 2 можно бегать 900+1300.

Все параметры обозначают объекты в фазе. Это враги, заложники, оружие, бутылки.
К примеру в фазе 1 мы видим:

id: 30 hp: 50 times: 2 ratio: 1.0
"id: 30"это id объекта . Все id прописаны в Data.txt
"id:30"означает бандита.
"hp: 50" Указывает на то что у бандита 50хп.
"times: 2"Показывает сколько раз появляется объект. В данном случае после смерти первого бандита выйдет второй
"ratio: 1.0"показывает ситуацию когда играет больше 1 человека. В данном случае по 1 бандиту на персонажа. Если параметр изменить на 5 то на каждого персонажа выйдет 5 бандитов, а если изменить до 0.5 то на 2 персонажей выйдет только 1 бандит а на 4 два и тд.
В линиях 15 и 16 мы видим:

id: 122 x: 1100 #milk

id: 123 x: 1100 #beer

(x: 1100)- это указывает на то где на поле появится объект. Если установить длину поля 2200 то молоко появится по центру
Посмотрим на другой пример, теперь это уровень 4-4 (id: 33).

bound: 1800

id: 300 hp: 100 act: 40 x: 1000 y: 0 reserve: 8

id: 300 hp: 100 act: 40 x: 1100 y: 0 reserve: 8

id: 122 x: 900 #milk ratio: 2

id: 123 x: 900 #beer ratio: 1

id: 3000 hp: 50 times: 2 ratio: 2

Рассмотрим строки:

id: 300 hp: 100 act: 40 x: 1000 y: 0 reserve: 8
Id 300 это criminal.dat (враг). act: 40указывает на то какой враг имеется ввиду . если мы посмотрим на criminal.txt, мы увидим:

40 bandit

pic: 20 state: 0 wait: 7 next: 41 dvx: 0 dvy: 0 dvz: 0 centerx: 38 centery: 78 hit_a: 0 hit_d: 0 hit_j: 0

bdy:

kind: 1043 x: 21 y: 18 w: 43 h: 62

bdy_end:

Сейчас мы не смотрим на код. Все что нам надо это"40 bandit".Это значит что act: 40 указывает на бандита. (0 монах, 10 is Марк... и тд.).
"x"это точка где появится бандит. A негативное значение "x" # (ex. x: -1000) значит что враг появится сзади нас ...на 1000 сзади от конца экрана.

=======================================

=======================================

Автор НАСТОЯТЕЛЬНО рекомендует создать копию data.txt во избежание проблем

Активация всех персов:

Открываем data.txt.

Первый кусочек даты с персонажами. Найдите его

Вы должны увидеть Bandit, Hunter, Mark, LouisEX, Firzen, и тд.

Скопируйте эти строчки и перенесите их в центр даты .

Теперь меняем их id. Их стандартные id используются в режиме прохождения уровней. Чтоб не мучатся добавьте перед каждым "8". К примеру: Bandit номер 30, а будет номер 830. Только убедитесь что номер еще не использован (убедитесь что нет повторов) .
If Теперь вам не надо прописывать код в игре для открытия персов .

Добавление персонажей:

Копируем дату нового персонажа в \data\

Открываем data.txt.

Теперь все что вам надо сделать так это придумать ему id и записать в части где у нас игровые персонажи(центр). Только убедитесь что номер еще не использован (убедитесь что нет повторов) .

Дальше тип, у персонажей всегда тип 0.

Если вы все правильно сделали то должно быть как тут :

id: Свой номер type: 0 file: data\"имя вашего перса(а точнее имя его файла даты)".dat

7.Ваш персонаж должен появится в игре.
_____________________________________

Создание уровня

(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.
В принципе если вы берете заоблачные цифры вы можете бысренько просчитать проценты для себя или попробовать поэксперементировать.

На этом всё, дорогие кодеры, пробуйте свои навыки и тренеруйтесь wink
______________________________________________________________

Справочная по типам itr.

0 - простая атака
1 - захватывает врага в тб, при присутствии catching и caught показателях
2 - если под ногами оружие, он его поднимет
3 - захватывает врага БЕЗ тб, при присутствии catching и caught показателях
4 - используется при паденнии, когда вас швырнули в кого-то, вы повредите этим тех в кого влетите
10 - поднимает врага в воздух (вытягивая жизни)
11 - держит врага в воздухе (просто поднимает)
14 - создает границу (читать интервью с Матри Вонгом)
15 - засасывающий эффект (как в вихре Фриза)
16 - превращает врага в лед без использования показателя effec: 3
6 - добивающий удар (данный показатель заставляет персонажа выполнить добивающий удар, если враг в танце боли)
7 - поднимает оружие без использование кадров поднятия оружия (используется в кадрах с подкатом)ъ
8 - лечащий шар (данный шар будет лечить как врагов, так и союзников)
9 - отражающий щит (использовать вместе с эффектом "effect: 4". Тогда щит будет отращать все объекты со статусом 3000)
____________________________________________________________________________________________________________
Справочная по статусам:

0 - стоит (может свободно передвигаться вправо и влево, а если в воздухе, то при нажатии клавиши перейдет в кадр 212)
1 - хождение (свободное нажатие любых клавиш)
2 - бег
3 - атака (пока вы атакуете компьютер ставит блок)
4 - прыжок (можно нажать вправо или влево пока в воздухе)
5 - дэш ( если dvx:0, мжет быть нажато влево или вправо)
6 - подкат (когда вы бежите и нажимаете блок, персонаж перехоит в кадр 215)
7 - блок (дает единицу защиты, и держит кадр до момента пробивания)
8 - пробитая защита (вас будет добивать комп или ещё кто)
9 - захватываете (только при присутствии координат cpoint)
10 - заваченный (в этом случае вы уроните оружие, а союзники вас могут долбануть)
11 - повреждены
12 - падение (оружие будет проронено, если показатель fall в атаке врага от 60 и выше)
13 - заморожен (может быть атакован союзниками, а так же получает повреждение в 10 хп при 1 любом ударе)
14 - валяетесь (компьютер будет отходить в сторону)
15 - любое действие, нет эффекта
16 - повреждены\тб (может быть захвачен любым кто использует параметр kind:1 в показателе itr)
17 - выпивание (поглощает хп от оружия в руке с id 122 и 123)
18 - горите
19 - горящий бег (Бег Файрена, не поддается влиянию эффектов 20,21 и может передвигаться по оси z)
100 - удар Луиса (когда приземяутся, активируется кадр 94)
301 - избиение (во время исполнения может перемещаться по оси z)
400 - телепортирует к ближайшему врагу, с расстоянием в 120 точек
401 - телепортирует к ближайшему союзнику с расстоянием в 60 точек
500 - транформация (если вы не трансормируетесь\не во что , то вы переходите в кадр 0)
501 - трнсформация обратно (если вы трансформировались, вы перевоплотитесь обратно)
1700 - самолечение (ускоренная регенерация светлой полоски хп, при этом она мигает)
9995 - трансформируется в id:50)
9996 - броня (создает предметы из id: 217,218)
9997 - прочее(потеря тени, изображение может быть увидено на весь экран)
9998 - растворение
9999 - разбитое оружие (кадры с тем как они разбиваются)
80хх - превращает в персонажа с его id заместо хх, причем считывание рисунков происходит с рассчетом +140
__________________________________________________________________________________________________

Справочная по эффектам.

В DC показатель пишется в переменной повреждения - itr:
между началом и концом itr вставляется effect: (цифра эффекта).

0 - просто удар с эффектом отображения демага
1 - выплескивает кровь
2 - огонь, цепным способом поражающий союзников
3 - замораживает
4 - объект проходит сквозь врага (например для того чтобы пускать лечащий болл и не подлечить этим врага)
5 - аналогично эффекту 4, но беззучно, т.е. при срабатывание объекта озвучки не будет
20,21 - поджигает врага с иммунитетом к 20 и 21 эффектам
22 - поджигает (не трогает союзников, если кадр содержит state: 18)
23 - аналогичено эффекту 0, но с отталкиванием пропорчионально движению объекта, который повреждается
30 - аналогично 20 и 21, но эффект со льдом.

Движок можно использовать в разных целях,кому приходилось с ним сталкиватся то пишите свои вопросы,чем смогу помогу)


[img]http://s50.radikal.ru/i127/1008/d3/06cfb27a6478.jpg[/img]
ЭтО Я!!!


Сообщение отредактировал loxveka - Воскресенье, 29.08.2010, 17:25
 
GC-VicДата: Воскресенье, 29.08.2010, 17:52 | Сообщение # 2
Злой и Ужасный Админ
Сообщений: 2228
Сейчас нет на сайте
Это про LF2.net?

На нём, вроде, ещё сделана игра Hero Fighter.


1. Админ всегда прав.
2. Если он не прав, то смотри пункт 1.
Закон Мерфи: "Если вы уверены, что ваш поступок встретит всеобщее одобрение, кому-то он обязательно не понравится".
 
3tOnДата: Понедельник, 30.08.2010, 21:37 | Сообщение # 3
We Will Rock You!
Сообщений: 777
Сейчас нет на сайте
GC-Vic, да, а у Hero Fighter как бэ уже улучшенный двиг... smile

 
Maxim_and_SergeyДата: Среда, 27.07.2011, 07:36 | Сообщение # 4
частый гость
Сообщений: 54
Сейчас нет на сайте
С этого файтера делали другой файтер по бличу!!!


Пожуём и увидим...
[img]http://nick-name.ru/forum....mg]
 
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Конструкторы игр жанра Fighting » Little Fighter 2 - для создания фатингов (LF2)
Страница 1 из 11
Поиск:

Все права сохранены. GcUp.ru © 2008-2012 Рейтинг