Discussion:
[hlcoders] using ISteamUser::UserHasLicenseForApp
Tom Schumann
2017-02-14 11:08:09 UTC
Permalink
For the record I'm working with GoldSource but am still interested in how
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?

I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bi
Sam Vanheer
2017-02-14 11:26:39 UTC
Permalink
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.


The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.


Regards,


Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in how
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailman/li
Tom Schumann
2017-02-18 02:56:33 UTC
Permalink
Yeah okay. So ISteamUser has a GetSteamID method which I guess should work
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are only
headers for SteamUser004 and SteamUser008 (from the Source SDK on Steam)
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not really
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in how
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
Tom Schumann
2017-02-18 08:35:43 UTC
Permalink
As a sort of follow-up, steam_api_c.dll contains a reference
to SteamUser010. Is steam_api.dll what provides the ISteamUser interface,
or is there another .dll that does?
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should work
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are only
headers for SteamUser004 and SteamUser008 (from the Source SDK on Steam)
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not really
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in
how
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/ma
Sam Vanheer
2017-02-18 11:03:08 UTC
Permalink
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK was
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.

Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.


Regards,


Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should work
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are only
headers for SteamUser004 and SteamUser008 (from the Source SDK on Steam)
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not really
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in how
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailm
Tom Schumann
2017-02-18 12:04:14 UTC
Permalink
Ah, right you are:
https://github.com/ValveSoftware/source-sdk-2013/blob/39ed87570bdb2f86969d4be821c94b722dc71179/mp/src/public/steam/isteamuser.h

Thanks
Post by Sam Vanheer
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK was
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.
Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.
Regards,
Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should
work
Post by Tom Schumann
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are
only
Post by Tom Schumann
headers for SteamUser004 and SteamUser008 (from the Source SDK on Steam)
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not
really
Post by Tom Schumann
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in
how
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find no
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/
Tom Schumann
2017-02-25 05:28:57 UTC
Permalink
Got it working:
https://github.com/tschumann/basis/commit/3814dc117c7323b48bdbd4f0df9e2ef1faa8579e
UserHasLicenseForApp doesn't look like the right thing as it only returns
true for the currently running app. ISteamApps might be the right
interface...
Ah, right you are: https://github.com/ValveSoftware/source-sdk-2013/blob/
39ed87570bdb2f86969d4be821c94b722dc71179/mp/src/public/steam/isteamuser.h
Thanks
Post by Sam Vanheer
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK was
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.
Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.
Regards,
Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should
work
Post by Tom Schumann
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are
only
Post by Tom Schumann
headers for SteamUser004 and SteamUser008 (from the Source SDK on Steam)
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not
really
Post by Tom Schumann
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested in
how
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find
no
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/c
Tom Schumann
2017-02-25 05:40:02 UTC
Permalink
ISteamApps->BIsSubscribedApp looks like it will you whether an arbitrary
app is owned by the current user.
Got it working: https://github.com/tschumann/basis/commit/
3814dc117c7323b48bdbd4f0df9e2ef1faa8579e
UserHasLicenseForApp doesn't look like the right thing as it only returns
true for the currently running app. ISteamApps might be the right
interface...
Ah, right you are: https://github.com/ValveS
oftware/source-sdk-2013/blob/39ed87570bdb2f86969d4be821c94b7
22dc71179/mp/src/public/steam/isteamuser.h
Thanks
Post by Sam Vanheer
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK was
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.
Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.
Regards,
Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should
work
Post by Tom Schumann
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are
only
Post by Tom Schumann
headers for SteamUser004 and SteamUser008 (from the Source SDK on
Steam)
Post by Tom Schumann
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not
really
Post by Tom Schumann
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested
in how
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find
no
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives,
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valve
SM Sith Lord
2017-02-25 13:55:46 UTC
Permalink
I've only been able to get a complete list of owned apps by scraping the user's public Steam community profile.  Would be great if the Steamworks API has a way to grab it locally.SM Sith Lord

From: Tom Schumann <***@gmail.com>
To: Discussion of Half-Life Programming <***@list.valvesoftware.com>
Sent: Friday, February 24, 2017 9:40 PM
Subject: Re: [hlcoders] using ISteamUser::UserHasLicenseForApp

