Пример #1
0
        /// <summary>
        /// Operation Get Level Info
        /// </summary>
        /// <param name="peer">Mmo Peer</param>
        /// <param name="request">Operation Request</param>
        /// <param name="sendParameters">Send Parameters</param>
        /// <returns>Operation Response</returns>
        public OperationResponse OperationGetLevelInfo(PeerBase peer, OperationRequest request, SendParameters sendParameters)
        {
            var operation = new LevelInfo(peer.Protocol, request);

            if (operation.IsValid)
            {
                try
                {
                    int currentCCU, maxCCU;
                    DbManager.Instance.GetCCUPerChannel(operation.WorldName, out currentCCU, out maxCCU);

                    LevelInfoResponse response = new LevelInfoResponse()
                    {
                        WorldName = operation.WorldName,
                        CurrentCCU = currentCCU,
                        MaxCCU = maxCCU
                    };

                    return new OperationResponse(request.OperationCode, response) { ReturnCode = (int)ReturnCode.Ok, DebugMessage = "OK" };
                }
                catch (Exception ex)
                {
                    log.Fatal("OperationGetLevelInfo: " + ex.ToString());
                }

                return new OperationResponse(request.OperationCode) { ReturnCode = (int)ReturnCode.Fatal, DebugMessage = "Can't Get Level Info()" };
            }
            else
            {
                return new OperationResponse(request.OperationCode) { ReturnCode = (int)ReturnCode.InvalidOperation, DebugMessage = operation.GetErrorMessage() };
            }
        }