Сейчас наступает период, когда LFF таки постепенно подвергается изменениям, а работа кипит. Мало того, что до следуюшего РИКа остался месяц, так ещё и переход с 7 на 8 версию сайта может начать осуществляться уже совсем скоро.
А между тем, господа, специально для вас я подготовил небольшую приятность - релиз Power Development Kit от китайского разработчика Alkarter, который представляет публике сейчас самые сильные разработки для создания модификаций.
I. Общие особенности Аль-Картер'овской основы для модификаций:
- при запуске ЕХЕ, окно игры всегда центрируется на экране.
- изменен принцип обработки изображений программой (функция API).
- полная поддержка формата PNG.
- для 32-битных PNG файлов поддерживается прозрачность (alpha-канал).
- в data.txt может быть теперь записано 1000 объектов.
- в зеркальных спрайтах приоритет отдается изображениям с наличием _mirror частью, вместо аппаратного отзеркаливания (актуально для некоторых видео-карт).
- удалена реклама.
- удалена функция автоматического обновления.
- список музыки теперь можно изменить через bgm.dat
- загрузка игры происходит теперь тогда, когда эти файлы игры задействованы (крайне актуально для владельцев старых PC, где занимание всей RAM памяти сразу - пагубно).
- при выборе карты или уровня стадии теперь можно прокручивать список в обратном направлении нажатием прыжка.
- в режиме стадий, играя за Рудольфа, вы становитесь полупрозрачными при использовании невидимости, но весь эффект от приёма остается такой же, а так же это распространяется на клонов.
- число объектов, которые одновременно могут быть на уровне увеличено до 1000.
- эффекты "ударов" и "крови" теперь наследуют движение поражаемой цели.
- добавлена поддеркжа Юникода, появилась возможность изменить шрифты.
- полоски здоровья и маны перенесены в sprites/bars.png
- добавлено отображение здоровья и маны в числовых значениях (значения составляются из спрайтов в bars.png, поэтому вы можете убрать их там, если вам они не нужны).
II. Опции System.dat:
1.) Строчки управления фоновой музыки в меню:
menu_bgm1: BGM \ main.wma
menu_bgm2: BGM \ main.wma
В первой строке вы указана музыка при запуске игры, во второй строке указана музыка после нажатия Start Game.
Если вы не хотите, чтобы там была музыка, достаточно прописать menu_bgm1: [MU]
2.) Управление фоновыми изображениями:
<menu_back_1>
<menu_back_2>
В первой строке указывается фон при запуске игры, во второй строке указывается фон после нажатия Start Game.
Так же есть предустановки:
type 0\1\2\3
При указании type: 0 отображается только цвет фона, без рисунков.
При указании type: 1 отображается только один рисунок, всегда.
При указании type: 2 отображается в том порядке, в каком указано в списке.
При указании type: 3 отображается всё так же, как обычно - в случайном порядке.
3.) Список State, в которых броня не действует:
<armor_s>
state: 8
state: 11
state: 12
state: 13
state: 14
state: 16
state: 18
<armor_s_end>
4.) Список id, у которых работает поддержка двустороннего состояния блока:
<defend>
id: 124
id: 220
id: 221
id: 222
<defend_end>
III. Особенности dat файлов:
1.) лимит itr на один кадр увеличен до 100.
2.) лимит кадров поднят до 799.
3.) лимит звуков снят.
4.) создание осколков для оружия:
<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" - как много осколков такого типа может появиться.
5. Управление броней через dat информацию:
<armor>
sound1: data\085.wav
sound2: data\085.wav
type: 1 ratio: 1 decrease: 100 mp: 0 fall: 20 bdefend: 20 injury: 20 delay: -1
frame: 0 20
state: 4 state: 5 state: 7
effect: 2 effect: 3 effect: 20 effect: 21 effect: 22 effect: 23 effect: 30
id: 208 id: 214
<armor_end>
"sound1" - звук при срабатывании брони.
"sound2" - звук при блоке для персонажа с броней.
"type" - указание типа брони:.
- при 0 броня отсутствует, но sound2 остается активным.
- при 1 работает обычная броня.
- при 2 броня будет работать только с определенными effect.
- при 3 броня, при которой объект игнорирует fall.
- при 4 броня существует, но не пропускает любой урон визуально (получаемые удары вводят в ТБ и т.д.)
"ratio" - коэфициент защиты.
decrease - как много урона проходит сквозь персонажа, работает по формуле "полученный урон - %decrease = урон, который персонаж получит сквозь броню".
"fall", "bdefend" и "injury" - указание значений, которые могут игнорировать броню.
"mp" - сколько маны будет тратить персонаж при каждом срабатывании брони, работает по формуле "полученный урон*%mp=%конвертируемого урона в отнимаемую ману", если маны не хватает - урон проходит напрямую.
"spark" - визуальный эффект удара по броне.
"hp" - здоровье брони. аналогично здоровью оружия - существует пока не закончится здоровье.
"recover" - как долго броня восстанавливается (значение -1 делает броню невосстанавливаемой).
"action" - кадр перехода при уничтожении брони (если есть hp атрибут).
"delay" - какую задержку получает противник и жертва при ударе по броне, указывается форматом XYYZZ, где Х - может быть 1 (кадр обнуляется после удара) и 0 (кадр не обнуляется), где YY - какой противник получит wait в том кадре, в котором выполнил удар по броне, где ZZ - какой жертва получит wait после получения по своей броне удара.
"frame" - диапазон кадров, в которых броня активна (например, при frame: 0 20 персонаж имеет броню лишь в кадрах от 0 до 20).
"state" - список статусов персонажа. в которых его броня активна.
"kind" - список itr kind, при которых броня активна.
"id" - список id, которые игнорируют броню.
"effect" - список эффектов, которые игнорируют броню.
6. Устранение тени через dat файлы:
- для удаления тени в заголовке между <bmp_begin> и <bmp_end> (шапка) пропишите shadow: 1 и объект не будет иметь тени.
7. Управление скрытием персонажа:
- для управления доступностью персонажа в заголовке между <bmp_begin> и <bmp_end> (шапка) пропишите атрибут hiden: X, где Х может быть равен:
0 - персонаж всегда виден в меню выбора.
1 - персонаж виден только после ввода пароля.
2 - персонаж не виден никогда.
8. Изменение числа кадров для ходьбы и бега:
walking_frame: 6
290 291,292,293,294,295
walking_frame_end:
running_frame: 3
300301302
running_frame_end:
heavy_walking_frame: 4
310311312313
heavy_walking_frame_end:
heavy_running_frame: 4
320321322323
heavy_running_frame_end:
Автор напоминает, что следует поправлять так же атрибут frame_rate в шапке, ведь вы меняете число кадров, а их frame_rate считается общим для всех, а так же не забывать использовать соответствующие статусы.
9. Настройка отображения первого плана через статус:
- можно использовать state: 10000-29999, где чем выше значение, тем первее план у объекта. Функция создана для дизайна заклинаний.
10. Функция тряски экрана:
- новый state: 5XXYY, где XX и YY это координаты отклонения X и Y соответственно.
11. Условный переход в кадры при определенном здоровье (как у Louis в Louis_EX):
- state 1xxxyyy, где xxx - здоровье, а yyy - номер кадра. Статус применим к любым hit атрибутам.
12. Функция "заряда":
state: 6XXX и hit_a: YYY или hit_j: YYY или hit_d: YYY, где YYY - куда перейдет персонаж, когда истечет wait при удерживаемом Блоке, Прыжке или Атаке. Если удержания не было или оно было отпущено раньше времени, происходит переход в next кадр. ХХХ не принципиален.
state: 4XXX mp: MMM, и hit_a: YYY или hit_j: YYY или hit_d: YYY, где YYY - куда перейдет персонаж, когда истечет wait при удерживаемом Блоке, Прыжке или Атаке. Если удержания не было или оно было отпущено раньше времени, происходит переход в next кадр. ХХХ не принципиален. Если у персонажа есть указанное число маны, он его потратит и выполнит переход в YYY мгновенно.
13. Новый атрибут hp:
- работает аналогично mp, но теперь как 2 раздельных параметра.
14. Новые базовые приёмы:
hit_aj: = DJA
hit_aa: = DAA
hit_jj: = DJJ
15. Новая переходная функция hit_g (G от Ground - "земля"):
- при приземлении персонаж перейдет в hit_g. (аналог state 100 в оригинале, который всегда делает переход в 94 кадр)
- при использовании этой функции с type 3 так же нужно использовать state 3007.
16. Статусы "скрытности":
- state: 20 и state: 21 делают персонажа невидимым на время равное wait. (в стадиях персонаж остается видимым).
17. Рандомайзер перехода:
- next: 13XX, где XX - число последующих кадров, до которых может произойти переход. Например, если стоит frame 300 next: 1350, то будет выполнен случайных переход к одному из кадров от 301 до 350.
18. Бесстрелочные переходы:
- можно использовать переходы dx: , dy: и dz: для коротких приемов с переходом.
19. Смещение ITR по Z:
- для использования атрибута в IRT нужно добавлять "z:", где положительные значения - это вниз, а отрицательные - вверх.
20. Платформы:
- платформы действуют на "center" атрибуты кадров, поэтому работают даже на объекты, у которых нету bdy.
itr kind X0 - создание платформы, на которую можно просто прыгать.
itr kind X1 - создание непроходимого барьера
itr kind X2 - доступны dvx и dvy для создание подвижной платформы
itr kind X3 - доступны dvx и dvy для создание подвижной платформы с ускорением (постепенное наращивание dvN параметра)
itr kind X4 - функции dvx и dvy теперь подразумевают значения X\1000 и Y\1000.
itr kind X5 - прыгающая платформа, где 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
Пример:
itr:
kind: 63 x: 0 y: 0 w: 100 h: 100 z: 100 dvx: 5 dvy: -5
itr_end:
В этом случае мы получаем платформу типа "куб", на которую можно прыгнуть, а так же на неё будут падать всяческие предметы. Сама платформа будет перемещаться немного вперед и вверх.
21. Изменения в стадиях:
- режим Survival удален.
- максимальное число уровней увеличено до 500
- stage.dat выполняет роль информации о стадиях для меню, в то время как сами стадии разделены по отдельным файлам:
<stage_information>
id: 0
name: Stage_1
file: data\stage\stage1.dat
<stage_information_end>
id - номер идентефикатора, порядковый номер стадии в списке меню.
name - указывается имя стадии в меню.
file - путь до файла со стадией, каждая стадия имеет отдельный файл.
22. Изменение уровня для каждой стадии:
id: 0 stage_3-5
bg: 3
<phase> bound: 2200
для использования нужно прописать bg: Х между id и <phase>, где Х - порядковый номер уровня в data.txt.
23. Атрибут when_clear_go_stage:
- теперь атрибут изменен, when_clear_goto_stage: XY, где X - ID стадии, а Y - этап стадии.
24. Добавлен атрибут team:
- атрибут можно использовать в стадиях для выдачи команды появляющимся противникам, по умолчанию у противников стоит значение 5 (например, team: 5).
25. Добавлена метка <protect> :
- если цель с меткой <protect> умирает (здоровье равно 0 или ниже), игра завершается.
26. Мгновенное завершение уровня после волны:
- если вы хотите, чтобы после убийства всех противников игроку не пришлось бежать вперед до самого конца, то можете после id: x и перед <phase> тегом прописать ptype: 1 (phase type - тип фазы), благодаря чему переход к следующей стадии (из 1-1 в 1-2, например) будет происходить тут же, без необходимости бежать в конец.
27. Призыв объектов на картах:
opoint:
oid: 203 action: 0 x: 300 y: 0 z: 400 dvx: 100 dvy: 20 dvz: 80
opoint_end:
где oid - это id объекта
x,y,z - координаты появления
dvx,dvy,dvz - координаты
(могут происходить ошибки при воспроизведении реплеев при неправильном создании объектов, проверяйте конечную карту просмотром реплеев)
28. Управление музыкой через bgm.dat:
<bgm_begin>
name: Main_Theme
file: bgm\main-1.wma
<bgm_end>
<bgm_begin>
name: Stage_1
file: bgm\stage1x.wma
<bgm_end>
name - отображаемое в меню название трека.
file - путь до трека.
29. Добавлены опции для Юникода:
- атрибут Uname работает по аналогии с name, но поддерживает Юникод кодировку, а вводить имя просит в виде шестнадцатиричного кода (например, Uname: C230A430D730), а так же можно использовать атрибут в таких местах как stage.dat, где такого атрибута нет, но поддержка юникода существует (например, при написании текста добавлять префикс [UC], допустим - [UC] C230A430D730).