Ejemplo n.º 1
0
        private void EGEC_ACK_GATE_LAG_TEST(int id, MemoryStream stream)
        {
            NFMsg.MsgBase xMsg = NFMsg.MsgBase.Parser.ParseFrom(stream);

            NFMsg.ReqAckLagTest xData = NFMsg.ReqAckLagTest.Parser.ParseFrom(xMsg.MsgData);

            float time;

            if (mLagTestData.TryGetValue(xData.Index, out time))
            {
                float lagTime = Time.realtimeSinceStartup - time;
                gateLagTime = (int)(lagTime * 1000);

                if (gateLagTimeList.Count > 10)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("gateLagTime:");
                    foreach (var item in gateLagTimeList)
                    {
                        sb.Append(item);
                        sb.Append(",");
                    }

                    Debug.Log(sb.ToString());

                    gateLagTimeList.Clear();
                }
            }
        }
Ejemplo n.º 2
0
        private bool DoDelegation(NFMsg.EGameMsgID eMsg, MemoryStream stream)
        {
            if (mhtMsgDelegation.ContainsKey(eMsg))
            {
                MsgDelegation myDelegationHandler = (MsgDelegation)mhtMsgDelegation[eMsg];

                NFMsg.MsgBase xMsg = mxSerializer.Deserialize(stream, null, typeof(NFMsg.MsgBase)) as NFMsg.MsgBase;

                myDelegationHandler(xMsg);

                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        private void EGEC_ACK_GATE_LAG_TEST(int id, MemoryStream stream)
        {
            NFMsg.MsgBase xMsg = NFMsg.MsgBase.Parser.ParseFrom(stream);

            NFMsg.ReqAckLagTest xData = NFMsg.ReqAckLagTest.Parser.ParseFrom(xMsg.MsgData);

            float time;

            if (mLagTestData.TryGetValue(xData.Index, out time))
            {
                float lagTime = Time.realtimeSinceStartup - time;
                gateLagTime = (int)(lagTime * 1000);

                //Debug.Log("gateLagTime:" + gateLagTime);
            }
        }
Ejemplo n.º 4
0
        public void SendToServerByPB(NFMsg.EGameMsgID unMsgID, MemoryStream stream)
        {
            NFMsg.MsgBase xData = new NFMsg.MsgBase();
            xData.player_id = NFToPB(mOwnerID);
            xData.msg_data  = stream.ToArray();

            MemoryStream body = new MemoryStream();

            Serializer.Serialize <NFMsg.MsgBase>(body, xData);

            MemoryStream pack   = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(pack);
            UInt32       msgLen = (UInt32)body.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE;

            writer.Write(NFCNet.ConvertUint16((UInt16)unMsgID));
            writer.Write(NFCNet.ConvertUint32((UInt32)msgLen));
            body.WriteTo(pack);
            NFCNet.Instance().sendMsg(pack);
        }
Ejemplo n.º 5
0
        public void OnPlayerMove(UInt16 id, MemoryStream stream)
        {
            NFMsg.MsgBase xMsg = NFMsg.MsgBase.Parser.ParseFrom(stream);

            NFMsg.ReqAckPlayerMove xData = NFMsg.ReqAckPlayerMove.Parser.ParseFrom(xMsg.msg_data);

            if (xData.target_pos.Count <= 0)
            {
                return;
            }

            NFGUID tar = mHelpModule.PBToNF(xData.mover);

            if (tar == mLoginModule.mRoleID)
            {
                return;
            }

            GameObject  player      = GetObject(tar);
            OtherPlayer otherPlayer = player.GetComponent <OtherPlayer>();

            float fSpeed = xData.speed;

            long      nType = xData.moveType;
            NFVector3 pos   = mHelpModule.PBToNF(xData.target_pos[0]);
            Vector3   vPos  = new Vector3(pos.X(), pos.Y(), pos.Z());

            if (nType > 0)
            {
                otherPlayer.JumpTo(vPos);
            }
            else
            {
                otherPlayer.MoveTo((float)fSpeed, vPos);
            }

            Debug.Log("Player Move:" + vPos.ToString());
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 发送SOCKET消息
        /// </summary>
        public void SendMsg(int uMsgID, ByteBuffer buffer)
        {
            NFMsg.MsgBase xData = new NFMsg.MsgBase();
            xData.player_id = Util.NFToPB(mMainID);
            ByteBuffer newbuffer = new ByteBuffer(buffer.ToBytes());

            xData.msg_data = newbuffer.ReadBytes();
            MemoryStream body = new MemoryStream();

            Serializer.Serialize <NFMsg.MsgBase>(body, xData);
            MsgHead head = new MsgHead();

            head.unMsgID   = (UInt16)uMsgID;
            head.unDataLen = (UInt32)body.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE;
            byte[] bodyByte  = body.ToArray();
            byte[] headByte  = StructureTransform.StructureToByteArrayEndian(head);
            byte[] sendBytes = new byte[head.unDataLen];
            headByte.CopyTo(sendBytes, 0);
            bodyByte.CopyTo(sendBytes, headByte.Length);
            SocketClient.SendMessage(sendBytes);
            buffer.Close();
            newbuffer.Close();
        }
Ejemplo n.º 7
0
 public static LuaByteBuffer FilterNoMsgBase(ByteBuffer buffer)
 {
     NFMsg.MsgBase xMsg = new NFMsg.MsgBase();
     xMsg = ProtoBuf.Serializer.Deserialize <NFMsg.MsgBase>(new MemoryStream(buffer.ReadBytes()));
     return(new LuaByteBuffer(xMsg.msg_data));
 }