Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unlimited Fire Sparks #197

Open
Kyristan opened this issue Oct 17, 2017 · 4 comments
Open

Unlimited Fire Sparks #197

Kyristan opened this issue Oct 17, 2017 · 4 comments

Comments

@Kyristan
Copy link

Hi,

I just ran a Server with cuwo on my local Windows-PC. And started to play with my Fire-Mage.
Everthings seems to work but once the passive ability (Fire Sparks) procs, it won't stop anymore.

As a result I can cast my special attack for free unlimited times.
I also created a new character and got the same problem everytime Fire Sparks procs for the first time.

Any ideas why this is happening and how to avoid this?

Thanks in advance. :)

@matpow2
Copy link
Owner

matpow2 commented Oct 19, 2017

Does this happen consistently? Maybe we're not handling passive abilities correctly.

Thanks!

@Atoren
Copy link

Atoren commented Mar 7, 2020

Problem occurs consistently for the following buffs/debuffs:
Dagger Poison || Guardian Bulwark || Berserker Rage || Fire Mage Passive || Ninja Passive || Scout Swiftness || Scout Passive ||
Problem does not occur with:
Wind Spirit's Speed Boost || Ice Spirit's Slow Debuff

When switching/creating a character all buffs/debuffs remain on the character.

Fixed by restarting the person's game.

@coremaze
Copy link

coremaze commented Mar 7, 2020

Does this happen consistently? Maybe we're not handling passive abilities correctly.

Thanks!

"Correctly" is not clearly defined here, as the vanilla server does not appear to handle passive abilities in the expected manner either.

This particular bug occurs because cuwo sends ServerUpdates to the client which contain passive actions which include the passive ability which was just sent by the client. Sending the passive action back to the client prompts the client to start the passive action again and to send its initial packet again. This causes an infinite loop where cuwo continually tells the client to start the ability.

In Cube World Alpha's vanilla server. It does not appear to tell any of the clients about this passive action. This is why the bug does not exist in vanilla, but it's also why the opposite bug exists in vanilla: you cannot, for example, see that another player is using Scout's Swiftness in vanilla.

In order to faithfully recreate vanilla behavior, with vanilla's bug, don't add clients' passive actions to the ServerUpdate packet.

In order to achieve expected behavior, cuwo must stop treating ServerUpdate as a broadcast packet and instead create a ServerUpdate for each client which does not contain their own passive actions.

@coremaze
Copy link

coremaze commented Mar 7, 2020

I have created a messy proof of concept fix that seems to produce expected behavior, and it would be nice for someone to test it to ensure this is the desired output.

coremaze@89565e5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants