Esempio n. 1
0
        /// <summary>
        /// 改变角色的在某个游戏副本中的状态
        /// </summary>
        /// <param name="roleId"></param>
        /// <param name="state"></param>
        /// <param name="serverId">如果不知道,传0</param>
        /// <param name="gameId"></param>
        /// <returns></returns>
        public int GameFuBenRoleChangeState(int roleId, int state, int serverId = 0, int gameId = 0)
        {
            try
            {
                ITianTiService kuaFuService = GetKuaFuService();
                if (null != kuaFuService)
                {
                    if (serverId <= 0 || gameId <= 0)
                    {
                        KuaFuRoleData kuaFuRoleData;
                        if (!RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                        {
                            return((int)KuaFuRoleStates.None);
                        }

                        serverId = kuaFuRoleData.ServerId;
                        gameId   = kuaFuRoleData.GameId;
                    }

                    return(KuaFuService.GameFuBenRoleChangeState(serverId, roleId, gameId, state));
                }
            }
            catch (System.Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }

            return(0);
        }
Esempio n. 2
0
 private void ResetKuaFuService()
 {
     RemoteServiceUri = CoreInterface.GetRuntimeVariable("TianTiUri", null);
     lock (Mutex)
     {
         KuaFuService = null;
     }
 }
Esempio n. 3
0
        public void TimerProc(object sender, EventArgs e)
        {
            try
            {
                string tianTiUri = CoreInterface.GetRuntimeVariable(RuntimeVariableNames.TianTiUri, null);
                if (RemoteServiceUri != tianTiUri)
                {
                    RemoteServiceUri = tianTiUri;
                }

                ITianTiService kuaFuService = GetKuaFuService();
                if (null != kuaFuService)
                {
                    if (ClientInfo.ClientId > 0)
                    {
                        List <KuaFuServerInfo> dict = kuaFuService.GetKuaFuServerInfoData(ServerInfoAsyncAge);
                        if (null != dict && dict.Count > 0)
                        {
                            lock (Mutex)
                            {
                                ServerIdServerInfoDict.Clear();
                                bool first = true;
                                foreach (var item in dict)
                                {
                                    ServerIdServerInfoDict[item.ServerId] = item;
                                    if (first)
                                    {
                                        first = false;
                                        ServerInfoAsyncAge = item.Age;
                                    }
                                    if (ClientInfo.ServerId == item.ServerId)
                                    {
                                        LocalServerFlags = item.Flags;
                                    }
                                }
                            }
                        }

                        //同步数据
                        AsyncDataItem[] items = kuaFuService.GetClientCacheItems(ClientInfo.ServerId);
                        if (null != items && items.Length > 0)
                        {
                            //ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteEventCallBackAsync), items);
                            ExecuteEventCallBackAsync(items);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                ResetKuaFuService();
            }
        }
Esempio n. 4
0
        public void UpdateRoleInfoData(TianTiRoleInfoData data)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    kuaFuService.UpdateRoleInfoData(data);
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }
        }
Esempio n. 5
0
        public TianTiRankData GetRankingData()
        {
            TianTiRankData tianTiRankData;
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    DateTime modifyTime;
                    lock (Mutex)
                    {
                        modifyTime = RankData.ModifyTime;
                    }

                    tianTiRankData = kuaFuService.GetRankingData(modifyTime);
                    lock (Mutex)
                    {
                        if (tianTiRankData != null && tianTiRankData.ModifyTime > RankData.ModifyTime)
                        {
                            RankData = tianTiRankData;
                        }

                        tianTiRankData                = new TianTiRankData();
                        tianTiRankData.ModifyTime     = RankData.ModifyTime;
                        tianTiRankData.MaxPaiMingRank = RankData.MaxPaiMingRank;
                        if (RankData.TianTiRoleInfoDataList != null && RankData.TianTiRoleInfoDataList.Count > 0)
                        {
                            tianTiRankData.TianTiRoleInfoDataList = new List <TianTiRoleInfoData>(RankData.TianTiRoleInfoDataList);
                        }
                        if (RankData.TianTiMonthRoleInfoDataList != null && RankData.TianTiMonthRoleInfoDataList.Count > 0)
                        {
                            tianTiRankData.TianTiMonthRoleInfoDataList = new List <TianTiRoleInfoData>(RankData.TianTiMonthRoleInfoDataList);
                        }

                        return(tianTiRankData);
                    }
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(null);
        }
Esempio n. 6
0
        public int ChangeRoleState(int roleId, KuaFuRoleStates state, bool noWait = false)
        {
            int result = StdErrorCode.Error_Operation_Faild;

            ITianTiService kuaFuService  = null;
            KuaFuRoleData  kuaFuRoleData = null;
            int            serverId      = ClientInfo.ServerId;

            lock (Mutex)
            {
                if (RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                {
                    serverId = kuaFuRoleData.ServerId;
                }
            }

            kuaFuService = GetKuaFuService(noWait);
            if (null != kuaFuService)
            {
                try
                {
                    result = kuaFuService.RoleChangeState(serverId, roleId, (int)state);
                    if (result >= 0)
                    {
                        lock (Mutex)
                        {
                            if (RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                            {
                                kuaFuRoleData.State = (KuaFuRoleStates)result;
                            }
                        }

                        if (null != kuaFuRoleData)
                        {
                            UpdateRoleData(kuaFuRoleData);
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    result = StdErrorCode.Error_Server_Internal_Error;
                }
            }

            return(result);
        }
Esempio n. 7
0
        public int ZhengBaKuaFuLogin(int roleId, int gameId)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.ZhengBaKuaFuLogin(roleId, gameId));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(StdErrorCode.Error_Server_Internal_Error);
        }
Esempio n. 8
0
        public List <ZhengBaNtfPkResultData> ZhengBaPkResult(int gameId, int winner, int FirstLeaveRoleId)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.ZhengBaPkResult(gameId, winner, FirstLeaveRoleId));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(null);
        }
Esempio n. 9
0
        public int ZhengBaRequestEnter(int roleId, int gameId, EZhengBaEnterType enter)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.ZhengBaRequestEnter(roleId, gameId, enter));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(StdErrorCode.Error_Server_Internal_Error);
        }
