Ejemplo n.º 1
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void OnMessageEvent(MsgHead head, byte[] bytes)
        {
            if (head.unDataLen != bytes.Length + ConstDefine.NF_PACKET_HEAD_SIZE)
            {
                return;
            }

            NFMsg.EGameMsgID eMsg = (NFMsg.EGameMsgID)head.unMsgID;

            NFLog.Instance.Log(NFLog.LOG_LEVEL.INFO, "ReciveMsg:" + eMsg.ToString() + "  Size:" + head.unDataLen);

            DoDelegation(eMsg, new MemoryStream(bytes));
        }
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
        //////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public bool RegisteredDelegation(NFMsg.EGameMsgID eMsg, MsgDelegation msgDelegate)
        {
            if (!mhtMsgDelegation.ContainsKey(eMsg))
            {
                MsgDelegation myDelegationHandler = new MsgDelegation(msgDelegate);
                mhtMsgDelegation.Add(eMsg, myDelegationHandler);
            }
            else
            {
                MsgDelegation myDelegationHandler = (MsgDelegation)mhtMsgDelegation[eMsg];
                myDelegationHandler += new MsgDelegation(msgDelegate);
            }

            return(true);
        }
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 SendMsg(NFMsg.EGameMsgID unMsgID, MemoryStream stream)
        {
            //NFMsg.MsgBase
            mxData.player_id = mHelpModule.NFToPB(mLoginModule.mRoleID);
            mxData.msg_data  = ByteString.CopyFrom(stream.ToArray());

            mxBody.SetLength(0);
            mxData.WriteTo(mxBody);

            mxHead.unMsgID   = (UInt16)unMsgID;
            mxHead.unDataLen = (UInt32)mxBody.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE;

            byte[] bodyByte = mxBody.ToArray();
            byte[] headByte = mxHead.EnCode();

            byte[] sendBytes = new byte[mxHead.unDataLen];
            headByte.CopyTo(sendBytes, 0);
            bodyByte.CopyTo(sendBytes, headByte.Length);

            mNetClient.SendBytes(sendBytes);

            /////////////////////////////////////////////////////////////////
        }
Ejemplo n.º 6
0
    public bool DoCmd(string strArg, string strGMID)
    {
        NFMsg.EGameMsgID xMsgID = (NFMsg.EGameMsgID)Enum.Parse(typeof(NFMsg.EGameMsgID), strGMID);
        if (!mxGM.ContainsKey(xMsgID))
        {
            Debug.LogWarning("GMID Error");
            return(false);
        }

        string strOriginArg = (string)mxGM[xMsgID];

        NFDataList xOriginArgList = new NFDataList(strOriginArg, ',');
        NFDataList xNowArgList    = new NFDataList(strArg, ',');

        if (xOriginArgList.Count() != xNowArgList.Count())
        {
            Debug.LogWarning("Arg Count Error");
            return(false);
        }

        NFDataList xNowDataList = new NFDataList();

        for (int i = 0; i < xOriginArgList.Count(); ++i)
        {
            string strOriginType = xOriginArgList.StringVal(i);
            switch (strOriginType)
            {
            case "VTYPE_INT":
            {
                string strNowDataInt = xNowArgList.StringVal(i);
                int    nData         = 0;
                if (!int.TryParse(strNowDataInt, out nData))
                {
                    Debug.LogWarning("Arg:" + i + " Can not parse to int:" + strNowDataInt);
                    return(false);
                }

                xNowDataList.AddInt(nData);
            }
            break;

            case "VTYPE_FLOAT":
            {
                string strNowDataFloat = xNowArgList.StringVal(i);
                float  fData           = 0;
                if (!float.TryParse(strNowDataFloat, out fData))
                {
                    Debug.LogWarning("Arg:" + i + " Can not parse to float:" + strNowDataFloat);
                    return(false);
                }

                xNowDataList.AddFloat(fData);
            }
            break;

            case "VTYPE_STRING":
            {
                string strNowData = xNowArgList.StringVal(i);
                xNowDataList.AddString(strNowData);
            }
            break;

            case "VTYPE_OBJECT":
            {
                string strNowDataObject = xNowArgList.StringVal(i);
                NFGUID xIdent           = new NFGUID();
                if (!xIdent.Parse(strNowDataObject))
                {
                    Debug.LogWarning("Arg:" + i + " Can not parse to Object:" + strNowDataObject);
                    return(false);
                }

                xNowDataList.AddObject(xIdent);
            }
            break;

            default:
                break;
            }
            //NFDataList.VARIANT_TYPE
        }

        switch (xMsgID)
        {
        case NFMsg.EGameMsgID.EGMI_REQ_SWAP_SCENE:
        {
            //NFNetController.Instance.mxNetSender.RequireSwapScene(NFNetController.Instance.xMainRoleID, (int)xNowDataList.IntVal(0), (int)xNowDataList.IntVal(1), (int)xNowDataList.IntVal(3), 0f, 0f, 0f);
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_PROPERTY_INT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMPropertyInt(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.IntVal(1));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_PROPERTY_FLOAT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMPropertyFloat(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.FloatVal(1));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_PROPERTY_STR:
        {
            //NFNetController.Instance.mxNetSender.RequireGMPropertyStr(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.StringVal(1));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_PROPERTY_OBJECT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMPropertyObject(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.ObjectVal(1));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_RECORD_INT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMRecordInt(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.IntVal(1), xNowDataList.IntVal(2), xNowDataList.IntVal(3));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_RECORD_FLOAT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMRecordFloat(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.IntVal(1), xNowDataList.IntVal(2), xNowDataList.FloatVal(3));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_RECORD_STR:
        {
            //NFNetController.Instance.mxNetSender.RequireGMRecordStr(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.IntVal(1), xNowDataList.IntVal(2), xNowDataList.StringVal(3));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_RECORD_OBJECT:
        {
            //NFNetController.Instance.mxNetSender.RequireGMRecordObject(NFNetController.Instance.xMainRoleID, xNowDataList.StringVal(0), xNowDataList.IntVal(1), xNowDataList.IntVal(2), xNowDataList.ObjectVal(3));
        }
        break;



        case NFMsg.EGameMsgID.EGMI_REQ_PICK_ITEM:
        {
            //NFNetController.Instance.mxNetSender.RequirePickUpItem(NFNetController.Instance.xMainRoleID, xNowDataList.ObjectVal(0));
        }
        break;

        case NFMsg.EGameMsgID.EGMI_REQ_CMD_NORMAL:
        {
            //NFNetController.Instance.mxNetSender.RequireNormalGM(NFNetController.Instance.xMainRoleID, (NFMsg.ReqCommand.EGameCommandType)xNowDataList.IntVal(0)
            //    , xNowDataList.StringVal(1), xNowDataList.StringVal(2), xNowDataList.IntVal(3), xNowDataList.FloatVal(4), xNowDataList.ObjectVal(5));
        }
        break;

        default:
            break;
        }

        return(true);
    }
Ejemplo n.º 7
0
 public void AddReceiveCallBack(NFMsg.EGameMsgID id, NFCMessageDispatcher.MessageHandler netHandler)
 {
     NFCNetDispatcher.Instance().AddReceiveCallBack((UInt16)id, netHandler);
 }
Ejemplo n.º 8
0
 public void AddReceiveCallBack(NFMsg.EGameMsgID eMsg, NFSDK.NFNetListener.MsgDelegation netHandler)
 {
     mNetListener.RegisteredDelegation((UInt16)eMsg, netHandler);
 }