private void OnMovePlayerAction(MovePlayerArgs e) { if (MovePlayer != null) { MovePlayer(this, e); } }
/* * private void GameServer_RemovePlayer(int playerId) * { * Player player = GameServer.Instance.GameManager.Players.GetPlayerByID(playerId); * * if (player != null && Me.Id != playerId) * { * GameServer.Instance.GameManager.RemovePlayer(player); * } * } */ private void GameServer_MovePlayer(object sender, MovePlayerArgs arg) { Client client = GameServer.Instance.Clients.GetClientById(arg.ClientId); if (client != null) { if (client.Player != null) { // If it's us, we interpolate if (false /*client == GameServer.Instance.Clients.Me*/) { var me = (OnlineHumanPlayer)client.Player; me.SetNextPosition(arg.Position); } else { client.Player.Position = arg.Position; } client.Player.ChangeLookDirection(arg.Direction); } else { throw new Exception("This player doesn't exist ! (clientId: " + arg.ClientId + ")"); } } else { throw new Exception("This client doesn't exist ! (clientId: " + arg.ClientId + ")"); } }
private void ReceivePosition(float positionX, float positionY, byte direction, int clientId) { var arg = new MovePlayerArgs { Position = { X = positionX, Y = positionY }, Direction = direction, ClientId = clientId }; OnMovePlayerAction(arg); }