Функция | Пример | Описание | Дополнительно |
---|---|---|---|
system.dat | |||
Строчки управления фоновой музыки в меню |
menu_bgm1: BGM \ main.wma menu_bgm2: BGM \ main.wma |
В первой строке вы указана музыка при запуске игры, во второй строке указана музыка после нажатия Start Game.
Если вы не хотите, чтобы там была музыка, достаточно прописать menu_bgm1: [MU] |
- |
Управление фоновыми изображениями |
<menu_back_1> <menu_back_2> |
В первой строке указывается фон при запуске игры, во второй строке указывается фон после нажатия Start Game.
Но работает только если у вас type: 3 и изображения находятся в разных папках Так же есть предустановки: type 0\1\2\3 При указании type: 0 отображается только цвет фона, без рисунков. При указании type: 1 отображается только один рисунок, всегда. При указании type: 2 отображается в том порядке, в каком указано в списке. При указании type: 3 отображается всё так же, как обычно - в случайном порядке. |
<menu_back_1> type: 3 rect32: 1056876 pic: sprite\menu\1.png <menu_back_end> <menu_back_2> type: 3 rect32: 1056876 pic: sprite\menu_2\1.png <menu_back_end> |
Список State, в которых броня не действует |
<armor_s> state: 8 state: 11 state: 12 state: 13 state: 14 state: 16 state: 18 <armor_s_end> |
- | - |
Список id, у которых работает поддержка двустороннего состояния блока |
<adefend> id: 124 id: 220 id: 221 id: 222 <adefend_end> |
Персонажи с этими ID будут блокировать даже спиной. | - |
Stages | Стадии | |||
Общая информация |
- |
- режим Survival удален.
- максимальное число уровней увеличено до 500. |
- |
stage.dat |
<stage_information> id: 0 name: Stage_1 file: data\stage\stage1.dat <stage_information_end> |
Каждая стадия теперь имеет свой собственный dat-файл.
Чтобы подключить стадию к игре, нужно прописать ее id, имя и путь к ней в файле stage.dat |
Значения:
id - номер стадии, порядковый номер стадии в списке меню. name - указывается имя стадии в меню. file - путь до файла со стадией, каждая стадия имеет отдельный файл. |
ptype: |
<stage> id: 0 stage_1-1 ptype: 0 bg: 13 <phase> bound: 900 id: 30 hp: 10 <phase_end> <stage_end> |
В файлах стадий может использоваться атрибут "ptype" для выбора, нужно ли игрокам после окончания подстадии бежать в конец |
1 - подстадия завершится автоматически
0 - необходимо бежать в конец (как в оригинальном LF2) |
bg: |
<stage> id: 0 stage_1-1 ptype: 0 bg: xx <phase> bound: 900 id: 30 hp: 10 <phase_end> <stage_end> |
В файлах стадий можно указывать фоновый уровень. Указывается уровень согласно его порядку в data.txt, а не просто ID. Атрибут "bg:" |
xx - Порядковый номер уровня согласно списку в data.txt. Учтите, что счет ведется с 0. |
when_clear_goto_stage: |
<phase> bound: 900 id: 30 hp: 10 when_clear_goto_stage: XY <phase_end> |
Возможность перейти к определенной стадии и определенной фазе, после окончания любой фазы, благодаря атрибуту: when_clear_goto_stage:
Указывается между <phase> и <phase_end> |
Значения:
X - Номер стадии Y - Номер фазы Помним, что счет ведется с 0. |
team: |
<phase> bound: 900 id: 30 hp: 10 team: x <phase_end> |
Теперь можно указать, к какой команде относится вызываемый противник, благодаря атрибуту team: x
x может принимать значения: 1) 1 - союзник (нельзя наносить урон) 2) 2 - команда номер 2 (можно наносить урон, но к вам он расположен дружелюбно) 3) 3 - команда номер 3 (можно наносить урон, но к вам он расположен дружелюбно) 4) 4 - команда номер 4 (можно наносить урон, но к вам он расположен дружелюбно) 5) 5 - вражеская команда (по умолчанию, у всех призываемых персонажей стоит это значение) |
- |
<protect> |
<phase> bound: 900 id: 5 hp: 250 team: 1 <protect> <phase_end> |
Метка Рекомендуется использовать метку с атрибутом team: 1, так как, если пометить врага - после его убийства игра все равно заканчивается. Без перехода на следующую фазу, стадию. Судя по всему, создана для реализации миссии "Защищать цель" |
- |
reserve_join: |
<phase> bound: 900 id: 11 hp: 10 join: 10 reserve_join: 50 <phase_end> |
Функция, которая дополняет оригинальный атрибут "join:" и может быть использована только вместе с ним.
"reserve_join:" добавляет количество "воскрешений" для союзника, который перешел на вашу сторону, как если бы это был освобожденный заложник. |
Лимит на количество воскрешений: 96 |
States | Стейты | Статусы Состояния | |||
State: 6xxx |
<frame> 100 pic: 25 state: 6090 hit_a: YYY wait: 5 next: 101 <frame_end> |
Добавлен State: 6xxx для имитаций удержания клавиш, определенных в hit_a: YYY или hit_j: YYY или hit_d: YYY.
Удерживаемый Блок, Прыжок или Атака.
Значения: ххx - время в Wait (TU) yyy - кадр, куда будет совершен переход. Если удержание отпущено раньше времени - происходит переход в кадр указанный в Next |
- |
State: 4xxx |
<frame> 100 pic: 25 state: 4090 hit_a: YYY wait: 5 next: 101 mp: ZZZ <frame_end> |
Добавлен State: 4xxx для имитаций удержания клавиш, определенных в hit_a: YYY или hit_j: YYY или hit_d: YYY.
Значения: ххx - время в Wait (TU) yyy - кадр, куда будет совершен переход. zzz - число маны Если удержание отпущено раньше времени - происходит переход в кадр указанный в Next |
Если есть указанное число маны в "mp:", то переход будет произведен мгновенно. |
State: 5xxyy |
<frame> 0 pic: 999 state: 55252 wait: 1 next: 1 <frame_end> <frame> 1 pic: 999 state: 55050 wait: 1 next: 1000 <frame_end> |
Добавлен State: 5xxyy для создания эффекта землетрясения.
Значения: хх - отклонения фонового уровня по координате Х уу - отклонения фонового уровня по координате У |
55050 - сбрасывает все отклонения обратно. Число 50 следует считать как 0, в то время как значения от 0 до 49 - это отклонения в минус, а от 51 до 99 - в плюс. ()Аналогичный метод используется в перемещении снарядов по оси Z через hit_j: в оригинальном LF2, например в снарядах Davis!) |
State: 10000-29999 | - |
Статус для работы со слоями.
Чем выше значение - тем первее план у объекта. |
- |
State: 1xxxyyy |
<frame> 0 pic: 999 state: 1200999 wait: 1 next: 370 <frame_end> |
Добавлен State: 1xxxyyy next: zzz - статус условного перехода при определенном количестве здоровья.
Значения: xxx - требуемый для перехода порог здоровья yyy - кадр, куда персонаж попадает, если условие НЕ выполняется zzz - кадр, куда персонаж попадает, если условие выполняется |
Примечания:
Так же, можно создать условие "если больше хп, то ..." Для этого нужно просто вместо yyy - кадр, куда персонаж попадает, если условие выполняется. В next: обязательно поставить 999. |
state: 20 | state: 21 |
<frame> 234 pic: 999 state: 21 wait: 900 next: 235 <frame_end> |
Статусы скрытности персонажа - state: 20 и state: 21 делают персонажа невидимым на время равное wait.
В стадиях персонаж остается видимым. Нельзя использовать next 999, иначе будет эффект next 1000. |
Примечания:
state: 20 - учитывает клонов state: 21 - не учитывает клонов |
*.dat files features | Функционал дат-файлов | |||
shadow: x |
<bmp_begin> shadow: 1 <bmp_end> |
Атрибут "shadow" в заголовке объекта между <bmp_begin> и <bmp_end> для скрытия тени объекта. |
Значения:
0 - всё как обычно 1 - тень отсутствует у объекта во всех его кадрах |
hiden: x |
<bmp_begin> hiden: 1 <bmp_end> |
Атрибут hiden (именно hiden, а не hidden) в заголовке объекта между <bmp_begin> и <bmp_end> для скрытия объекта категории type: 0 из выбора меню персонажа.
Значения: 0 - всё как обычно 1 - персонаж доступен при успешном вводе пароля 2 - персонаж будет скрыт даже при введенном пароле |
Примечания:
Баг! - даже если персонаж скрыт полностью (значение - 2), его можно будет выбрать через Random. |
<armor> |
<armor> sound1: data\085.wav sound2: data\085.wav type: 1 ratio: 999 decrease: 0 mp: 0 fall: -1 bdefend: -1 injury: -1 delay: -1 hp: 500 action: 250 frame: 0 200 spark: 600 state 3 15 1 12 14 id: 208 id: 214 recover: -1 effect: 2 effect: 3 effect: 20 effect: 21 effect: 22 effect: 23 effect: 30 <armor_end> |
sound1 - звук при срабатывании брони
sound2 - звук при срабатывании брони при блоке type - разновидность брони: - При 0 броня отсутствует, но работает sound2 от блока. - При 1 броня работает в обычном её режиме - При 2 броня учитывает только различные effect-ы - При 3 броня игнорирует fall атрибут у атакующих itr - При 4 броня учитывает только атрибут "decreace" для занижения урона. ratio - скорость восстановления брони. Броня х2, как у Джулиана \ Рыцарей равна примерно 15-20 decrease - как сильно занижается получаемый урон. Например, при 0 персонаж не будет получать урона при ударах по броне, а при 50 весь получаемый урон будет наноситься с уменьшением на 50%, а при 100 весь получаемый урон будет наноситься персонажу, даже если был удар по броне. mp - сколько отнимается маны при каждом срабатывании брони. Если маны будет недоставать, то броня не сработает. fall - минимальное значение fall, которое будет игнорировать броню bdefend - минимальное значение bdefend, которое будет игнорировать броню injury - минимальное значение injury, которое будет игнорировать броню delay - управляет задержкой персонажа (короткой тряской). Если стоит значение -1, то всё будет подобного оригинальному LF2. При значениях от 0 и выше подтормажвания при получении урона минимизируются. id - список ID, которые игнорируют броню персонажа effect - список эффектов, которые игнорируют броню персонажа recover - как долго броня восстанавливается (значение -1 делает броню невосстанавливаемой) hp - здоровье брони, атрибут можно не прописывать, если хотите чтобы броня не заканчивалась и была постоянной. action - если hp у брони было установлено и закончилось, персонаж совершит переход в номер кадра, указанный в action. Атрибут не обязателен. frame - начальный и конечный кадр, между которыми броня действует. Атрибут не обязателен. spark - номер кадра для эффекта вспышки от удара по броне. Атрибут не обязателен. state - список state, в которых броня активна. Если ничего не указано, броня будет во всех state. Атрибут не обязателен. |
- |
walking_frame: x |
<bmp_begin> walking_frame: 7 5 6 7 8 235 236 237 walking_frame_end: <bmp_end> |
Управление количеством кадров ходьбы в заголовке объекта между <bmp_begin> и <bmp_end>
Значения: walking_frame: x - общее число кадров, которое используется для походки. 5 6 7 8 235 236 237 - порядок кадров, которые будут прокручиваться по ходу анимации. Если вы хотите использовать стандартные кадры в начале кода, то их тоже нужно прописать. walking_frame_end: - закрывающий тэг, указывающий, что перечисление кадров завершено. |
- |
running_frame: x |
<bmp_begin> running_frame: 3 300 301 302 running_frame_end: <bmp_end> |
Управление количеством кадров бега в заголовке объекта между <bmp_begin> и <bmp_end>
Значения: running_frame: x - общее число кадров, которое используется для бега. 300 301 302 - порядок кадров, которые будут прокручиваться по ходу анимации. Если вы хотите использовать стандартные кадры в начале кода, то их тоже нужно прописать. running_frame_end: - закрывающий тэг, указывающий, что перечисление кадров завершено. |
- |
heavy_walking_frame: x |
<bmp_begin> heavy_walking_frame: 4 310 311 312 313 heavy_walking_frame_end: <bmp_end> |
Управление количеством кадров ходьбы с тяжелым предметом в заголовке объекта между <bmp_begin> и <bmp_end>
Значения: heavy_walking_frame: x - общее число кадров, которое используется для походки с тяжелым предметом. 310 311 312 313 - порядок кадров, которые будут прокручиваться по ходу анимации. Если вы хотите использовать стандартные кадры в начале кода, то их тоже нужно прописать. heavy_walking_frame_end: - закрывающий тэг, указывающий, что перечисление кадров завершено. |
- |
heavy_running_frame: x |
<bmp_begin> heavy_running_frame: 4 320 321 322 323 heavy_running_frame_end: <bmp_end> |
Управление количеством кадров бега с тяжелым предметом в заголовке объекта между <bmp_begin> и <bmp_end>
Значения: heavy_running_frame: x - общее число кадров, которое используется для бега с тяжелым предметом. 320 321 322 323 - порядок кадров, которые будут прокручиваться по ходу анимации. Если вы хотите использовать стандартные кадры в начале кода, то их тоже нужно прописать. heavy_running_frame_end: - закрывающий тэг, указывающий, что перечисление кадров завершено. |
- |
heavy_running_frame: x |
<weapon_piece> team: 1 piece: 1 act: 109 framea: 0 dvx: 0 dvy: 0 dvz: 0 oid: 211 amount: 1 piece_end: piece: 2 act: 125 framea: 4 dvx: 12 dvy: -20 dvz: 4 amount: 2 piece_end: piece: 2 act: 130 framea: 4 dvx: 4 dvy: -8 dvz: 4 piece_end: piece: 3 act: 135 framea: 4 dvx: 8 dvy: -10 dvz: 4 amount: 4 piece_end: <weapon_piece_end> |
Создание осколков для оружия:
"team" - указываете какой стороне принадлежат осколки. Если выставлено значение 0 - привязки по умолчанию нет, а если 1 - происходит привязка к изначальной команде. "piece" - порядковый номер группы осколков. Из этих групп случайным образом формируется куча осколков, которые появляются (до 25 осколков на один объект). "act" - первый кадр, из которого и берутся осколки."framea" - число кадров, которое будет использоваться для осколков, например, указываете 3, при том что act 100 стоит, тогда получаете порядок из 100, 101 и 102 (суммарно 3 кадра). "dvx", "dvy" и "dvz" - скорость полета осколков и их диапазон. Например, при dvx: 5 и dvz: 3 будут работать диапазоны для координаты X от -5 до 5, а для координаты Z от -3 до 3 (представляем куб). dvy в свою очередь указывает как высоко может достать летящий осколок по координате Y, например, при dvy равном -15, ваш осколок может оторваться от земли с силой равной -15 максимум, а минимум с силой равной 0. Это лишь диапазоны допустимых значений, сами осколки выбирают случайное направление полета туда, где допущен указанный вами диапазон. "amount" - как много осколков такого типа может появиться. |
- |
Новые атрибуты в Frame | Фреймах | Кадрах | |||
hp: |
- |
Новый атрибут hp:
Работает аналогично mp:, но теперь как 2 раздельных параметра. Если вам нужно сделать отнятие hp: через next, то обязательно должен присутствоваться параметр mp: 1+ |
- |
hit_aj:
hit_aa: hit_jj: |
<frame> 235 pic: 5 state: 3 wait: 3 next: 236 hit_aj: 240 <frame_end> <frame> 236 pic: 5 state: 3 wait: 3 next: 237 hit_aa: 245 <frame_end> <frame> 237 pic: 5 state: 3 wait: 3 next: 999 hit_jj: 246 <frame_end> |
Новые базовые приёмы |
hit_aj: = D+A+J
hit_aa: = D+A+A hit_jj: = D+J+J |
hit_g: |
<frame> 235 pic: 5 state: 3 wait: 3 next: 236 hit_g: 600 <frame_end> |
Значения:
xxx - кадр, куда перейдет персонаж, если коснется земли. |
Примечания:
При использовании этой функции с type 3 нужно использовать state 3007. |
next: 13xx |
<frame> 235 pic: 5 state: 3 wait: 3 next: 1303 <frame_end> <frame> 236 pic: 6 state: 3 wait: 3 next: 300 <frame_end> <frame> 237 pic: 7 state: 3 wait: 3 next: 400 <frame_end> <frame> 238 pic: 8 state: 3 wait: 3 next: 500 <frame_end> |
Рандомайзер перехода next: 13xx
Значения: xx - количество следующих кадров, среди которых будет выполнен рандомный переход. Например, если стоит frame 300 next: 1350, то будет выполнен случайных переход к одному из кадров от 301 до 350. |
- |
dx:
dy: dz: |
- |
Функции движения dx: dy: dz:
Работают аналогично dvx: dvy: dvz: Отличия: 1) Не сохраняется инерция персонажа. 2) dz: перемещает персонажа по оси Z, в отличие от dvz: , который дает возможность передвижения, путем нажатия клавиш вверх/вниз Примечание: пройденное расстояние все так же зависит от wait |
- |
[ITR]
z: |
- |
Смещение ITR по Z:
- для использования атрибута в IRT нужно добавлять "z:", где положительные значения - это вниз, а отрицательные - вверх. Так же работает и в mpoint |
- |
[ITR]
poison: xyyyzzww |
itr: kind:0 x:3 y:4 w:80 h:76 poison: 13005075 itr_end: |
Функция Яда.
X - эффект, один из вариантов ниже: X = 0 -> периодически наносится урон светлому здоровью, яд может убить X = 1 -> периодически наносится урон светлому здоровью, здоровье не опускается ниже 1hp X = 2 -> периодически наносится урон светлому здоровью в процентах от текущего здоровья, а не единицах hp. Яд может убить. X = 3 -> периодически наносится урон светлому здоровью в процентах от текущего здоровья, здоровье не опускается ниже 1hp. X = 4 -> периодически наносится урон светлому здоровью в процентах от максимального здоровья, а не единицах hp. Яд может убить. X = 5 -> периодически наносится урон светлому здоровью в процентах от максимального здоровья, а не единицах hp, здоровье не опускается ниже 1hp. YYY - время действия яда в Единицах Времени Wait. ZZ - урон в hp или %, в зависимости от выбранного эффекта. WW - вероятность отравления в %, 0 = 100% |
О примере: poison: 13005075 1 - яд, который не может убить 300 = 10 секунд действия яда 50 - количество хп, которое будет сниматься каждые 2 секунды 75 - шанс отравления |
[ITR]
manacle: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 manacle: 25300 itr_end: |
Функция Silence | Оковы | Молчание
Пораженная эффектом жертва не сможет использовать никакие приемы вроде D+A\J и подобное, то есть приемы со ссылками в другой кадр. Не блокирует работу hit_a, hit_j и hit_d . XX - % шанс срабатывания эффекта, 0 = 100% YYY - время действия эффекта |
О примере: manacle: 25300 25% шанс, что эффект сработвает 300 = 10 секунд действия эффекта |
[ITR]
delay: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 delay: 99150 itr_end: |
Функция Root | Slow | Сковывания | Замедления передвижения
Пораженная этим эффектом цель не сможет передвигаться быстро некоторое время. XX - % шанс срабатывания эффекта, 0 = 100% YYY - время действия эффекта |
О примере: delay: 99150 99% шанс, что эффект сработвает 150 = 5 секунд действия эффекта |
[ITR]
confus: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 confus: 10090 itr_end: |
Функция Confus | Замешательства
У пораженного персонажа будут перепутаны все нажатия клавиш в случайном порядке. Каждый раз порядок может быть разным. Действует и на AI, однако боты обычно трясутся на месте, так как пытаются использовать привычное движение, но тут же отказываются от него, в результате чего ведут себя слишком хаотично. XX - % шанс срабатывания эффекта, 0 = 100% YYY - время действия эффекта |
О примере: confus: 10090 10% шанс, что эффект сработвает 090 = 3 секунды действия эффекта |
[ITR]
kind X0 kind X1 kind X2 kind X3 kind X4 kind X5 |
itr: kind: 63 x: 0 y: 0 w: 100 h: 100 z: 100 dvx: 5 dvy: -5 itr_end: |
Платформы:
- платформы действуют на "center" атрибуты кадров, поэтому работают даже на объекты, у которых нету bdy. itr kind X0 (dvy - устанавливает высоту, только X3/4/5) - создание платформы, на которую можно просто прыгать. itr kind X1 - создание непроходимого барьера itr kind X2 (поднимает вверх через dvy, отталкивает через dvx, ) - доступны dvx и dvy для создание подвижной платформы itr kind X3 (только при X3) - доступны dvx и dvy для создание подвижной платформы с ускорением (постепенное наращивание dvN параметра) itr kind X4 (замедляет врага..как по оси Y, так и по X) - функции dvx и dvy теперь подразумевают значения X\1000 и Y\1000. itr kind X5 (X3 - dvy - аналог батута, dvx - отталкивает, X4/5/6/7/8 - не работает) - прыгающая платформа, где dvx создает горизонтальные рывки, а dvy вертикальные (вписывать отрицательное значение, если хотите, чтобы платформа ускакала вверх) X может имет следующие значения: - при 3 действует на все объекты type 0 - при 4 действует только на союзные объекты type 0 - при 5 действует только на вражеские объекты type 0 - при 6 действует так же как при 3, но работает на type 0, type 1, type 2 и type 4 - при 7 действует так же как при 4, но работает на type 0, type 1, type 2, type 4 и type 6 - при 8 действует так же как при 5, но работает на type 0, type 1, type 2, type 4 и type 6 |
О примере:
В этом случае мы получаем платформу типа "куб", на которую можно прыгнуть, а так же на неё будут падать всяческие предметы. Сама платформа будет перемещаться немного вперед и вверх. При использовании платформ, нужно ставить dvx/dvy/dvz = 550(в фрейме, не в итре), иначе персонаж будет просто улетать вверх. Так же желательно отрицательное значение Y в itr_kind. Примечания: В атрибуте y: лучше указывать отрицательные значения для стабильной работы платформ. |
Прочее | |||
- State 9997 не имеет лимита в 80 пикселей
- при запуске ЕХЕ, окно игры всегда центрируется на экране. - изменен принцип обработки изображений программой (функция API). - полная поддержка формата PNG. - для 32-битных PNG файлов поддерживается прозрачность (alpha-канал). - в data.txt может быть теперь записано 1000 объектов. - в зеркальных спрайтах приоритет отдается изображениям с наличием _mirror частью, вместо аппаратного отзеркаливания (актуально для некоторых видео-карт). - удалена реклама. - удалена функция автоматического обновления. - список музыки теперь можно изменить через bgm.dat - загрузка игры происходит теперь тогда, когда эти файлы игры задействованы (крайне актуально для владельцев старых PC, где занимание всей RAM памяти сразу - пагубно). - при выборе карты или уровня стадии теперь можно прокручивать список в обратном направлении нажатием прыжка. - в режиме стадий, играя за Рудольфа, вы становитесь полупрозрачными при использовании невидимости, но весь эффект от приёма остается такой же, а так же это распространяется на клонов. - число объектов, которые одновременно могут быть на уровне увеличено до 1000. - эффекты "ударов" и "крови" теперь наследуют движение поражаемой цели. - добавлена поддеркжа Юникода, появилась возможность изменить шрифты. - полоски здоровья и маны перенесены в sprites/bars.png - добавлено отображение здоровья и маны в числовых значениях (значения составляются из спрайтов в bars.png, поэтому вы можете убрать их там, если вам они не нужны). - лимит itr на один кадр увеличен до 100. - лимит кадров поднят до 799. - лимит звуков снят. |