示例#1
0
        public void OnEvent(ref TNetMsg Msg)
        {
            byte      kind     = GSocket.GetBufToByte(ref Msg.Value);
            ushort    itemIdx  = GSocket.GetBufToWord(ref Msg.Value);
            byte      refresh  = GSocket.GetBufToByte(ref Msg.Value);
            sSaveItem saveItem = new sSaveItem();

            switch (kind)
            {
            case 1:
                if (GSocket.GetBufToType(ref Msg.Value, ref saveItem))
                {
                    //Console.WriteLine("背包新增物品");
                    //Console.WriteLine($"Item索引:{itemIdx}, 物品ID:{saveItem.ID}");
                }
                break;

            case 2:
                //Console.WriteLine("背包刪除物品");
                //Console.WriteLine($"Item索引:{itemIdx}");
                break;
            }

            if (refresh == 1)
            {
                //Console.WriteLine("刷新背包");
            }
        }
        public void OnEvent(ref TNetMsg Msg)
        {
            var kind = GSocket.GetBufToByte(ref Msg.Value);

            switch (kind)
            {
            case SUCCESS:
                // 關閉效能監測工具,並儲存此次紀錄結果
                _monitorUnit.StopAndSaveToMonitorManager(true, "禮包碼兌換成功");
                Console.WriteLine($"{_monitorUnit.GetTag()}禮包碼兌換成功");
                break;

            case HTTP_FAILED:
                _monitorUnit.StopAndSaveToMonitorManager(false, "禮包碼兌換失敗");
                Console.WriteLine($"{_monitorUnit.GetTag()}禮包碼兌換失敗");
                break;

            case BAG_IS_FULL:
                _monitorUnit.StopAndSaveToMonitorManager(false, "背包已滿");
                Console.WriteLine($"{_monitorUnit.GetTag()}背包已滿");
                break;

            case ADD_PRIZE_FAILED:
                _monitorUnit.StopAndSaveToMonitorManager(false, "新增禮包碼到背包中失敗");
                Console.WriteLine($"{_monitorUnit.GetTag()}新增禮包碼到背包中失敗");
                break;
            }
        }
示例#3
0
 /// <summary>
 /// Handles the message proc.
 /// </summary>
 /// <param name="Msg">The MSG.</param>
 public void HandleMessageProc(ref TNetMsg Msg)
 {
     // 使用ToArray避免RemoveListener時產生Collection was modified;
     // enumeration operation may not execute的錯誤
     foreach (var listener in _listenerList.ToArray())
     {
         listener.OnEvent(ref Msg);
     }
 }
示例#4
0
    public void HandleMsg(System.Object state, TNetMsg msg)
    {
        //send the message to the particular message system.
//         TunerSerializer temp = new TunerSerializer();
//         TunerMessage.PBString str;
//         str = temp.Deserialize(msg.m_DataMsg, null, typeof(TunerMessage.PBString)) as TunerMessage.PBString;

        //  UnityEngine.Debug.Log(msg.m_nMsgID.ToString() +str.str_value);



        TunerMessage.TMLoginOut temp = TunerMessage.TMLoginOut.Deserialize(msg.m_DataMsg);

        UnityEngine.Debug.Log(temp.Nickname);
    }