Esempio n. 10
0
        public int ZhengBaSupport(ZhengBaSupportLogData data)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.ZhengBaSupport(data));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(StdErrorCode.Error_Server_Internal_Error);
        }
Esempio n. 11
0
        public ZhengBaSyncData GetZhengBaRankData(ZhengBaSyncData lastSyncData)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.SyncZhengBaData(lastSyncData));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(null);
        }
Esempio n. 12
0
        public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    kuaFuService.CoupleWishReportCoupleStatue(req);
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }
            else
            {
            }
        }
Esempio n. 13
0
        /// <summary>
        /// 从服务器获取角色数据
        /// </summary>
        /// <param name="serverId"></param>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public KuaFuRoleData GetKuaFuRoleDataFromServer(int serverId, int roleId)
        {
            KuaFuRoleData  kuaFuRoleData = null;
            ITianTiService kuaFuService  = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    kuaFuRoleData = (KuaFuRoleData)kuaFuService.GetKuaFuRoleData(serverId, roleId);
                    UpdateRoleData(kuaFuRoleData); //更新
                }
                catch (System.Exception ex)
                {
                    kuaFuRoleData = null;
                }
            }

            return(kuaFuRoleData);
        }
Esempio n. 14
0
        /// <summary>
        /// 游戏副本状态变更
        /// </summary>
        /// <param name="gameId"></param>
        /// <param name="state"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public int GameFuBenChangeState(int gameId, GameFuBenState state, DateTime time)
        {
            int            result       = StdErrorCode.Error_Server_Busy;
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    result = kuaFuService.GameFuBenChangeState(gameId, state, time);
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    result = StdErrorCode.Error_Server_Internal_Error;
                }
            }

            return(result);
        }
