public static NFMsg.Ident NFToPB(NFCoreEx.NFIDENTID xID) { NFMsg.Ident xIdent = new NFMsg.Ident(); xIdent.svrid = xID.nHead64; xIdent.index = xID.nData64; return xIdent; }
public void RequireAcceptTask(NFCoreEx.NFIDENTID objectID, string strTaskID) { NFMsg.ReqAcceptTask xData = new NFMsg.ReqAcceptTask(); xData.task_id = UnicodeEncoding.Default.GetBytes(strTaskID); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAcceptTask>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ACCEPT_TASK, stream); }
public void RequireChat(NFCoreEx.NFIDENTID objectID, NFCoreEx.NFIDENTID targetID, int nType, string strData) { NFMsg.ReqAckPlayerChat xData = new NFMsg.ReqAckPlayerChat(); xData.chat_id = NFToPB(targetID); xData.chat_name = UnicodeEncoding.Default.GetBytes(xNet.strRoleName); xData.chat_type = (NFMsg.ReqAckPlayerChat.EGameChatType)nType; xData.chat_info = UnicodeEncoding.Default.GetBytes(strData); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckPlayerChat>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_CHAT, stream); }
public void RequirePickUpItem(NFCoreEx.NFIDENTID objectID, NFCoreEx.NFIDENTID nItemID) { NFMsg.ReqPickDropItem xData = new NFMsg.ReqPickDropItem(); xData.item_guid = NFToPB(nItemID); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqPickDropItem>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_PICK_ITEM, stream); }
public void SendMsg(NFCoreEx.NFIDENTID xID, NFMsg.EGameMsgID unMsgID, MemoryStream stream) { if (NFStart.Instance.bDebugMode) { return; } NFMsg.MsgBase xData = new NFMsg.MsgBase(); xData.player_id = NFToPB(xID); xData.msg_data = stream.ToArray(); MemoryStream body = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(body, xData); MsgHead head = new MsgHead(); head.unMsgID = (UInt16)unMsgID; 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); xNet.mxClient.SendBytes(sendBytes); string strTime = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second; string strData = "S***:" + strTime + " MsgID:" + head.unMsgID + " Len:" + head.unDataLen; xNet.mxListener.aMsgList.Add(strData); }
public void RequireSwapScene(NFCoreEx.NFIDENTID objectID, int nTransferType, int nSceneID, int nLineIndex) { NFMsg.ReqAckSwapScene xData = new NFMsg.ReqAckSwapScene(); xData.transfer_type = (NFMsg.ReqAckSwapScene.EGameSwapType)nTransferType; xData.scene_id = nSceneID; xData.line_id = nLineIndex; MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckSwapScene>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SWAP_SCENE, stream); }
public void RequireHeartBeat(NFCoreEx.NFIDENTID objectID) { NFMsg.ReqHeartBeat xData = new NFMsg.ReqHeartBeat(); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqHeartBeat>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_STS_HEART_BEAT, stream); }
public void RequireMoveImmune(NFCoreEx.NFIDENTID objectID, float fX, float fZ) { NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove(); xData.mover = NFToPB(objectID); xData.moveType = 0; NFMsg.Position xTargetPos = new NFMsg.Position(); xTargetPos.x = fX; xTargetPos.z = fZ; xData.target_pos.Add(xTargetPos); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckPlayerMove>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_MOVE_IMMUNE, stream); }
public void RequireEnterGameServer(NFCoreEx.NFIDENTID objectID, string strAccount, string strRoleName, int nServerID) { NFMsg.ReqEnterGameServer xData = new NFMsg.ReqEnterGameServer(); xData.name = UnicodeEncoding.Default.GetBytes(strRoleName); xData.account = UnicodeEncoding.Default.GetBytes(strAccount); xData.game_id = nServerID; xData.id = NFToPB(objectID); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqEnterGameServer>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ENTER_GAME, stream); }
public void RequireDelRole(NFCoreEx.NFIDENTID objectID, string strAccount, string strRoleName, int nGameID) { NFMsg.ReqDeleteRole xData = new NFMsg.ReqDeleteRole(); xData.name = UnicodeEncoding.Default.GetBytes(strRoleName); xData.account = UnicodeEncoding.Default.GetBytes(strAccount); xData.game_id = nGameID; MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqDeleteRole>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_DELETE_ROLE, stream); }
//有可能是他副本的NPC移动,因此增加64对象ID public void RequireUseSkill(NFCoreEx.NFIDENTID objectID, string strKillID, NFCoreEx.NFIDENTID nTargetID, float fNowX, float fNowZ, float fTarX, float fTarZ) { NFMsg.Position xNowPos = new NFMsg.Position(); NFMsg.Position xTarPos = new NFMsg.Position(); xNowPos.x = fNowX; xNowPos.y = 0.0f; xNowPos.z = fNowZ; xTarPos.x = fTarX; xTarPos.y = 0.0f; xTarPos.z = fTarZ; NFMsg.ReqAckUseSkill xData = new NFMsg.ReqAckUseSkill(); xData.user = NFToPB(objectID); xData.skill_id = System.Text.Encoding.Default.GetBytes(strKillID); xData.tar_pos = xTarPos; xData.now_pos = xNowPos; NFMsg.EffectData xEffData = new NFMsg.EffectData(); xEffData.effect_ident = (NFToPB(nTargetID)); xEffData.effect_value = 0; xEffData.effect_rlt = 0; xData.effect_data.Add(xEffData); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckUseSkill>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SKILL_OBJECTX, stream); ///////////////////////////////////////////// if (NFStart.Instance.bDebugMode) { NFMsg.MsgBase xAckData = new NFMsg.MsgBase(); xAckData.player_id = NFToPB(objectID); xAckData.msg_data = stream.ToArray(); MemoryStream xAckBody = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(xAckBody, xAckData); MsgHead head = new MsgHead(); head.unMsgID = (UInt16)NFMsg.EGameMsgID.EGMI_ACK_SKILL_OBJECTX; head.unDataLen = (UInt32)xAckBody.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; xNet.mxBinMsgEvent.OnMessageEvent(head, xAckBody.ToArray()); } }
public void RequireMoveImmune(NFCoreEx.NFIDENTID objectID, float fX, float fZ) { NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove(); xData.mover = NFToPB(objectID); xData.moveType = 0; NFMsg.Position xTargetPos = new NFMsg.Position(); xTargetPos.x = fX; xTargetPos.z = fZ; xData.target_pos.Add(xTargetPos); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckPlayerMove>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_MOVE_IMMUNE, stream); if (NFStart.Instance.bDebugMode) { NFMsg.MsgBase xAckData = new NFMsg.MsgBase(); xAckData.player_id = xData.mover; xAckData.msg_data = stream.ToArray(); MemoryStream xAckBody = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(xAckBody, xAckData); MsgHead head = new MsgHead(); head.unMsgID = (UInt16)NFMsg.EGameMsgID.EGMI_ACK_MOVE_IMMUNE; head.unDataLen = (UInt32)xAckBody.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; xNet.mxBinMsgEvent.OnMessageEvent(head, xAckBody.ToArray()); } }
public void RequireEnterGameServer(NFCoreEx.NFIDENTID objectID, string strAccount, string strRoleName, int nServerID) { NFMsg.ReqEnterGameServer xData = new NFMsg.ReqEnterGameServer(); xData.name = UnicodeEncoding.Default.GetBytes(strRoleName); xData.account = UnicodeEncoding.Default.GetBytes(strAccount); xData.game_id = nServerID; xData.id = NFToPB(objectID); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqEnterGameServer>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ENTER_GAME, stream); if (NFStart.Instance.bDebugMode) { //EGMI_ACK_OBJECT_ENTRY //property //EGMI_ACK_SWAP_SCENE //EGMI_ACK_OBJECT_ENTRY //property float fX = 0.0f; float fY = 0.0f; float fZ = 0.0f; NFIElement xElement = NFCElementManager.Instance.GetElement("1"); if (null != xElement) { string strRelivePos = xElement.QueryString("RelivePos"); string[] sArray = strRelivePos.Split(';'); if (sArray.Length > 0) { sArray = sArray[0].Split(','); } if (sArray.Length == 3) { fX = float.Parse(sArray[0]); fY = float.Parse(sArray[1]); fZ = float.Parse(sArray[2]); } } ///////////////////////////////////////////// //mainplayer NFMsg.AckPlayerEntryList xAckMainBodyData = new NFMsg.AckPlayerEntryList(); NFMsg.PlayerEntryInfo xInfo = new NFMsg.PlayerEntryInfo(); NFMsg.Ident xID = new NFMsg.Ident(); xInfo.object_guid = xID; xInfo.x = fX; xInfo.y = fY; xInfo.z = fZ; xInfo.career_type = 1; xInfo.player_state = 1; xInfo.config_id = UnicodeEncoding.Default.GetBytes(""); xInfo.scene_id = 1; xInfo.class_id = UnicodeEncoding.Default.GetBytes("Player"); xAckMainBodyData.object_list.Add(xInfo); MemoryStream xAckMianPlayerBodyStream = new MemoryStream(); Serializer.Serialize<NFMsg.AckPlayerEntryList>(xAckMianPlayerBodyStream, xAckMainBodyData); NFMsg.MsgBase xAckMianPlayerData = new NFMsg.MsgBase(); xAckMianPlayerData.player_id = xID; xAckMianPlayerData.msg_data = xAckMianPlayerBodyStream.ToArray(); MemoryStream xAckAllStream = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(xAckAllStream, xAckMianPlayerData); MsgHead head = new MsgHead(); head.unMsgID = (UInt16)NFMsg.EGameMsgID.EGMI_ACK_OBJECT_ENTRY; head.unDataLen = (UInt32)xAckAllStream.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; xNet.mxBinMsgEvent.OnMessageEvent(head, xAckAllStream.ToArray()); ///////////////////////////////////////////// //property NFMsg.ObjectPropertyInt propertyData = new NFMsg.ObjectPropertyInt(); PropertyInt xPropertyInt = new PropertyInt(); xPropertyInt.property_name = UnicodeEncoding.Default.GetBytes("MOVE_SPEED"); xPropertyInt.data = 50000; propertyData.property_list.Add(xPropertyInt); propertyData.player_id = xID; MemoryStream xAckPropertyIntStream = new MemoryStream(); Serializer.Serialize<NFMsg.ObjectPropertyInt>(xAckPropertyIntStream, propertyData); NFMsg.MsgBase xPropertyIntMsg = new NFMsg.MsgBase(); xPropertyIntMsg.player_id = xID; xPropertyIntMsg.msg_data = xAckPropertyIntStream.ToArray(); MemoryStream xAckPropertyIntAllStream = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(xAckPropertyIntAllStream, xPropertyIntMsg); MsgHead xAckPropertyhead = new MsgHead(); xAckPropertyhead.unMsgID = (UInt16)NFMsg.EGameMsgID.EGMI_ACK_PROPERTY_INT; xAckPropertyhead.unDataLen = (UInt32)xAckPropertyIntAllStream.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; xNet.mxBinMsgEvent.OnMessageEvent(xAckPropertyhead, xAckPropertyIntAllStream.ToArray()); ///////////////////////////////////////////// xNet.mPlayerState = NFNet.PLAYER_STATE.E_PLAYER_GAMEING; //NFCRenderInterface.Instance.LoadScene(1, fX, fY, fZ); ///////////////////////////////////////////// //npc NFMsg.AckPlayerEntryList xAckNPCBodyData = new NFMsg.AckPlayerEntryList(); for (int i = 0; i < 5; ++i) { NFMsg.PlayerEntryInfo xNPCInfo = new NFMsg.PlayerEntryInfo(); NFMsg.Ident xNPCID = new NFMsg.Ident(); xNPCID.index = i + 10000; xNPCInfo.object_guid = xNPCID; xNPCInfo.x = fX + i; xNPCInfo.y = fY; xNPCInfo.z = fZ + i; xNPCInfo.career_type = 1; xNPCInfo.player_state = 1; xNPCInfo.config_id = UnicodeEncoding.Default.GetBytes(""); xNPCInfo.scene_id = 1; xNPCInfo.class_id = UnicodeEncoding.Default.GetBytes("Player"); xAckNPCBodyData.object_list.Add(xNPCInfo); } MemoryStream xAckNPCBodyStream = new MemoryStream(); Serializer.Serialize<NFMsg.AckPlayerEntryList>(xAckNPCBodyStream, xAckNPCBodyData); NFMsg.MsgBase xAckNPCrData = new NFMsg.MsgBase(); xAckNPCrData.player_id = xID; xAckNPCrData.msg_data = xAckNPCBodyStream.ToArray(); MemoryStream xAckAllNPCStream = new MemoryStream(); Serializer.Serialize<NFMsg.MsgBase>(xAckAllNPCStream, xAckNPCrData); MsgHead xNPCHead = new MsgHead(); xNPCHead.unMsgID = (UInt16)NFMsg.EGameMsgID.EGMI_ACK_OBJECT_ENTRY; xNPCHead.unDataLen = (UInt32)xAckAllNPCStream.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; xNet.mxBinMsgEvent.OnMessageEvent(xNPCHead, xAckAllNPCStream.ToArray()); ////////////////////////////////////////////// } }
//有可能是他副本的NPC移动,因此增加64对象ID public void RequireUseSkill(NFCoreEx.NFIDENTID objectID, string strKillID, NFCoreEx.NFIDENTID nTargetID, float fNowX, float fNowZ, float fTarX, float fTarZ) { NFMsg.Position xNowPos = new NFMsg.Position(); NFMsg.Position xTarPos = new NFMsg.Position(); xNowPos.x = fNowX; xNowPos.y = 0.0f; xNowPos.z = fNowZ; xTarPos.x = fTarX; xTarPos.y = 0.0f; xTarPos.z = fTarZ; NFMsg.ReqAckUseSkill xData = new NFMsg.ReqAckUseSkill(); xData.user = NFToPB(objectID); xData.skill_id = System.Text.Encoding.Default.GetBytes(strKillID); xData.tar_pos = xTarPos; xData.now_pos = xNowPos; NFMsg.EffectData xEffData = new NFMsg.EffectData(); xEffData.effect_ident = (NFToPB(nTargetID)); xEffData.effect_value = 0; xEffData.effect_rlt = 0; xData.effect_data.Add(xEffData); MemoryStream stream = new MemoryStream(); Serializer.Serialize<NFMsg.ReqAckUseSkill>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SKILL_OBJECTX, stream); }