//发送自己的位置改变信息 public void SendSelfPos() { if (GameLibrary.isSkipingScene || Time.realtimeSinceStartup - lastSendTime < 0.2f) { return; } MapInfoNode tempMN; if (isSend(out tempMN)) { if (tempMN != null && CharacterManager.player != null) { Vector3 pos = CharacterManager.player.transform.localPosition; Vector3 rotation = CharacterManager.player.transform.localEulerAngles; CWritePacket packet = new CWritePacket(MessageID.player_walk); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.player_walk); newpacket.Add("ky", playerData.GetInstance().selfData.keyId); newpacket.Add("ai", playerData.GetInstance().selfData.accountId); newpacket.Add("px", pos.x - tempMN.Xmin); newpacket.Add("py", pos.y); newpacket.Add("pz", pos.z - tempMN.Zmin); newpacket.Add("ox", rotation.x); newpacket.Add("oy", rotation.y); newpacket.Add("oz", rotation.z); Send(newpacket, packet); // Debug.LogError("Send pos " + pos + " at " + Time.realtimeSinceStartup); lastSendTime = Time.realtimeSinceStartup; } } }
public void SendPacket(CWritePacket packet) { if (packet != null) { SendData(packet.GetPacketByte(), packet.GetPacketLen(), packet.GetPacketID()); } }
/// <summary> /// 输入操作 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public void InputCmd(Cmd cmd, string parameter = null) { CWritePacket packet = m_OpreationManager.InputCmd(cmd, parameter); m_NetManager.SendUdp(packet); //LogMsg(string.Format("发送操作:{0},参数:{1},帧数{2}", cmd.ToString(), parameter, GameData.m_GameFrame)); }
//public WalkSend GetWalkSend () { return m_WalkSend; } //测试 public void SendPacket(CWritePacket packet) { if (packet != null) { //Debug.Log("messageid"+packet.GetPacketID()); SendData(packet.GetPacketByte(), packet.GetPacketLen(), packet.GetPacketID()); } }
/// <summary> /// 发送数据 /// </summary> /// <param name="data"></param> public void AsyncSendData(CWritePacket data) { if (m_Client == null || !m_Client.Connected) { return; } m_Client.BeginSend(data.GetPacketByte(), 0, data.GetPacketByte().Length, SocketFlags.None, new AsyncCallback(SendCallback), null); }
public void SendAttack(uint targetKeyId, int skillIndex) { MapInfoNode tempMN; if (isSend(out tempMN)) { CWritePacket packet = new CWritePacket(MessageID.s_player_attack_req); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.s_player_attack_req); newpacket.Add("tk", System.UInt32.Parse(targetKeyId.ToString())); newpacket.Add("sd", System.Int32.Parse(skillIndex.ToString())); GameObject playerobj = CharacterManager.player; if (playerobj != null) { newpacket.Add("sx", playerobj.transform.position.x);//自己的位置 newpacket.Add("sy", playerobj.transform.position.y); newpacket.Add("sz", playerobj.transform.position.z); newpacket.Add("dx", playerobj.transform.rotation.x);//自己的朝向 newpacket.Add("dy", playerobj.transform.rotation.y); newpacket.Add("dz", playerobj.transform.rotation.z); } else { newpacket.Add("sx", 0);//自己的位置 newpacket.Add("sy", 0); newpacket.Add("sz", 0); newpacket.Add("dx", 0);//自己的朝向 newpacket.Add("dy", 0); newpacket.Add("dz", 0); } GameObject obj = CreatePeople.GetInstance().GetTargert(targetKeyId); if (targetKeyId != 0) { if (obj != null) { newpacket.Add("tx", obj.transform.position.x);//目标位置 newpacket.Add("ty", obj.transform.position.y); newpacket.Add("tz", obj.transform.position.z); } } else { if (playerobj != null) { newpacket.Add("tx", playerobj.transform.position.x);//目标位置 newpacket.Add("ty", playerobj.transform.position.y); newpacket.Add("tz", playerobj.transform.position.z); } } Send(newpacket, packet); } }
/// <summary> /// 发送ping包 /// </summary> /// <param name="data"></param> public void AsyncSendPing() { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.PING); CWritePacket writePacket = new CWritePacket(NetProtocol.PING); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); m_Client.BeginSend(writePacket.GetPacketByte(), writePacket.GetPacketByte().Length, new AsyncCallback(SendCallback), null); }
/// <summary> /// 登录游戏 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputLogin(string account) { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.LOGIN_REQ); packet.Add("account", account); CWritePacket writePacket = new CWritePacket(NetProtocol.LOGIN_REQ); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
public void SendPlayerRevive(long attackKeyId, long targetKeyId, int reviewtype, int hp) { CWritePacket packet = new CWritePacket(MessageID.s_player_revive_req); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.s_player_revive_req); newpacket.Add("sk", attackKeyId); newpacket.Add("tk", targetKeyId); newpacket.Add("rt", reviewtype); //复活类型1免费安全区域复活,2花钱的安全区域复活,3花钻石的原地复活 newpacket.Add("hp", hp); Send(newpacket, packet); }
public void Ping() { CWritePacket packet = new CWritePacket(MessageID.player_ping_req); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.player_ping_req); newpacket.Add("key", playerData.GetInstance().selfData.keyId); System.DateTime tempDT = new System.DateTime(1970, 1, 1, 0, 0, 0); System.Int64 locaTime = System.Convert.ToInt64((System.DateTime.Now.ToUniversalTime() - tempDT).TotalMilliseconds); newpacket.Add("ch", (System.UInt32)(locaTime >> 32)); newpacket.Add("cl", (System.UInt32)(locaTime & 0xFFFFFFFF)); Send(newpacket, packet); }
/// <summary> /// 参加匹配 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputMatch(int matchType) { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.MATCH_REQ); packet.Add("playerId", GameData.m_CurrentRoleId); packet.Add("matchType", matchType); CWritePacket writePacket = new CWritePacket(NetProtocol.MATCH_REQ); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
public void SendSetPlayerHp(int hp) { MapInfoNode tempMN; if (isSend(out tempMN)) { CWritePacket packet = new CWritePacket(MessageID.s_set_player_hp); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.s_set_player_hp); newpacket.Add("hp", hp); Send(newpacket, packet); } }
/// <summary> /// 准备操作 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputReady() { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.READY); packet.Add("playerId", GameData.m_CurrentRoleId); packet.Add("heroId", GameData.m_HeroId); packet.Add("mobaKey", GameData.m_MobaKey); CWritePacket writePacket = new CWritePacket(NetProtocol.READY); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
//发送自己的初始信息 public void SendInitializePosInfo(RoleInfo ri) { if (GameLibrary.serverInit) { // CallLoad(); MapInfoNode tempMN; if (isSend(out tempMN)) { CWritePacket packet = new CWritePacket(MessageID.player_load_scene_finished); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", (ushort)MessageID.player_load_scene_finished); newpacket.Add("ai", ri.accID); Send(newpacket, packet); } } }
/// <summary> /// 发送数据 /// </summary> /// <param name="data"></param> public void AsyncSendData(CWritePacket data) { if (m_Client == null) { return; } try { m_Client.BeginSend(data.GetPacketByte(), data.GetPacketByte().Length, new AsyncCallback(SendCallback), null); } catch (Exception ex) { string parameter = string.Format("[m_nPacketID:{0}]", data.GetPacketID()); GameData.m_GameManager.LogMsgError("AsyncUdpClient", "AsyncSendData", parameter, ex.Message); } }
/// <summary> /// 发送数据 /// </summary> /// <param name="data"></param> public void AsyncSendData(CWritePacket data) { if (m_Client == null || !m_Client.Connected || data == null) { return; } try { m_Client.GetStream().BeginWrite(data.GetPacketByte(), 0, data.GetPacketByte().Length, new AsyncCallback(OnWrite), null); } catch (Exception ex) { string parameter = string.Format("[m_nPacketID:{0}]", data.GetPacketID()); GameData.m_GameManager.LogMsgError("AsyncTcpClient", "AsyncSendData", parameter, ex.Message); } }
void Send(Dictionary <string, object> newpacket, CWritePacket packet) { System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket); stringbuilder.Append("\0"); string json_s = stringbuilder.ToString(); if (DataDefine.isEFS == 1) { //加密处理 json_s = packet.Compress(json_s, DataDefine.datakey); } packet.WriteString(json_s); // Debug.Log( json_s ); SendPacket(packet, C2SMessageType.Active); }
public void SendOrientation(Vector3 rot) { MapInfoNode tempMN; if (isSend(out tempMN)) { CWritePacket packet = new CWritePacket(MessageID.s_update_player_orientation); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.s_update_player_orientation); newpacket.Add("ai", playerData.GetInstance().selfData.accountId); newpacket.Add("ky", playerData.GetInstance().selfData.keyId); newpacket.Add("ox", rot.x); newpacket.Add("oy", rot.y); newpacket.Add("oz", rot.z); Send(newpacket, packet); } }
public void SendPacket(CWritePacket packet) { //Debug.Log( "True服务器正在接收其他消息 " + GameLibrary.isSendPackage ); //if ( GameLibrary.isSendPackage && ( !GameLibrary.isActiveSendPackahe ) ) //{ // return; //} //GameLibrary.isSendPackage = true; //if ( Application.loadedLevelName == "UI_MajorCity" ) //{ // Control.ShowGUI( GameLibrary.UIWaitForSever ); //} //Debug.Log( "True代表服务器正在接收本次消息 " + GameLibrary.isSendPackage ); if (m_Parent != null) { m_Parent.SendPacket(packet); } }
public void SendHp(long attackKeyId, long targetKeyId, int damageHp, long skillID = 0, float baseVal = 0.0f) { MapInfoNode tempMN; if (isSend(out tempMN)) { CWritePacket packet = new CWritePacket(MessageID.s_lose_blood_req); Dictionary <string, object> newpacket = new Dictionary <string, object>(); newpacket.Add("msgid", ( ushort )MessageID.s_lose_blood_req); newpacket.Add("sk", attackKeyId); newpacket.Add("tk", targetKeyId); newpacket.Add("hp", damageHp); newpacket.Add("sd", skillID); newpacket.Add("bv", baseVal); Send(newpacket, packet); } }
public AsyncUdpClient(string ip, int port) { m_ReceivePacketList = new List <CReadPacket>(); address = IPAddress.Parse(ip); point = new IPEndPoint(address, port); m_Client = new UdpClient(); try { m_Client.Connect(point); } catch (Exception ex) { string parameter = string.Format("[ip:{0},port:{1}]", ip, port); GameData.m_GameManager.LogMsgError("AsyncUdpClient", "AsyncUdpClient", parameter, ex.Message); } CWritePacket writePacket = new CWritePacket(NetProtocol.CONNECT); AsyncSendData(writePacket); AsyncReceiveData(); }
protected void PacketDictAndSend(UInt32 msgID, Dictionary <string, object> newpacket, C2SMessageType c2sType = C2SMessageType.PASVWait) { CWritePacket packet = new CWritePacket(msgID); System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket); stringbuilder.Append("\0"); string json_s = stringbuilder.ToString(); if (DataDefine.isEFS == 1) { //加密处理 json_s = packet.Compress(json_s, DataDefine.datakey); } packet.WriteString(json_s); if (DataDefine.isLogMsgDetail) { Debug.Log("Send msgDetail: " + json_s); } SendPacket(packet, c2sType); }
/// <summary> /// 输入操作 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputCmd(Cmd cmd, string parameter = null) { FrameKeyData frameKeyData = new FrameKeyData(); frameKeyData.m_KeyDataList = new List <KeyData>(); KeyData data = new KeyData(); data.m_RoleId = GameData.m_CurrentRoleId; data.m_Cmd = (int)cmd; data.m_Parameter = parameter; frameKeyData.m_KeyDataList.Add(data); Dictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.SYNC_KEY); packet.Add("roleid", GameData.m_CurrentRoleId); packet.Add("mobaKey", GameData.m_MobaKey); packet.Add("keydatalist", frameKeyData.m_KeyDataList); CWritePacket writePacket = new CWritePacket(NetProtocol.SYNC_KEY); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
/// <summary> /// 准备操作 /// </summary> public void InputReady() { CWritePacket packet = m_OpreationManager.InputReady(); m_NetManager.SendUdp(packet); }
public void SendPacket(CWritePacket packet, C2SMessageType type = C2SMessageType.PASVWait) { //if (packet.GetPacketID() != MessageID.player_walk && packet.GetPacketID() != MessageID.s_player_attack_req // && packet.GetPacketID() != MessageID.pve_dungeon_list_req && packet.GetPacketID() != MessageID.s_player_revive_req // && packet.GetPacketID() != MessageID.s_player_change_scene) //{ // Globe.lastNetTime = 0; // Debug.Log(Globe.lastNetTime); // lastmessageid = packet.GetPacketID(); //} if (Singleton <SceneManage> .Instance.Current == EnumSceneID.UI_MajorCity01 || Globe.isFightGuide) { if (SceneManager.GetActiveScene().name == GameLibrary.UI_Major || Globe.isFightGuide) { switch (type) { case C2SMessageType.Active: break; case C2SMessageType.ActiveWait: GameLibrary.isSendPackage = true; if (Control.GetUIObject(UIPanleID.UIWaitForSever) != null) { Control.ShowGUI(UIPanleID.UIWaitForSever, EnumOpenUIType.DefaultUIOrSecond); } break; case C2SMessageType.PASVWait: // Debug.Log("True服务器正在接收其他消息 " + GameLibrary.isSendPackage); if (GameLibrary.isSendPackage) { return; } GameLibrary.isSendPackage = true; if (Control.GetUIObject(UIPanleID.UIWaitForSever) != null) { Control.ShowGUI(UIPanleID.UIWaitForSever, EnumOpenUIType.DefaultUIOrSecond); } break; } } } // Debug.Log("True代表服务器正在接收本次消息 " + GameLibrary.isSendPackage); if (ClientNetMgr.GetSingle().IsConnect()) { if (m_Parent != null) { m_Parent.SendPacket(packet); if (DataDefine.isLogMsg && DataDefine.filterWalkMsg(packet.GetPacketID())) { Debug.Log("Send msgid:" + packet.GetPacketID() + packet.GetLogPacketID() + " Sender: " + GetType() + " Time:" + Time.realtimeSinceStartup); } } } else { Debug.Log("和服务器已经断开了连接悄悄申请重连"); //if (UIPromptBox.Instance != null) //{ // UIPromptBox.Instance.ShowLabel("与服务器链接丢失,将重新与服务器建立链接"); //} Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, "与服务器链接丢失,将重新与服务器建立链接"); } }
/// <summary> /// 登录游戏 /// </summary> /// <param name="account"></param> public void InputLogin(string account) { CWritePacket packet = m_OpreationManager.InputLogin(account); m_NetManager.Send(packet); }
/// <summary> /// 参加匹配 /// </summary> /// <param name="account"></param> public void InputMatch(int matchType) { CWritePacket packet = m_OpreationManager.InputMatch(matchType); m_NetManager.Send(packet); }
/// <summary> /// 进入匹配房间 /// </summary> /// <param name="account"></param> public void InputJoinMatchRoom() { CWritePacket packet = m_OpreationManager.InputJoinMatchRoom(); m_NetManager.Send(packet); }
/// <summary> /// 发送网络数据 /// </summary> /// <param name="buffer"></param> public void Send(CWritePacket buffer) { m_TcpClient.AsyncSendData(buffer); }
/// <summary> /// 发送网络数据 /// </summary> /// <param name="buffer"></param> public void SendUdp(CWritePacket buffer) { m_UdpClient.AsyncSendData(buffer); }