Пример #1
0
    public void Init(string szUrl)
    {
        H5Helper.H5LogStr(szUrl);
        Uri uri = new Uri(szUrl);

        string szBaseUrl;
        NameValueCollection nvcParam;

        ParseUrl(szUrl, out szBaseUrl, out nvcParam);

        GameInstance.Instance().SetPlatform(nvcParam.Get("platform"));
        GameInstance.Instance().SetName(nvcParam.Get("name"));
        GameInstance.Instance().SetHeadImage(nvcParam.Get("head_img"));
        GameInstance.Instance().SetAccessToken(nvcParam.Get("access_token"));
        GameInstance.Instance().SetOpenId(nvcParam.Get("openid"));

        string szSex         = nvcParam.Get("sex");
        string szExpiresDate = nvcParam.Get("expires_date");
        uint   dwSex         = 0;
        uint   dwExpiresDate = 0;

        uint.TryParse(szSex, out dwSex);
        uint.TryParse(szExpiresDate, out dwExpiresDate);

        GameInstance.Instance().SetSex(dwSex);
        GameInstance.Instance().SetExpiresDate(dwExpiresDate);
    }
Пример #2
0
    public void Init(string szUrl)
    {
        SampleDebuger.Log(szUrl);
        Uri uri = new Uri(szUrl);

        string szBaseUrl;
        NameValueCollection nvcParam;

        ParseUrl(szUrl, out szBaseUrl, out nvcParam);

        PlayerData.Instance().SetPlatform(nvcParam.Get("platform"));
        PlayerData.Instance().SetName(nvcParam.Get("name"));
        PlayerData.Instance().SetHeadImage(nvcParam.Get("head_img"));
        StartCoroutine(H5Helper.SendGet(PlayerData.Instance().proHeadImage, delegate(Texture2D tex)
        {
            PlayerData.Instance().SetHeadTex(tex);
        })
                       );
        PlayerData.Instance().SetAccessToken(nvcParam.Get("access_token"));
        PlayerData.Instance().SetOpenId(nvcParam.Get("openid"));

        string szSex         = nvcParam.Get("sex");
        string szExpiresDate = nvcParam.Get("expires_date");
        uint   dwSex         = 0;
        uint   dwExpiresDate = 0;

        uint.TryParse(szSex, out dwSex);
        uint.TryParse(szExpiresDate, out dwExpiresDate);

        PlayerData.Instance().SetSex(dwSex);
        PlayerData.Instance().SetExpiresDate(dwExpiresDate);
    }
Пример #3
0
    public bool InitSession(SessionType eType, string szIp, UInt16 wPort)
    {
        H5Helper.H5LogStr("type : " + eType.ToString() + ", ip : " + szIp + ", port : " + wPort);
        m_szIP         = szIp;
        m_wPort        = wPort;
        m_eSessionType = eType;

        switch (m_eSessionType)
        {
        case SessionType.SessionType_TCP:
        {
            m_pSession = new BinarySession(this);
        }
        break;

        case SessionType.SessionType_WebSocket:
        {
            m_pSession = new WebSocketSession(this);
        }
        break;

        default:
        {
            return(false);
            //throw new ArgumentException("error session type : " + m_eSessionType.ToString());
        }
        break;
        }

        m_pSession.Init(m_szIP, m_wPort);
        m_pClientSocket = m_pSession.Reconnect();
        return(true);
    }
Пример #4
0
    public void Init(GameProto.RoleData oData)
    {
        m_imgHead.gameObject.SetActive(true);
        LobbyTeamPlayer pLeader = TeamPlayerManager.Instance().GetPlayerBySlot(0);

        if (pLeader.m_qwPlayerId != PlayerData.Instance().proPlayerId)
        {
            m_buttonKick.gameObject.SetActive(false);
        }
        else
        {
            if (m_dwSlotId != 0)
            {
                m_buttonKick.gameObject.SetActive(false);
                //todo 先不踢玩家 如果要加这个功能 后面再处理
                m_buttonKick.gameObject.SetActive(true);
            }
            else
            {
                m_buttonKick.gameObject.SetActive(false);
            }
        }
        m_qwPlayerId    = oData.QwPlayerId;
        m_textName.text = oData.SzNickName;
        m_buttonInvite.gameObject.SetActive(false);
        StartCoroutine(H5Helper.SendGet(oData.SzAvatar, delegate(Texture2D tex)
        {
            m_imgHead.texture = tex;
        })
                       );
    }
