Posts: 4
Threads: 1
Joined: May 2015
Hi! So I was porting over some code from RLF2's Firzen from 1.9c to 2.0a, namely the D^A disaster attack. In LF2 2.0a, it crashes when I spam D^A enough times but in LF2 1.9c, it works fine no matter how many times I spam it. It ruins story mode when the AI has it use D^A enough times, crashing 2.0a. Below are the frames that matter.
Code: <frame> 240 disaster
pic: 83 state: 3 wait: 0 next: 241 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 60
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 241 disaster
pic: 84 state: 3 wait: 0 next: 242 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\018.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 242 disaster
pic: 85 state: 3 wait: 1 next: 243 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\019.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 243 disaster
pic: 86 state: 3 wait: 1 next: 244 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 38 y: 3 action: 70 dvx: 0 dvy: 0 oid: 221 facing: 1
opoint_end:
wpoint:
kind: 1 x: 44 y: 50 weaponact: 31 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>
<frame> 244 disaster
pic: 87 state: 3 wait: 1 next: 245 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
opoint:
kind: 1 x: 38 y: -9 action: 50 dvx: 0 dvy: -50 oid: 221 facing: 30
opoint_end:
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 245 disaster
pic: 88 state: 3 wait: 1 next: 246 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 246 disaster
pic: 84 state: 3 wait: 1 next: 247 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 240 hit_d: 0 hit_j: 0 hit_Ua: 240
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 247 disaster
pic: 83 state: 3 wait: 1 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
Any help would be appreciated.
Thanks given by:
Posts: 2,340
Threads: 78
Joined: Mar 2008
Opposed to older versions 2.0 always crashes upon exceeding the 400 object limit.
You need to restrain yourself there.
Thanks given by:
Posts: 4
Threads: 1
Joined: May 2015
(05-20-2015, 07:31 AM)YinYin Wrote: Opposed to older versions 2.0 always crashes upon exceeding the 400 object limit.
You need to restrain yourself there.
That is really unfortunate. I was really hoping I could use this character in 2.0a. Do you by chance know why the limit was placed? I thought 1.9c had a lower limit.
Thanks given by:
Posts: 1,556
Threads: 77
Joined: May 2011
05-20-2015, 06:30 PM
(This post was last modified: 05-20-2015, 06:32 PM by A-Man.)
That did surprise me O_o. I can't see a reason for why they changed the limit, but it simply exists because objects are stored in a container that only allocated memory for 400 on-screen objects. Sometimes, you can exceed the limit by a number or two, but this will often cause random behaviors.
Thanks given by:
Posts: 746
Threads: 55
Joined: Apr 2008
05-20-2015, 06:30 PM
(This post was last modified: 05-20-2015, 06:31 PM by Som1Lse.)
(05-20-2015, 04:15 PM)Blade Wrote: That is really unfortunate. I was really hoping I could use this character in 2.0a. Do you by chance know why the limit was placed? I thought 1.9c had a lower limit. The limit wasn't changed. The check to see if it was exceeded was removed.
To be clear the limit that was changed from 1.9 to 2.0 was the limit of loaded object data files, not the amount of objects currently in the game which remains 400.
This may be possible to patch somehow. I'll write a post if I can fix this.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Posts: 4
Threads: 1
Joined: May 2015
(05-20-2015, 06:30 PM)Doctor A Wrote: That did surprise me O_o. I can't see a reason for why they changed the limit, but it simply exists because objects are stored in a container that only allocated memory for 400 on-screen objects. Sometimes, you can exceed the limit by a number or two, but this will often cause random behaviors.
Does LF2 ever delete the objects in memory once they "fly off" the screen and are sure to never appear again?
(05-20-2015, 06:30 PM)Someone else Wrote: The limit wasn't changed. The check to see if it was exceeded was removed.
To be clear the limit that was changed from 1.9 to 2.0 was the limit of loaded object data files, not the amount of objects currently in the game which remains 400.
This may be possible to patch somehow. I'll write a post if I can fix this.
Oh, I see. And that would be awesome if there is a patch to this. Would help a ton.
Thanks given by:
Posts: 864
Threads: 49
Joined: Mar 2008
05-20-2015, 11:05 PM
(This post was last modified: 05-20-2015, 11:14 PM by STM1993.)
In the meantime, here's a modified D^A data that should stop the crashing. I pushed it as much as I could. If it still crashes LF2 for you, you can reduce the "facing" from 30 to 20 or 0 in frame 244.
DC-Code:
<frame> 240 disaster
pic: 83 state: 3 wait: 1 next: 241 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 60
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 241 disaster
pic: 84 state: 3 wait: 1 next: 242 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\018.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 242 disaster
pic: 85 state: 3 wait: 1 next: 243 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\019.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 243 disaster
pic: 86 state: 3 wait: 1 next: 244 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 38 y: 3 action: 70 dvx: 0 dvy: 0 oid: 221 facing: 1
opoint_end:
wpoint:
kind: 1 x: 44 y: 50 weaponact: 31 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>
<frame> 244 disaster
pic: 87 state: 3 wait: 1 next: 245 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
opoint:
kind: 1 x: 38 y: -9 action: 50 dvx: 0 dvy: -35 oid: 221 facing: 30
opoint_end:
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 245 disaster
pic: 88 state: 3 wait: 1 next: 246 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 246 disaster
pic: 84 state: 3 wait: 2 next: 247 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 240 hit_d: 0 hit_j: 0 hit_Ua: 240
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 247 disaster
pic: 83 state: 3 wait: 2 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
|
Main changes from the original R-LF2 data:
1) D^A performs slower, at the speed of original LF2 (wait: values)
2) D^A doesn't reach as high into the sky (dvy: -35 instead of -50), minimizing the time the objects stay in the game (but also reducing the range, but this move can pretty much hit anywhere already). They still go off-screen.
If you want to keep the speed where the D^A goes into the air, you can modify firzen_chasef itself to stop moving at a certain frame when it has already gone off-screen with dy: 550.
DC-Code:
<frame> 50 start
pic: 8 state: 3005 wait: 1 next: 51 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 0
opoint_end:
<frame_end>
<frame> 51 start
pic: 9 state: 3005 wait: 1 next: 52 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 52 start
pic: 10 state: 3005 wait: 1 next: 53 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 1
opoint_end:
<frame_end>
<frame> 53 start
pic: 9 state: 3005 wait: 0 next: 54 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 54 start
pic: 10 state: 3005 wait: 0 next: 55 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 0
opoint_end:
<frame_end>
<frame> 55 start
pic: 11 state: 3005 wait: 0 next: 56 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 56 start
pic: 10 state: 3005 wait: 0 next: 57 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 1
opoint_end:
<frame_end>
<frame> 57 start
pic: 11 state: 3005 wait: 0 next: 58 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 58 start
pic: 11 state: 3005 wait: 0 next: 59 dvx: 0 dvy: 550 dvz: 0 centerx: 15 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
opoint:
kind: 1 x: 17 y: 10 action: 70 dvx: 0 dvy: 0 oid: 221 facing: 1
opoint_end:
<frame_end>
<frame> 59 start
pic: 50 state: 3005 wait: 2 next: 1000 dvx: 0 dvy: 0 dvz: 0 centerx: 15 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0 hit_Fa: 9
<frame_end>
|
Posts: 4
Threads: 1
Joined: May 2015
(05-20-2015, 11:05 PM)STM1993 Wrote: In the meantime, here's a modified D^A data that should stop the crashing. I pushed it as much as I could. If it still crashes LF2 for you, you can reduce the "facing" from 30 to 20 or 0 in frame 244.
DC-Code:
<frame> 240 disaster
pic: 83 state: 3 wait: 1 next: 241 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0 mp: 60
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 241 disaster
pic: 84 state: 3 wait: 1 next: 242 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\018.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 242 disaster
pic: 85 state: 3 wait: 1 next: 243 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\019.wav
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 243 disaster
pic: 86 state: 3 wait: 1 next: 244 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 38 y: 3 action: 70 dvx: 0 dvy: 0 oid: 221 facing: 1
opoint_end:
wpoint:
kind: 1 x: 44 y: 50 weaponact: 31 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>
<frame> 244 disaster
pic: 87 state: 3 wait: 1 next: 245 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
opoint:
kind: 1 x: 38 y: -9 action: 50 dvx: 0 dvy: -35 oid: 221 facing: 30
opoint_end:
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 245 disaster
pic: 88 state: 3 wait: 1 next: 246 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 246 disaster
pic: 84 state: 3 wait: 2 next: 247 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 240 hit_d: 0 hit_j: 0 hit_Ua: 240
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
<frame> 247 disaster
pic: 83 state: 3 wait: 2 next: 999 dvx: 0 dvy: 0 dvz: 0 centerx: 39 centery: 79 hit_a: 0 hit_d: 0 hit_j: 0
wpoint:
kind: 1 x: 44 y: 49 weaponact: 31 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>
|
Main changes from the original R-LF2 data:
1) D^A performs slower, at the speed of original LF2 (wait: values)
2) D^A doesn't reach as high into the sky (dvy: -35 instead of -50), minimizing the time the objects stay in the game (but also reducing the range, but this move can pretty much hit anywhere already). They still go off-screen.
If you want to keep the speed where the D^A goes into the air, you can modify firzen_chasef itself to stop moving at a certain frame when it has already gone off-screen with dy: 550.
DC-Code:
<frame> 50 start
pic: 8 state: 3005 wait: 1 next: 51 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 0
opoint_end:
<frame_end>
<frame> 51 start
pic: 9 state: 3005 wait: 1 next: 52 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 52 start
pic: 10 state: 3005 wait: 1 next: 53 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 1
opoint_end:
<frame_end>
<frame> 53 start
pic: 9 state: 3005 wait: 0 next: 54 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 54 start
pic: 10 state: 3005 wait: 0 next: 55 dvx: 0 dvy: 0 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 0
opoint_end:
<frame_end>
<frame> 55 start
pic: 11 state: 3005 wait: 0 next: 56 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 56 start
pic: 10 state: 3005 wait: 0 next: 57 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
opoint:
kind: 1 x: 20 y: 40 action: 70 dvx: 0 dvy: 0 oid: 219 facing: 1
opoint_end:
<frame_end>
<frame> 57 start
pic: 11 state: 3005 wait: 0 next: 58 dvx: 0 dvy: 550 dvz: 0 centerx: 17 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 58 start
pic: 11 state: 3005 wait: 0 next: 59 dvx: 0 dvy: 550 dvz: 0 centerx: 15 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0
sound: data\020.wav
opoint:
kind: 1 x: 17 y: 10 action: 70 dvx: 0 dvy: 0 oid: 221 facing: 1
opoint_end:
<frame_end>
<frame> 59 start
pic: 50 state: 3005 wait: 2 next: 1000 dvx: 0 dvy: 0 dvz: 0 centerx: 15 centery: 25 hit_a: 0 hit_d: 0 hit_j: 0 hit_Fa: 9
<frame_end>
|
Thanks a bunch! I will test this and see if it still crashes, or until a patch has been made. :D
Thanks given by:
Posts: 1,556
Threads: 77
Joined: May 2011
(05-20-2015, 07:14 PM)Blade Wrote: Does LF2 ever delete the objects in memory once they "fly off" the screen and are sure to never appear again? Yes, of course. How else would the characters' D>A energy balls be deleted when their frames continue looping forever?
Thanks given by:
|