Esempio n. 15
0
        /// <summary>
        /// 角色状态修改
        /// </summary>
        /// <param name="rid"></param>
        /// <param name="gameType"></param>
        /// <param name="groupIndex"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public int RoleChangeState(int serverId, int rid, int state)
        {
            int result = StdErrorCode.Error_Operation_Faild;

            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    result = kuaFuService.RoleChangeState(serverId, rid, state);
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }

            return(result);
        }
Esempio n. 16
0
        public int CoupleArenaPreDivorce(int roleId1, int roleId2)
        {
            ITianTiService kuaFuService = GetKuaFuService(true);

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleArenaPreDivorce(roleId1, roleId2));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(StdErrorCode.Error_Server_Internal_Error);
                }
            }
            else
            {
                return(StdErrorCode.Error_Server_Not_Registed);
            }
        }
Esempio n. 17
0
        public CoupleArenaPkResultRsp CoupleArenaPkResult(CoupleArenaPkResultReq req)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleArenaPkResult(req));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 18
0
        public CoupleArenaSyncData CoupleArenaSync(DateTime lastSyncTime)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleArenaSync(lastSyncTime));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 19
0
        public int CoupleWishJoinParty(int fromRole, int fromZone, int toCoupleId)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleWishJoinParty(fromRole, fromZone, toCoupleId));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(StdErrorCode.Error_Server_Internal_Error);
                }
            }
            else
            {
                return(StdErrorCode.Error_Server_Not_Registed);
            }
        }
Esempio n. 20
0
        public int CoupleWishPreDivorce(int man, int wife)
        {
            ITianTiService kuaFuService = GetKuaFuService(true);

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleWishPreDivorce(man, wife));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(StdErrorCode.Error_Server_Internal_Error);
                }
            }
            else
            {
                return(StdErrorCode.Error_Server_Not_Registed);
            }
        }
Esempio n. 21
0
        public CoupleWishSyncData CoupleWishSyncCenterData(DateTime oldThisWeek, DateTime oldLastWeek, DateTime oldStatue)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleWishSyncCenterData(oldThisWeek, oldLastWeek, oldStatue));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 22
0
        public List <CoupleWishWishRecordData> CoupleWishGetWishRecord(int roleId)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleWishGetWishRecord(roleId));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 23
0
        public int CoupleWishWishRole(CoupleWishWishRoleReq req)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.CoupleWishWishRole(req));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(StdErrorCode.Error_Server_Internal_Error);
                }
            }
            else
            {
                return(StdErrorCode.Error_Server_Not_Registed);
            }
        }
Esempio n. 24
0
        public CoupleArenaFuBenData GetFuBenData(long gameId)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    return(kuaFuService.GetFuBenData(gameId));
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 25
0
        private TianTiFuBenData GetKuaFuFuBenData(int gameId)
        {
            TianTiFuBenData TianTiFuBenData = null;

            if (TianTiFuBenData == null)
            {
                ITianTiService kuaFuService = GetKuaFuService();
                if (null != kuaFuService)
                {
                    try
                    {
                        TianTiFuBenData = (TianTiFuBenData)kuaFuService.GetFuBenData(gameId);
                    }
                    catch (System.Exception ex)
                    {
                        TianTiFuBenData = null;
                    }
                }
            }

            return(TianTiFuBenData);
        }
Esempio n. 26
0
        /// <summary>
        /// 从服务器获取
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public int GetRoleKuaFuFuBenRoleCount(int roleId)
        {
            int roleCount = 0;

            try
            {
                ITianTiService kuaFuService = GetKuaFuService();
                if (null != kuaFuService)
                {
                    object result = kuaFuService.GetRoleExtendData(ClientInfo.ServerId, roleId, (int)KuaFuRoleExtendDataTypes.GameFuBenRoleCount);
                    if (null != result)
                    {
                        roleCount = (int)result;
                    }
                }
            }
            catch (System.Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }

            return(roleCount);
        }