Пример #5
0
 public override IFxClientSocket Reconnect()
 {
     H5Helper.H5LogStr("Reconnect");
     m_pSocket.Init(this);
     m_pSocket.Connect(m_oGameObject, m_szIp, m_wPort);
     return(m_pSocket);
 }
Пример #6
0
    public void OnPlayerRequestGameTest(byte[] pBuf)
    {
        GameProto.PlayerRequestGameTest oTest = GameProto.PlayerRequestGameTest.Parser.ParseFrom(pBuf);
        if (oTest == null)
        {
            H5Helper.H5LogStr("OnTest error parse");
            return;
        }

        H5Helper.H5LogStr(oTest.SzTest.ToString());

        oTest.SzTest = String.Format("{0}, {1}, {2}, {3}, {4}, {5}",
                                     "sessionobject.cs", 106, "SessionObject::OnRecv", dw1++,
                                     ToString(), DateTime.Now.ToLocalTime().ToString());

        byte[]          pData   = new byte[1024];
        FxNet.NetStream pStream = new FxNet.NetStream(FxNet.NetStream.ENetStreamType.ENetStreamType_Write, pData, 1024);
        pStream.WriteString("GameProto.PlayerRequestGameTest");
        byte[] pProto = new byte[oTest.CalculateSize()];
        Google.Protobuf.CodedOutputStream oStream = new Google.Protobuf.CodedOutputStream(pProto);
        oTest.WriteTo(oStream);
        pStream.WriteData(pProto, (uint)pProto.Length);

        m_pSession.Send(pData, 1024 - pStream.GetLeftLen());
    }
Пример #7
0
 public void SetHeadImage(string szHeadImage)
 {
     m_szHeadImage = szHeadImage;
     StartCoroutine(H5Helper.SendGet(m_szHeadImage, delegate(Texture2D tex)
     {
         m_imageHead.texture = tex;
     })
                    );
 }
Пример #8
0
 public void RegistMessage(string szProtoName, MessageCallBack pfCallBack)
 {
     if (m_mapCallBack.ContainsKey(szProtoName))
     {
         H5Helper.H5AlertString("already registed proto " + szProtoName);
         return;
     }
     m_mapCallBack[szProtoName] = pfCallBack;
 }
Пример #9
0
 public void OnLoginAckPlayerInviteTeam(byte[] pBuf)
 {
     GameProto.LoginAckPlayerInviteTeam oRet = GameProto.LoginAckPlayerInviteTeam.Parser.ParseFrom(pBuf);
     if (oRet == null)
     {
         H5Helper.H5LogStr("OnLoginAckPlayerInviteTeam error parse");
         return;
     }
     H5Helper.H5LogStr("invite team ret : " + oRet.DwResult.ToString());
 }
Пример #10
0
 public void OnLoginNotifyPlayerGameKick(byte[] pBuf)
 {
     GameProto.LoginNotifyPlayerGameKick oRet = GameProto.LoginNotifyPlayerGameKick.Parser.ParseFrom(pBuf);
     if (oRet == null)
     {
         H5Helper.H5LogStr("OnLoginNotifyPlayerGameKick error parse");
         return;
     }
     H5Helper.H5LogStr("game kick ret : " + oRet.DwResult.ToString());
 }
