Example #1
0
    //发送自己的位置改变信息
    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;
            }
        }
    }
Example #2
0
 public void SendPacket(CWritePacket packet)
 {
     if (packet != null)
     {
         SendData(packet.GetPacketByte(), packet.GetPacketLen(), packet.GetPacketID());
     }
 }
Example #3
0
    /// <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));
    }
Example #4
0
    //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());
        }
    }
Example #5
0
 /// <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);
 }
Example #6
0
    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);
    }
Example #9
0
    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);
    }
Example #10
0
    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);
    }
Example #12
0
    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);
    }
Example #14
0
 //发送自己的初始信息
 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);
         }
     }
 }
Example #15
0
 /// <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);
     }
 }
Example #16
0
 /// <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);
     }
 }
Example #17
0
    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);
    }
Example #18
0
    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);
        }
    }
Example #19
0
 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);
     }
 }
Example #20
0
    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);
        }
    }
Example #21
0
    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();
    }
Example #22
0
    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);
    }
Example #24
0
    /// <summary>
    /// 准备操作
    /// </summary>
    public void InputReady()
    {
        CWritePacket packet = m_OpreationManager.InputReady();

        m_NetManager.SendUdp(packet);
    }
Example #25
0
    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, "与服务器链接丢失,将重新与服务器建立链接");
        }
    }
Example #26
0
    /// <summary>
    /// 登录游戏
    /// </summary>
    /// <param name="account"></param>
    public void InputLogin(string account)
    {
        CWritePacket packet = m_OpreationManager.InputLogin(account);

        m_NetManager.Send(packet);
    }
Example #27
0
    /// <summary>
    /// 参加匹配
    /// </summary>
    /// <param name="account"></param>
    public void InputMatch(int matchType)
    {
        CWritePacket packet = m_OpreationManager.InputMatch(matchType);

        m_NetManager.Send(packet);
    }
Example #28
0
    /// <summary>
    /// 进入匹配房间
    /// </summary>
    /// <param name="account"></param>
    public void InputJoinMatchRoom()
    {
        CWritePacket packet = m_OpreationManager.InputJoinMatchRoom();

        m_NetManager.Send(packet);
    }
Example #29
0
 /// <summary>
 /// 发送网络数据
 /// </summary>
 /// <param name="buffer"></param>
 public void Send(CWritePacket buffer)
 {
     m_TcpClient.AsyncSendData(buffer);
 }
Example #30
0
 /// <summary>
 /// 发送网络数据
 /// </summary>
 /// <param name="buffer"></param>
 public void SendUdp(CWritePacket buffer)
 {
     m_UdpClient.AsyncSendData(buffer);
 }