I’m using the custom build Eclipse Worlds, the movement in it for most people including myself feels “clunky” and “jittery”. The more ping/farther you are from the server, the laggier and the slower your character move. Is there a way to fix this? In normal EO 3.0 no matter where you connected from, your moving would always feel fluent, but for other people viewing you, you would be lagging around a little. This is the way i want the movement to be.
Is there a simple fix for this? I’d be eternally grateful if anyone would haelp me fix this :-)
EDIT: Connect to my server with any client or download mine here to see what i mean. (13mb)
EDIT2: I think the problem is that the movement is sent like this “Client>Server>Client” I just want it to be sent like this “Client>Server”. Do you know what i mean? I want movement to be client-sided. I know people can hack that way to make their movement faster than other people. But this is just something i want temporarily until i get a good host. I’ll ban the hackers separately. The game isn’t enjoyable when moving feels really laggy and not fluent.
This is my server’s Sub HandlePlayerMove, I don’t even know if i’m supposed to edit these specific subs to make the movement less laggy and client sided, please fill me in if im wrong
This is my clients PlayerMove
Private Sub HandlePlayerMove(ByVal Index As Long, ByRef data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim I As Long Dim X As Byte Dim Y As Byte Dim oldx As Long, oldy As Long Dim distanceX As Long, distanceY As Long Dim Dir As Byte Dim n As Byte Dim buffer As clsBuffer ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Set buffer = New clsBuffer buffer.WriteBytes data() I = buffer.ReadLong X = buffer.ReadByte Y = buffer.ReadByte oldx = GetPlayerX(I) oldy = GetPlayerY(I) Dir = buffer.ReadByte n = buffer.ReadByte distanceX = (X - oldx) distanceY = (Y - oldy) Call SetPlayerX(I, X) Call SetPlayerY(I, Y) Call SetPlayerDir(I, Dir) ' Let the client know we can move. IsWaitingForMove = False TempPlayer(I).Moving = n TempPlayer(I).xOffset = distanceX * PIC_X * -1 TempPlayer(I).yOffset = distanceY * PIC_Y * -1 Exit Sub ' Error handler errorhandler: HandleError "HandlePlayerMove", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear End Sub