Пример #11
0
    public void OnLoginAckPlayerMakeTeam(byte[] pBuf)
    {
        GameProto.LoginAckPlayerMakeTeam oRet = GameProto.LoginAckPlayerMakeTeam.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginAckPlayerMakeTeam error parse");
            return;
        }

        H5Helper.H5LogStr("make team ret : " + oRet.DwResult.ToString() + " slot : " + oRet.DwSlotId.ToString() + " team_id : " + oRet.QwTeamId.ToString());
    }
Пример #12
0
    public void OnLoginAckPlayerLoginResult(byte[] pBuf)
    {
        GameProto.LoginAckPlayerLoginResult oRet = GameProto.LoginAckPlayerLoginResult.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnTest error parse");
            return;
        }

        H5Helper.H5LogStr("login ret : " + oRet.DwResult.ToString());
    }
Пример #13
0
    public void OnLoginAckPlayerGameStart(byte[] pBuf)
    {
        GameProto.LoginAckPlayerGameStart oRet = GameProto.LoginAckPlayerGameStart.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginAckPlayerGameStart error parse");
            return;
        }
        H5Helper.H5LogStr("game start : " + oRet.DwResult.ToString());

        H5Manager.Instance().ConnectGame(oRet.SzListenIp, (ushort)oRet.DwPlayerPort);
    }
Пример #14
0
    public void OnServerInfo(string szData)
    {
        H5Helper.H5LogStr(szData);
        ServerListInfo oServerList = JsonUtility.FromJson <ServerListInfo>(szData);

        if (oServerList.server_infos.Count == 0)
        {
            H5Helper.H5AlertString("can't find server list!!!!");
            return;
        }
        ServerInfo oServerInfo = oServerList.server_infos[0];

        LoginServerList pList = LoginServerList.CreateInstance(GameObjectConstent.g_szLoginServerList, m_pUiCanvas);

        pList.SetServerListInfo(oServerList);
    }
Пример #15
0
    public void OnLoginNotifyPlayerInviteTeam(byte[] pBuf)
    {
        GameProto.LoginNotifyPlayerInviteTeam oRet = GameProto.LoginNotifyPlayerInviteTeam.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginAckPlayerOnLinePlayer error parse");
            return;
        }

        H5Helper.H5LogStr("on invitee team player id : " + oRet.QwPlayerId.ToString() + " team id : " + oRet.QwTeamId.ToString());

        GameObject go_RoleList = Instantiate(Resources.Load <GameObject>(GameObjectConstent.g_szControlPanel), transform.parent);

        go_RoleList.GetComponent <ControlPanel>().Init("player : " + oRet.QwPlayerId.ToString() + " invite you to team :" + oRet.QwTeamId.ToString(),
                                                       IntoInviteTeam, oRet, null, null);
    }
Пример #16
0
    public void OnLoginAckPlayerOnLinePlayer(byte[] pBuf)
    {
        GameProto.LoginAckPlayerOnLinePlayer oRet = GameProto.LoginAckPlayerOnLinePlayer.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginAckPlayerOnLinePlayer error parse");
            return;
        }
        H5Helper.H5LogStr("online player ret : " + oRet.DwResult.ToString());

        RoleList pRoleList = RoleList.CreateInstance(GameObjectConstent.g_szPlayerList, transform.parent);

        pRoleList.SetPlayerIds(oRet.QwPlayerId);

        //GameObject go_RoleList = Instantiate(Resources.Load<GameObject>(GameObjectConstent.g_szPlayerList), transform.parent);

        //go_RoleList.GetComponent<RoleList>().SetPlayerIds(oRet.QwPlayerId);
    }
Пример #17
0
    public void OnLoginNotifyPlayerTeamInfo(byte[] pBuf)
    {
        GameProto.LoginNotifyPlayerTeamInfo oRet = GameProto.LoginNotifyPlayerTeamInfo.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginNotifyPlayerTeamInfo error parse");
            return;
        }
        string szContent = "OnLoginNotifyPlayerTeamInfo team id : " + oRet.QwTeamId.ToString() + "\n";

        for (int i = 0; i < oRet.TeamRoleData.Count; ++i)
        {
            szContent += "playerid : " + oRet.TeamRoleData[i].RoleData.QwPlayerId.ToString()
                         + ", slot id : " + oRet.TeamRoleData[i].DwSlotId.ToString()
                         + ", serverid : " + oRet.TeamRoleData[i].DwServerId.ToString() + "\n";
        }

        H5Helper.H5LogStr(szContent);
    }
