<bmp_begin>
открывающий тег
name:
тут вписываем имя персонажа отображаемое в игре , преимущественно на латинице
head: sprite\template1\face.bmp
прописываем путь к файлу и имя файла с изображением лица персонажа
small: sprite\template1\s.bmp
прописываем путь к файлу и имя файла с изображением миниатюры персонажа
file(0-69): sprite\template1\0.bmp w: 79 h: 79 row: 10 col: 7
file(70-139): sprite\template1\1.bmp w: 79 h: 79 row: 10 col: 7
file(x-y) пишем номера спрайтов, это только для себя. Здесь вы можете вписать хоть 0-6, а персонаж будет работать)
далее пишем путь, имя файла.
w: ширина одной ячейки из сетки спрайтов, все ячейки в сетке должны быть одинаковыми
h: высота одной ячейки
row: это очень путаное название, переводится строка, можно подумать что это кол-во строк. Это не так! Я для себя называю это количество ячеек в строке.
col: кол-во ячеек в столбце
именно по четырем параметрам сверху определяется, сколько будет спрайтов. Если используется несколько фалов, то создается несколько строк. Максимальное кол-во подгружаемых сеток - 10
walking_frame_rate 3
задержка между кадрами ходьбы
walking_speed 4.000000
скорость ходьбы по оси x
walking_speedz 2.000000
скорость ходьбы по оси z
running_frame_rate 3
задержка между кадрами бега
running_speed 8.000000
скорость бега по оси x
running_speedz 1.300000
скорость бега по оси z
heavy_walking_speed 3.000000
скорость ходьбы с тяжелым предметом по оси x
heavy_walking_speedz 1.500000
скорость ходьбы с тяжелым предметом по оси z
heavy_running_speed 5.000000
скорость бега с тяжелым предметом по оси x
heavy_running_speedz 0.800000
скорость бега с тяжелым предметом ходьбы по оси z
jump_height -16.299999
высота прыжка
jump_distance 8.000000
длина прыжка по оси x
jump_distancez 3.000000
длина прыжка по оси z
dash_height -11.000000
высота дэша(рывка, прыжок после прыжка(надо прыгать в сторону) или прыгнуть при беге)
dash_distance 15.000000
длина дэша по оси x
dash_distancez 3.750000
длина дэша по оси z
rowing_height -2.000000
высота переката(бег защита или при приземлении после прыжка защита)
rowing_distance 5.000000
длина переката
<bmp_end>
закрывающий тег

Это то, что должно использоваться у большинства персонажей, т.к. без этого персонаж будет резко выделяться на фоне других персонажей. Представьте, что Ваш персонаж не может прыгать, или бегать :)
Особое внимание обратить, что отсчет спрайтов идет с 0.

Теперь переходим к основной части кодинга, то над чем все работают, на что уходят часы, даже дни. Вы все еще не передумали от идеи создать персонажа?

Общая структура любого кадра:
<frame> 0 имя_кадра(для ориентирования среди кадров)
pic: 0 state: 0 wait: 3 next: 1 centerx: 39 centery: 79
*другие подблоки*(не обязательно)
<frame_end>

Но чаще используется более полная форма:
<frame> 0 standing
pic: 0 state: 0 wait: 3 next: 1 dvx: 0 dvy: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
*другие подблоки*
<frame_end>

