Feature | Example | Description | More Info |
---|---|---|---|
system.dat | |||
Background music configuration |
menu_bgm1: BGM \ main.wma menu_bgm2: BGM \ main.wma |
In first string sets music after game lauched, in second sets music after pressing Start Game
If you wish no music then put there "menu_bgm1: [MU]" |
- |
Background image configuration |
<menu_back_1> <menu_back_2> |
In first string sets BG after game lauched, in second sets BG after pressing Start Game
Works only with "type: 3" and if images have different locations Also there is some preference: type 0\1\2\3 type: 0 displays only solid color background type: 1 displays only 1 picture, always type: 2 displays in order you set in list type: 3 dosplays in random order like in LF2 |
<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 list that doesn't allow armor to work a while |
<armor_s> state: 8 state: 11 state: 12 state: 13 state: 14 state: 16 state: 18 <armor_s_end> |
- | - |
ID list for objects that can block with both sides |
<adefend> id: 124 id: 220 id: 221 id: 222 <adefend_end> |
Characters from that list can block even with their back | - |
Stages | |||
Basic info |
- |
- Survival mode was removed.
- max stages cap increased up to 500 levels. |
- |
stage.dat |
<stage_information> id: 0 name: Stage_1 file: data\stage\stage1.dat <stage_information_end> |
Each Stage now have its own dat-file.
To attach Stage in list you need to set it's id, name and location in stage.dat file |
Values:
id - sets order number in menu list name - sets name of stage in menu file - path to your stage *.dat file. Each stage with it's own data. |
ptype: |
<stage> id: 0 stage_1-1 ptype: 0 bg: 13 <phase> bound: 900 id: 30 hp: 10 <phase_end> <stage_end> |
In stage files may be used "ptype" attribute for choosing do the players need to run to the end of level after substage clear. |
1 - substage will be done automaticaly
0 - players have to run in to the level's end (like in original LF2) |
bg: |
<stage> id: 0 stage_1-1 ptype: 0 bg: xx <phase> bound: 900 id: 30 hp: 10 <phase_end> <stage_end> |
In substages files you can set up Background Level you want to see. There is no just ID, but the order number from data.txt list. "bg:" attribute for using. |
xx - order number of BG from data.txt. Keep in mind: count starts from 0 |
when_clear_goto_stage: |
<phase> bound: 900 id: 30 hp: 10 when_clear_goto_stage: XY <phase_end> |
Allows you to go in phase you wish after current phase is over. "when_clear_goto_stage:" attribute
Must be set between <phase> and <phase_end> |
Values:
X - Stage Number Y - Phase Munber Keep in mind: count starts from 0 |
team: |
<phase> bound: 900 id: 30 hp: 10 team: x <phase_end> |
Allows to set up the start team for character appear with "team: x" attribute
X may be in values: 1) 1 - team 1 (ally, can't be hit by player) 2) 2 - team 2 (ally, can be hit by player) 3) 3 - team 3 (ally, can be hit by player) 4) 4 - team 4 (ally, can be hit by player) 5) 5 - team 5 (enemy, by default all objects summoned in Stages is Team 5) |
- |
<protect> |
<phase> bound: 900 id: 5 hp: 250 team: 1 <protect> <phase_end> |
Tag-Mark <protect> for objects. If the character with that mark is dead - game overs.
Recommended to set up with Team 1, because if mark is up on enemy, the game will be over immideatly after enemy down. Made for "protect VIP" solutions. |
- |
reserve_join: |
<phase> bound: 900 id: 11 hp: 10 join: 10 reserve_join: 50 <phase_end> |
Feature that extends "join:" attribute and must be used with it.
"reserve_join:" adds "Lives" to ally that joined your side like free criminal. |
Lives limit: 96 |
States | Current Status | |||
State: 6xxx |
<frame> 100 pic: 25 state: 6090 hit_a: YYY wait: 5 next: 101 <frame_end> |
New State: 6xxx for Button Holding, defines in "hit_a: YYY" or "hit_j: YYY" or "hit_d: YYY"
Holding Block, Jump or Attack
Values: ххx - time in Wait (TU) yyy - frame in that character will be trasfered If holding process is down, character goes in "next:" frame |
- |
State: 4xxx |
<frame> 100 pic: 25 state: 4090 hit_a: YYY wait: 5 next: 101 mp: ZZZ <frame_end> |
New State: 4xxx for Button Holding, defines in "hit_a: YYY" or "hit_j: YYY" or "hit_d: YYY"
Values: ххx - time in Wait (TU) yyy - frame in that character will be trasfered zzz - mana value If holding process is down, character goes in "next:" frame |
If mana in "mp: zzz" is enough the transfer will be done immideatly |
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> |
New State: 5xxyy for earthquake effect
Value: хх - background shift by X-ccordinate уу - background shift by Y-ccordinate |
55050 - reset all changes in normal Value 50 shall be counted as 0, in that case all Values between 0 and 49 - moves in negative coords, and between 51 and 99 - moves in positive coords. (Same method used in original LF2 for making ball move in Z-coord, where 50 is 0, ex. Davis!) |
State: 10000-29999 | - |
State for set Layer priority.
Higher value - higher layer. |
- |
State: 1xxxyyy |
<frame> 0 pic: 999 state: 1200999 wait: 1 next: zzz <frame_end> |
New State: 1xxxyyy next: zzz, state with HP compare before going to frame.
Values: xxx - minimal HP character needs yyy - frame in that character goes if there is not enough HP zzz - frame in that character goes if he have enough HP |
|
state: 20 | state: 21 |
<frame> 234 pic: 999 state: 21 wait: 900 next: 235 <frame_end> |
Invisibility states - state: 20 and state: 21 makes character invisible for "wait:" time
In stages character stays half-transparent If used "next: 999" then it will works like "next: 1000" |
Note:
state: 20 - counts clones state: 21 - without count |
*.dat files features | |||
shadow: x |
<bmp_begin> shadow: 1 <bmp_end> |
"shadow" attribute in data head between <bmp_begin> and <bmp_end> for hiding shadow of object |
Значения:
0 - shadow will works 1 - shadow won't appear in any frame |
hiden: x |
<bmp_begin> hiden: 1 <bmp_end> |
"hiden" attribute (yes, "hiden", not "hidden") in data head between <bmp_begin> adn <bmp_end> for hiding the "type: 0" object from character selection screen
Values: 0 - regular work 1 - character will be available if cheat code is on 2 - character can't be selected even with cheat code |
Values:
Bug! Even if character is comletly hidden with "2" value, it can be taken by 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 - sound of armor hit
sound2 - sound of armor hit while character's block is up type - armor types: - 0 - armor is disabled, but sound2 still works while block - 1 - armor works in regular mode - 2 - armor protects only from different effects - 3 - armor ignores "fall" attribute from ITR of attacker - 4 - armor using only "decreace" for damage decreasing ratio - speed of armor regeneration, Julian and Knight's double armor is around 15-20 ratio decrease - how much Damage in % the armor will skip thro itself and let the owner gets injury (ex. "decrease: 0" will block ALL damage till armor is up) mp - how much mana Armor will drain from owner every time protect triggers. If there is not enough mana, armor will not protect. fall - minimal "fall" value that will ignores armor bdefend - minimal "bdefend" value that will ignores armor injury - minimal "injury" value that will ignores armor delay - manipulates the short delay if armor triggers (Shaking). If there is "-1" value, everything will work like in original LF2. With 0 and above values, the Shaking effect will have less effect. id - ID list, that ignores armor effect - Effect list, that ignores armor recover - how much time needed to recover armor. -1 value makes it unrecoverable. hp - health of armor. You may not use this attribute for regular armor. Attribute isn't nessecary. action - if armor's HP is over, owner will goes to "action: xxx" frame. Attribute isn't nessecary. frame - first and last frame numbers, between thouse armor will work. Attribute isn't nessecary. spark - frame number of spark on armor hit. Attribute isn't nessecary. state - state list, where armor will work. If there is no state list, then armor will work in every state. Attribute isn't nessecary. |
- |
walking_frame: x |
<bmp_begin> walking_frame: 7 5 6 7 8 235 236 237 walking_frame_end: <bmp_end> |
Manage the number of walking frames in between <bmp_begin> and <bmp_end>
Значения: walking_frame: x - total number of frames used for animation 5 6 7 8 235 236 237 - order list of frames in animation (from first to last) walking_frame_end: - closing tag |
- |
running_frame: x |
<bmp_begin> running_frame: 3 300 301 302 running_frame_end: <bmp_end> |
Manage the number of running frames in between <bmp_begin> and <bmp_end>
Значения: running_frame: x - total number of frames used for animation 300 301 302 - order list of frames in animation (from first to last) running_frame_end: - closing tag |
- |
heavy_walking_frame: x |
<bmp_begin> heavy_walking_frame: 4 310 311 312 313 heavy_walking_frame_end: <bmp_end> |
Manage the number of heavy walking frames in between <bmp_begin> and <bmp_end>
Значения: heavy_walking_frame: x - total number of frames used for animation 310 311 312 313 - order list of frames in animation (from first to last) heavy_walking_frame_end: - closing tag |
- |
heavy_running_frame: x |
<bmp_begin> heavy_running_frame: 4 320 321 322 323 heavy_running_frame_end: <bmp_end> |
Manage the number of heavy running frames in between <bmp_begin> and <bmp_end>
Значения: heavy_running_frame: x - total number of frames used for animation 320 321 322 323 - order list of frames in animation (from first to last) heavy_running_frame_end: - closing tag |
- |
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> |
Managing weapon pieces:
"team" - sets basic team to pieces. If "0" there is no special team setup, If "1" then it takes the team of owner. "piece" - order number of pieces group. From this groups formating a future pieces (up to 25 pieces for each object). "act" - first frame where pieces will be taken."framea" - how much frames will be used for pieces (ex. set "framea: 3" and "act: 100", then you'll get order of 100, 101 and 102 frames - 3 summary) "dvx", "dvy" and "dvz" - flying speed range. (ex. with "dvx: 5" and "dvz: 3" range will be "X" with value from "-5" to "5", and for "Z" will be from "-3" to "3"). "dvy" is defines how high the pieces CAN reach (ex. "dvy: -15" will define a possibility for piece to have "dvy" from "0" to "-15"). The pieces works only with range values. "amount" - how much pieces can appear. |
- |
New Attributes in Frames | |||
hp: |
- |
New attribute "hp:"
Works same as "mp" but with HP If you're using "hp: xxx" for going to Next frame, you should add "mp: 1" or above to make it works properly |
- |
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> |
New basic moves |
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> |
Values:
xxx - frame in which object will be moved if touches the ground |
Note:
If you're using this feature with Type 3, then also set the 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 frame Randomizer "next: 13xx"
Values: xx - number of frames after current where one of them will be selected randomly and then the owner will moves to this "next" |
- |
dx:
dy: dz: |
- |
Moving features dx: dy: dz:
Works the same as dvx: dvy: dvz: Difference: 1) Inertia won't be saved after all 2) "dz:" now moves the object in Z-coord, while "dvz:" just allows the character to move by Z-coord with ^ or v Note: total distance still depends on "wait" |
- |
[ITR]
z: |
- |
Shifts ITR by Z-coord:
- adds the Z-shift of ITR, where positive values will move ITR down and negative moves ITR up Also works with "mpoint" |
- |
[ITR]
poison: xyyyzzww |
itr: kind:0 x:3 y:4 w:80 h:76 poison: 13005075 itr_end: |
Poison feature.
X - poison type: X = 0 -> periodicaly makes Damage to HP. Can kill character. X = 1 -> periodicaly makes Damage to HP. Can not kill character. X = 2 -> periodicaly makes Damage to HP in Percentage of Current HP. Can kill character. X = 3 -> periodicaly makes Damage to HP in Percentage of Current HP. Can not kill character. X = 4 -> periodicaly makes Damage to HP in Percentage of Maximum HP. Can kill character. X = 5 -> periodicaly makes Damage to HP in Percentage of Maximum HP. Can not kill character. YYY - how long poison will works ZZ - damage in Real Numbers or Percentage, depends on Poison Type WW - poison chance (0 = 100%) |
About example: poison: 13005075 1 - poison that can't kill the victim 300 = 10 second for poison 50 - amount HP which target will lose every 2 seconds 75 - poisoning chance |
[ITR]
manacle: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 manacle: 25300 itr_end: |
Works like "Silence", makes the Target unable to use skills.
Doesn't blocks the work of regular moves: "hit_a", "hit_j" and "hit_d" XX - % of silence change (0 = 100%) YYY - time of silence |
About example: manacle: 25300 25% chance that target will be silenced 300 = 10 second of silent work |
[ITR]
delay: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 delay: 99150 itr_end: |
Slows movement of target
Target can't move fast for some time. XX - % of slow chance YYY - time of slow works |
About example: delay: 99150 99% chance of target will be slowed 150 = 5 second of slow |
[ITR]
confus: xxyyy |
itr: kind:0 x:3 y:4 w:80 h:76 confus: 10090 itr_end: |
Confuse feature
Target's key buttons will shuffle for some time XX - % chance of Confuse YYY - how logn it will works |
About example: confus: 10090 10% chance of target will be affected by Confuse 090 = 3 second of button-shuffle |
[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: |
Platforms:
- Platforms work with "center" attrubutes of object, so it will works even with bodyless characters. itr kind X0 (dvy - sets the Height, only with X3/4/5) - creating platform that can be used for jumps. itr kind X1 - making barrier that cannot be passed thro itr kind X2 (taking up with "dvy", pushing with "dvx", ) - allows "dvx" and "dvy" for moving platform itr kind X3 (only with X3) - allows "dvx" and "dvy" for moving platform with acceleration itr kind X4 (slows the enemy by X and Y axises) - "dvx" and "dvy" functions now meaned to be as X\1000 and Y\1000. itr kind X5 (X3 - dvy - trampoline, dvx - pushes, X4/5/6/7/8 - doesn't work) - jumping platform with "dvx" for horisontal shift and "dvy" for vertical shift X can have values: - 3 - works on all Type-0 objects - 4 - works on ally Type-0 objects - 5 - works on enemy Type-0 objects - 6 - works like "3" but allows Type 0 \ 1 \ 2 \ 4 - 7 - works like "4" but allows Type 0 \ 1 \ 2 \ 4 \ 6 - 8 - works like "5" but allows Type 0 \ 1 \ 2 \ 4 \ 6 |
About example:
Here we're made a platform with "cube" shape, that can be used for jump and items will fall on it. The platform itself will move a little up and down dvx/dvy/dvz = 550 is Nessecary in Frame (not in ITR), or the platform just will fly away. Note: Better use negative values in "y:" for stable platform work |
Other | |||
- State 9997 doesn't have a 80-pixel limit anymore
- on game launch the windows always will be set on center of screen - reworked picture-using algorithms (API functions). - complete PNG support - for 32-bit PNG files transparency also works (alpha-channel) - 1000-object limit in data.txt - in Mirror Sprites the high priority have the "*_mirror" files, instead the hardware mirror-methon. Highly actual for some video cards. - ads are removed. - autoupdate is removed - music list now can be managed in bgm.dat - loading before game now loads only files thouse gonna be used in-game - при выборе карты или уровня стадии теперь можно прокручивать список в обратном направлении нажатием прыжка. - in Stage mode invisibility now makes player half-transparent - object limit in-game raised to the 1000 - hit and blood effects now inherits the target moving speed - added Unicode support, and also possible to change fonts (?) - Health and Mana lines now moved to "sprites/bars.png" - Added number displaying of Health and Mana, numbers are sprites and located in "bars.png" - ITR limit for each frame raised to 100 - Frame limit raised to 799 - Sound limit removed. |