コード例 #1
0
 public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters)
 {
     if (filters == null)
     {
         return;
     }
     int num = Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t));
     this.m_pNativeArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * filters.Length);
     this.m_pArrayEntries = Marshal.AllocHGlobal(num * filters.Length);
     for (int i = 0; i < filters.Length; i++)
     {
         Marshal.StructureToPtr(filters[i], new IntPtr(this.m_pArrayEntries.ToInt64() + (long)(i * num)), false);
     }
     Marshal.WriteIntPtr(this.m_pNativeArray, this.m_pArrayEntries);
 }
コード例 #2
0
		public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) {
			if (filters == null) {
				return;
			}

			int sizeOfMMKVP = Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t));

			m_pNativeArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * filters.Length);
			m_pArrayEntries = Marshal.AllocHGlobal(sizeOfMMKVP * filters.Length);
			for (int i = 0; i < filters.Length; ++i) {
				Marshal.StructureToPtr(filters[i], new IntPtr(m_pArrayEntries.ToInt64() + (i * sizeOfMMKVP)), false);
			}

			Marshal.WriteIntPtr(m_pNativeArray, m_pArrayEntries);
		}
コード例 #3
0
		public static HServerListRequest RequestSpectatorServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) {
			InteropHelp.TestIfAvailableClient();
			return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestSpectatorServerList(iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse);
		}
コード例 #4
0
ファイル: GClient.cs プロジェクト: SteamHelpers/SGMulti
 public HServerListRequest RefreshList(EServerList listType, MatchMakingKeyValuePair_t[] filters, ISteamMatchmakingServerListResponse response = null)
 {
     ISteamMatchmakingServerListResponse resp = new ISteamMatchmakingServerListResponse(SteamMatchmakingServerListResponse_ServerResponded, SteamMatchmakingServerListResponse_ServerFailedToResponded, (a, b) =>
     {
         SteamMatchmakingServerListResponse_OnRefreshComplete(a, b, listType);
     });
     if (response != null)
         resp = response;
     switch (listType)
     {
         case EServerList.Favorites:
             return SteamMatchmakingServers.RequestFavoritesServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp);
         case EServerList.Friends:
             return SteamMatchmakingServers.RequestFriendsServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp);
         case EServerList.History:
             return SteamMatchmakingServers.RequestHistoryServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp);
         case EServerList.Internet:
             return SteamMatchmakingServers.RequestInternetServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp);
         case EServerList.LAN:
             return SteamMatchmakingServers.RequestLANServerList(SteamUtils.GetAppID(), resp);
         case EServerList.Spectator:
             return SteamMatchmakingServers.RequestSpectatorServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp);
         default:
             throw new System.Exception("\"listType\" must not be unknown.");
     }
 }