示例#5
0
    private bool Decode_Packet(ref TNetMsg Cmd, ref ByteArray RecBuf)
    {
        int size = 6;

        if (RecBuf.Size >= size)
        {
            FRecHeader.Header = BitConverter.ToUInt16(RecBuf.Data, 0);
            if (FRecHeader.Header == 46061)
            {
                FRecHeader.PacketLen = BitConverter.ToUInt16(RecBuf.Data, 2);
                FRecHeader.MsgNo     = RecBuf.Data[4];
                FRecHeader.SubNo     = RecBuf.Data[5];

                RecBuf.Index = Math.Min(RecBuf.Size, FRecHeader.PacketLen);
                //檢查命令長度 封包是否已經完全取得
                if (RecBuf.Size < FRecHeader.PacketLen)
                {
                    return(false);
                }

                Cmd.MsgNo       = FRecHeader.MsgNo;
                Cmd.SubNo       = FRecHeader.SubNo;
                Cmd.Value.Index = 0;
                Cmd.Value.Size  = Math.Max(0, FRecHeader.PacketLen - size);
                if (Cmd.Value.Size > 0)
                {
                    if (Cmd.Value.Data == null || Cmd.Value.Size > Cmd.Value.Data.Length)
                    {
                        Cmd.Value.Data = new byte[Cmd.Value.Size];
                    }

                    Array.Copy(RecBuf.Data, size, Cmd.Value.Data, 0, Cmd.Value.Size);
                }

                return(true);
            }
            else
            {
                RecBuf.Size = 0;
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }
示例#6
0
    public void HandleMsg(System.Object state, TNetMsg msg)
    {
        TunerMessage.TMLogin temp = TunerMessage.TMLogin.Deserialize(msg.m_DataMsg);
        System.Console.WriteLine(msg.m_nMsgID.ToString() + "__" + temp.Username + "____" + temp.Password);
        //send the message to the particular message system.


        //test send
        Agent tempClient = Server.Instance.getClient((int)state);

        TunerMessage.TMLoginOut tempMsg = new TunerMessage.TMLoginOut();
        tempMsg.Nickname = "yyss";
        MemoryStream mem = new MemoryStream();

        TunerMessage.TMLoginOut.Serialize(mem, tempMsg);

        tempClient.SendMessage(7, mem);
    }
示例#7
0
        public void OnEvent(ref TNetMsg Msg)
        {
            ushort bagCapacity = GSocket.GetBufToWord(ref Msg.Value);
            ushort itemCount   = GSocket.GetBufToWord(ref Msg.Value);

            if (itemCount > 0)
            {
                ushort    ItemIdx  = 0;
                sSaveItem saveItem = new sSaveItem();

                //for (int i = 1; i <= itemCount; i++)
                //{
                //    ItemIdx = GSocket.GetBufToWord(ref Msg.Value);
                //    if (GSocket.GetBufToType(ref Msg.Value, ref saveItem))
                //    {
                //        Console.WriteLine($"Item索引:{ItemIdx}, 物品ID:{saveItem.ID}");
                //    }
                //}
            }
        }
示例#8
0
        public void OnEvent(ref TNetMsg Msg)
        {
            byte kind = GSocket.GetBufToByte(ref Msg.Value);
            //Console.WriteLine("登入結果(kind):" + kind);
            byte sex     = 0;
            byte armType = 0;

            switch (kind)
            {
            case 1:
                // 登入成功
                var        gsid      = GSocket.GetBufToWord(ref Msg.Value);
                int        timeRange = GSocket.GetBufToInt(ref Msg.Value);
                sLoginType role      = new sLoginType(true);
                if (GSocket.GetBufToType <sLoginType>(ref Msg.Value, ref role))
                {
                    // 啟動效能監測工具
                    _monitorUnit.StartMonitor();
                    _monitorUnit.SetTag(role.Account);

                    Console.WriteLine($"{role.Account}發送 註冊禮包碼");
                    _socket.PushDWord(10);
                    _socket.PushString("sayhello2you");
                    _socket.SendMsg(1, 111);
                }
                break;

            case 3:
                // 創角帳號
                Thread.Sleep(2000);
                Console.WriteLine("創角帳號(kind):" + kind);
                var randomGenerator = new RandomStringGenerator();
                _socket.PushString(randomGenerator.RandomCreateCharacterName());
                _socket.PushByte(sex);
                _socket.PushByte(armType);
                _socket.SendMsg(1, 72);
                break;
            }
        }
示例#9
0
 public void HandleMsg(System.Object state, TNetMsg msg)
 {
     Example.KVResponse response = Example.KVResponse.Deserialize(msg.m_DataMsg);
     message = response.Message;
 }
示例#10
0
        public void OnEvent(ref TNetMsg Msg)
        {
            byte kind = GSocket.GetBufToByte(ref Msg.Value);
            byte Num  = GSocket.GetBufToByte(ref Msg.Value);

            sPrizeReward[] prizeAy = new sPrizeReward[Num];

            for (int i = 0; i < Num; i++)
            {
                ushort ID      = GSocket.GetBufToWord(ref Msg.Value);
                uint   ItemNum = GSocket.GetBufToDWord(ref Msg.Value);
                Console.WriteLine("Award ID : " + ID.ToString() + "  ItemNum : " + ItemNum.ToString());
                prizeAy[i].ItemID = ID;
                prizeAy[i].Num    = ItemNum;
            }

            switch (kind)
            {
            case 1:
                // 戰鬥獎勵
                break;

            case 2:
                // 副本獎勵
                break;

            case 3:
                //掃蕩獎勵
                break;

            case 5:     //野怪 中央訊息
                break;

            case 11:    // 尋訪武將
                break;

            case 12:
            case 33:
                // 使用物品
                break;

            case 13:     // 使用物品
            case 14:     // 活動、成就獎勵
            case 15:     // 活躍值獎勵
            case 23:     // 邊境巡邏隊兌換
            case 25:     // 合成獎勵
            case 26:     // 副本全制霸獎勵(物品)
            case 27:     // 物品信件獎勵
            case 28:     // 限時購買
            case 34:     // 內政收益
            case 35:     // 內政(幫助獎勵)
            case 36:     // 內政(掠奪獎勵)
                         //中央訊息 訊息連跳
                //foreach(var prize in prizeAy)
                //{
                //    Console.WriteLine($"中央訊息:恭喜獲得 物品ID:{prize.ItemID}, 物品數量:{prize.Num}");
                //}
                break;

            case 17:        // 酒館武將回禮,錄用
                break;

            case 18:        // 七星續命燈獎勵
                break;

            case 19:        // 熔爐獲得
                break;

            case 20:        // 關卡全制霸獎勵
                break;

            case 21:        // 武列全制霸獎勵(必定是武將)
                break;

            case 22:        // 地牢錄用獎勵
                break;

            case 24:        // 神來一翻翻牌獎勵
                break;

            case 29:        // 首儲活動
                break;

            case 30:    //採集  中央訊息
                break;

            case 31:     // 虛寶兌換
                break;

            case 32:     // 轉轉樂
                break;

            default:
                break;
            }
        }
        public void OnEvent(ref TNetMsg Msg)
        {
            byte kind = GSocket.GetBufToByte(ref Msg.Value);

            Console.WriteLine("創角結果(kind):" + kind);
        }