Posts: 52
Threads: 11
Joined: Dec 2017
(12-15-2017, 04:12 AM)rewlf2 Wrote: Of course it "passes through" john's shield, but it properly goes to f30 when it hits the shield. When object goes to f30, you can see in f32 it has next: 999, which means it returns to f0 soon after.
It momentarily halts x-axis movement in f30-32 but resumes moving forward when it goes back to f0, but it changes sides when it hits john's shield.
Also your f20 has an invalid next value. It should go to f21 and proceed to play dispersing animation.
Ok then. I fixed that part. But now I'm thinking to make it able to pass John's shield without changing sides?
Thanks given by:
Posts: 182
Threads: 48
Joined: Dec 2011
(12-15-2017, 04:40 AM)seikosantana Wrote: Ok then. I fixed that part. But now I'm thinking to make it able to pass John's shield without changing sides?
It will require the object to not have a bdy tag that interacts with the itr kind: 9 tag of john's shield.
Thanks given by:
Posts: 52
Threads: 11
Joined: Dec 2017
(12-15-2017, 04:40 AM)seikosantana Wrote: (12-15-2017, 04:12 AM)rewlf2 Wrote: Of course it "passes through" john's shield, but it properly goes to f30 when it hits the shield. When object goes to f30, you can see in f32 it has next: 999, which means it returns to f0 soon after.
It momentarily halts x-axis movement in f30-32 but resumes moving forward when it goes back to f0, but it changes sides when it hits john's shield.
Also your f20 has an invalid next value. It should go to f21 and proceed to play dispersing animation.
Ok then. I fixed that part. But now I'm thinking to make it able to pass John's shield without changing sides?
Then what's the difference between next: 999 and next: 0, if both will lead to the same frame?
Thanks given by:
Posts: 182
Threads: 48
Joined: Dec 2011
next: 999 leads to frame 0.
next: 0 does NOT lead to frame 0. Instead it loops the same frame which it is currently in.
Thanks given by:
Posts: 52
Threads: 11
Joined: Dec 2017
12-16-2017, 12:59 PM
(This post was last modified: 12-17-2017, 06:29 AM by STM1993.
Edit Reason: formatting
)
(12-12-2017, 05:10 PM)seikosantana Wrote: (12-10-2017, 11:39 AM)STM1993 Wrote: Diagonal Henry D>J eh. There are multiple methods as Silverthorn says, but I'll mention the method I personally used for my repchar.
First of all for this method, you need to make sure in the data.txt, your arrow is a type: 3.
The 1st diagonal frame you'll be making should be something like this:
Code: <frame> 50 diagonal_start
pic: 0 state: 3006 wait: 1 next: 51 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 50 hit_Fa: 3
<frame_end>
The important things are:
-
dvy: 566 actually makes the arrow fall a constant speed of 16 downward. So no need to deal with gravity or the problem of accelerating speed if you had used dvy: 16.
-
hit_Fa: 3 is important, because it is required before you can use
hit_Fa: 7 , which is what allows the ball to hit the ground in the first place.
-
wait: 1 next: 51 hit_a: 500 hit_d: 50 all combine to make sure that the diagonal arrow will immediately lose all its hitpoints, so that the arrow will not gain any homing properties, and next into frame 51 properly. If you want the arrow to be slightly homing(or have a tiny bit of auto-aim) you can tweak the hit_a values a bit or ignore this piece of advice.
- If you don't want Henry to be able to aim on z-axis on his own, you can use any other state other than 3000 or 3006 on the 1st frame.
- When Henry opoints this arrow, make sure to put a positive dvx: in the opoint tag itself, otherwise there's a chance the arrow will shoot backwards if it decides to chase an enemy behind you.
After that you just need to make sure that you have frame 60 used for the hitting_ground frame. You can either make the frame 60 itself become the explosion or opoint an explosion itself, depending on whether you want the arrow to only hit once or do double damage.
The biggest challenge to making this system is really the frame 60, because the exact position of the explosion can be very unfavourable depending on exactly how fast the arrow is moving and from what height Henry shoots the arrow, so you might have to play around with that.
I see.. It is much more complicated than I thought. I'll try that. Do the frame numbers determine what happens? I mean, they are not just numbers? i made the frame 60 and tried to shoot the arrow, but it doesn't recognize the ground. Where should I place the hit_Fa: 7?
Thanks given by:
Posts: 861
Threads: 50
Joined: Mar 2008
(12-16-2017, 12:59 PM)seikosantana Wrote: i made the frame 60 and tried to shoot the arrow, but it doesn't recognize the ground. Where should I place the hit_Fa: 7? Place hit_Fa: 7 in all frames(except the 1st, which should be hit_Fa: 3) where the air arrow is travelling.
For example:
DC-Code:
<frame> 0 flying
pic: 0 state: 3000 wait: 0 next: 1 dvx: 0 dvy: 0 dvz: 0 centerx: 45 centery: 38 hit_a: 7 hit_d: 1 hit_j: 0 hit_Fa: 3
<frame_end>
<frame> 1 flying
pic: 1 state: 3000 wait: 5 next: 2 dvx: 0 dvy: 0 dvz: 0 centerx: 41 centery: 41 hit_a: 7 hit_d: 1 hit_j: 0 hit_Fa: 7
itr:
kind: 0 x: 22 y: 22 w: 39 h: 38 dvx: 3 fall: 70 vrest: 15 bdefend: 60 injury: 40
itr_end:
bdy:
kind: 0 x: 21 y: 22 w: 40 h: 39
bdy_end:
<frame_end>
<frame> 2 flying
pic: 2 state: 3000 wait: 5 next: 0 dvx: 0 dvy: 0 dvz: 0 centerx: 41 centery: 41 hit_a: 7 hit_d: 2 hit_j: 0 hit_Fa: 7
itr:
kind: 0 x: 22 y: 22 w: 39 h: 38 dvx: 3 fall: 70 vrest: 15 bdefend: 60 injury: 40
itr_end:
bdy:
kind: 0 x: 21 y: 22 w: 40 h: 39
bdy_end:
<frame_end>
|
Thanks given by:
Posts: 52
Threads: 11
Joined: Dec 2017
12-17-2017, 03:01 AM
(This post was last modified: 12-17-2017, 06:29 AM by STM1993.
Edit Reason: formatting
)
(12-16-2017, 02:42 PM)STM1993 Wrote: (12-16-2017, 12:59 PM)seikosantana Wrote: i made the frame 60 and tried to shoot the arrow, but it doesn't recognize the ground. Where should I place the hit_Fa: 7? Place hit_Fa: 7 in all frames(except the 1st, which should be hit_Fa: 3) where the air arrow is travelling.
For example:
DC-Code:
<frame> 0 flying
pic: 0 state: 3000 wait: 0 next: 1 dvx: 0 dvy: 0 dvz: 0 centerx: 45 centery: 38 hit_a: 7 hit_d: 1 hit_j: 0 hit_Fa: 3
<frame_end>
<frame> 1 flying
pic: 1 state: 3000 wait: 5 next: 2 dvx: 0 dvy: 0 dvz: 0 centerx: 41 centery: 41 hit_a: 7 hit_d: 1 hit_j: 0 hit_Fa: 7
itr:
kind: 0 x: 22 y: 22 w: 39 h: 38 dvx: 3 fall: 70 vrest: 15 bdefend: 60 injury: 40
itr_end:
bdy:
kind: 0 x: 21 y: 22 w: 40 h: 39
bdy_end:
<frame_end>
<frame> 2 flying
pic: 2 state: 3000 wait: 5 next: 0 dvx: 0 dvy: 0 dvz: 0 centerx: 41 centery: 41 hit_a: 7 hit_d: 2 hit_j: 0 hit_Fa: 7
itr:
kind: 0 x: 22 y: 22 w: 39 h: 38 dvx: 3 fall: 70 vrest: 15 bdefend: 60 injury: 40
itr_end:
bdy:
kind: 0 x: 21 y: 22 w: 40 h: 39
bdy_end:
<frame_end>
|
I tried using that code to see if it works.. Well, it works, but there's something strange that when I shoot it to the right, when it hits the ground, it will change it's direction to the left. But everything looks good if I shoot it to the left. And sometimes, the arrow can still go under the ground a bit before it dissolves.
And when it is hit by something else or it hits something, it doesn't continue the path as we put in the dvx and dvy, but just went down to the ground, or changes its direction oppositely.
Here's the piece of code I wrote, without explosion spawning.
DC-Code:
<bmp_begin>
file(0-23): sprite\sys\henry_arrow3.bmp w: 48 h: 47 row: 3 col: 2
file(16-30): sprite\sys\julian_exp.bmp w: 159 h: 159 row: 5 col: 3
weapon_hit_sound: data\020.wav
weapon_drop_sound: data\020.wav
weapon_broken_sound: data\020.wav
<bmp_end>
<frame> 0 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 3
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 1 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 2 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 3 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 4 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 5 flying
pic: 0 state: 3006 wait: 1 next: 1 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 500 hit_d: 0 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 10 hiting
pic: 2 state: 3001 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 11 hiting
pic: 1 state: 3001 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 12 hiting
pic: 2 state: 3001 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 13 hiting
pic: 1 state: 3001 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 20 hit
pic: 2 state: 3002 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 21 hit
pic: 1 state: 3002 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 22 hit
pic: 2 state: 3002 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 23 hit
pic: 1 state: 3002 wait: 1 next: 0 dvx: 16 dvy: 566 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 30 rebounding
pic: 3 state: 3003 wait: 1 next: 31 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 31 rebounding
pic: 4 state: 3003 wait: 1 next: 32 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 32 rebounding
pic: 5 state: 3003 wait: 1 next: 1000 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 60 hitting_ground
pic: 3 state: 3003 wait: 1 next: 61 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 61 hitting_ground
pic: 4 state: 3003 wait: 1 next: 62 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 62 hitting_ground
pic: 5 state: 3003 wait: 1 next: 1000 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
???¸
|
It also leaves two shadows on the ground.
Can I make the arrow go straight and no direction changing?
Thanks in advance!
Thanks given by:
Posts: 861
Threads: 50
Joined: Mar 2008
12-17-2017, 06:24 AM
(This post was last modified: 12-17-2017, 06:47 AM by STM1993.)
Okay, I did some proper testing on my end.
I can now guarantee the code below works and you can copy paste it all into Henry and it'd work, and I've included comments on what I've changed & why:
Do remove the # comments before adding it into your own data as LF2 doesn't have a proper method of commenting out things.
id: 236 type: 3 file: data\henry_arrow3.dat
DC-Code:
#I corrected filepic numbers below for you based on the row/col you used. I used henry_arrow2 pictures instead of henry_arrow3 for testing purposes.
<bmp_begin>
file(0-5): sprite\sys\henry_arrow2.bmp w: 48 h: 47 row: 3 col: 2
file(6-20): sprite\sys\julian_exp.bmp w: 159 h: 159 row: 5 col: 3
weapon_hit_sound: data\020.wav
weapon_drop_sound: data\020.wav
weapon_broken_sound: data\020.wav
<bmp_end>
#I avoided using frame 0 because I'm worried about hit_d: 999 creating problems, and hit_d: 0 doesn't do anything.
#Remember to change your opoint to use action: 1 instead of action: 0.
#this is the 1st frame. hit_a 500 is used to remove all homing. hit_d 2 is to tell it to go to frame 2 when it has run out of homing HP.
#hit_Fa 3 is required before hit_Fa: 7 can be used.
#I took out the bdy/itr to prevent bugs due to this being a state 3006 projectile.
#I changed dvy 566 to dvy 16. No difference in this case, but you do need a dvy to make sure the arrow moves downward.
<frame> 1 start_flying
pic: 0 state: 3006 wait: 0 next: 2 dvx: 16 dvy: 16 centerx: 19 centery: 24 hit_a: 500 hit_d: 2 hit_Fa: 3
<frame_end>
#I kept hit_a & hit_d also to prevent bugs and make sure the animation continues.
#wait 0 because wait doesn't work the same way when used with hit_Fa 7; wait 1 means create 1 tail or something from frame 40, wait 2 means 2 tails etc.
#I removed the dvy because it turns out that the projectile DOES accelerate if you have a number, especially if it hits something.
<frame> 2 flying
pic: 0 state: 3006 wait: 0 next: 3 dvx: 16 dvy: 0 centerx: 19 centery: 24 hit_a: 1 hit_d: 3 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 3 flying
pic: 0 state: 3006 wait: 0 next: 4 dvx: 16 dvy: 0 centerx: 19 centery: 24 hit_a: 1 hit_d: 4 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 4 flying
pic: 0 state: 3006 wait: 0 next: 5 dvx: 16 dvy: 0 centerx: 19 centery: 24 hit_a: 1 hit_d: 5 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 5 flying
pic: 0 state: 3006 wait: 0 next: 6 dvx: 16 dvy: 0 centerx: 19 centery: 24 hit_a: 1 hit_d: 6 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
<frame> 6 flying
pic: 0 state: 3006 wait: 0 next: 2 dvx: 16 dvy: 0 centerx: 19 centery: 24 hit_a: 1 hit_d: 2 hit_Fa: 7
itr:
kind: 0 x: -1 y: 12 w: 51 h: 24 dvx: 20 fall: 70 vrest: 15 bdefend: 60 injury: 50 effect: 1
itr_end:
bdy:
kind: 0 x: -1 y: 12 w: 51 h: 24
bdy_end:
<frame_end>
#I fixed the wait/next values here for you. Also, I added dvy 550 in frames after the 1st hitting frame as a preventive measure against bugs.
#Do NOT put dvy 550 in the 1st hitting frame itself because it'd instead create bugs.
<frame> 10 hiting
pic: 2 state: 3001 wait: 1 next: 11 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 11 hiting
pic: 1 state: 3001 wait: 1 next: 12 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 12 hiting
pic: 2 state: 3001 wait: 1 next: 13 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 13 hiting
pic: 1 state: 3001 wait: 1 next: 1000 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 20 hit
pic: 2 state: 3002 wait: 1 next: 21 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 21 hit
pic: 1 state: 3002 wait: 1 next: 22 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 22 hit
pic: 2 state: 3002 wait: 1 next: 23 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 23 hit
pic: 1 state: 3002 wait: 1 next: 1000 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 30 rebounding
pic: 3 state: 3003 wait: 1 next: 31 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 31 rebounding
pic: 4 state: 3003 wait: 1 next: 32 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 32 rebounding
pic: 5 state: 3003 wait: 1 next: 1000 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
#this is the tail that results from hit_Fa 7 with wait: x, where x is the number of tails to create behind your arrow.
#I've made the tail invisible and delete itself immediately just in case tails still spawn as a way to prevent bugs.
#The reason why extra shadows appeared in the old data is because it tried to create non-existent frame 40 tails, so it just creates shadows.
<frame> 40 tail
pic: 999 state: 3005 wait: 0 next: 1000 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
#added the sound effect so that it does make a sound when it lands. Same thing with dvy: 550 as the hitting frames above.
<frame> 60 hitting_ground
pic: 3 state: 3001 wait: 1 next: 61 dvx: 0 dvy: 0 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
<frame_end>
<frame> 61 hitting_ground
pic: 4 state: 3001 wait: 1 next: 62 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 62 hitting_ground
pic: 5 state: 3001 wait: 1 next: 1000 dvx: 0 dvy: 550 centerx: 19 centery: 24 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
|
Unfortunately, there is no method for fixing the always left-facing direction when it lands - this is just the way LF2's ground hitting system is coded.
However, since you're going to make the arrow explode into a Julian explosion anyway, the direction really doesn't matter and players generally will not notice or care as long as you don't make it obvious that it is supposed to have a different direction like what the original destroyed henry_arrow2 sprites would suggest.
In other words, as long as people can believe the explosion is left-right symmetrical, you can get away with it (how many of us even noticed that Firzen/Jan's D^A, when hitting the floor, always faces left? I didn't even realize until you told me about this!).
And just for completeness, this is the Henry data I used to test the above arrow data.
You will need to have opoint: dvx: 16, otherwise the arrow can aim at enemies behind you.
DC-Code:
<frame> 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: 0 hit_Fj: 290
bpoint:
x: 44 y: 27
bpoint_end:
wpoint:
kind: 1 x: 37 y: 43 weaponact: 22 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0
wpoint_end:
bdy:
kind: 0 x: 28 y: 3 w: 23 h: 65
bdy_end:
bdy:
kind: 0 x: 18 y: 29 w: 48 h: 17
bdy_end:
<frame_end>
<frame> 290 jump_attack
pic: 8 state: 3 wait: 1 next: 291 dvx: 0 dvy: 0 dvz: 0 centerx: 18 centery: 78 hit_a: 0 hit_d: 0 hit_j: 0 mp: 200
bdy:
kind: 0 x: 19 y: 10 w: 39 h: 57
bdy_end:
<frame_end>
<frame> 291 jump_attack
pic: 9 state: 3 wait: 1 next: 292 dvx: 0 dvy: 0 dvz: 0 centerx: 18 centery: 78 hit_a: 0 hit_d: 0 hit_j: 0
bdy:
kind: 0 x: 19 y: 12 w: 38 h: 59
bdy_end:
<frame_end>
<frame> 292 jump_attack
pic: 49 state: 3 wait: 1 next: 293 dvx: 0 dvy: 0 dvz: 0 centerx: 18 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\022.wav
bdy:
kind: 0 x: 18 y: 12 w: 38 h: 58
bdy_end:
<frame_end>
<frame> 293 jump_attack
pic: 58 state: 3 wait: 1 next: 294 dvx: -1 dvy: -3 dvz: 0 centerx: 18 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\059.wav
bdy:
kind: 0 x: 12 y: 7 w: 44 h: 63
bdy_end:
<frame_end>
#important to have opoint dvx 16, otherwise the arrow can potentially aim at an enemy behind you.
<frame> 294 jump_attack
pic: 59 state: 3 wait: 11 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 18 centery: 79 hit_a: 80 hit_d: 0 hit_j: 0
sound: data\024.wav
opoint:
kind: 1 x: 80 y: 77 action: 1 dvx: 16 dvy: 0 oid: 236 facing: 0
opoint_end:
bdy:
kind: 0 x: 15 y: 10 w: 42 h: 63
bdy_end:
<frame_end>
|
Posts: 52
Threads: 11
Joined: Dec 2017
12-17-2017, 11:56 AM
(This post was last modified: 12-17-2017, 12:07 PM by seikosantana.)
Wow, it looks nice now, but it still reflects if it is hit by someone. The bad thing about it is when the arrow is reflected, it will explode right below Henry.
The arrow should not be reflected or the explosion will not be useful..
I even tried to add the dvx and dvy value but it still change the direction when hit.
I copy the code above and modified my Henry data. Did I make mistake?
Thanks in advance!
Posts: 861
Threads: 50
Joined: Mar 2008
Wait what, a hit_Fa: 7 state 3006 actually gets rebounded in the opposite direction(but doesn't change team) by a REGULAR hit, but not by a John shield reflect? What madness is this?!
Okay, I found a workaround, but it isn't ideal in a few specific situations - you must remove the bdy in the "flying" frames.
The arrow cannot be destroyed or rebounded, which fixes the reflecting issue above. HOWEVER:
1) Tf 2 such arrows were to go head-to-head on each other, they will not collide, they will just pass through each other.
2) The arrow will still be destroyed if it hits the bdy of another 3006 attack, which is good.
3) The arrow cannot be destroyed by a state 3005 palm attack, and will pass through John's shield harmlessly.
You can fix the non-colliding issue by adding a hidden bdy and a hidden itr (that is a bdy/itr that has a very large y-coordinate like y: 900012), so that in the specific case that these 2 arrows collide, they will still destroy each other. However fixing this for things like John's shield or the state 3005 palm attacks will require adding a hidden itr on them to hit the arrow's hidden bdy - so this method is not very useful if this Henry mod is a stand-alone character rather than part of a full LF2 mod.
|