Esempio n. 1
0
    /// <summary>
    /// 玩家状态变更
    /// </summary>
    void OnGetPlayerList(byte[] p)
    {
        if (playerListProto == null)
        {
            playerListProto = new ProtoPlayerList();
        }

        Util.DeSerializeProto <ProtoPlayerList>(p, playerListProto);

        if (Connection.GetInstance().differentUdpPort&& playerListProto != null)
        {
            ProtoPlayerInfo selfInfo = model.GetPlayerInfo();
            int             selfID   = 255;
            selfID = selfInfo == null ? selfID : selfInfo.id;
            for (int i = 0; i < playerListProto.players.Length; i++)
            {
                ProtoPlayerInfo info = playerListProto.players[i];
                if (selfID != info.id)
                {
                    Connection.GetInstance().AddBroadCastPort(info.id);
                }
            }
        }
        Debug.Log("刷新玩家信息");
    }
Esempio n. 2
0
 /// <summary>
 /// 同步玩家信息
 /// </summary>
 void SyncPlayerList()
 {
     if (playerInfos.Count > 0)
     {
         if (playerListProto == null)
         {
             playerListProto = new ProtoPlayerList();
         }
         playerListProto.players = new ProtoPlayerInfo[playerInfos.Count];
         foreach (var key in playerInfos)
         {
             playerListProto.players[(int)key.Key] = key.Value;
         }
         Broadcast(ProtoIDCfg.S_PLAYERS, playerListProto);
     }
 }
Esempio n. 3
0
 public void SetPlayerList(ProtoPlayerList playerList)
 {
     this.playerList = playerList.players;
     Debug.Log("更新玩家列表");
 }