public override async Task RunImpl() { L2Player player = _client.CurrentPlayer; L2WorldRegion prevReg = player.Region; int realX = player.X; int realY = player.Y; int realZ = player.Z; int dx = _x - realX; int dy = _y - realY; int dz = _z - realZ; double diffSq = Math.Sqrt(dx * dx + dy * dy); player.SendMessageAsync($"diff: {(int) diffSq}"); player.Movement.UpdatePosition(_x, _y, _z); if (diffSq > 600) { Log.Error($"User {player.ObjectId}:{player.Account.Login}:{player.Name} coord is unsync with server"); // TODO: Add teleport back } L2World.UpdateRegion(player); //Log.Info($"Current client position: X:{_x}, Y:{_y}, Z:{_z}"); //debug player.BroadcastUserInfoAsync(); }