Рассмотрим главную часть кадра
<frame> и <frame_end> открывающий и закрывающий теги, вообще, все параметры - это английский, только где-то используется сокращение.
0
номер кадра, Little Fighter 2 ограничен 400 кадрами => максимальный кадр 399
pic:
номер спрайта, указанного в самом первом блоке
state:
номер стейта(в переводе не очень красиво) в котором находится персонаж, пример: 0 - стоит, 1- идет, 18 - горит
wait:
число, показывающее задержку между кадрами. 1 сек = 30, это справедливо не только тут, также с этим можно столкнуться при создании карт
next:
номер следующего кадра, т.е. тут пишем кадр, который будет после этого. 999 - нулевой кадр, 0 используется только в системных кадрах и то не всегда. отрицательное значение: произведется следующий кадр, но персонаж повернется в другую сторону
dvx:
передвижение персонажа по оси x. если отрицательное значение, то в другую сторону. если в след. кадрах 0, то будет само потихоньку уменьшаться(это конечно не показывается, просто движение по инерции :)
dvy: и dvz:
то же что и dvx но с другими осями
centrx:
центр персонажа по оси x. т.е. пишем точку под которой будет центр тени
centry:
то же но по оси y. чаще всего используется значение мало отличающееся от высоты персонажа. если написать значение меньше - персонаж будет "кротом", если больше - будет летать!!!
hit_a:
кадр в который перейдет персонаж, если нажать атаку
hit_d и hit_j:
то же но если нажать защиту или прыжок
также можно использовать подобную каманду для перехода по нажатию, например, защита вверх атака.
для этого записывается первая буква на англ. клавиши. и так вся комбинация, без учета защиты. т.е. всего будет 2 буквы после hit_ обозначающие клавиши
все возможные вариации "hit_": ja, Da, Dj, Fa, Fj, Ua, Uj

Подблоки

bdy

Подблок bdy задает физическое тело персонажа, если на спрайтах графическое, то тут физическое.
Записывается следующим образом:

bdy:
kind: 0 x: 21 y: 18 w: 43 h: 62
bdy_end:

bdy: и bdy_end: открывающий и закрывающий теги. Дальше я не буду писать про это. Это должно быть понятно.
kind:
здесь используется значение 0. Для тела другие параметры не имеют значения. Перевод и смысл данного параметра посмотрите сами)
x:
точка отсчета тела по координате x
y:
точка отсчета тела по координате y
w:
ширина тела по координате x
h:
ширина тела по координате y
Все эти параметры будут использоваться практически везде. При этом будут нести тот же смысл. Больше я к этому не вернусь.

Данный подблок используется практически во всех кадрах.

wpoint

Подблок wpoint описывает где и как держится оружие.

wpoint:
kind: 1 x: 33 y: 45 weaponact: 21 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0
wpoint_end:

kind:
значение 1, другие не имеют смысла.
x:
координата по оси x где находится centerx оружия!!!
y:
то же но по оси y
weaponact:
кадр, в котором находится оружие
attacking:
может ли оружие атаковать, когда находтся в руке (позднее будет подробней об оружии) значения отличные от нуля - может(не совсем правильно, но пока лучше запомнить так)
cover:
находится оружие перед персонажем, или наоборот. Значение 0 - перед персонажем, любое отличное от 0 - наоборот, желательно 0/1. Можно использовать, чтобы поместить оружие в дальнюю руку(чаще правую. если левую, то смотреться будет не очень :) ) dvx:
dvy:
dvz:
перемещение по соответствующим осям. Дальше редко будет вспоминаться
Используется также практически во всех кадрах.

bpoint

bpoint:
x: 38 y: 34
bpoint_end:

Просто координаты крови. Используется, когда здоровье персонажа меньше 30%

itr

Используется при ударах, поднятии оружия, захвата. Рассмотрим все по очереди.

Удар:

itr:
kind: 0 x: 49 y: 33 w: 30 h: 16 dvx: 2 bdefend: 16 injury: 20 effect: 1
itr_end:

kind:
тип атаки. Вы должны были посмотреть перевод этого слова, но я все же сам написал его позднее) Тип 0 - просто удар. Полный список приведен в дополнении.
fall:
процент падения персонажа. Суммируется, если удар происходит несколько раз. Если набертся 70 или больше - враг упадет.
bdefend:
сколько пробито защиты, суммируется. Нужно как минимум 60, чтобы персонаж перешел в ТБ.
injury:
урон. Учитывая что всего 500 хп, можно рассчитывать урон различных атак.
effect:
тот кто не дружит с латиницей не сможет понять это, Вы надеюсь догадались. Если нет - то подскажу, это эффект атаки. 1 - атака с выплескиванием крови. Полный список в дополнении.
dvx dvy dvz показывают на сколько смещается враг при ударе.

arest:
время задержки до следующего удара ЭТИМ персонажем
vrest:
время задержки до получения следующего удара врагом

Поднятие оружия:

