Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[solved] Opoint lower on Z-Axis problem
#1
? 
I've been trying to make a quick fix for Julian's mirror image, but came into a problem related to z-axis and opointing.

When DJA is used, Julian will op julian_ball2 act 240. It'd then op Julian again act 237, which would then op Julian act 239. And then it'd opoint ball act 249 when the image fades away. I used this to fix the mirror image with Rudolf transform exploit, as well as prevent the image from showing up at 500hp for an extended period of time.

Unfortunately, with so much opointing being done, the mirror image would spawn lower and lower on the z-axis, thus ruining the deception. What I tried to do is to make the ball move upward on the z-axis to correct itself, but it doesn't work no matter what hit_j value I use.

No, simply using centery / opointing a higher y or using an ik8 shadow won't work because Com will give it away and I intend to keep it there since I'm not attempting a full mod, plus the shadow only works if backgrounds use the same shadow.

I remember this problem existed long ago, but has there been any new method to solve it?
Code below.


Julian
    DC-Code:
<frame> 103 rowing
   pic: 49  state: 6  wait: 10  next: 104  dvx: 10  dvy: 0  dvz: 3  centerx: 34  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
   opoint:
      kind: 1  x: 39  y: 99  action: 240  dvx: 0  dvy: 0  oid: 229  facing: 0
   opoint_end:
   wpoint:
      kind: 1  x: 28  y: 60  weaponact: 31  attacking: 0  cover: 1  dvx: 0  dvy: 0  dvz: 0 
   wpoint_end:
<frame_end>
 
<frame> 237 shadow
pic: 78  state: 15  wait: 0  next: 238  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 238 shadow
pic: 999  state: 3005  wait: 0  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 41  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
opoint:
kind: 1  x: 41  y: 99  action: 240  dvx: 0  dvy: 0  oid: 52 facing: 0
opoint_end:
<frame_end>
<frame> 239 shadow
pic: 999  state: 3005  wait: 0  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 41  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
opoint:
kind: 1  x: 41  y: 99  action: 249  dvx: 0  dvy: 0  oid: 229  facing: 0
opoint_end:
<frame_end>
<frame> 240 shadow
   pic: 78  state: 15  wait: 22  next: 241  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 241 shadow
   pic: 80  state: 15  wait: 2  next: 242  dvx: 550  dvy: 550  dvz: 550  centerx: 41  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 242 shadow
   pic: 79  state: 15  wait: 2  next: 243  dvx: 550  dvy: 550  dvz: 550  centerx: 42  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 243 shadow
   pic: 80  state: 15  wait: 2  next: 244  dvx: 550  dvy: 550  dvz: 550  centerx: 40  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 244 shadow
   pic: 78  state: 15  wait: 2  next: 245  dvx: 550  dvy: 550  dvz: 550  centerx: 37  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 245 shadow
   pic: 81  state: 15  wait: 2  next: 246  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 246 shadow
   pic: 82  state: 15  wait: 2  next: 247  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 247 shadow
   pic: 81  state: 15  wait: 2  next: 248  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 248 shadow
   pic: 78  state: 15  wait: 2  next: 239  dvx: 550  dvy: 550  dvz: 550  centerx: 36  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>


Julian Ball 2
    DC-Code:
<frame> 239 shadow
pic: 999  state: 3005  wait: 0  next: 1000  dvx: 550  dvy: 550  dvz: 0  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 45
opoint:
kind: 1  x: 39  y: 99  action: 237  dvx: 0  dvy: 0  oid: 52  facing: 0
opoint_end:
<frame_end>
<frame> 240 shadow
   pic: 45  state: 3006  wait: 0  next: 239  dvx: 550  dvy: 550  dvz: 0  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 45
<frame_end>
<frame> 249 shadow
   pic: 37  state: 3005  wait: 2  next: 250  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 250 shadow
   pic: 38  state: 3005  wait: 2  next: 251  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 251 shadow
   pic: 39  state: 3005  wait: 2  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>

[Image: uMSShyX.png]
~Spy_The_Man1993~
Steiner v3.00 (outdated), Challenge Stage v1.51
Luigi's Easier Data-Editor, A-Man's Sprite Mirrorer
Working on the LF2 Rebalance mod.
Avatar styled by: prince_freeza
Reply
Thanks given by:
#2
Try a higher wait than 0.
Also what about itr kind 8? It fixes the z position instantly.
Reply
Thanks given by: STM1993
#3
Wait 1 on the ball hit_j frames works okay if a little jitterish at the beginning. So I did everything with only ik8.
The itr k8 itself is working since it displays all the mirror image frames(fading not shown in screenshot); if it didn't work then the image would disappear immediately due to next: 1000. However it failed to fix the z-axis problem for some reason, isn't ik8 supposed to instantly put the itr user on the bdy's exact center x and z coordinates? 3 pixels of difference is unacceptable.
[Image: xVXkI2f.png]
    DC-Code:
<frame> 103 rowing
   pic: 49  state: 6  wait: 1  next: 107  dvx: 550  dvy: 0  dvz: 0  centerx: 34  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
   opoint:
      kind: 1  x: 39  y: 99  action: 238  dvx: 0  dvy: 0  oid: 229  facing: 0
   opoint_end:
   wpoint:
      kind: 1  x: 28  y: 60  weaponact: 31  attacking: 0  cover: 1  dvx: 0  dvy: 0  dvz: 0 
   wpoint_end:
bdy: kind: 0 x: 31 y: 7011420 w: 10 h: 10 bdy_end:
<frame_end>
<frame> 107 rowing
   pic: 49  state: 6  wait: 9  next: 104  dvx: 10  dvy: 0  dvz: 3  centerx: 34  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
   wpoint:
      kind: 1  x: 28  y: 60  weaponact: 31  attacking: 0  cover: 1  dvx: 0  dvy: 0  dvz: 0 
   wpoint_end:
<frame_end>
 
<frame> 236 shadow_2
pic: 78  state: 15  wait: 0  next: 237  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 100  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>
<frame> 237 shadow_2
pic: 999  state: 3005  wait: 1  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
bdy: kind: 0 x: 38 y: 7011420 w: 3 h: 10 bdy_end:
opoint:
kind: 1  x: 39  y: 99  action: 238  dvx: 0  dvy: 0  oid: 52 facing: 0
opoint_end:
<frame_end>
<frame> 238 shadow_3
pic: 78  state: 15  wait: 1  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
itr: kind: 8 x: 38 y: 7011420 w: 3 h: 10 dvx: 240 itr_end:
<frame_end>
<frame> 240 shadow
pic: 78  state: 15  wait: 20  next: 241  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
<frame_end>

    DC-Code:
<frame> 238 shadow_start
pic: 45 state: 3006 wait: 1 next: 1000 dvx: 550 dvy: 550 dvz: 550 centerx: 39 centery: 99 hit_a: 0 hit_d: 0 hit_j: 0
itr: kind: 8 x: 31 y: 7011420 w: 10 h: 10 dvx: 237 itr_end:
<frame_end>
<frame> 237 shadow
pic: 45 state: 3006 wait: 1 next: 239 dvx: 550 dvy: 550 dvz: 550 centerx: 39 centery: 99 hit_a: 0 hit_d: 0 hit_j: 0
<frame_end>
<frame> 239 shadow
pic: 999  state: 3005  wait: 0  next: 1000  dvx: 550  dvy: 550  dvz: 550  centerx: 39  centery: 99  hit_a: 0  hit_d: 0  hit_j: 0
opoint:
kind: 1  x: 39  y: 99  action: 236  dvx: 0  dvy: 0  oid: 52  facing: 0
opoint_end:
<frame_end>
[Image: uMSShyX.png]
~Spy_The_Man1993~
Steiner v3.00 (outdated), Challenge Stage v1.51
Luigi's Easier Data-Editor, A-Man's Sprite Mirrorer
Working on the LF2 Rebalance mod.
Avatar styled by: prince_freeza
Reply
Thanks given by:
#4
Reorder frame 237 to be before 238, lf2 is sometimes weird when frames are out of order.

