09-30-2015, 08:43 PM
EDIT: Problem solved: use dvz >500; 501-549 move up, 550 stops, 551-599 move down.
Because Steiner has such a move, but in reality its a trick based on directional key input, so its far from perfect, I decided I'd experiment with an alternative.
The trick is very simply using state 8xxx to transform the character into a ball, which then has a hit_j: value to make it move up(<50) or down(>50). The code below is for a modified jack.dat & jack_ball.dat.
Nothing new here actually, but there are 4 notable issues with this solution:
1) One ID can only work for 3 transformations - normal, getting hit by a ball (20 hit), or getting rebounded (30 hit) - which can be buggy if you have multiples of the same character. 10 hitting isn't realistically doable since that requires opointing a char and that'd be messy. To completely avoid bugs, you have to use 1 transformation for 1 ID.
2) Because 8xxx is used, you will have to use b sprites (+140 to pic number), so its not a good idea for characters like Bandit. I also couldn't see the ball sprite for some reason.
3) While the character is momentarily a ball, the game thinks you are gone and the results board timer will tick down. Do it often enough and it'd show up. This means you will have to opoint a character before transforming to serve as a placeholder to prevent the results board from showing up, which means a possible unwanted "com" showing up.
4) There is no way to detect if you are on the ground as a ball (hit_Fa: 7 doesn't seem to work here). Even though the char will automatically get back on level ground on transforming back, he will end up in frame 219 crouch2. You could counteract this by making frame 0 have state 100 leading to frame 94 and avoiding having next: 999 altogether, though at the start of the game when you spawn, you'd inevitably go to frame 94.
I don't know of any better solution. I have tried simply using a ball to catch the char and have the ball move on z-axis with hit_j, but that didn't work at all, don't know if its just my code. (Note: I know the ball won't grab yourself here, but it didn't move the enemy Jack on z-axis like I wanted).
Because Steiner has such a move, but in reality its a trick based on directional key input, so its far from perfect, I decided I'd experiment with an alternative.
The trick is very simply using state 8xxx to transform the character into a ball, which then has a hit_j: value to make it move up(<50) or down(>50). The code below is for a modified jack.dat & jack_ball.dat.
DC-Code:
<frame> 0 standing pic: 0 state: 100 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_Dj: 350 bpoint: x: 38 y: 34 bpoint_end: wpoint: kind: 1 x: 23 y: 44 weaponact: 22 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> <frame> 94 heavy_obj_walk pic: 23 state: 1 wait: 3 next: 0 dvx: 0 dvy: 0 dvz: 0 centerx: 36 centery: 80 hit_a: 0 hit_d: 0 hit_j: 0 bpoint: x: 38 y: 34 bpoint_end: wpoint: kind: 1 x: 37 y: 24 weaponact: 10 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0 wpoint_end: bdy: kind: 0 x: 29 y: 15 w: 28 h: 64 bdy_end: <frame_end> <frame> 350 transform pic: 0 state: 3 wait: 0 next: 351 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 0 <frame_end> <frame> 351 transform pic: 0 state: 8216 wait: 0 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 <frame_end> <bmp_begin> head: sprite\sys\jack_f.bmp small: sprite\sys\jack_s.bmp file(0-11): sprite\sys\jack_b.bmp w: 81 h: 82 row: 4 col: 2 ... <frame> 0 flying pic: 0 state: 3005 wait: 1 next: 1 dvx: 0 dvy: 0 dvz: 0 centerx: 40 centery: 41 hit_a: 0 hit_d: 0 hit_j: 90 <frame_end> <frame> 1 flying pic: 1 state: 8033 wait: 1 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 40 centery: 41 hit_a: 0 hit_d: 0 hit_j: 90 <frame_end> |
Nothing new here actually, but there are 4 notable issues with this solution:
1) One ID can only work for 3 transformations - normal, getting hit by a ball (20 hit), or getting rebounded (30 hit) - which can be buggy if you have multiples of the same character. 10 hitting isn't realistically doable since that requires opointing a char and that'd be messy. To completely avoid bugs, you have to use 1 transformation for 1 ID.
2) Because 8xxx is used, you will have to use b sprites (+140 to pic number), so its not a good idea for characters like Bandit. I also couldn't see the ball sprite for some reason.
3) While the character is momentarily a ball, the game thinks you are gone and the results board timer will tick down. Do it often enough and it'd show up. This means you will have to opoint a character before transforming to serve as a placeholder to prevent the results board from showing up, which means a possible unwanted "com" showing up.
4) There is no way to detect if you are on the ground as a ball (hit_Fa: 7 doesn't seem to work here). Even though the char will automatically get back on level ground on transforming back, he will end up in frame 219 crouch2. You could counteract this by making frame 0 have state 100 leading to frame 94 and avoiding having next: 999 altogether, though at the start of the game when you spawn, you'd inevitably go to frame 94.
I don't know of any better solution. I have tried simply using a ball to catch the char and have the ball move on z-axis with hit_j, but that didn't work at all, don't know if its just my code. (Note: I know the ball won't grab yourself here, but it didn't move the enemy Jack on z-axis like I wanted).
DC-Code:
<frame> 360 picked_caught pic: 0 state: 3 wait: 0 next: 361 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 0 <frame_end> <frame> 361 spawn_grabber pic: 0 state: 18 wait: 0 next: 362 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 opoint: kind: 1 x: 39 y: 39 action: 2 dvx: 0 dvy: 0 oid: 216 facing: 0 opoint_end: bdy: kind: 0 x: 21 y: 18 w: 43 h: 62 bdy_end: <frame_end> <frame> 362 spawn_grabber pic: 0 state: 15 wait: 0 next: 1 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 bdy: kind: 0 x: 21 y: 18 w: 43 h: 62 bdy_end: <frame_end> <frame> 363 picked_caught pic: 53 state: 10 wait: 1 next: 0 dvx: 0 dvy: 0 dvz: 0 centerx: 40 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 cpoint: kind: 2 x: 42 y: 39 fronthurtact: 132 backhurtact: 131 cpoint_end: wpoint: kind: 1 x: 26 y: 50 weaponact: 31 attacking: 0 cover: 0 dvx: 0 dvy: 0 dvz: 0 wpoint_end: bdy: kind: 0 x: 26 y: 14 w: 28 h: 66 bdy_end: <frame_end> ... <frame> 2 grabber pic: 0 state: 3005 wait: 1 next: 1000 dvx: 0 dvy: 0 centerx: 40 centery: 41 hit_a: 0 hit_d: 0 hit_j: 0 itr: kind: 3 x: 22 y: 27 w: 55 h: 27 vrest: 7 catchingact: 3 3 caughtact: 353 353 itr_end: <frame_end> <frame> 3 grabber pic: 5 state: 3005 wait: 15 next: 4 dvx: 0 dvy: 0 centerx: 40 centery: 41 hit_a: 0 hit_d: 0 hit_j: 1 cpoint: kind: 1 x: 61 y: 39 vaction: 353 hurtable: 0 cpoint_end: <frame_end> <frame> 4 grabber pic: 6 state: 3005 wait: 1 next: 1000 dvx: 0 dvy: 0 dvz: 550 centerx: 40 centery: 41 hit_a: 0 hit_d: 0 hit_j: 550 cpoint: kind: 1 x: 61 y: 39 vaction: 353 hurtable: 0 cpoint_end: <frame_end> |