Example #1
0
        public int ChangeRoleState(int roleId, KuaFuRoleStates state, bool noWait = false)
        {
            int result = StdErrorCode.Error_Operation_Faild;

            IKuaFuService 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);
        }
Example #2
0
        public int RoleChangeState(int serverId, int rid, int state)
        {
            int           result       = -11;
            IKuaFuService kuaFuService = this.GetKuaFuService(false);

            if (null != kuaFuService)
            {
                try
                {
                    result = kuaFuService.RoleChangeState(serverId, rid, state);
                }
                catch (Exception ex)
                {
                    this.ResetKuaFuService();
                }
            }
            return(result);
        }
Example #3
0
        public int ChangeRoleState(int roleId, KuaFuRoleStates state, bool noWait = false)
        {
            int           result        = -11;
            KuaFuRoleData kuaFuRoleData = null;
            int           serverId      = this.ClientInfo.ServerId;

            lock (this.Mutex)
            {
                if (this.RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                {
                    serverId = kuaFuRoleData.ServerId;
                }
            }
            IKuaFuService kuaFuService = this.GetKuaFuService(noWait);

            if (null != kuaFuService)
            {
                try
                {
                    result = kuaFuService.RoleChangeState(serverId, roleId, (int)state);
                    if (result >= 0)
                    {
                        lock (this.Mutex)
                        {
                            if (this.RoleId2RoleDataDict.TryGetValue(roleId, out kuaFuRoleData))
                            {
                                kuaFuRoleData.State = (KuaFuRoleStates)result;
                            }
                        }
                        if (null != kuaFuRoleData)
                        {
                            this.UpdateRoleData(kuaFuRoleData, 0);
                        }
                    }
                }
                catch (Exception ex)
                {
                    result = -11003;
                }
            }
            return(result);
        }
Example #4
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;

            IKuaFuService kuaFuService = GetKuaFuService();

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

            return(result);
        }