示例#1
0
        private Google.Protobuf.IMessage ReceiveMessage()
        {
            socket.Blocking = true;

            uint expected = headerSize;
            int  n        = 0;

            Byte[] headerBytes = new Byte[expected];
            while (n < expected)
            {
                int m = socket.Receive(headerBytes, n, (int)expected - n, SocketFlags.None);
                //Console.WriteLine("HDR: n={0} m={1}", n, m);
                n += m;
            }
            Google.Protobuf.CodedInputStream headerStream = new Google.Protobuf.CodedInputStream(headerBytes);
            Message.Header header = new Message.Header();
            header.MergeFrom(headerStream);

            expected = header.MessageSize;
            n        = 0;
            Byte[] messageBytes = new Byte[expected];
            while (n < expected)
            {
                int m = socket.Receive(messageBytes, n, (int)expected - n, SocketFlags.None);
                //Console.WriteLine("MSG: n={0} m={1}", n, m);
                n += m;
            }
            Google.Protobuf.CodedInputStream messageStream = new Google.Protobuf.CodedInputStream(messageBytes);
            Google.Protobuf.IMessage         message       = GetMessageBuilder(header.MessageType);
            message.MergeFrom(messageStream);

            return(message);
        }
示例#2
0
文件: CSBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnCs2DbQueryRanking(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.CS2DB_QueryRanking request = (Protos.CS2DB_QueryRanking)message;
            int @from = request.From;
            int count = request.Count;

            Protos.DB2CS_QueryRankingRet resp = ProtoCreator.R_CS2DB_QueryRanking(request.Opts.Pid);
            string    str       = $"SELECT id,uname,nickname,avatar,gender,last_login_time,ranking,exp FROM account_user ORDER BY ranking DESC LIMIT {@from}, {count}";
            ErrorCode errorCode = DB.instance.accountDB.SqlExecQuery(str, dataReader =>
            {
                while (dataReader.Read())
                {
                    Protos.DB2CS_RankingInfo rankingInfo = new Protos.DB2CS_RankingInfo();
                    rankingInfo.Ukey          = dataReader.GetUInt32("id");
                    rankingInfo.Name          = dataReader.GetString("nickname");
                    rankingInfo.Avatar        = dataReader.GetString("avatar");
                    rankingInfo.Gender        = dataReader.GetByte("gender");
                    rankingInfo.LastLoginTime = dataReader.GetInt64("last_login_time");
                    rankingInfo.Rank          = dataReader.GetInt32("ranking");
                    rankingInfo.Exp           = dataReader.GetInt32("exp");
                    resp.RankingInfos.Add(rankingInfo);
                }
                return(ErrorCode.Success);
            });

            session.Send(resp);
            return(ErrorCode.Success);
        }
        static StackObject *MergeFrom_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 4);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Int32 @length = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            System.Int32 @offset = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            System.Byte[] @data = (System.Byte[]) typeof(System.Byte[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
            Google.Protobuf.IMessage @message = (Google.Protobuf.IMessage) typeof(Google.Protobuf.IMessage).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);


            Google.Protobuf.MessageExtensions.MergeFrom(@message, @data, @offset, @length);

            return(__ret);
        }
        private void MsgLoginByTokenRs(Google.Protobuf.IMessage msg)
        {
            Proto.LoginByTokenRs protoRs = msg as Proto.LoginByTokenRs;
            if (protoRs == null)
            {
                return;
            }

            switch (protoRs.ReturnCode)
            {
            case Proto.LoginByTokenRs.Types.ReturnCode.LgrcNotFoundAccount:
                UiMgr.GetInstance().CloseModalBox0();
                UiMgr.GetInstance().OpenModalBox1("登录消息", $"[No:{protoRs.ReturnCode}]Token与账号不匹配...", Show);
                break;

            case Proto.LoginByTokenRs.Types.ReturnCode.LgrcTokenWrong:
                UiMgr.GetInstance().CloseModalBox0();
                UiMgr.GetInstance().OpenModalBox1("登录消息", $"[No:{protoRs.ReturnCode}]Token不匹配...", Show);
                break;

            case Proto.LoginByTokenRs.Types.ReturnCode.LgrcUnkonwn:
                UiMgr.GetInstance().CloseModalBox0();
                UiMgr.GetInstance().OpenModalBox1("登录消息", $"[No:{protoRs.ReturnCode}]未知错误...", Show);
                break;

            case Proto.LoginByTokenRs.Types.ReturnCode.LgrcOk:
                UiMgr.GetInstance().OpenModalBox0("登录消息", "登录成功,正在进入游戏...");
                break;

            default:
                UiMgr.GetInstance().CloseModalBox0();
                UiMgr.GetInstance().OpenModalBox1("登录消息", $"[No:{protoRs.ReturnCode}]未知错误...", Show);
                break;
            }
        }
