Open davis.dat, davis_ball.dat and your character's data files with a
Data Changer (I use the one made by Jiquera) and open data.txt (can be found inside the 'Data' folder).
We know that pressing Defend, Forward and Attack will make Davis shoot a projectile, so we're going to use that to find the right frames.
Code:
<frame> 0 standing
pic: 0 state: 0 wait: 5 next: 1 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 hit_Fa: 240 hit_Ua: 300 hit_Da: 270 hit_Uj: 290
bpoint:
x: 39 y: 34
bpoint_end:
wpoint:
kind: 1 x: 23 y: 55 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:
<frame_end>
This is the first standing frame of Davis. Have you noticed the weird tags at the end of the first line?
Code:
hit_Fa: 240 hit_Ua: 300 hit_Da: 270 hit_Uj: 290
We need
hit_Fa: 240, because pressing Defend, Forward and Attack will make Davis shoot his balls (LOL).
hit_Forwardattack.
Now, scroll down until you find
frame 240.
The frame is called 'ball1'.
These are the frames which Davis uses to shoot his balls (LOL), but they look pretty normal to me... They use the same tags as the 'standing' frame!
That is, until you scroll down to
frame 244.
Code:
<frame> 244 ball1
pic: 144 state: 3 wait: 1 next: 246 dvx: 0 dvy: 0 dvz: 0 centerx: 30 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 90 y: 43 action: 0 dvx: 0 dvy: 0 oid: 207 facing: 0
opoint_end:
wpoint:
kind: 1 x: 30 y: 50 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:
<frame_end>
This frame introduces a new tag called:
opoint.
We want to know what it does, right?
Copy the
opoint part and insert it into the following frame:
Code:
<frame> 60 punch
pic: 10 state: 3 wait: 1 next: 61 dvx: 0 dvy: 0 dvz: 0 centerx: 42 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
itr:
kind: 2 x: 27 y: 57 w: 36 h: 25 vrest: 1
itr_end:
bdy:
kind: 0 x: 28 y: 12 w: 33 h: 70
bdy_end:
<frame_end>
<frame> 61 punch
pic: 11 state: 3 wait: 1 next: 62 dvx: 0 dvy: 0 dvz: 0 centerx: 23 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\007.wav
itr:
kind: 0 x: 21 y: 31 w: 43 h: 18 dvx: 2 bdefend: 16 injury: 20
itr_end:
bdy:
kind: 0 x: 13 y: 11 w: 31 h: 68
bdy_end:
<frame_end>
It should look like this after inserting the opoint:
Code:
<frame> 60 punch
pic: 10 state: 3 wait: 1 next: 61 dvx: 0 dvy: 0 dvz: 0 centerx: 42 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
itr:
kind: 2 x: 27 y: 57 w: 36 h: 25 vrest: 1
itr_end:
bdy:
kind: 0 x: 28 y: 12 w: 33 h: 70
bdy_end:
<frame_end>
<frame> 61 punch
pic: 11 state: 3 wait: 1 next: 62 dvx: 0 dvy: 0 dvz: 0 centerx: 23 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\007.wav
opoint:
kind: 1 x: 90 y: 43 action: 0 dvx: 0 dvy: 0 oid: 207 facing: 0
opoint_end:
itr:
kind: 0 x: 21 y: 31 w: 43 h: 18 dvx: 2 bdefend: 16 injury: 20
itr_end:
bdy:
kind: 0 x: 13 y: 11 w: 31 h: 68
bdy_end:
<frame_end>
Why insert it into frame 61 and not frame 60?
That's because an
opoint tag
will not work in the first frame of a move.
Now save davis.dat and start LF2.
Select Davis and punch.
You'll notice that Davis now shoots ball whilst punching (well, not always, but that's because we didn't add the
opoint tag to all punching frames).
Adding an opoint tag to a frame, allows your character to shoot projectiles.