Displacement/Ghosting Bug

If you find any bugs/glitches in the game, please post them here.
Post Reply
User avatar
Errors
Posts: 108
Joined: Nov 21 2017

Displacement/Ghosting Bug

Post by Errors » Nov 1st, 2018, 12:36 am

So this one is interesting, sort of a 2 in 1 package deal. Now to perform this bug, you should have the client in the smaller window size for ease of access. When walking you simply click off-screen from the game to your desktop or anywhere and for a split second you will notice the screen or your character studder very quickly, this means that you were able to do it. You will be able to walk through players only in a straight path.

Now for part 2

While doing this you can turn your character and in-between turning you click off screen again and this will displace your character in-between tiles. Doing this will walk you through players or it may seem so. What actually happened is that your character is on tile A, but you are actually on tile B.

Warning though, don't attempt this in warps, it will freeze your client and will have to close and reopen it. Your character will be online while you are stuck on the loading screen. Doing this in any area with aggro monsters will kill you.

I'll post a video of this later and link it.
Here is the link to the video.
https://youtu.be/VLPn0-HKqbU
Attachments
Untitled.png
Looks a little something like this
Untitled.png (214.84 KiB) Viewed 3807 times
Last edited by Errors on Nov 2nd, 2018, 3:55 am, edited 1 time in total.
"I found another Glitch" -Errors

User avatar
Harlan
Programmer
Posts: 168
Joined: Oct 21 2017
Location: `merica
Contact:

Re: Displacement/Ghosting Bug

Post by Harlan » Nov 1st, 2018, 7:54 am

A few notes:
- The bug only applies to a set of directions ( up/down, right/left )
- If you attempt to ghost through a wall, the server forces you back to your original position
- This bug occurs because the server cannot verify your x coordinates while up/down, and cannot verify your y axis while left/right walking.
- Chairs do not verify your x/y location when you attempt to sit down.

The preferable course of action would be to: 1. Add walker condition which verifies map location before allowing sit down to occur or phase back the player if the condition fails. 2. Walking packets should send both x and y coordinates to the server for verification ( which will tack on another 2 bytes per packet ).

Errors: If you noticed any other strange behavior, then let me know.

User avatar
Harlan
Programmer
Posts: 168
Joined: Oct 21 2017
Location: `merica
Contact:

Re: Displacement/Ghosting Bug

Post by Harlan » Nov 1st, 2018, 8:10 am

Abi wrote: A few notes:

- Chairs do not verify your x/y location when you attempt to sit down.

The preferable course of action would be to: 1. Add walker condition which verifies map location before allowing sit down to occur or phase back the player if the condition fails.
Allowing the server to continue making assumptions as to -which- chair the player is targeting might become problematic in a row of chairs. Requiring the client to send a chair sitting request to the server with the target coordinates so the server does not have to verify future locations would be more accurate, and would prevent the directional set issues.

User avatar
Errors
Posts: 108
Joined: Nov 21 2017

Re: Displacement/Ghosting Bug

Post by Errors » Nov 1st, 2018, 10:48 pm

I don't know if this means anything. When I happened to do the glitch/bug I noticed that the cursor is between tiles too.
Attachments
Untitled.png
Untitled.png (39.22 KiB) Viewed 3778 times
"I found another Glitch" -Errors

User avatar
Errors
Posts: 108
Joined: Nov 21 2017

Re: Displacement/Ghosting Bug

Post by Errors » Nov 2nd, 2018, 4:32 am

So after reviewing the video I noticed that I am not actually ghosting anything. It only looks like I am due to the displacement.

I think..
"I found another Glitch" -Errors

PlasmaStar
Posts: 2
Joined: Aug 05 2018

Re: Displacement/Ghosting Bug

Post by PlasmaStar » Nov 2nd, 2018, 10:21 am

Abi wrote:2. Walking packets should send both x and y coordinates to the server for verification ( which will tack on another 2 bytes per packet ).
Ideally, you should not have to do that, unless you intend to IGNORE walking packets completely (as Endless Online did in an attempt to prevent speeding), as the server/client shouldn't come out of sync unless the client's being tampered with/bugged. If the server wants to place a character to a specific coordinate, have it send the coordinates to the client, then ignore walking packets until the client acknowledges the new coordinates.


Note: As for speed prevention, EOMain uses timestamps and ignores packets, EOSERV mostly uses its queue system, and EORemake uses some sort of timestamp + steps/second hybrid.

User avatar
Harlan
Programmer
Posts: 168
Joined: Oct 21 2017
Location: `merica
Contact:

Re: Displacement/Ghosting Bug

Post by Harlan » Nov 2nd, 2018, 8:04 pm

PlasmaStar wrote:
Abi wrote:2. Walking packets should send both x and y coordinates to the server for verification ( which will tack on another 2 bytes per packet ).
Ideally, you should not have to do that, unless you intend to IGNORE walking packets completely (as Endless Online did in an attempt to prevent speeding), as the server/client shouldn't come out of sync unless the client's being tampered with/bugged. If the server wants to place a character to a specific coordinate, have it send the coordinates to the client, then ignore walking packets until the client acknowledges the new coordinates.


Note: As for speed prevention, EOMain uses timestamps and ignores packets, EOSERV mostly uses its queue system, and EORemake uses some sort of timestamp + steps/second hybrid.
It's only going to be used for verification. If the coordinates received are invalid as in - not -1/+1 on the x/y axis, then the walking packet and the player is pushed back to previous coordinates on the client ( this is already what happens ). I'm obviously going to try fix the actual issue on the client with clicking off the screen mid-walking, but the server doing some correction is probably smart if a client happens to run into another bug.

As for the anti-speed system. I'm still trying to come up with a good method which doesn't require me to redo too much of the packet sending system.

User avatar
Harlan
Programmer
Posts: 168
Joined: Oct 21 2017
Location: `merica
Contact:

Re: Displacement/Ghosting Bug

Post by Harlan » Nov 2nd, 2018, 8:04 pm

Errors wrote: So after reviewing the video I noticed that I am not actually ghosting anything. It only looks like I am due to the displacement.

I think..
Yup. This is why you're phased back when you try to ghost through a wall.

PlasmaStar
Posts: 2
Joined: Aug 05 2018

Re: Displacement/Ghosting Bug

Post by PlasmaStar » Nov 2nd, 2018, 8:37 pm

Abi wrote:the server doing some correction is probably smart if a client happens to run into another bug.
Future syncing problems may become more difficult to reproduce and report!

User avatar
Harlan
Programmer
Posts: 168
Joined: Oct 21 2017
Location: `merica
Contact:

Re: Displacement/Ghosting Bug

Post by Harlan » Nov 2nd, 2018, 9:03 pm

PlasmaStar wrote:
Abi wrote:the server doing some correction is probably smart if a client happens to run into another bug.
Future syncing problems may become more difficult to reproduce and report!
The phaseback is noticeable, but at least the user can continue without affecting their client/and other clients.

Post Reply