Frame 238's ik8 will not fix your z axis problem, ik8 sticks you to the interacted t0's z value +1.
Assuming frame 238 is invisible, use a hit_j: 48 (maybe 47) next: 239. This should eliminate the need for ik8.
I haven't checked why so many opoints are needed, just checked the z-axis related code.

---

edit: re-read your comment about it being jitterish with hit_j. missed that part earlier ._.
If your final object uses ik8 on the main character, it will be corrected to main character's z+1.



Azriel~
Reply
Thanks given by: STM1993
#5
(03-18-2014, 06:20 AM)Azriel Wrote:  Reorder frame 237 to be before 238, lf2 is sometimes weird when frames are out of order.
Huh, didn't think order was a problem, I've been avoiding order many times and so far didn't experience any problems unless I had 2 frames with the same number.

(03-18-2014, 06:20 AM)Azriel Wrote:  Frame 238's ik8 will not fix your z axis problem, ik8 sticks you to the interacted t0's z value +1.
Assuming frame 238 is invisible, use a hit_j: 48 (maybe 47) next: 239. This should eliminate the need for ik8.
I haven't checked why so many opoints are needed, just checked the z-axis related code.
---
edit: re-read your comment about it being jitterish with hit_j. missed that part earlier ._.
If your final object uses ik8 on the main character, it will be corrected to main character's z+1.

Azriel~
[Image: 2CjGjlK.png]
Alright, I guess I'll have to make do with the original hit_j method, and somehow fix the jitter. No, I can't just make final object ik8 the main character because he'd be moving on x and z axis, so it'd be potentially very buggy, not to mention it won't achieve the deception I'm looking for. <snip>

EDIT:
ITS WORKING! ITS WORKING PERFECTLY!!!

As a thank you, I've attached the relevant modified data files here for your playing pleasure! You won't be able to tell I've modified the mirror images save for being a little bit stiff on the x/z movement because of dvx/z 550!

Explanation:
* Julian opoints ball twice; one is a dummy mirror image, one is invisible that moves up on z-axis.
* Invisible ball spawns invisible Julian.
* Invisible Julian spawns the actual clone Julian. Dummy disappears.
* To ensure they are all always aligned regardless of movement, I gave Julian dvx/z 550 on his opointing frames.
* Extra: I think its stupid that AI continues being distracted when the mirror image is in its final fading frames, so I made it opoint a ball, complete without a shadow - both to hide the slight z-axis difference and to make it seem like the image has lost its form and thus doesn't have a shadow.

Why so many opoints:
* Julian opoints himself. Clone has 10hp. However, if Julian transforms to Rudolf, so will the clone - thus you have made clones for only 25 mana. Transform again, and clone becomes a real 10hp Julian. This is an exploit in original LF2 that I want to fix.
* By opointing a ball to create the clone instead of opointing a clone directly, I sever the link between the real Julian and the clone, preventing the exploit.
* I made the clone opoint itself again to fix a potential 500hp clone problem. It might have been unnecessary, but hey it worked and it allows for easier conversion on mods!

I'm working on a mod with all characters having a criminal along with slight tweaks to a few characters, the only thing I'm left with is making criminal tied up sprites now. Here's a preview:
[Image: WuSgcj6.png]


Attached Files
.dat   julian_ball2.dat (Size: 13 KB / Downloads: 141)
.dat   julian.dat (Size: 75.38 KB / Downloads: 134)
[Image: uMSShyX.png]
~Spy_The_Man1993~
Steiner v3.00 (outdated), Challenge Stage v1.51
Luigi's Easier Data-Editor, A-Man's Sprite Mirrorer
Working on the LF2 Rebalance mod.
Avatar styled by: prince_freeza
Reply
Thanks given by:




Users browsing this thread: 2 Guest(s)