Пример #18
0
    public void OnRoleData(string szData)
    {
        SampleDebuger.Log(szData);
        RoleDataRet oData = JsonUtility.FromJson <RoleDataRet>(szData);

        GameProto.PlayerRequestLogin oTest = new GameProto.PlayerRequestLogin();
        oTest.SzToken    = oData.token;
        oTest.QwPlayerId = oData.data.id;
        oTest.SzAvatar   = oData.data.avatar;
        oTest.SzNickName = oData.data.nick_name;
        oTest.DwSex      = oData.data.sex;
        oTest.DwBalance  = oData.data.balance;

        StartCoroutine(H5Helper.SendGet(oData.data.avatar, delegate(Texture2D tex)
        {
            PlayerData.Instance().SetHeadTex(tex);
        })
                       );

        PlayerData.Instance().SetPlayerId(oData.data.id);
        PlayerData.Instance().SetName(oData.data.nick_name);
        PlayerData.Instance().SetHeadImage(oData.data.avatar);
        PlayerData.Instance().SetSex(oData.data.sex);
        PlayerData.Instance().SetBalance(oData.data.balance);
        PlayerData.Instance().SetToken(oData.token);

        byte[]          pData   = new byte[2048];
        FxNet.NetStream pStream = new FxNet.NetStream(FxNet.NetStream.ENetStreamType.ENetStreamType_Write, pData, 2048);
        pStream.WriteString("GameProto.PlayerRequestLogin");
        byte[] pProto = new byte[oTest.CalculateSize()];
        Google.Protobuf.CodedOutputStream oStream = new Google.Protobuf.CodedOutputStream(pProto);
        oTest.WriteTo(oStream);
        pStream.WriteData(pProto, (uint)pProto.Length);

        m_pSession.Send(pData, 2048 - pStream.GetLeftLen());

        if (!string.IsNullOrEmpty(oData.game_ip))
        {
            PlayerData.Instance().SetGameIp(oData.game_ip);
            PlayerData.Instance().SetGamePort((ushort)oData.game_port);
        }
    }
Пример #19
0
    public void OnRecv(byte[] pBuf, uint dwLen)
    {
        NetStream pStream     = new NetStream(pBuf, dwLen);
        string    szProtoName = "";

        pStream.ReadString(ref szProtoName);
        byte[] pProto = new byte[pStream.GetLeftLen()];
        pStream.ReadData(ref pProto, pStream.GetLeftLen());

        if (!m_mapCallBack.ContainsKey(szProtoName))
        {
            H5Helper.H5LogStr("can't find proto name " + szProtoName);
            return;
        }
        m_mapCallBack[szProtoName](pProto);

        //foreach (var item in m_pfOnRecv)
        //{
        //	item(pBuf, dwLen);
        //}
        //m_pfOnRecv(pBuf, dwLen);
    }
Пример #20
0
    public void IntoInviteTeam(object pParam)
    {
        GameProto.LoginNotifyPlayerInviteTeam oInvite = pParam as GameProto.LoginNotifyPlayerInviteTeam;
        if (oInvite == null)
        {
            H5Helper.H5AlertString("IntoInviteTeam parse error!!!!");
            return;
        }
        GameProto.PlayerRequestLoginEnterTeam oRequest = new GameProto.PlayerRequestLoginEnterTeam();
        oRequest.DwTeamServerId = oInvite.DwTeamServerId;
        oRequest.QwTeamId       = oInvite.QwTeamId;

        byte[]          pData   = new byte[1024];
        FxNet.NetStream pStream = new FxNet.NetStream(FxNet.NetStream.ENetStreamType.ENetStreamType_Write, pData, 1024);
        pStream.WriteString("GameProto.PlayerRequestLoginEnterTeam");
        byte[] pProto = new byte[oRequest.CalculateSize()];
        Google.Protobuf.CodedOutputStream oStream = new Google.Protobuf.CodedOutputStream(pProto);
        oRequest.WriteTo(oStream);
        pStream.WriteData(pProto, (uint)pProto.Length);

        m_pSession.Send(pData, 1024 - pStream.GetLeftLen());
    }
