Пример #1
0
        public void Message_ServerMovementMessage(ServerMovementMessage message)
        {
            lock(this.networkmovementprovider)
            {
                PokePlayer player = (PokePlayer) this.network.GetPlayer (message.NetworkID);

                if(player == null) return; // Wait till you load the person

                this.networkmovementprovider.EndMoveLocation (player, new MapPoint (message.X / 32, message.Y / 32), message.Animation);
            }
        }
        private void MovementProvider_PlayerMoved(object sender, MovementChangedEventArgs ev)
        {
            NetworkPlayer player = this.players[(uint) ev.Character.NetworkID];

            if(player == null) // They must be disconnected
                return;

            ServerMovementMessage movmsg = new ServerMovementMessage ()
            {
                NetworkID = ev.Character.NetworkID,
                X = ev.Character.Location.IntX,
                Y = ev.Character.Location.IntY,
                Direction = (int)ev.Character.Direction,
                Animation = ev.Character.Animation

            };

            lock(this.players.PlayerLock)
            {
                foreach(NetworkPlayer netplayer in this.players.PlayerRanges[player.NetworkID])
                {
                    netplayer.Connection.Send (movmsg);
                }
            }
        }