itr:
kind: 2 x: 26 y: 58 w: 37 h: 23 vrest: 1
itr_end:

Этот код сильно не отличается от обычного удара. Но вся разница в том, что стоит другой тип атаки. "kind: 2" означает, что если персонаж может взять оружие, то он переходит в кадры поднятия оружия.
Другие значения kind могут придавать другие, особые эффекты. Это можно считать примером использования :)

Захват:

itr:
kind: 1 x: 40 y: 16 w: 25 h: 65
catchingact: 120 120 caughtact: 130 130
itr_end:

"kind: 1" используется для захвата персонажа в ТБ. Для захвата персонажа в любом другом кадре используется "kind: 3"

catchingact:
показывает, в какой кадр переходит персонаж в результате успешного захвата
caughtact:
показывает, в какой кадр переходит захваченный противник
И там, и там пишется 2 цифры. Зачем? А затем, что первая цифра означает кадр, если спереди, а вторая, если сзади.

cpoint:

После успешного захвата противника нужно уметь удержать в руках(или чем там у вас персонаж будет хватать :) ). Для этого служит довольно большой блок cpoint.
Он включает в себя не только умение удержать противника, но еще и мастерство не дергаться, когда тебя схватили :)

Еще кое-что:
Всего в одном кадре может быть до 10 блоков itr, наважно каких
Если область удара слишком маленькая, есть вероятность того, что удар не пройдет

Держание противника:

cpoint:
kind: 1 x: 67 y: 39
vaction: 131 aaction: 75 jaction: 1 taction: 232 throwvz: -842150451 hurtable: 1 throwinjury: -842150451 decrease: 7 injury: 35
cpoint_end:

kind:
1 - держишь
2 - захваченный
x: и y:
координаты centerx и centery врага
vaction:
кадр, в котором находится противник
aaction:
кадр, в который перейдет персонаж, если нажать атаку
jaction:
кадр, если нажать прыжок
taction
кадр, если кинуть (вбок атака)
throwvx: throwvy: throwvz:
дистанция броска по осям. Если значение = -842150451, то параметр не считывается
hurtable:
могут ли другие бить захваченного персонажа. 0 - нет, 1 - да.
throwinjury:
урон при падении после броска. Если значение = -842150451, то параметр не считывается
decrease:
падение. То как будет персонаж освобождаться от падения. Падать или приземляться как после прыжка. 3 - приземление, 7 - падение на спину, -7 - на лицо
injury:
урон
dircontrol:
возможность выбора направления
cover:
то же что и в wpoint, будет враг поверх персонажа или нет

Захваченный:

cpoint:
kind: 2 x: 41 y: 39
fronthurtact: 132 backhurtact: 131
cpoint_end:

kind: 2
захваченный
x:
координата по оси x для точки держания держащим
y:
координата по оси y для точки держания держащим
fronthurtact:
кадр в который перейдешь, если ударят спереди
backhurtact:
кадр в который перейдешь, если ударят сзади

opoint:

Создает новый объект на карте.

opoint:
kind: 1 x: 40 y: 29 action: 50 dvx: 0 dvy: 0 oid: 225 facing: 0
opoint_end:

kind:
1 - просто создает
2 - создает в руку(оружие)
action:
кадр, в с которого начинает свою "жизнь" объект на карте
oid:
ID нового объекта. Указывается в data.txt
facing:
показывается количество и направленность нового объекта.
количество десятков = количество объектов.
единицы = направление. 0 - в ту же сторону смотрит, что и персонаж, 1 - в обратую сторону.

Стоит упомянуть об особенностях.
1) Если был переход по нажатию клавиши (hit_a или hit_Uj), то добавление не производится.
2) Созданный объект будет на твоей стороне (особый случай - оружие, оно может переметнуться на чужую сторону)


Дополнительно.
Также Ваш персонаж может получиться намного красивее, динамичнее, если он будет воспроизводить звуки
sound: *путь и название файла*
Обычно пишется после главного блока, перед всеми подблоками.

mp:
затраты маны, если значение отрицательное, то прибавляется. При маленьких значениях для отнятия надо отрицательное и наоборот.

hp:
затраты хп. Если меньше нуля, то дается хп.