Настройки
http://lfforever.ru/design/black.css http://lfforever.ru/design/ds_dw.css http://lfforever.ru/design/xmas.css
Присоединяйся к каналу LFF в Discord!

Power Development Kit
 

Последняя стабильная версия:
 
Скачать PDK Standart 1.2
 
 
 
Преимущества над другими наборами:
- Встроенная поддержка прозрачности PNG
- Поддержка управлением броней, стадиями, музыкой и многим другим через DAT файлы
- Подгрузка каждого игрового уровня и объектов отдельно (хорошо для старых PC)
- Встроенная функция рандома
 
Автор оригинала: Alkarter
Авторы дополнений, перевода и развития: EdL, Surik, Soul-AR, zapashok

Вам этого мало?
Тогда ознакомьтесь с полным списком возможностей PDK

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: 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>

 Так же есть предустановки:
 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>


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 броня существует, но не пропускает любой урон визуально (получаемые удары вводят в ТБ и т.д.)(не работают: delay;hp;recover;ratio;)
"ratio(работает везде)" - коэфициент защиты.
decrease(3 и 4) - как много урона проходит сквозь персонажа, работает по формуле "полученный урон - %decrease = урон, который персонаж получит сквозь броню".
"fall" "bdefend" и "injury" - Значения которые будут игнорировать броню. К примеру Fall: 50 - будет игнорировать 50 и выше.
"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
300 301 302
running_frame_end:

heavy_walking_frame: 4
310 311 312 313
heavy_walking_frame_end:

heavy_running_frame: 4
320 321 322 323
heavy_running_frame_end:

Автор напоминает, что следует поправлять так же атрибут frame_rate в шапке, ведь вы меняете число кадров, а их frame_rate считается общим для всех, а так же не забывать использовать соответствующие статусы.

9. Настройка отображения первого плана через статус:
- можно использовать state: 10000-29999, где чем выше значение, тем первее план у объекта. Функция создана для дизайна заклинаний.

10. Функция тряски экрана:
- новый state: 5XXYY, где XX и YY это координаты отклонения X и Y соответственно. Работает по принципу hit_j у снарядов для смещения по Z.

11. Условный переход в кадры при определенном здоровье (как у Louis в Louis_EX):
Переход только по hit атрибутам.

1)Чтоб выполнялось условие "если меньше ххх ХП"
state: 1хххууу next: zzz
где, xxx - сколько ХП
yyy - если не выполнено условие
zzz - если выполнено условие.

2)Чтобы выполнялось условие"если больше ххх ХП"
state 1xxxyyy, где xxx - здоровье, а yyy - номер кадра.

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 раздельных параметра.
- если вам нужно сделать отнятие hp через next, то обязательно должен присутствоваться параметр mp: 1+

14. Новые базовые приёмы:
hit_aj: = DAJ
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. (в стадиях персонаж остается видимым).
Нельзя использовать next 999, иначе будет эффект next 1000

17. Рандомайзер перехода:
- next: 13XX, где XX - число последующих кадров, до которых может произойти переход. Например, если стоит frame 300 next: 1350, то будет выполнен случайных переход к одному из кадров от 301 до 350.

18. Бесстрелочные переходы:
- можно использовать переходы dx: , dy: и dz: для коротких приемов с переходом.

19. Смещение ITR по Z:
- для использования атрибута в IRT нужно добавлять "z:", где положительные значения - это вниз, а отрицательные - вверх. Так же работает и в Mpoint

20. Платформы:
- платформы действуют на "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

Пример:
itr:
kind: 63 x: 0 y: 0 w: 100 h: 100 z: 100 dvx: 5 dvy: -5
itr_end:

В этом случае мы получаем платформу типа "куб", на которую можно прыгнуть, а так же на неё будут падать всяческие предметы. Сама платформа будет перемещаться немного вперед и вверх.
При использовании платформ, нужно ставить dvx/dvy/dvz = 550(в фрейме, не в итре), иначе персонаж будет просто улетать  вверх. Так же желательно отрицательное значение Y в itr_kind.

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)

