ikemen-engine / Ikemen-GO

An open-source fighting game engine that supports MUGEN resources.
https://ikemen-engine.github.io
Other
729 stars 125 forks source link

Setting hit priority based on a variable produces different results in IKEMEN GO and MUGEN 1.1 #1450

Closed SaltAddict closed 1 year ago

SaltAddict commented 1 year ago

Describe the bug

I don't quite understand whats going wrong here so I'll do my best to explain.

priority = cond(var(58) = 1, cond(var(19) = 1, 7, 1), 4), hit

I'm using that line above on all my hitdefs to change the priority of the hit based on the value of var(19). If var(19) is 1, the hitdef will have priority = 7 and if var(19) is -1, then the hitdef will have priority = 1. At the beginning of the round, p1's var(19) is set randomly to either 1 or -1, and p2's var(19) is then set to the opposite of p1's. This way, one player is randomly chosen to "win" all hit trades for that round, which is how it works in the original Mortal Kombat games. Basically, both players should not be able to hit each other at the same time.

Var(58) is there so that the system can be turned on and off through a config file.

Now, in MUGEN 1.1, this works exactly how you would expect, but in IKEMEN GO, if p1's var(19) is set to -1, the hits will still trade, even though debug mode shows all the values are being set up correctly. You can see this in the images I posted below, 1st one is MUGEN 1.1, the other two on the hell stage are on the latest version of IKEMEN GO, showing that both p1 and p2 are using the correct values but are still able to hit each other at the same time. This does not seem to happen if p1's var(19) is set to 1. These were tested using the same attack activated on the exact same frame.

To Reproduce

  1. Get character from https://mugenguild.com/forum/topics/cage-mk2-beta-release-1-197739.0.html

  2. Use the same attack at the same time on both p1 and p2 sides.

  3. The hits will "trade" and both players will hit each other.

Expected behavior

Both players should not be able to hit each other at the same time.

Screenshots / Video

screen ikemen001 ikemen002

Engine Version (or source code date)

v0.99rc4

Operating system

Windows

Extra context or search terms

No response

potsmugen commented 1 year ago

Can't reproduce it in current build. Every time I Shift F4 the winner for that round is correctly randomized.

Are you sure you tested in RC4? It sounds a lot like issue #1410, which was recently fixed.

SaltAddict commented 1 year ago

Oops, my bad, it was RC3. Sorry about that. Glad to hear it's already been fixed.