ISteamApps->BIsSubscribedApp looks like it will you whether an arbitrary
app is owned by the current user.
Got it working: https://github.com/tschumann/basis/commit/
3814dc117c7323b48bdbd4f0df9e2ef1faa8579e
UserHasLicenseForApp doesn't look like the right thing as it only returns
true for the currently running app. ISteamApps might be the right
interface...
Ah, right you are: https://github.com/ValveS
oftware/source-sdk-2013/blob/39ed87570bdb2f86969d4be821c94b7
22dc71179/mp/src/public/steam/isteamuser.h
Thanks
Post by Sam Vanheer
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK was
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.
Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.
Regards,
Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should
work
Post by Tom Schumann
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking to
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are
only
Post by Tom Schumann
headers for SteamUser004 and SteamUser008 (from the Source SDK on
Steam)
Post by Tom Schumann
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not
really
Post by Tom Schumann
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested
in how
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could find
no
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives,
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders




_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://lis
Tom Schumann
2017-03-05 09:50:28 UTC
Permalink
Eventually got this working on Linux too - the trick is to link to
libsteam_api.so in Makefile.hl_cdll
I linked with the one that comes with Half-Life (the one on the Steamworks
website had a slightly different file size but I'm sure it would work too.

Getting it working on a Mac is probably a similar process but I don't have
a Mac to test on.
Post by SM Sith Lord
I've only been able to get a complete list of owned apps by scraping the
user's public Steam community profile. Would be great if the Steamworks
API has a way to grab it locally.SM Sith Lord
Sent: Friday, February 24, 2017 9:40 PM
Subject: Re: [hlcoders] using ISteamUser::UserHasLicenseForApp
ISteamApps->BIsSubscribedApp looks like it will you whether an arbitrary
app is owned by the current user.
Got it working: https://github.com/tschumann/basis/commit/
3814dc117c7323b48bdbd4f0df9e2ef1faa8579e
UserHasLicenseForApp doesn't look like the right thing as it only returns
true for the currently running app. ISteamApps might be the right
interface...
Ah, right you are: https://github.com/ValveS
oftware/source-sdk-2013/blob/39ed87570bdb2f86969d4be821c94b7
22dc71179/mp/src/public/steam/isteamuser.h
Thanks
Post by Sam Vanheer
Half-Life uses the Steamworks SDK v1.20, which the Github Source SDK
was
Post by Sam Vanheer
originally released with. Clone the repo, revert it to its first commit
and you'll have the right headers and libraries.
Alternatively, download the Steamworks SDK from
https://partner.steamgames.com. You should be able to log in with any
Steam account, go to the release archive and download v1.20.
Regards,
Solokiller
Post by Tom Schumann
Yeah okay. So ISteamUser has a GetSteamID method which I guess should
work
Post by Tom Schumann
regardless of offline mode or sv_lan
I guess it's just a matter of including the header files and linking
to
Post by Sam Vanheer
Post by Tom Schumann
steam_api.lib
Although Half-Life's steam_api.dll exposes SteamUser016 and there are
only
Post by Tom Schumann
headers for SteamUser004 and SteamUser008 (from the Source SDK on
Steam)
Post by Tom Schumann
and SteamUser018 (from the Source SDK on GitHub) so I guess it's not
really
Post by Tom Schumann
doable from Half-Life with the currently available sources.
Post by Sam Vanheer
Only interfaces exposed in steam_gameserver.h's
CSteamGameServerAPIContext class can be accessed on the server side.
The client side connects to the local Steam client instance, so
whichever account you're logged in as will be used.
Regards,
Solokiller
Post by Tom Schumann
For the record I'm working with GoldSource but am still interested
in how
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
to use this API for working out if a player owns a game.
How does it work in Source? Is it meant to be called and used from
client.dll only? Does client.dll always have the player's Steam ID
regardless of sv_lan or offline mode or whatever?
I had a look at the code in source-sdk-2013 on GitHub but could
find
Post by Sam Vanheer
no
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
uses of it.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives,
Post by Tom Schumann
Post by Sam Vanheer
Post by Tom Schumann
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives,
Post by Sam Vanheer
Post by Tom Schumann
Post by Sam Vanheer
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives,
Post by Sam Vanheer
Post by Tom Schumann
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listin

Loading...