Basic Data Changing Tutorial by zizibaluba/briankid/yokinakiwa
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
##############################################################################
line of = is: another part of the data
line of - is: another piece of the data I'm talking about or something that is
important that needs space
line of + is: something else other than explained
box made of _ is: example
a * is: I'll explain more later
a ! is: something important
a ? is something I'm not sure about (which means I'll update if i find out
anything else than what I already know)
a EX is: example
------------------------------------------------------------------------------
d stands for: defend
j stands for: jump
a stands for: attack
^ stands for: up
v stands for: down
> stands for: right
< stands for: left
##############################################################################
==============================================================================
-We'll use the data on the very top for DDavis for these few examples
______________________________________________________________________________
name: Davis
head: sprite\sys\davis_f.bmp
small: sprite\sys\davis_s.bmp
file(0-69): sprite\sys\davis_0.bmp w: 79 h: 79 row: 10 col: 7
file(70-139): sprite\sys\davis_1.bmp w: 79 h: 79 row: 10 col: 7
file(140-209): sprite\sys\davis_2.bmp w: 79 h: 79 row: 10 col: 7
______________________________________________________________________________
-name: Davis ---> name of the Character
-head: sprite\sys\davis_f.bmp ---> the faace of the Character on the selection
screen
-small: sprite\sys\davis_s.bmp ---> the fface of the Character on the side of
the HP and MP bars
------------------------------------------------------------------------------
-w: 79 ---> the width of a pic. in a spriite *
-h: 79 ---> the height of pic. in a spritte *
-row: 10 col: 7 ---> the number of rows aand columns in the sprite file *
==============================================================================
z-axis ---> The columns or up and down you can walk or move
==============================================================================
walking_speed =====> how fast you walk
walking_speedz =====> going toward z-axis's speed when walking
running_speed =====> how fast you run
running_speedz =====> going toward z-axis's speed when running
heavy_walking_speed =====> how fast you walk when holding a heavy item
heavy_walking_speedz =====> going toward z-axis's speed when walking with a
heavy item
heavy_running_speed =====> how fast you run when holding a heavy item
heavy_running_speedz =====> going toward z-axis's speed when running with a
heavy item
jump_height =====> how high you can jump
jump_distance =====> how far you can jump
jump_distancez =====> going toward z-axis's distance when jumping
dash_height =====> how high you can jump when running
dash_distance =====> how far you can jump when running
dash_distancez =====> going toward z-axis's distance when running then
jumping
rowing_distance =====> how far you would roll
==============================================================================
-We'll use Davis run and punch for the neext few examples
______________________________________________________________________________
72 super_punch
pic: 8 state: 3 wait: 2 next: 73 dvx: 0 dvy: 0 dvz: 0 centerx: 28 centery: 79
hit_a: 0 hit_d: 0 hit_j: 0
itr:
kind: 0 x: 40 y: 5 w: 35 h: 45 dvx: 3 dvy: -10 fall: 70 arest: 15 bdefend: 60
injury: 40
itr_end:
bdy:
kind: 0 x: 26 y: 12 w: 35 h: 66
bdy_end:
______________________________________________________________________________
72 super_punch ---> Frame Number and Name of Move (name is usually shorten)+
(the name of move is just there to let people find it easily)
pic: 8 ---> The Picture the frame loads (!The picture is counted from left to
right in sprites and the first picture is 0 not 1!)
state: 3 ---> The character's state*
wait: 2 ---> How long this frame lasts
next: 73 ---> The next frame to go to
dvx: 0 ---> Moves foward how much
dvy: 0 ---> Moves upwards/downwards how much (!As in sky and ground NOT the
up and down when walking!)
dvz: 0 ---> Moves up and down how much (!Now it's the walking up and down!)
centerx: 28 ---> centerx is using which point as the character's center (!I
suggest that you don't mess around with this one!)
centery: 79 ---> What point for the feet (If the point is larger than 79, the
character will be in the air)
------------------------------------------------------------------------------
hit_a: 0 ---> What frame it goes to when you press attack at this frame
hit_d: 0 ---> What frame it goes to when you press defend at this frame
hit_j: 0 ---> What frame it goes to when you press jump at this frame
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
hit_fj: ---> What frame it goes to when you input d>j at this frame
hit_uj: ---> What frame it goes to when you input d^j at this frame
hit_dj: ---> What frame it goes to when you input dvj at this frame
hit_fa: ---> What frame it goes to when you input d>a at this frame
hit_ua: ---> What frame it goes to when you input d^a at this frame
hit_da: ---> What frame it goes to when you input dva at this frame
hit_ja: ---> What frame it goes to when you input dja at this frame
------------------------------------------------------------------------------
itr: ---> Attack starts
kind: 0 ---> What kind of attack*
x: 40, w: 35 ---> How far the attack goes (!Forward and Backward!) (if you
learned pre-algebra the x is like x-axis(right and left) and
the w is like width)
y: 5, h: 45 ---> How far the attack goes (!Up and Down!As in sky and ground!)
(if you learned pre-algebra the y is like y-axis(up and down)
and the h is like height)
dvx: 3 ---> How far the enemy falls backwards when hit (If you put negative
number the enemy will fall fowards)
dvy: -10 ---> How high the enemy falls upwards when hit (!The number here is
negative so that means the enemy will fall downto the ground
not fly into the sky!)
fall: 70 ---> The chance of the enemy falling down
arest: 15 ---> ?Currently Unknown?
bdefend: 60 ---> The chance of breaking through a defence and hitting the
enemy, almost the same as fall
injury: 40 ---> The amount of damage the attack deals*
itr_end: ---> Attack ends
------------------------------------------------------------------------------
bdy: ---> Body Starts (What body does)
kind: 0 ---> ?Special Effect? (I'm not sure what will happen, maybe I'll
experiment with it later)
x: 26, w: 35 ---> How far when attacked (!Forward and Backward!) (if you
learned pre-algebra the x is like x-axis (right and left)
and the w is like width)
y: 12, h: 66 ---> How far when attacked (!Up and Down!As in sky and ground!)
(if you learned pre-algebra the y is like y-axis (up and
down) and the h is like height)
bdy_end ---> Body Ends
------------------------------------------------------------------------------
mp: How much mp is used (If you add this onto a move after the hit_a, hit_d,
hit_j, you could make that move take mp)
==============================================================================
SOUND
------------------------------------------------------------------------------
Adding sounds to a move is really easy but making that sound come out at the
right moment takes lots of testing...
To add a whole new sound all you have to do is put the sound file into the
folder that is called "Data"
To add a sound to a move or like drinking milk, all you have to do is put this
on the second line of the frame (after the pic:, etc):
!sound: data\(sound name).wav!
For example:
I got a new sound called "beep.wav" into the "Data" folder
Now I want my new character to make that sound when he/she walks
I put !sound: data\beep.wav! to the second line of the place I want it to make
that sound
Now I got sounds at those frames.
==============================================================================
INJURY
------------------------------------------------------------------------------
We all know now that adding injury increses damage but there are special codes
you can add after the injury codes.
effect: 0 ---> Punch
effect: 1 ---> Sharp Weapon (Blood Comes Out)
effect: 2 ---> Fire
effect: 3 ---> Ice
effect: 4 ---> Goes Through Enemy (?Most Likely For The Healing Balls That
Doesn't Let Enemy Heal?)
effect: 5 or Higher ---> ?
effect: 20 ---> Fire
______________________________________________________________________________
injury: 40
+++++++++++++++++++
Then Add effect: 2
+++++++++++++++++++
injury: 40 effect: 2
--------------------
Now this attack does 40 damage and burn people
______________________________________________________________________________
==============================================================================
Sprite
------------------------------------------------------------------------------
The height and width of the sprite could be changed at the beginning of the
data. Ususlly they're 79 by 79 pixels.
Also you could change the amount of sprites on the Sprite sheets.
!The first box is 0 not 1!
When they say a "row" they mean how many boxes in a row not how many rows.
==============================================================================
BALL
0 (frame #) carrot
pic: 0 (pic in bmp files #)
state: 3006 (code for what kind of ball it is[3000 regular, 3006 penetrative,3005 w/out shadow])
wait: 1 (how long until next frame)
next: 1 (next frame #)
dvx: 0 (movement of ball going forward[+ #] or backwards[- #])
dvy: 0 (movement of ball going up[- #] or down[+ #])
centerx: 24 (where the middle of the ball is in the pic)
centery: 41 (where the ground would be in the pic) hit_a: 0 (timer)
hit_d: 0 (frame activated when timer runs out)
hit_j: 0 (can give ball slight “diagonal” movement[51 down,49 up)
hit_Fa: 2 (short chase) [or] hit_Fa: 14 (long chase)
itr (damage area) :
kind: 0 (code for what type of attack it is)
x: 3 y: 4 w: 40 h: 39 (to find these, open bmp file use the box tool & find where start of ball is from top left, record numbers for x & y and from that point go around ball area & record numbers for w & h)
dvx: 12 (how far the enemy falls back when hit)
arest: 0 (hits single person & how much delay in the ball hitting again) [or]
vrest: 0 (can hit multiple ppl & how much delay in the ball hitting again)
fall: 70 (possibility of ball causing fall [100 will fall,70 will fall if defend not up,60 stunned])
bdefend: 60 (possibility of ball breaking defense[16 broken in 3 hits, 30 broken in 2, 60 stunned, 70 defense broken and foe goes to broken defend frames, 100 defense broken])
injury: 70 (how much damage[health bar =500])
effect: 1 (added effect like freeze[3], fire[2],or blood[1])
itr_end:
bdy (tell area of ball or how big it is use box tool to find) :
kind: 0
x: 3 y: 4 w: 40 h: 39
bdy_end:
CHARACTER
236 (frame #) carrot
pic: 137 (pic in bmp files #)
state: 3 (code for what character does[7 defend])
wait: 3 (how long until next frame)
next: 237 (next frame #)
dvx: 0 (movement of char going forward[+ #] or backwards[- #])
dvy: 0 (movement of char going up[- #] or down[+ #]) dvz: 0 (movement of char “diagonally” if up or down pressed)
centerx: 30 (where the middle of the char is)
centery: 79 (where the ground is in the pic/bottom of char)
hit_a: 0 (next frame # if attack pressed) hit_d: 0 (next frame # if defend pressed)
hit_j: 0 (next frame # if jump pressed)
mp: 200 (how much magic used [mp bar=500])
bpoint (blood point, use box tool to find) :
x: 37 y: 44
bpoint_end:
opoint: (creates ball)
kind: 1
x: 95 (where attack comes from forward and backwards)
y: 41 (where attack comes from up and down)
action: 0 (frame # in ball data where the attack begins)
dvx: 22 (how fast the attack goes forward)
dvy: 0 (how fast attack goes up)
oid: 230 (move's id [add to data.txt])
facing: 0 (how many balls come out[0=1 ball,50=5 balls])
opoint_end:
wpoint: (weapon point)
kind: 1
x: 31 y: 48 (use box tool to find)
weaponact: 30 (pic in bmp files #)
attacking: 0 (weapon body causes damage[1,2,3] or not[0])
cover: 1 (weapon in front[0] or behind[1] char)
dvx: 0 (movement of held item going forward or backwards)
dvy: 0 (similar to previous but up and down)
dvz: 0 (similar to previous but “diagonal” if up or down pressed)
wpoint_end:
itr (damage area) :
kind: 0 (code for what type of attack it is)
x: 3 y: 4 w: 40 h: 39 (use box tool to find)
dvx: 12 (how far the enemy falls back when hit)
vrest: 0 (how much delay in the ball hitting again)
fall: 70 (possibility of hit causing fall)
bdefend: 60 (possibility of hit breaking defense)
injury: 70 (how much damage[health bar =500])
effect: 1 (added effect like freeze[3], fire[2], or blood[1])
itr_end:
bdy (tell area of char or how big he is use box tool to find) :
kind: 0
x: 26 y: 12 w: 27 h: 68
bdy_end:
well thats all so far, but i expect to make some more updates like adding cpoint etc. if u'd like to point out a mistake please do so...there may be a few
i began making these to help me when i started datachanging and to give just a brief definition of what everything means. Remember that they r just notes and i did not try to get too detailed w/ them, u'll still have to do a lot of experimenting to get the big picture and become a more experienced datachanger...those that are already experienced can maybe learn a little from how i personally defined what each thing means (they may have thought of them differently) or could just check if they have forgotten something
I hope this helps and happy datachanging!
Because there are so many people which ask things about data changing, I'll
answer some of the most common questions in here. Please read this before
asking a question in this section, it may be in this tread already.
Well, at first you’ll need a data changer. You can download it from the
download section.
1: I'm making an attack for my new character, but the character somehow
disappears and I can see his shadow only!
Answer: There could be a couple of problems... The first option is that you
putted a next: XXX somewhere (XXX means any possible number), but the frame
number (XXX) doesn't exist.
The second option is when you put wrong information at the top of your
character. I'll take template for exemple:
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
In sprite 0 are 70 sprites total. The first sprite is pic: 0 and the last
sprite pic: 69. Sprite 1 end with pic: 139. Whenever you replace your pic
number with something more then pic: 139 it will be invisible (because it
doesn't exist!)
2: While playing with my changed character, it completely disappears like
it have never exist!
Answer: This problem is usually caused when you used next: 1000. Next: 1000
is used in ball data too, it causes disappearing.
3: How to make a ball chase the enemy?
Answer: It’s rather easy. Go to your ball data file and change the hit_d,
hit_j and hit_a, then add hit_Fa. The numbers next to these are like this:
Hit_a: Hit_a controls the time your ball will chase. Hit_a: 7 makes it chase
the enemy as long as dennis’ chase. If you want an ultra long chase,
give it a high number and many frames.
Hit_d: The frame number it will jump to when the timer runs out. Like this:
1 flying
pic: 1 state: 3000 wait: 1 next: 2 dvx: 0 dvy: 0 centerx: 41 centery: 41
hit_a: 7 hit_d: 1 hit_j: 0 hit_Fa: 2
2 flying
pic: 1 state: 3000 wait: 1 next: 3 dvx: 0 dvy: 0 centerx: 41 centery: 41
hit_a: 7 hit_d 2 hit_j: 0 hit_Fa: 2
Hit_j: Hit_j controls how much the ball moves (diagonally)
Hit_Fa: To activate the chase effect, make it 2.
4: How to add a new attack?
Answer: It’s difficult when you just started, but when you’re used to data
changing, it only takes about one minute. First of all, you’ll have to make
frames in your CHARACTER data. Let’s say you created something like this:
240 blast
pic: 78 state: 3 wait: 1 next: 241 dvx: 0 dvy: 0 dvz: 0 centerx: 50
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 75
sound: data\043.wav
wpoint:
kind: 1 x: 66 y: 43 weaponact: 34 attacking: 0 cover: 1 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 32 y: 9 w: 30 h: 72
bdy_end:
bdy:
kind: 0 x: 18 y: 39 w: 38 h: 12
bdy_end:
241 blast
pic: 79 state: 3 wait: 1 next: 242 dvx: 0 dvy: 0 dvz: 0 centerx: 48
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\007.wav
wpoint:
kind: 1 x: 63 y: 40 weaponact: 35 attacking: 0 cover: 1 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 32 y: 11 w: 31 h: 70
bdy_end:
bdy:
kind: 0 x: 21 y: 21 w: 44 h: 15
bdy_end:
242 blast
pic: 88 state: 3 wait: 2 next: 243 dvx: 0 dvy: 0 dvz: 0 centerx: 20
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 32 y: 57 weaponact: 22 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
itr:
kind: 0 x: 39 y: 31 w: 36 h: 48 dvx: 10 fall: 25 bdefend: 30 injury: 15
effect: 1
itr_end:
bdy:
kind: 0 x: 5 y: 15 w: 32 h: 66
bdy_end:
243 blast
pic: 89 state: 3 wait: 1 next: 244 dvx: 0 dvy: 0 dvz: 0 centerx: 25
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 79 y: 53 action: 0 dvx: 0 dvy: 0 oid: 400 facing: 0
opoint_end:
wpoint:
kind: 1 x: 35 y: 57 weaponact: 21 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 10 y: 15 w: 32 h: 65
bdy_end:
As you can see, the first frame number of this move is 240. Then go to your
standing frames. Chose your input for the move (hit_Fa means D>A, hit_Fj means
D>J, hit_Ua means D^A, hit_Uj means D^J, hit_Da means DvA and hit_Dj means
DvJ). Lets say we use hit_Fa. Add hit_Fa: 240 to all of your standing frames
and do the same thing for your first defend frame. Like this:
1 standing
pic: 1 state: 0 wait: 4 next: 2 dvx: 0 dvy: 0 dvz: 0 centerx: 37
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 hit_Fa: 240
bpoint:
x: 36 y: 35
bpoint_end:
wpoint:
kind: 1 x: 21 y: 54 weaponact: 23 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 21 y: 18 w: 43 h: 62
bdy_end:
Okay, you added the input. The most important step is done… You’ll be done
normally, but if you want to add a ball/beam, there’s more to do:
Create your attack (ball data). Then go to data.txt (data folder) and scroll
down. You need to give an id to your move. Oid is the thing that makes you
able to shoot a ball. It’s used in opoint (Oid is opoint id!). I used
oid: 400, so make it like this:
id: 400 type: 3 file: data\(move data name).dat
Now you’re completely done with your ball ^_^
5: I made new sprites for my character, but whenever I try to start my LF2,
the background is black!
Answer: Actually, this isn’t a data changing problem. But since it’s asked more
then once in here, I’ll tell you. This is really easy:
Open up a sprite editing program. Take your paint bucket tool and use 100%
black for the background (code 000000). It will work now. But if it still
doesn’t work... You should try to save your files as a 24bit bmp file. It
should work this time then ^_^.
6: How can I change the stage mode bosses?
Answer: Okay, this is too easy. In data.txt, there are a few id numbers of
stage bosses. Go to your stage.dat, and find the part you want to change
(The boss of stage 5-5 is Julian). You see this:
bound: 2200
id: 52 hp: 2500
id: 1000 hp: 250 times: 3 ratio: .2
id: 33 hp: 150 x: -1000 times: 7 ratio: .4
id: 34 hp: 100 x: -1000 times: 13 ratio: .6
id: 33 hp: 150 x: -1000 times: 13
id: 31 hp: 50 x: -1000 times: 7
id: 37 hp: 200 times: 13 ratio: .5
id: 37 hp: 200 times: 7
id: 39 hp: 150 x: -1000
id: 39 hp: 150 x: -1000 ratio: .4
Change the id number to 51 and you’ll get Firzen, change it to 50 and you’ll
get LouisEX, etc.
7: How to use Rudolf’s +man on other characters?
Answer: Well... There are a few problems with this ^_^ It’s possible for 2
characters only: Rudolf and Julian. Ofcource you’re able to make clones of
yourself this way, but they will have 500 hp and it will be realy overpowered.
Though if you want to know how to make a 500 hp clone, this is the way:
At first, follow the answer of question 4 (adding a new attack!). When you
did this, go to one of your frames (let’s say the last frame of your attack
looks best) and place this line in it:
opoint:
kind: 1 x: 40 y: 79 action: 0 dvx: 0 dvy: 0 oid: ? facing: 20
opoint_end:
You’re done. A truly overpowered attack have been made
8: How can I change how long Rudolf’s invisibility lasts?
Answer: It's possible. There’s only one little thing you have to change.
This is the LAST frame of Rudolf’s disappear attack:
257 disappear
pic: 84 state: 15 wait: 1 next: 1280 dvx: 0 dvy: 0 dvz: 0 centerx: 41
centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 46 y: 49 weaponact: 30 attacking: 0 cover: 1 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 21 y: 18 w: 43 h: 62
bdy_end:
As you can see, it uses next: 1280. Make the number lower to make it last a
short while. Next: 1100 is the shortest disappearing you can get. But it’s
impossible to make it last longer (as long as you still want to be able to
see your character while playing ^^ I guess you don’t want it to be invisible
forever.
That’s it. Hope I helped you with this. It took me more then an hour to make
(I had to test something for the last piece of data ^_^)
PS: Don't ask questions in here please. For that, make a new tread.
Comments are always welcome, thank you.
By Xtreme-FighterX
#1 How do I make my character faster?
At the beginning of the dat.-file there's a long list of basic characteristics concerning the movements of the character. The speed for walking and running is defined in "walking_speed" and "running_speed". The following lines with a "z" at the end set the movement speed toward and away from the front of the screen.
Contents
#2 How do I make my character jump higher?
Also noted at the top of the data file are the jump-heights and distances of the character. "Jump_[...]" is for the normal jump, "Dash_[...]" for the jump while running, and "Rowing_[...]" for the jump out of falling. You have to keep in mind that all of the heights have to be negative.
Contents
#3 How do I change the mp cost of my character's moves?
Normally, energy is only used in the special attacks of the characters - usually they begin around frame 235. The energy is always noted in the first frame of a move by the "mp" tag. Keep in mind: a character has a maximum of 500 mp points.
Contents
#4 How can my character shoot multiple balls at once?
To create multiple objects during a move you have to modify the "facing" part of the opoint. The "facing" value should be 10 times the number of objects that you want to appear. So "facing: 50" creates five objects.
Contents
#5 How do I change the damage of an attack?
All damage is defined by various instances of "itr" tags. In itrs, the "injury" allows you to set how much hp a character loses if they are hit by the attack. At the beginning of the game the character has 500 hp, so an "injury"larger than 500 is usually overkill.
Contents
#6 How do I add an effect?
The effect of an attack is also noted in "itr". The "effect"-tag is optional and so you won't always see it in itr. "effect: 1" creates blood, "effect: 2" burns, and "effect: 3" freezes the enemy.
Contents
#7 How do I add new attacks?
If you want to copy a move from one character to another, you have to copy the frames to the character's dat.-file. Keep in mind that you can't have frames with the same number. If the frames you copied are already in use, you have to change the frame-numbers (do not use frames bigger than 399!) and the next frame noted by "next".
Then, in order to use the move, you have to allocate a key-combination to it. The possible combinations are:
D + > + A = hit_Fa: D + > + J = hit_Fj:
D + ^ + A = hit_Ua: D + ^ + J = hit_Uj: D + J + A = hit_ja:
D + v + A = hit_Da: D + v + J = hit_Dj:
Finally, add this tag with the first frame-number of the move behind the other input tags in the "standing", "walking", and "defend" frames.
Contents
#8 How do I make my ball fly forward?
Forward movements of the ball are noted by "dvx". Using this, you can set the speed of the ball.
Contents
#9 How do I make a ball chase an enemy?
To make the ball chase an enemy, just note "hit_Fa: 1" behind "hit_j". Also make sure "dvx" and "dvy" are both zero in order to make the chasing work properly.
FLYING
This method of flying is making use of the oscillation between dvy values instead of the normal dvy: 550 -For type three objects, they are not subject to any "gravitational force", so they can "float" by just using the same set of values in dvy with a normal integers and a -ve sign. -However, type 0 have a preset gravitational force of dvy 1.7 acting on it. -Since decimals are not valid in dvy: , we will use wait to correct the problem type: 0's gravitational force Instead of dvy: 550 you use severl dvy which complete each other and let the character fly in the sky. Type0 objects have a present gravitational force of 1.7 pixel. Because decimals are not allowed in dvy we have to use wait to correct the problem:
dvy: ........ Gravitational force
-5 .......... -3.3
-4 .......... -2.3
-3 .......... -1.3
-2 .......... -0.3
-1 .......... 0.7
0 .......... 1.7
1 .......... 2.7
That's why:
-----------------------------------------------------
dvy: .......... Time (TU) ........ Gravity x Time
-1 ............. 3 .............. 0.7 x 3 = 2.1
-2 ............. 7 .............. -0.3 x 7 = -2.1
-----------------------------------------------------
1 ............. 1 .............. 2.7 x 1 = 2.7
-2 ............. 9 .............. -0.3 x 9 = -2.7
-----------------------------------------------------
0 ............. 3 .............. 1.7 x 3 = 5.1
-2 ............ 17 .............. -0.3 x 17 = -5.1
-----------------------------------------------------
0 ............. 1 .............. 1.7 x 1 = 1.7
-1 ............. 1 .............. 0.7 x 1 = 0.7
-2 ............. 8 .............. -0.3 x 8 = -2.4
-----------------------------------------------------
You just need two products from gravity and time which are zero if you add them up, and with these numbers you can create a nice hover-effect then. ^_^
Here's a study example:
HEAL + ENERGY 500
There's not much difference from Heal 500 to All 500, just a few letters: Put a "mp: -500" in the first frame and you're done. Because milk also regenerates energy, the rest stays the same.
CLONES
With this clone-method, you deal with the source code dependence of two id-numbers: 5 (Rudolf) and 52 (Julian). If these figures create a clone, they automatically have 10 life points. So if you create a clone move, just activate a certain frame in rudolf.dat (see example) and use an itr to add as many life points as you like. After this, use state: 8000 and transform the clone into the characters you would like him to be.
For adding this special amount of life points you need a special itr:
100 bandit_clones
pic: 1000 state: 18 wait: 2 next: 1000 dvx: 0 dvy: 0 dvz: 550
centerx: 0 centery: 0 hit_a: 0 hit_d: 0 hit_j: 0
itr:
kind: 0 x: -20 y: 5000 w: 40 h: 40
injury: -40 bdefend: -50 fall: -50 effect: 5
itr_end:
The most important thing is that you add a negative "fall" and a negative "bdefend" (if you leave it out, the clone goes to the "injured"-Frames and won't transform). In the "injury" tag, you set how many life points you want to add (negative!). The bad thing about this clone method is that they don't heal automatically, but at least they're stronger.
Here's a study example:
HORIZONTAL FLY
If a character jumps, he goes into a horizontal trajectory. First you modify the Jump-Frames. In the last of the three frames, you set a next linking to the fly-mode frames, then set the wait so these frames are activated at the highest point of the jump (depends on how huge the jump_height is).
The most important thing in the frames of the fly-mode is a dvy: 550, which keeps the character hovering at the same height above the ground. With dvx: you can set the speed, with dvz: you can allow him to move diagonally. In hit_d: you can make the character go to a frame for him to drop back down to the ground. The easiest way to do this is to simply copy the last Jump-Frame and change it back to the way it was.
Because you used state: 4, the source code automatically activates frame 80 (jump_attack) if you press the attack-button. So you also have to modify these frames with a dvy: 550 and a next: back to the fly-mode frames if you don't want to abort the fly-mode with an attack.
Here's a study example, but you can also download the character DarkBatEX, where this technique is used.
RUDOLF'S TRANSFORM-ATTACK
You can add Rudolf's Transform move other characters as a new skill. You just have to follow these three steps:
1) The first transformation
First thing you have to do is to give your character a chance to go to a frame with a transforming-cpoint. It's best to use the combination [Defend]+[Jump]+[Attack], because it's used in transform back and you can't change it because it is defined in the source code.
The transformation cpoint is nothing special. The things you need are a cpoint, a vaction (best to use to frame 181, that's falling), a throwx & y (so the character doesn't stays in place) and a throwinjury: of the value -1 (this value tells the computer that your character should transform). And of course the frame should use state: 9.
cpoint:
kind: 1 x: 72 y: 80
vaction: 181 throwvx: 10 throwvy: -5 throwinjury: -1
cpoint_end:
2) Transforming back
For this, you only need to know one thing. If the transformed character presses [Defend]+[Jump]+[Attack], he transforms back and start at frame 245. Program the transform back effect by editing this frame!
3) The second transformation
To allow another transformation without catching, you have to create a new move. In "Standing", "Walking" and "Defend" note an input like hit_ja: 300 (frame number can be changed). The first frame of this move must have state: 500. This locks the move unless the character has already used the transform move, but if you have already transformed, you'll be able to use this move. The second important thing is state: 501 in the last frame. The transforming back is still the same.
Here's a example for the "Second-Transforming"-frames:
300 transform_second
pic: 0 state: 500 wait: 0 next: 301 dvx: 0 dvy: 0
centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
301 transform_second
pic: 0 state: 501 wait: 0 next: 999 dvx: 0 dvy: 0
centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
Of course, you can modify these frames to fit your needs.
In case the characters where you use this technique use the second sprite sheet hisself (means you can transform into him with state 8000) he uses the second spritesheet for all chars he transform in - so all characters need to be transformable with the state 8000 thing...
Here's the study example:
WPOINT (WEAPON-POINT)
LF2, Little Fighter 2
With wpoint, you control everything related weapons.
wpoint:
Start.
kind:
Kind: 1 is used for characters while they are holding a weapon or throwing it with dvx/y/z (this is almost always the case). If you want to drop a weapon without using dvx/y/z, you can use kind: 3 (Freeze Sword). In the weapon dat.-files, you always use kind: 2. That means that the weapon is being held and can be moved by the character. This is why all of the other following tags (not the coordinates!) are always 0 in weapons.
x: ...
y: ...
Holding Coordinates - used to determine where the character should hold the weapon.
weaponact:
In character data, you note which frame of the weapon should be used (depends on if it's a light or a heavy weapon).
attacking:
Attacking and the "Weapon_strength_list" at the beginning of the weapon dat.-file are connected. If it's 0 the weapon doesn't do any damage, but if you use 1-4, you'll activate the corresponding entry in the list. By using this, you can make the vary the strength of the weapon in different frames.
cover:
If you want the weapon to be shown behind the character (Rudolf), you have to use a value of 1, otherwise use 0.
dvx: ...
dvy: ...
dvz: ...
If you want to throw the weapon, you have to use these tags. Since the horizontal distance that you throw the object depends on the vertical movement of the throw, I can't create a sample list, so you have to try it out yourself. The only thing you have to care is that if you want to throw the weapon in a boot you have to use a negative dvy - the gravity effect will bring the weapon back to the floor.
wpoint_end:
End.
OPOINT (OBJECT-POINT)
LF2, Little Fighter 2
With o-point you activate objects.
opoint:
Start.
kind:
Kind: 1 is standard - you can activate any kind of balls. With kind 2 you activate light weapons which are hold on hand afterwards (before you force the character to let the old weapon fall with wpoint / kind: 3).
x: ...
y: ...
Here you set the coordinates where the centerpoint of the object should appear.
action:
Here you set at which Frame-Number the object should start.
dvx: ...
dvy: ...
If the object should have a innitial movement (like it's used for chase balls) you can use these tags.
oid:
Here you note the ID-Number of the object noted in data.txt (0 doesn`t work).
facing:
How often an object should be activated:
0 = One object to front
1 = One object to back
10 = One object to the right side!! (can be used for displays)
20 = two objects to front
21 = two objects to back
30 = three objects to front
31 = three objects to back
...
opoint_end:
End.
CPOINT (CATCH-POINT)
Page 1 of 2
LF2, Little Fighter 2
If one character catches another, cpoint is used.
cpoint:
Start.
kind:
Kind: 1 is used for the catching character. To guarantee that the cpoint works properly, use state: 9 in all frames with cpoint / kind: 1. You should only use other states if you're very experienced in data changing. Some states can cause certain tags to lose their effects.
x: ...
y: ...
The point at which the caught character is held. Both "Holding Coordinates" for the catching character and the caught character match up to determine where the caught character is held.
injury:
If you want to hurt the character, note the number of life points that he should lose here.
vaction:
Number of the Frame the caught character uses (130-132).
aaction:
When the player attacks the caught character, he goes to this frame (122).
taction:
If he throw the character, this frame is activated (232). It's negative because by default, your character turns around when throwing a character.
throwvx:
throwvy:
throwvz:
If the caught character is thrown, you can set the distance in each direction here. Sometimes the values "-842150451" is used, but it's purpose is unknown.
hurtable:
If other characters can hurt the caught character, the value is 1. If not, it's 0.
throwinjury:
If the character is thrown, the amount of life points the character should lose when falling on the floor is noted here. Sometimes, the strange value "-842150451" is used here as well.
decrease:
As soon as a decrease is used, the cpoint will only last for a certain period of time. Here you can set which frame should be used for the held character after the time is up: If you set the value to 3 the character goes to frame 211 (jump), if you use 7 or -7 he goes to frame 181 (falling).
dircontrol:
This tag is used in "Throw_lying_man" frames. If the value is 1 you can change directions, if it's 0 you can't.
cover:
Here you can set whether the caught character is shown behind or in front of your character. Leaving this tag out will let the caught character be faced towards the catcher while behind behind him, cover: 3 makes the caught char being faced towards the catcher while being in front, 10 is behind the catcher and faced away, and 11 is in front of the catcher faced away from him.
cpoint_end:
End.
BPOINT (BLOOD-POINT)
LF2, Little Fighter 2
B-Point is only used in characters. At the defined point, a red blood stain will appear when the character is below 25% hp.
bpoint:
Start.
x: y:
Coordinates of the point.
bpoint_end:
End.
BDY (BODY)
LF2, Little Fighter 2
The bdy element defines where the object is hittable. In other words, itrs can influence the object in these areas.
bdy:
Start.
kind:
Always 0 in characters, attacks, and weapons. In type 5 (Criminals) there is a bonus function. If you use kind: 1050 (1000 + Frame number) for example and the bdy is hit by a certain itr, the criminal jumps to frame 50.
x: y:
w: h:
These coordinates set the area of bdy here.
bdy_end:
End.
ITR (INTERACTION)
Page 1 of 15
LF2, Little Fighter 2
With itr, you can hurt other characters or influence them in other ways.
itr: Start
kind: The kind of interaction. To read about the different kinds, select from the list in the drop-down menu.
kind: 0 - normal hit. All tags below can be used with itr/kind: 0. In the other kinds, if some of the tags are not listed, it's because they function as described below.
x: y:
w: h: Area of Effect
dvx:
dvy:
Here you can set how far the character will "fly" when he's hit.
arest:
vrest:
If you want to hit a single enemy, use arest. For multiple enemies, you need vrest. The values of these tags are the duration in TU that the object must wait before hitting the character again.
fall:
Every character has 70 "Fall" points. Using this tag will remove some of a character's fall points when it gets hit. As long as his fall points are over zero, he'll go into the "Dance of Pain", but if it's zero, he falls. Here are some values I have discovered:
20 - 3 hit stun, 4 hit fall
30 - 2 hit stun, 3 hit fall
60 - 1 hit stun, 2 hit fall
70 - 1 hit fall
bdefend:
Fall and Bdefend are similar. Every character has 10 "Bdefend"-points. As long as he has more than zero bdefend points, he can block the attack, but if it goes below zero, his defense breaks.
injury:
Here you set how many life points should be taken.
zwidth:
Optional tag: If you want your itr to influence a larger area on z-axis, you can use this tag. Actually if you set a zwidth of 20, the itr will hit everything which is 20px up the z-axis and also everything which is 20px down the axis, so the zwidth goes in both directions and the area is 40px on z-axis on the whole (if you're exact and count the middle line of the shadow it's 41px).
If there's no zwidth the default zwidth for every itr is 12px in each direction of z-axis...
effect:
Optional tag: You can also add an effect, but only to kind: 0. Here you can find a list of the effects.
itr_end:
End
itr:
Start.
kind: kind: 1 - Catch (Dance of Pain)
Kind: 1 is used in the walking frames. You can catch characters that are in "Dance of Pain" (state: 16) with it.
x: y:
w: h:
Area of Effect
catchingact:
caughtact:
Here, the frame numbers for where the catching and caught character should go to are defined. They're noted twice because one is for catching from the front and and the other is catching from the back.
itr_end:
End.
FLIGHT
This is a very simple method of making your character fly - just go to the jump frames and in the tag "hit_j:", link back to the first jump frame. So now, he's able to jump out of the jump - he can fly.
210 jump
pic: 60 state: 4 wait: 1 next: 211 dvx: 0 dvy: 0 dvz: 0
centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 210
[...]
211 jump
pic: 61 state: 4 wait: 1 next: 212 dvx: 0 dvy: 0 dvz: 0
centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 210
sound: data\017.wav
[...]
212 jump
pic: 62 state: 4 wait: 1 next: 0 dvx: 0 dvy: 0 dvz: 0
centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 210
[...]
These example-frames should be enough, but here's a study example anyway: