diff --git a/Extension/gsnatives.cpp b/Extension/gsnatives.cpp index a06efb9..e3d7495 100644 --- a/Extension/gsnatives.cpp +++ b/Extension/gsnatives.cpp @@ -190,6 +190,19 @@ static cell_t sm_ClearRules(IPluginContext *pContext, const cell_t *params) return 1; } +static cell_t sm_SetAdvertiseServerActive(IPluginContext *pContext, const cell_t *params) +{ + ISteamGameServer *pServer = GetGSPointer(); + + if (pServer == NULL) + { + return 0; + } + + pServer->SetAdvertiseServerActive(!!params[1]); + return 1; +} + static cell_t sm_ForceHeartbeat(IPluginContext *pContext, const cell_t *params) { /* Deprecated no-op: newer Steamworks SDKs removed ISteamGameServer::ForceHeartbeat(); @@ -295,6 +308,7 @@ static sp_nativeinfo_t gsnatives[] = { {"SteamWorks_IsConnected", sm_IsConnected}, {"SteamWorks_SetRule", sm_SetRule}, {"SteamWorks_ClearRules", sm_ClearRules}, + {"SteamWorks_SetAdvertiseServerActive", sm_SetAdvertiseServerActive}, {"SteamWorks_ForceHeartbeat", sm_ForceHeartbeat}, {"SteamWorks_HasLicenseForApp", sm_UserHasLicenseForApp}, {"SteamWorks_HasLicenseForAppId", sm_UserHasLicenseForAppId}, diff --git a/Pawn/includes/SteamWorks.inc b/Pawn/includes/SteamWorks.inc index 8aedb3c..a0f935f 100644 --- a/Pawn/includes/SteamWorks.inc +++ b/Pawn/includes/SteamWorks.inc @@ -346,6 +346,16 @@ native bool SteamWorks_SetRule(const char[] sKey, const char[] sValue); */ native bool SteamWorks_ClearRules(); +/** + * Sets whether the server should be advertised on the master server list and + * respond to server browser / LAN discovery packets. Defaults to false; set + * other server parameters before enabling advertising. + * + * @param bActive True to advertise the server, false to hide it. + * @return True on success, false if not connected to Steam. + */ +native bool SteamWorks_SetAdvertiseServerActive(bool bActive); + /** * Deprecated no-op. Newer Steamworks SDKs removed ForceHeartbeat; server list * heartbeats are now sent implicitly by Steam. @@ -1199,6 +1209,7 @@ public void __ext_SteamWorks_SetNTVOptional() MarkNativeAsOptional("SteamWorks_IsConnected"); MarkNativeAsOptional("SteamWorks_SetRule"); MarkNativeAsOptional("SteamWorks_ClearRules"); + MarkNativeAsOptional("SteamWorks_SetAdvertiseServerActive"); MarkNativeAsOptional("SteamWorks_ForceHeartbeat"); MarkNativeAsOptional("SteamWorks_GetUserGroupStatus"); MarkNativeAsOptional("SteamWorks_GetUserGroupStatusAuthID");