コード例 #1
0
        public static bool BtnRefreshOnClick(UILobbyMainWndCtrl __instance)
        {
            if (__instance.mRoomListPage != 0 && __instance.mRoomListPage != 1)
            {
                return(false);
            }

            var lan = __instance.mRoomListPage == 1;

            var request = SteamServerHandler.currentInternetRequest;

            if (lan)
            {
                request = SteamServerHandler.currentLanRequest;
            }
            if (request == HServerListRequest.Invalid || !SteamMatchmakingServers.IsRefreshing(request))
            {
                if (lan)
                {
                    Traverse.Create(__instance).Field("_serverListLan").GetValue <List <ServerRegistered> >().Clear();
                }
                else
                {
                    Traverse.Create(__instance).Field("_serverListInter").GetValue <List <ServerRegistered> >().Clear();
                }
                typeof(UILobbyMainWndCtrl).GetMethod("RefreshRoomList", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { });


                if (request != HServerListRequest.Invalid)
                {
                    SteamMatchmakingServers.RefreshQuery(request);
                }
                else
                {
                    if (lan)
                    {
                        SteamServerHandler.currentLanRequest =
                            SteamMatchmakingServers.RequestLANServerList(new AppId_t(237870u),
                                                                         new ISteamMatchmakingServerListResponse(SteamServerHandler.ServerResponded, SteamServerHandler.ServerFailedToRespond, SteamServerHandler.RefreshComplete));
                    }
                    else
                    {
                        SteamServerHandler.currentInternetRequest =
                            SteamMatchmakingServers.RequestInternetServerList(new AppId_t(237870u), new MatchMakingKeyValuePair_t[] { new MatchMakingKeyValuePair_t()
                                                                                                                                      {
                                                                                                                                          m_szKey = "gametagsand", m_szValue = "public"
                                                                                                                                      } }, 1,
                                                                              new ISteamMatchmakingServerListResponse(SteamServerHandler.ServerResponded, SteamServerHandler.ServerFailedToRespond, SteamServerHandler.RefreshComplete));
                    }
                }
                SteamServerHandler.lastUpdate = true;
            }
            return(false);
        }
コード例 #2
0
    void Awake()
    {
        mInstance = this;

        PlayMusic();

        mPlayerPageIndex           = 0;
        mRoomListPage              = 0;
        mRoomList.CheckItem       += roomListChickItem;
        mRoomList.DoubleClickItem += RoomListDoubleClickItem;
        //e_LobbyUIStart += GameClientLobby.Self.QueryLobbyExp;
    }
コード例 #3
0
        public static bool BtnJoinOnClick(UILobbyMainWndCtrl __instance)
        {
            if (__instance.mPlayerInput.text != null)
            {
                var   nums    = __instance.mPlayerInput.text.Split(',');
                ulong steamid = 0ul;
                if (int.TryParse(nums[0], out var roleid) && roleid < 13000000 && (nums.Length == 1 || (nums.Length == 2 && ulong.TryParse(nums[1], out steamid))))
                {
                    Traverse.Create <GameClientLobby>().Property("role").GetValue <CustomData.RoleInfo>().roleID = roleid;
                    if (nums.Length == 2)
                    {
                        Traverse.Create <GameClientLobby>().Property("role").GetValue <CustomData.RoleInfo>().steamId = steamid;
                    }
                }
            }

            return(true);
        }
コード例 #4
0
        public static bool WorkShopOnClose(UILobbyMainWndCtrl __instance)
        {
            var mWorkShopCtrl = Traverse.Create(__instance).Field("mWorkShopCtrl").GetValue <UIWorkShopCtrl>();

            if (mWorkShopCtrl != null)
            {
                var mLastWnd = Traverse.Create(__instance).Field("mLastWnd").GetValue <UnityEngine.GameObject>();
                if (mLastWnd != null && mLastWnd != mWorkShopCtrl.gameObject)
                {
                    mLastWnd.SetActive(true);
                }
                else
                {
                    __instance.mRoomWnd.SetActive(true);
                }
                UnityEngine.GameObject.Destroy(mWorkShopCtrl.gameObject);
                Traverse.Create(__instance).Field("mWorkShopCtrl").SetValue(null);
            }

            return(false);
        }
コード例 #5
0
        public static bool Start(UILobbyMainWndCtrl __instance)
        {
            PeSteamFriendMgr.Instance.Init(__instance.mTopLeftAuthor.transform, __instance.mUICenter.transform, __instance.mUICamera);

            if (GameClientLobby.Self == null)
            {
                return(false);
            }

            Traverse.Create(__instance).Field("mRoleInfo").SetValue(GameClientLobby.role);

            __instance.GetType().GetMethod("SetRoleInfo", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { });

            var mRecentRoom_M = new RecentRoomDataManager(Traverse.Create(__instance).Field("mRoleInfo").Field("name").GetValue <string>());

            Traverse.Create(__instance).Field("mRecentRoom_M").SetValue(mRecentRoom_M);
            mRecentRoom_M.LoadFromFile();

            __instance.StartCoroutine((IEnumerator)__instance.GetType().GetMethod("UpdatePlayerInfo", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { }));
            __instance.StartCoroutine((IEnumerator)__instance.GetType().GetMethod("UpdateRoomInfo", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { }));

            SteamServerHandler.currentLanRequest =
                SteamMatchmakingServers.RequestLANServerList(new AppId_t(237870u),
                                                             new ISteamMatchmakingServerListResponse(SteamServerHandler.ServerResponded, SteamServerHandler.ServerFailedToRespond, SteamServerHandler.RefreshComplete));
            SteamServerHandler.currentInternetRequest =
                SteamMatchmakingServers.RequestInternetServerList(new AppId_t(237870u), new MatchMakingKeyValuePair_t[] { new MatchMakingKeyValuePair_t()
                                                                                                                          {
                                                                                                                              m_szKey = "gametagsand", m_szValue = "public"
                                                                                                                          } }, 1,
                                                                  new ISteamMatchmakingServerListResponse(SteamServerHandler.ServerResponded, SteamServerHandler.ServerFailedToRespond, SteamServerHandler.RefreshComplete));
            SteamServerHandler.lastUpdate = true;


            __instance.GetType().GetMethod("InitRoomListSort", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { });


            return(false);
        }
コード例 #6
0
        public static bool Update(UILobbyMainWndCtrl __instance)
        {
            __instance.GetType().GetMethod("UpdateLobbyLevel", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(__instance, new object[] { });

            return(false);
        }