Example #1
0
        private List <AllyData> GetAllyData(GameClient client, EAllyDataType dataType)
        {
            List <AllyData> resultList = new List <AllyData>();
            int             unionID    = client.ClientData.Faction;
            List <AllyData> result;

            if (unionID <= 0)
            {
                result = resultList;
            }
            else
            {
                BangHuiDetailData unionData = Global.GetBangHuiDetailData(-1, unionID, client.ServerId);
                if (unionData == null || !this.IsAllyOpen(unionData.QiLevel))
                {
                    result = resultList;
                }
                else
                {
                    switch (dataType)
                    {
                    case EAllyDataType.Ally:
                    {
                        List <AllyData> list = AllyClient.getInstance().HAllyDataList(unionID, EAllyDataType.Ally);
                        if (list != null && list.Count > 0)
                        {
                            resultList.AddRange(list);
                        }
                        list = AllyClient.getInstance().HAllyDataList(unionID, EAllyDataType.Request);
                        if (list != null && list.Count > 0)
                        {
                            resultList.AddRange(list);
                        }
                        break;
                    }

                    case EAllyDataType.Accept:
                    {
                        List <AllyData> list = AllyClient.getInstance().HAllyDataList(unionID, EAllyDataType.Accept);
                        if (list != null && list.Count > 0)
                        {
                            resultList.AddRange(list);
                        }
                        client.AllyTip[0] = 0;
                        if (client.AllyTip[1] <= 0)
                        {
                            client._IconStateMgr.AddFlushIconState(14111, false);
                        }
                        client._IconStateMgr.AddFlushIconState(14112, false);
                        client._IconStateMgr.SendIconStateToClient(client);
                        break;
                    }
                    }
                    result = resultList;
                }
            }
            return(result);
        }
Example #2
0
        public List <AllyData> HAllyDataList(int unionID, EAllyDataType type)
        {
            List <AllyData> list = new List <AllyData>();

            lock (_Mutex)
            {
                ConcurrentDictionary <int, List <AllyData> > dic = null;
                switch (type)
                {
                case EAllyDataType.Ally:
                    dic = _allyDic;
                    break;

                case EAllyDataType.Request:
                    dic = _requestDic;
                    break;

                case EAllyDataType.Accept:
                    dic = _acceptDic;
                    break;
                }

                if (dic.TryGetValue(unionID, out list))
                {
                    return(list);
                }

                IAllyService kuaFuService = GetKuaFuService();
                if (null == kuaFuService)
                {
                    return(list);
                }

                try
                {
                    list = kuaFuService.AllyDataList(_ClientInfo.ServerId, unionID, (int)type);
                    if (list != null)
                    {
                        dic.TryAdd(unionID, list);
                    }
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(list);
        }
Example #3
0
 public bool ProcessAllyDataCmd(GameClient client, int nID, byte[] bytes, string[] cmdParams)
 {
     try
     {
         if (!CheckHelper.CheckCmdLength(client, nID, cmdParams, 1))
         {
             return(false);
         }
         EAllyDataType   dataType = (EAllyDataType)Convert.ToInt32(cmdParams[0]);
         List <AllyData> data     = this.GetAllyData(client, dataType);
         client.sendCmd <List <AllyData> >(nID, data, false);
         return(true);
     }
     catch (Exception ex)
     {
         DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(client.ClientSocket), false, false);
     }
     return(false);
 }