///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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)); }
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); }
////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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); }
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); }
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); ///////////////////////////////////////////////////////////////// }
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); }
public void AddReceiveCallBack(NFMsg.EGameMsgID id, NFCMessageDispatcher.MessageHandler netHandler) { NFCNetDispatcher.Instance().AddReceiveCallBack((UInt16)id, netHandler); }
public void AddReceiveCallBack(NFMsg.EGameMsgID eMsg, NFSDK.NFNetListener.MsgDelegation netHandler) { mNetListener.RegisteredDelegation((UInt16)eMsg, netHandler); }