示例#5
0
        /// <summary>
        /// 发送数据给服务器
        /// </summary>
        public void Send(Google.Protobuf.IMessage msg)
        {
            if (IsConnected == false)
            {
                Debug.LogError("服务器未连接!");
                return;
            }

            if (null == msg)
            {
                Debug.LogError("消息不能为空!");
                return;
            }

            try
            {
                clientSocket.Send(ProtobufEncoding.Encode(msg));
            }
            catch
            {
                IsConnected = false;
                clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
            }
        }
示例#6
0
 public ErrorCode OnCs2LsGslost(NetSessionBase session, Google.Protobuf.IMessage message)
 {
     Protos.CS2LS_GSLost gsLost = (Protos.CS2LS_GSLost)message;
     LS.instance.gsInfos.Remove(gsLost.Gsid);
     Logger.Log($"GS lost:{gsLost.Gsid},count:{LS.instance.gsInfos.Count}");
     return(ErrorCode.Success);
 }
示例#7
0
        static int _m_SendToUser(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                BattleServer.User.BSUserMgr __cl_gen_to_be_invoked = (BattleServer.User.BSUserMgr)translator.FastGetCSObj(L, 1);



                {
                    ulong gcNID = LuaAPI.lua_touint64(L, 2);
                    Google.Protobuf.IMessage message = (Google.Protobuf.IMessage)translator.GetObject(L, 3, typeof(Google.Protobuf.IMessage));

                    bool __cl_gen_ret = __cl_gen_to_be_invoked.SendToUser(gcNID, message);
                    LuaAPI.lua_pushboolean(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
示例#8
0
        public void RoleAppear(Google.Protobuf.IMessage msg)
        {
            if (!(msg is Proto.RoleAppear appear))
            {
                UnityEngine.Debug.LogWarning($"parse RoleAppear error.");
                return;
            }

            foreach (var role in appear.Role)
            {
                var sn = role.Sn;
                if (!_players.ContainsKey(sn))
                {
                    RoleAppear appearObj = new RoleAppear();
                    appearObj.Parse(role);
                    _players.Add(sn, appearObj);
                    appearObj.Load3DObj();

                    UnityEngine.Debug.LogFormat($"sync player sn:{sn} world id:{_ref.GetId()}");
                }
                else
                {
                    _players[sn].Parse(role);
                }
            }
        }
        // 客户端为了0GC需要消息池,服务端消息需要跨协程不需要消息池
        public object GetInstance(ushort opcode)
        {
            //暂时先不用控制GC的方式
            var type = this.GetTypeById(opcode);

            Google.Protobuf.IMessage message = typeMessages[opcode] as Google.Protobuf.IMessage;
            return(Activator.CreateInstance(type));
        }
示例#10
0
 private static void OnGSAskPingRet(NetSessionBase session, Google.Protobuf.IMessage message, object[] args)
 {
     //long currTime = TimeUtils.utcTime;
     //Protos.G_AskPingRet askPingRet = ( Protos.G_AskPingRet )message;
     //long lag = ( long )( ( currTime - askPingRet.Stime ) * 0.5 );
     //long timeDiff = askPingRet.Time + lag - currTime;
     //Logger.Log( $"cs ping ret, lag:{lag}, timediff:{timeDiff}" );
 }
示例#11
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
 public ErrorCode OnGc2GsKeepAlive(NetSessionBase session, Google.Protobuf.IMessage message)
 {
     if (session is ClientSession gcSession)
     {
         gcSession.activeTime = TimeUtils.utcTime;
     }
     return(ErrorCode.Success);
 }
示例#12
0
 private void EncodeProto()
 {
     Google.Protobuf.IMessage im = (Google.Protobuf.IMessage)mProto;
     if (im != null)
     {
         mProtoBytes = Google.Protobuf.MessageExtensions.ToByteArray(im);
     }
 }
示例#13
0
文件: BSBiz.cs 项目: niuniuzhu/KOW
 public ErrorCode OnBSAskPing(NetSessionBase session, Google.Protobuf.IMessage message)
 {
     Protos.G_AskPing    askPing    = (Protos.G_AskPing)message;
     Protos.G_AskPingRet askPingRet = ProtoCreator.R_G_AskPing(askPing.Opts.Pid);
     askPingRet.Stime = askPing.Time;
     askPingRet.Time  = TimeUtils.utcTime;
     session.Send(askPingRet);
     return(ErrorCode.Success);
 }
示例#14
0
 public ErrorCode OnCs2LsGsinfos(NetSessionBase session, Google.Protobuf.IMessage message)
 {
     Protos.CS2LS_GSInfos gsInfos = (Protos.CS2LS_GSInfos)message;
     foreach (Protos.GSInfo gsInfo in gsInfos.GsInfo)
     {
         this.GCStateReportHandler(gsInfo);
     }
     return(ErrorCode.Success);
 }
示例#15
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGc2BsAskLogin(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.GC2BS_AskLogin login    = (Protos.GC2BS_AskLogin)message;
            Protos.BS2GC_LoginRet loginRet = ProtoCreator.R_GC2BS_AskLogin(login.Opts.Pid);

            //验证并登陆
            BSUser user = BS.instance.userMgr.Online(login.SessionID, session.id);

            if (user != null)
            {
                ClientSession gcSession = ( ClientSession )session;
                //设置该Session为受信任的连接
                gcSession.accredited = true;
                //把战场的初始状态下发到GC
                loginRet.PlayerID     = user.gcNID;
                loginRet.RndSeed      = user.battle.rndSeed;
                loginRet.FrameRate    = user.battle.frameRate;
                loginRet.KeyframeStep = user.battle.keyframeStep;
                loginRet.SnapshotStep = user.battle.snapshotStep;
                loginRet.BattleTime   = user.battle.battleTime;
                loginRet.MapID        = user.battle.mapID;
                loginRet.CurFrame     = user.battle.frame;
                int c1 = user.battle.battleEntry.users.Length;
                for (int i = 0; i < c1; i++)
                {
                    var team     = user.battle.battleEntry.users[i];
                    int c2       = team.Length;
                    var teamInfo = new Protos.CS2BS_TeamInfo();
                    loginRet.TeamInfos.Add(teamInfo);
                    for (int j = 0; j < c2; j++)
                    {
                        BSUser player = team[j];
                        Protos.CS2BS_PlayerInfo playerInfo = new Protos.CS2BS_PlayerInfo
                        {
                            GcNID    = player.gcNID,
                            ActorID  = player.actorID,
                            Nickname = player.nickname,
                            Avatar   = player.avatar,
                            Gender   = player.gender,
                            Rank     = player.rank,
                            Exp      = player.exp
                        };
                        teamInfo.PlayerInfos.Add(playerInfo);
                    }
                }

                loginRet.Result = Protos.Global.Types.ECommon.Success;
                session.Send(loginRet);
            }
            else
            {
                loginRet.Result = Protos.Global.Types.ECommon.Failed;
                session.Send(loginRet);
                session.Close(true, "client login failed");
            }
            return(ErrorCode.Success);
        }
示例#16
0
        private void SendProtoBuf(int packet_id, Google.Protobuf.IMessage msg)
        {
            Packet pkt = PacketManager.Instance.AllocatePacket();

            pkt.SetPacketID(packet_id);
            pkt.AddProtoBuf(msg);

            SendPacket(pkt);
        }
示例#17
0
        public bool SendPacket(Proto.MsgId msgId, Google.Protobuf.IMessage msg)
        {
            if (_state != NetworkState.Connected)
            {
                return(false);
            }

            int size = 0;

            if (msg != null)
            {
                size = msg.CalculateSize();
            }

            if (msgId != Proto.MsgId.MiPing)
            {
                UnityEngine.Debug.Log("send msg. msg_id:" + msgId + " msg size:" + size);
            }

            var          byteStream = new MemoryStream();
            BinaryWriter bw         = new BinaryWriter(byteStream);
            var          totalLen   = size + PacketHead.HeadSize;

            bw.Write((ushort)totalLen);     // total size
            bw.Write((ushort)2);            // head size
            bw.Write((ushort)msgId);

            if (msg != null)
            {
                Google.Protobuf.CodedOutputStream outStream = new Google.Protobuf.CodedOutputStream(byteStream);
                msg.WriteTo(outStream);
                outStream.Flush();
            }

            Byte[] buf = byteStream.ToArray();
            size = size + PacketHead.HeadSize;

            try
            {
                int pos = 0;
                while (size > 0)
                {
                    int sent = _sock.Send(buf, pos, size, SocketFlags.None);
                    size -= sent;
                    pos  += sent;
                }
            }
            catch (Exception ex)
            {
                UnityEngine.Debug.LogError(ex.Message);
                Disconnect();
                return(false);
            }

            return(true);
        }
示例#18
0
        public bool SendToUser(ulong gcNID, Google.Protobuf.IMessage message)
        {
            BSUser user = this.GetUser(gcNID);

            if (user == null)
            {
                return(false);
            }
            return(user.Send(message));
        }
示例#19
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGc2BsFrameAction(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            BSUser user = BS.instance.userMgr.GetUser(session.id);

            if (user != null)
            {
                BS.instance.battleMgr.HandleFrameAction(user.gcNID, user.battle, (Protos.GC2BS_FrameAction)message);
            }
            return(ErrorCode.Success);
        }
示例#20
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGc2BsKeepAlive(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            ClientSession gcSession = session as ClientSession;

            if (gcSession != null)
            {
                gcSession.activeTime = TimeUtils.utcTime;
            }
            return(ErrorCode.Success);
        }
示例#21
0
        private Message.Header.Types.MessageType GetMessageType(Google.Protobuf.IMessage message)
        {
            Type t = message.GetType();

            if (t.Equals(typeof(Message.ConnectRequest)))
            {
                return(Message.Header.Types.MessageType.ConnectRequest);
            }
            if (t.Equals(typeof(Message.ConnectReply)))
            {
                return(Message.Header.Types.MessageType.ConnectReply);
            }
            if (t.Equals(typeof(Message.DisconnectRequest)))
            {
                return(Message.Header.Types.MessageType.DisconnectRequest);
            }
            if (t.Equals(typeof(Message.DisconnectReply)))
            {
                return(Message.Header.Types.MessageType.DisconnectReply);
            }
            if (t.Equals(typeof(Message.PutRequest)))
            {
                return(Message.Header.Types.MessageType.PutRequest);
            }
            if (t.Equals(typeof(Message.PutReply)))
            {
                return(Message.Header.Types.MessageType.PutReply);
            }
            if (t.Equals(typeof(Message.GetRequest)))
            {
                return(Message.Header.Types.MessageType.GetRequest);
            }
            if (t.Equals(typeof(Message.GetReply)))
            {
                return(Message.Header.Types.MessageType.GetReply);
            }
            if (t.Equals(typeof(Message.InvalidateRequest)))
            {
                return(Message.Header.Types.MessageType.InvalidateRequest);
            }
            if (t.Equals(typeof(Message.InvalidateReply)))
            {
                return(Message.Header.Types.MessageType.InvalidateReply);
            }
            if (t.Equals(typeof(Message.DestroyRequest)))
            {
                return(Message.Header.Types.MessageType.DestroyRequest);
            }
            if (t.Equals(typeof(Message.DestroyReply)))
            {
                return(Message.Header.Types.MessageType.DestroyReply);
            }
            return(Message.Header.Types.MessageType.UnspecifiedType);
        }
示例#22
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGc2BsCommitSnapshot(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            BSUser user = BS.instance.userMgr.GetUser(session.id);

            if (user != null)
            {
                Protos.GC2BS_CommitSnapshot request = (Protos.GC2BS_CommitSnapshot)message;
                BS.instance.battleMgr.HandleCommitSnapshot(user.battle, user.gcNID, request.Frame, request.Data);
            }
            return(ErrorCode.Success);
        }
示例#23
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGc2BsEndBattle(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            BSUser user = BS.instance.userMgr.GetUser(session.id);

            if (user != null)
            {
                Protos.GC2BS_EndBattle request = (Protos.GC2BS_EndBattle)message;
                BS.instance.battleMgr.HandleBattleEnd(user.battle, user.gcNID, request);
            }
            return(ErrorCode.Success);
        }
示例#24
0
 /// <summary>
 /// 广播消息
 /// </summary>
 private void Broadcast(MatchUser[] users, Google.Protobuf.IMessage msg)
 {
     //预编码的消息广播不支持转发
     foreach (MatchUser matchUser in users)
     {
         if (matchUser != null)
         {
             CS.instance.userMgr.GetUser(matchUser.id)?.Send(msg);
         }
     }
 }
示例#25
0
 /// <summary>
 /// 广播消息
 /// </summary>
 public void Broadcast(BattleUser[] users, Google.Protobuf.IMessage msg)
 {
     //预编码的消息广播不支持转发
     foreach (BattleUser user in users)
     {
         if (user != null)
         {
             CS.instance.userMgr.GetUser(user.id)?.Send(msg);
         }
     }
 }
示例#26
0
文件: LSBiz.cs 项目: niuniuzhu/KOW
        /// <summary>
        /// LS通知CS有客户端登录成功
        /// </summary>
        public ErrorCode OnLs2CsGclogin(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.LS2CS_GCLogin gcLogin = (Protos.LS2CS_GCLogin)message;
            CSUser user = CS.instance.userMgr.CreateUser(gcLogin);

            Protos.CS2LS_GCLoginRet gcLoginRet = ProtoCreator.R_LS2CS_GCLogin(gcLogin.Opts.Pid);
            gcLoginRet.Result = user != null
                                                                        ? Protos.CS2LS_GCLoginRet.Types.EResult.Success
                                                                        : Protos.CS2LS_GCLoginRet.Types.EResult.Failed;
            session.Send(gcLoginRet);
            return(ErrorCode.Success);
        }
示例#27
0
        public ErrorCode OnLs2DbExec(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.LS2DB_Exec    exec      = (Protos.LS2DB_Exec)message;
            Protos.DB2LS_ExecRet execRet   = ProtoCreator.R_LS2DB_Exec(exec.Opts.Pid);
            ErrorCode            errorCode = DB.instance.accountDB.SqlExecNonQuery(exec.Cmd, out int row, out uint id);

            execRet.Row    = row;
            execRet.Id     = id;
            execRet.Result = errorCode == ErrorCode.Success ? Protos.Global.Types.ECommon.Success : Protos.Global.Types.ECommon.Failed;
            session.Send(execRet);
            return(ErrorCode.Success);
        }
示例#28
0
        public void UnPacket(PacketHead head, byte[] byteArray, int offset, int length)
        {
            Proto.MsgId msgId = (Proto.MsgId)head.msg_id;
            if (!_msgHandler.ContainsKey(msgId))
            {
                UnityEngine.Debug.LogWarning("!!!!! not found handler. recv packet msgId:" + head.msg_id);
                return;
            }

            Google.Protobuf.IMessage msg = _msgHandler[msgId](byteArray, offset, length);
            MessagePackDispatcher.GetInstance().Broadcasting(head.msg_id, msg);
        }
示例#29
0
文件: BSBiz.cs 项目: niuniuzhu/KOW
        /// <summary>
        /// BS通知战场结束
        /// </summary>
        public ErrorCode OnBs2CsBattleEnd(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.BS2CS_BattleEnd battleEnd = (Protos.BS2CS_BattleEnd)message;
            //评分
            Dictionary <int, int> ratings = this.ComputeElorating(battleEnd.Infos);

            //数据库
            Protos.CS2DB_UpdateRank dbRequest = ProtoCreator.Q_CS2DB_UpdateRank();
            //通知客户端战场结束
            Protos.CS2GC_BattleEnd gcBattleEnd = ProtoCreator.Q_CS2GC_BattleEnd();
            foreach (var kv in battleEnd.Infos)
            {
                CSUser user = CS.instance.battleStaging.GetUser(kv.Key);

                Protos.BS2CS_BattleEndInfo info = kv.Value;
                gcBattleEnd.Result    = (Protos.CS2GC_BattleEnd.Types.Result)info.Result;
                gcBattleEnd.GMoney    = info.Result == Protos.BS2CS_BattleEndInfo.Types.Result.Win ? ( int )(0.01f * user.rank) : 0;
                gcBattleEnd.GDiamoned = 0;
                gcBattleEnd.GRank     = ratings[info.Team];
                gcBattleEnd.GExp      = info.Result == Protos.BS2CS_BattleEndInfo.Types.Result.Win ? 10u : 0u;

                user.money    += gcBattleEnd.GMoney;
                user.diamoned += gcBattleEnd.GDiamoned;
                user.rank     += gcBattleEnd.GRank;
                user.exp      += gcBattleEnd.GExp;

                gcBattleEnd.Money    = user.rank;
                gcBattleEnd.Diamoned = user.diamoned;
                gcBattleEnd.Rank     = user.rank;
                gcBattleEnd.Exp      = user.exp;

                CS.instance.netSessionMgr.Send(user.gsSID, gcBattleEnd, null, Protos.MsgOpts.Types.TransTarget.Gc, user.gcNID);

                //数据库
                Protos.CS2DB_Gain gain = new Protos.CS2DB_Gain();
                gain.Ukey     = user.ukey;
                gain.Money    = user.money;
                gain.Diamoned = user.diamoned;
                gain.Rank     = user.rank;
                gain.Exp      = user.exp;
                dbRequest.Gains.Add(gain);
            }
            //数据库
            CS.instance.netSessionMgr.Send(SessionType.ServerC2DB, dbRequest);
            //移除指定BS里指定战场里的所有玩家
            CS.instance.battleStaging.Remove(session.logicID, battleEnd.Bid);

            //回应
            Protos.CS2BS_BattleEndRet battleEndRet = ProtoCreator.R_BS2CS_BattleEnd(battleEnd.Opts.Pid);
            session.Send(battleEndRet);

            return(ErrorCode.Success);
        }
示例#30
0
文件: GCBiz.cs 项目: niuniuzhu/KOW
        public ErrorCode OnGC2GSAskLogin(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.GC2GS_AskLogin login = (Protos.GC2GS_AskLogin)message;

            Protos.GS2CS_GCAskLogin gcAskLogin = ProtoCreator.Q_GS2CS_GCAskLogin();
            gcAskLogin.SessionID = login.SessionID;
            Logger.Log($"client:{gcAskLogin.SessionID} ask login");

            //向CS请求客户端登陆
            GS.instance.netSessionMgr.Send(SessionType.ServerG2CS, gcAskLogin,
                                           RPCEntry.Pop(OnCS2GSAskLoginRet, session.id, login));
            return(ErrorCode.Success);
        }