Пример #21
0
    public void OnLoginAckPlayerServerId(byte[] pBuf)
    {
        GameProto.LoginAckPlayerServerId oRet = GameProto.LoginAckPlayerServerId.Parser.ParseFrom(pBuf);
        if (oRet == null)
        {
            H5Helper.H5LogStr("OnLoginAckPlayerServerId error parse");
            return;
        }

        string  szUrl = GameInstance.Instance().proUrlHost + GameInstance.Instance().proGetRoleUri;
        WWWForm form  = new WWWForm();

        form.AddField("platform", GameInstance.Instance().proPlatform);
        form.AddField("name", GameInstance.Instance().proName);
        form.AddField("head_img", GameInstance.Instance().proHeadImage);
        form.AddField("sex", GameInstance.Instance().proSex.ToString());
        form.AddField("access_token", GameInstance.Instance().proAccessToken);
        form.AddField("expires_date", GameInstance.Instance().proExpiresDate.ToString());
        form.AddField("openid", GameInstance.Instance().proOpenId);
        form.AddField("server_id", oRet.DwServerId.ToString());

        StartCoroutine(H5Helper.SendPost(szUrl, form, OnRoleData));
    }
Пример #22
0
 public void PrepareInit(GameProto.RoleData oData)
 {
     if (oData == null)
     {
         m_qwPlayerId = 0;
         m_textName.gameObject.SetActive(false);
         m_buttonInvite.gameObject.SetActive(false);
         m_buttonKick.gameObject.SetActive(false);
         m_imgHead.gameObject.SetActive(false);
     }
     else
     {
         m_imgHead.gameObject.SetActive(true);
         m_buttonKick.gameObject.SetActive(false);
         m_qwPlayerId    = oData.QwPlayerId;
         m_textName.text = oData.SzNickName;
         m_buttonInvite.gameObject.SetActive(false);
         StartCoroutine(H5Helper.SendGet(oData.SzAvatar, delegate(Texture2D tex)
         {
             m_imgHead.texture = tex;
         })
                        );
     }
 }
Пример #23
0
 public override void OnClose()
 {
     H5Helper.H5LogStr("OnClose");
     m_oGameObject.OnClose();
 }
Пример #24
0
    // Use this for initialization
    void Start()
    {
#if UNITY_WEBGL && !UNITY_EDITOR
        Init(H5Helper.H5GetUrl());
#endif
    }
Пример #25
0
 public void GetServerInfo()
 {
     StartCoroutine(H5Helper.SendGet(m_szServerUrl + m_szServerInfoUri, OnServerInfo));
 }
Пример #26
0
 public bool OnSessionDestroy()
 {
     H5Helper.H5AlertString("session obj has destroy!!!!");
     Destroy(this);
     return(false);
 }
Пример #27
0
 public void OnClose()
 {
     H5Helper.H5AlertString("session close");
 }
Пример #28
0
 public override void OnError(uint dwErrorNo)
 {
     H5Helper.H5AlertString(m_pSocket.GetError());
     m_oGameObject.OnError(dwErrorNo);
 }
Пример #29
0
 public void OnError(uint dwErrorNo)
 {
     H5Helper.H5AlertString("session error " + dwErrorNo.ToString());
 }
Пример #30
0
 public override void OnConnect()
 {
     H5Helper.H5LogStr("OnConnect");
     m_oGameObject.OnConnect();
 }