30. Mpoint

В каждом кадре может быть до 20 mpoint,
как и с opoint, работает только при переходе через next

ВНИМАНИЕ: Если кадр объекта не будет содержать hit_Fa: 1+, то не будет возможности преследования
Совет: Прописывайте как amount так и ratio

kind: должно быть 1 или 2;1 = вызывает волну объектов, 2 = для всех тиммейтов дружественный объекты
centerx: - Положение призыва
centery: - Положение призыва
centerz: - Положение призыва
action: кадр
framea: Последовательность рандомных кадров при призыве. Пример: framea: 200 201 202 ... xxx
oid: ID объекта
facing: количество
x: y: z: максимальные значения случайного призыва объекта

facing:, например, 30 и без преследования, но с рандомными координатами появления:
создает 3 объекта, которые рандомно распределяются, а не в рандомной точке 3 объекта

dvx: начальная скорость по оси
dvy: начальная скорость по оси
dvz: начальная скорость по оси
type: тип и количество рандомных объектов. смотреть примечания
chase: режим преследования, facing не работает, таблица ниже
amount: то же что и facing, только работает когда не работает тот
ratio: коэффициент шаров на противника, ломает facing

ratio: <кол-во_врагов>*0,1*ratio
Полученное число будет применимо для chase типов 0, типов 0 или 3 (например, chase: 4). само число ratio будет для chase типов 3 (например, chase: 3)

{эту часть необязательно воспринимать, т.к. перевод неосмыслен и оставлен машинный:
Количество и соотношение 0:00 является не только эффективным в погоню,
В противном случае, использование численного облицовки,
Но даже если там написано на погони,}

Примечания:type
128 Когда все противники сбиты, продолжает создавать объекты
(поидее, когда противник упал или мигает, то объект не будет создан)
64 отключает случайное направление
32 случайный положит. и отриц. dvz
16 случайный dvz
8 случайный положит. и отриц. dvy
4 случайный dvy
2 случайный положит. и отриц. dvx
1 случайный dvx

Можно смешивать:
type: 192; 192=128+64, т.е. имеет свойства 128 и 64

==================== таблица chase  ====================
1 = будет преследовать только одного противника (ratio после подсчетов должен быть не меньше 1, не создает больше 1 объекта)
2 = будет преследовать разных противников (после подсчета ratio количество снарядов не должно превышать количество целей, иначе будет создан только 1 объект)
3 = преследует только вражеские type 3 (ratio численно работает, amount работает корректно)
4 = преследует вражеские тип 0, тип 3 объекты (amount работает корректно, ratio не проверил)
5 = преследует тиммейтов (не работает)

12 = точка появления привязана к противнику (рандомные x,y,z применяются после этого, так что объект должен будет сначала достичь цели, либо спавануться прямо на ней) (ratio работает)
13 = точка появления привязана к type 3.
14 = точка появления привязана к type 0,3.
15 = точка появления привязана к союзнику

2XXXX отслеживает противника на расстоянии ххх (если противник есть - создает объект, иначе не создает)
3XXXX отслеживает враж. объекты типа 3 на расстоянии ххх  (если есть вражеский объект - создает объект, иначе не создает)
4XXXX отслеживает враж. объекты типа 0, типа 3 на расстоянии ххх  (если противник есть или вражеский объект - создает объект, иначе не создает)
5XXXX отслеживает тиммейта на расстоянии ххх (если союзник есть - создает объект, иначе не создает) (не работает)
12XXXX точка появления привязана к противнику, но срабатывает если только есть противник на расстоянии ххх
13XXXX точка появления привязана к type 3
14XXXX точка появления привязана к type 0,3
15XXXX точка появления привязана к союзнику

Пример:

mpoint:
kind: 1 centerx: 31 centery: 42 centerz: 0 action: 50 framea: 0 oid: 215
x: 60 y: 10 z: 10 dvx: 0 dvy: 0 dvz: 0 type: 128 chase: 2 amount: 0 ratio: 20
mpoint_end: