示例#1
0
 /// <summary>
 /// 添加玩家
 /// </summary>
 /// <param name="id">角色ID</param>
 public void AddPlayer(string id)
 {
     //多线程 可能会同时操作列表  需要加锁
     lock (list)
     {
         ScenePlayer p = new ScenePlayer();
         p.Id = id;
         list.Add(p);
     }
 }
示例#2
0
        /// <summary>
        /// 更新角色信息
        /// </summary>
        /// <param name="id">角色ID</param>
        /// <param name="x">X坐标</param>
        /// <param name="y">Y坐标</param>
        /// <param name="z">Z坐标</param>
        /// <param name="score">角色分数</param>
        public void UpdateInfo(string id, float x, float y, float z, int score)
        {
            int           count    = list.Count;
            ProtocolBytes protocol = new ProtocolBytes();
            ScenePlayer   p        = GetScenePlayer(id);

            if (p == null)
            {
                return;
            }
            p.X     = x;
            p.Y     = y;
            p.Z     = z;
            p.Score = score;
        }
示例#3
0
        /// <summary>
        /// 向指定玩家发送 该场景中的角色列表
        /// </summary>
        /// <param name="player">玩家</param>
        public void SendPlayerList(Player player)
        {
            int           count    = list.Count;
            ProtocolBytes protocol = new ProtocolBytes();

            protocol.AddString("GetList");
            protocol.AddInt(count);
            for (int i = 0; i < count; i++)
            {
                ScenePlayer p = list[i];
                protocol.AddString(p.Id);
                protocol.AddFloat(p.X);
                protocol.AddFloat(p.Y);
                protocol.AddFloat(p.Z);
                protocol.AddInt(p.Score);
            }
            player.Send(protocol);
        }
示例#4
0
        /// <summary>
        /// 删除玩家
        /// </summary>
        /// <param name="id">角色ID</param>
        public void DelPlayer(string id)
        {
            lock (list)
            {
                ScenePlayer p = GetScenePlayer(id);
                if (p != null)
                {
                    list.Remove(p);
                }
            }
            //广播通知 其他玩家 该角色离开
            //发送 PlayerLeave
            ProtocolBytes protocol = new ProtocolBytes();

            protocol.AddString("PlayerLeave");
            protocol.AddString(id);
            //广播
            ServNet.instance.Broadcast(protocol);
        }