コード例 #5
0
	public void RenderOnGUI() {
		GUILayout.BeginArea(new Rect(Screen.width - 120, 0, 120, Screen.height));
		GUILayout.Label("Variables:");
		GUILayout.Label("m_ServerListRequest: " + m_ServerListRequest);
		GUILayout.Label("m_ServerQuery: " + m_ServerQuery);
		GUILayout.EndArea();

		if (GUILayout.Button("RequestInternetServerList(new AppId_t(440), filters, (uint)filters.Length, m_ServerListResponse)")) {
			ReleaseRequest();

			MatchMakingKeyValuePair_t[] filters = new MatchMakingKeyValuePair_t[1];
			filters[0].m_szKey = "map";
			filters[0].m_szValue = "cp_granary";

			m_ServerListRequest = SteamMatchmakingServers.RequestInternetServerList(new AppId_t(440), filters, (uint)filters.Length, m_ServerListResponse);
			print("SteamMatchmakingServers.RequestInternetServerList(" + new AppId_t(440) + ", filters, (uint)filters.Length, m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("RequestLANServerList(new AppId_t(440), m_ServerListResponse)")) {
			ReleaseRequest();
			m_ServerListRequest = SteamMatchmakingServers.RequestLANServerList(new AppId_t(440), m_ServerListResponse); ;
			print("SteamMatchmakingServers.RequestLANServerList(" + new AppId_t(440) + ", m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("RequestFriendsServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) {
			ReleaseRequest();
			m_ServerListRequest = SteamMatchmakingServers.RequestFriendsServerList(new AppId_t(440), null, 0, m_ServerListResponse);
			print("SteamMatchmakingServers.RequestFriendsServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("RequestFavoritesServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) {
			ReleaseRequest();
			m_ServerListRequest = SteamMatchmakingServers.RequestFavoritesServerList(new AppId_t(440), null, 0, m_ServerListResponse);
			print("SteamMatchmakingServers.RequestFavoritesServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("RequestHistoryServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) {
			ReleaseRequest();
			m_ServerListRequest = SteamMatchmakingServers.RequestHistoryServerList(new AppId_t(440), null, 0, m_ServerListResponse);
			print("SteamMatchmakingServers.RequestHistoryServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("RequestSpectatorServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) {
			ReleaseRequest();
			m_ServerListRequest = SteamMatchmakingServers.RequestSpectatorServerList(new AppId_t(440), null, 0, m_ServerListResponse);
			print("SteamMatchmakingServers.RequestSpectatorServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest);
		}

		if (GUILayout.Button("ReleaseRequest(m_ServerListRequest)")) {
			ReleaseRequest(); // We do this instead, because we want to make sure that m_ServerListRequested gets set to Invalid after releasing.
		}

		if (GUILayout.Button("GetServerDetails(m_ServerListRequest, 0)")) {
			gameserveritem_t gsi = SteamMatchmakingServers.GetServerDetails(m_ServerListRequest, 0);
			print("SteamMatchmakingServers.GetServerDetails(" + m_ServerListRequest + ", 0) : " + gsi + "\n" + GameServerItemFormattedString(gsi));
		}

		if (GUILayout.Button("CancelQuery(m_ServerListRequest)")) {
			SteamMatchmakingServers.CancelQuery(m_ServerListRequest);
			print("SteamMatchmakingServers.CancelQuery(" + m_ServerListRequest + ")");
		}

		if (GUILayout.Button("RefreshQuery(m_ServerListRequest)")) {
			SteamMatchmakingServers.RefreshQuery(m_ServerListRequest);
			print("SteamMatchmakingServers.RefreshQuery(" + m_ServerListRequest + ")");
		}

		GUILayout.Label("SteamMatchmakingServers.IsRefreshing(m_ServerListRequest) : " + SteamMatchmakingServers.IsRefreshing(m_ServerListRequest));

		GUILayout.Label("SteamMatchmakingServers.GetServerCount(m_ServerListRequest) : " + SteamMatchmakingServers.GetServerCount(m_ServerListRequest));


		if (GUILayout.Button("RefreshServer(m_ServerListRequest, 0)")) {
			SteamMatchmakingServers.RefreshServer(m_ServerListRequest, 0);
			print("SteamMatchmakingServers.RefreshServer(" + m_ServerListRequest + ", 0)");
		}

		// 3494815209 = 208.78.165.233 = Valve Payload Server (Virginia srcds150 #1)
		if (GUILayout.Button("PingServer(3494815209, 27015, m_PingResponse)")) {
			CancelServerQuery();
			m_ServerQuery = SteamMatchmakingServers.PingServer(3494815209, 27015, m_PingResponse);
			print("SteamMatchmakingServers.PingServer(3494815209, 27015, m_PingResponse) : " + m_ServerQuery);
		}

		if (GUILayout.Button("PlayerDetails(3494815209, 27015, m_PlayersResponse)")) {
			CancelServerQuery();
			m_ServerQuery = SteamMatchmakingServers.PlayerDetails(3494815209, 27015, m_PlayersResponse);
			print("SteamMatchmakingServers.PlayerDetails(3494815209, 27015, m_PlayersResponse) : " + m_ServerQuery);
		}

		if (GUILayout.Button("ServerRules(3494815209, 27015, m_RulesResponse)")) {
			CancelServerQuery();
			m_ServerQuery = SteamMatchmakingServers.ServerRules(3494815209, 27015, m_RulesResponse);
			print("SteamMatchmakingServers.ServerRules(3494815209, 27015, m_RulesResponse) : " + m_ServerQuery);
		}

		if (GUILayout.Button("CancelServerQuery(m_ServerQuery)")) {
			CancelServerQuery(); // We do this instead, because we want to make sure that m_ServerListRequested gets set to Invalid after releasing, and we call it from a number of places.
		}
	}
コード例 #6
0
		public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) {
			if (filters == null) {
				return;
			}
			
			m_AllocatedMemory = new IntPtr[filters.Length];

			int intPtrSize = Marshal.SizeOf(typeof(IntPtr));
			m_NativeArray = Marshal.AllocHGlobal(intPtrSize * filters.Length);
			for (int i = 0; i < filters.Length; i++) {
				m_AllocatedMemory[i] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t)));
				Marshal.StructureToPtr(filters[i], m_AllocatedMemory[i], false);

				Marshal.WriteIntPtr(m_NativeArray, i * intPtrSize, m_AllocatedMemory[i]);
			}
		}