Esempio n. 27
0
        private ITianTiService GetKuaFuService(bool noWait = false)
        {
            ITianTiService kuaFuService = null;
            int            clientId     = -1;

            try
            {
                lock (Mutex)
                {
                    if (string.IsNullOrEmpty(RemoteServiceUri))
                    {
                        return(null);
                    }

                    if (null == KuaFuService && noWait)
                    {
                        return(null);
                    }
                }

                lock (RemotingMutex)
                {
                    if (KuaFuService == null)
                    {
                        kuaFuService = (ITianTiService)Activator.GetObject(typeof(ITianTiService), RemoteServiceUri);
                        if (null == kuaFuService)
                        {
                            return(null);
                        }
                    }
                    else
                    {
                        kuaFuService = KuaFuService;
                    }

                    //KuaFuClientContext clientContext = CallContext.GetData("KuaFuClientContext") as KuaFuClientContext;
                    //if (null == clientContext)
                    //{
                    //    CallContext.SetData("KuaFuClientContext", new KuaFuClientContext() { ServerId = ClientInfo.ServerId, ClientId = ClientInfo.ClientId });
                    //}

                    clientId = kuaFuService.InitializeClient(this, ClientInfo);

                    if (null != kuaFuService && (clientId != ClientInfo.ClientId || KuaFuService != kuaFuService))
                    {
                        lock (Mutex)
                        {
                            KuaFuService        = kuaFuService;
                            ClientInfo.ClientId = clientId;
                            return(kuaFuService);
                        }
                    }

                    return(KuaFuService);
                }
            }
            catch (System.Exception ex)
            {
                ResetKuaFuService();
                LogManager.WriteExceptionUseCache(ex.ToString());
            }

            return(null);
        }
Esempio n. 28
0
        /// <summary>
        /// 匹配报名
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="roleId"></param>
        /// <param name="zoneId"></param>
        /// <param name="gameType"></param>
        /// <param name="groupIndex"></param>
        /// <returns></returns>
        public int TianTiSignUp(string userId, int roleId, int zoneId, int gameType, int groupIndex, int zhanDouLi)
        {
            int result;

            if (string.IsNullOrEmpty(userId) || roleId <= 0)
            {
                return(StdErrorCode.Error_Not_Exist);
            }

            userId = userId.ToUpper();
            int count = Interlocked.Increment(ref CurrentRequestCount);

            try
            {
                if (count < MaxRequestCount)
                {
                    lock (Mutex)
                    {
                        KuaFuRoleData kuaFuRoleData;
                        if (RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                        {
                            //如果服务器ID不同,表明是跨服登录角色,不应该在此报名
                            if (kuaFuRoleData.ServerId != ClientInfo.ServerId)
                            {
                                return(StdErrorCode.Error_Operation_Faild);
                            }
                        }
                    }

                    ITianTiService kuaFuService = GetKuaFuService();
                    if (null != kuaFuService)
                    {
                        try
                        {
                            TianTiGameData TianTiGameData = new TianTiGameData()
                            {
                                ZhanDouLi = zhanDouLi
                            };
                            result = kuaFuService.RoleSignUp(ClientInfo.ServerId, userId, zoneId, roleId, gameType, groupIndex, TianTiGameData);
                        }
                        catch (System.Exception ex)
                        {
                            ResetKuaFuService();
                        }
                    }
                    else
                    {
                        return(StdErrorCode.Error_Server_Not_Registed);
                    }
                }
            }
            catch (System.Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
            finally
            {
                Interlocked.Decrement(ref CurrentRequestCount);
            }

            return(StdErrorCode.Error_Success);
        }