On another note, Alfred can you please ask the tf2 guys to fix the spawns on
goldrush so red cant get into blues base. This is very annoying with ubered
pryos.

Mark

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Alfred
Reynolds
Sent: Wednesday, June 04, 2008 12:32 PM
To: Discussion of Half-Life Programming
Subject: Re: [hlcoders] Limiting access by Steam ID

Its improvements to better support HL1 (in particular the fact it needs to
use C exports) and bringing it forward to some new subsystems, so all these
exports the code below is pulling in are going to change as they weren't
written for general consumption. If you want to access Steam functions use
the steam/isteam*.h headers and functionality.

- Alfred

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:hlcoders-
> [EMAIL PROTECTED] On Behalf Of Ashley Cowey
> Sent: Tuesday, June 03, 2008 9:18 PM
> To: Discussion of Half-Life Programming
> Subject: Re: [hlcoders] Limiting access by Steam ID
> 
> Alfred, Is the update to make the Steam API more or less accessible?
> Sorry
> for off topic.
> 
> On Wed, Jun 4, 2008 at 11:42 AM, Alfred Reynolds
> <[EMAIL PROTECTED]>
> wrote:
> 
> > You really don't want to do this in shipping code, we are about to
> release
> > an update that would break this as we have changed those private
> API's we
> > export from steamclient.dll.
> >
> > - Alfred
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] [mailto:hlcoders-
> > > [EMAIL PROTECTED] On Behalf Of Ashley Cowey
> > > Sent: Tuesday, June 03, 2008 7:00 PM
> > > To: Discussion of Half-Life Programming
> > > Subject: Re: [hlcoders] Limiting access by Steam ID
> > >
> > > Yes this is possible. Get the steamid by
> > >
> > > typedef unsigned __int32 HSteamPipe;
> > > typedef unsigned __int32 HSteamUser;
> > > typedef unsigned __int32 uint32;
> > > typedef unsigned __int16 uint16;
> > > typedef unsigned __int64 uint64;
> > >
> > > typedef UINT64 (*pfnGetUserSteamID)(void *phSteamHandle);
> > > typedef void *(*pfnSteam_GetGSHandle)(HSteamUser hUser, HSteamPipe
> > > hSteamPipe);
> > > typedef HSteamUser (*pfnSteam_CreateGlobalUser)(HSteamPipe
> > > *phSteamPipe);
> > > typedef HSteamPipe (*pfnSteam_CreateSteamPipe)(void);
> > > typedef void (*pfnSteam_ReleaseUser)(HSteamPipe hSteamPipe,
> HSteamUser
> > > hUser);
> > > typedef BOOL (*pfnSteam_BReleaseSteamPipe)(HSteamPipe hSteamPipe);
> > >
> > > pfnGetUserSteamID GetUserSteamID;
> > > pfnSteam_GetGSHandle GetSteamHandle;
> > > pfnSteam_CreateGlobalUser CreateGlobalUser;
> > > pfnSteam_CreateSteamPipe CreateSteamPipe;
> > > pfnSteam_ReleaseUser ReleaseUser;
> > > pfnSteam_BReleaseSteamPipe ReleaseSteamPipe;
> > >
> > > int main() {
> > >
> > >     UINT64        uiSteamID;
> > >     HINSTANCE    SteamClientLibrary;
> > >     HSteamUser hSteamUser;
> > >     HSteamPipe hPipe;
> > >     void *hSteam;
> > >     BOOL ret;
> > >
> > >
> > >     SteamClientLibrary = LoadLibrary("steamclient.dll");
> > >
> > >     if ( SteamClientLibrary != 0 ) {
> > >
> > >         printf("[steamclient.dll] loaded successfully ...\n");
> > >
> > >     }
> > >     else {
> > >
> > >         printf("[steamclient.dll] failed to load ...\n");
> > >         return 1;
> > >
> > >     }
> > >
> > >     CreateSteamPipe =
> > > (pfnSteam_CreateSteamPipe)GetProcAddress(SteamClientLibrary,
> > > "Steam_CreateSteamPipe");
> > >     CreateGlobalUser =
> > > (pfnSteam_CreateGlobalUser)GetProcAddress(SteamClientLibrary,
> > > "Steam_CreateGlobalUser");
> > >     GetSteamHandle =
> > > (pfnSteam_GetGSHandle)GetProcAddress(SteamClientLibrary,
> > > "Steam_GetGSHandle");
> > >     GetUserSteamID =
> > > (pfnGetUserSteamID)GetProcAddress(SteamClientLibrary,
> > > "Steam_GSGetSteamID");
> > >     ReleaseUser =
> > > (pfnSteam_ReleaseUser)GetProcAddress(SteamClientLibrary,
> > > "Steam_ReleaseUser");
> > >     ReleaseSteamPipe =
> > > (pfnSteam_BReleaseSteamPipe)GetProcAddress(SteamClientLibrary,
> > > "Steam_BReleaseSteamPipe");
> > >
> > >     //----------------------------
> > >     // uint64 Steam_GSGetSteamID(void *phSteamHandle)
> > >     //-----------------------------------------------
> > >     // It would appear that the return value is
> > >     // the numerical value of the SteamID * 2.
> > >     //
> > >
> > >     hPipe = CreateSteamPipe();
> > >
> > >     if (hPipe) {
> > >
> > >         printf("Steam_CreateSteamPipe returned [%i]\n", hPipe);
> > >
> > >         hSteamUser = CreateGlobalUser(&hPipe);
> > >
> > >         if (hSteamUser) {
> > >
> > >             printf("Steam_CreateGlobalUser returned [%i]\n",
> > > hSteamUser);
> > >
> > >             hSteam = GetSteamHandle(hSteamUser, hPipe);
> > >
> > >             if (hSteam!=NULL) {
> > >
> > >                 printf("Recieved handle [%i]\n", hSteam);
> > >
> > >                 uiSteamID = GetUserSteamID(hSteam);
> > >
> > >                 printf("Steam_GSGetSteamID returned [%i]\n",
> > > uiSteamID);
> > >                 printf("SteamID for current user is [%i]\n",
> > > (((int)uiSteamID) / 2));
> > >
> > >                 SetFromUint64( uiSteamID );
> > >
> > >                 ReleaseUser( hPipe, hSteamUser );
> > >                 ret = ReleaseSteamPipe( hPipe );
> > >
> > >                 printf("ReleaseSteamPipe returned [%i]\n", ret);
> > >
> > >                 FreeLibrary(SteamClientLibrary);
> > >
> > >             }
> > >             else {
> > >
> > >                 ReleaseUser( hPipe, hSteamUser );
> > >                 ReleaseSteamPipe( hPipe );
> > >                 FreeLibrary(SteamClientLibrary);
> > >                 return 1;
> > >
> > >             }
> > >
> > >         }
> > >         else {
> > >
> > >             ReleaseSteamPipe( hPipe );
> > >             FreeLibrary(SteamClientLibrary);
> > >             return 1;
> > >
> > >         }
> > >
> > >     }
> > >
> > >     return 0;
> > >
> > > }
> > >
> > > I know this can be done using the steamapi lib but when i wrote
> this i
> > > wasnt
> > > aware of its existence.
> > >
> > > hope this helps
> > >
> > >
> > > On Wed, Jun 4, 2008 at 6:26 AM, Spencer 'voogru' MacDonald <
> > > [EMAIL PROTECTED]> wrote:
> > >
> > > > You can use the Steam Client API to get their FriendID, which
> > > converts to
> > > > their STEAM ID, this would be implemented on the client.
> > > >
> > > > Then for the server end you put some protection there as well.
> > > >
> > > > - voogru.
> > > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED] On Behalf Of
> vivoli
> > > > Sent: Tuesday, June 03, 2008 6:01 PM
> > > > To: Discussion of Half-Life Programming
> > > > Subject: Re: [hlcoders] Limiting access by Steam ID
> > > >
> > > > You can't because in LAN (or localhost), the SteamID is
> > > STEAM_PENDING.
> > > > So you can't limiting access by SteamID.
> > > >
> > > >
> > > > > Nuclear Dawn does something like this, with Steam ID's as far
> as I
> > > know.
> > > > > I
> > > > > imagine a good place would be the DLL's init function (server &
> > > client?).
> > > > >
> > > > > That's my best guess.
> > > > >
> > > > > /ScarT
> > > > >
> > > > >
> > > > > On 03/06/2008, Spencer 'voogru' MacDonald <[EMAIL PROTECTED]>
> > > wrote:
> > > > >>
> > > > >> This is your best bet.
> > > > >>
> > > > >> -----Original Message-----
> > > > >> From: [EMAIL PROTECTED]
> > > > >> [mailto:[EMAIL PROTECTED] On Behalf Of
> Adam
> > > > Maras
> > > > >> (memzero)
> > > > >> Sent: Tuesday, June 03, 2008 5:17 PM
> > > > >> To: 'Discussion of Half-Life Programming'
> > > > >> Subject: Re: [hlcoders] Limiting access by Steam ID
> > > > >>
> > > > >> Could you invite the testers to a private Steam Communities
> group
> > > and
> > > > >> hard-code the group ID into the mod instead? Then, simply use
> the
> > > Steam
> > > > >> API
> > > > >> to check for membership in that group.
> > > > >>
> > > > >> //  Adam Maras (memzero)
> > > > >>
> > > > >> -----Original Message-----
> > > > >> From: [EMAIL PROTECTED]
> > > > >> [mailto:[EMAIL PROTECTED] On Behalf Of
> Jed
> > > > >> Sent: Tuesday, June 03, 2008 2:04 PM
> > > > >> To: Discussion of Half-Life Programming
> > > > >> Subject: [hlcoders] Limiting access by Steam ID
> > > > >>
> > > > >> I know this is going to be a controversial subject but bear
> with
> > > me.
> > > > >>
> > > > >> I was asked by one of our Mod team if it would be possible for
> the
> > > > >> internal beta version to lock them so that they could only be
> > > played
> > > > >> by certain people. As we use SVN to allow testers to
> > > download/update
> > > > >> the various builds it's percieveable they could give/share
> their
> > > SVN
> > > > >> info and others could happily leech off it.
> > > > >>
> > > > >> The idea was to hard code a list of steam ID's into the DLLs
> for
> > > the
> > > > >> duration of testing and basically refuse to load the game if
> > > you're
> > > > >> not on the list. We're not thinking just stopping people
> joining
> > > games
> > > > >> but actually stopping them completely so they can't make local
> > > listen
> > > > >> or LAN servers.
> > > > >>
> > > > >> I've never gone this deep into the whole Steam side of things
> for
> > > > >> getting ID's or where would be a suitable or safe place to put
> the
> > > > >> check/reject code.
> > > > >>
> > > > >> Thoughts? Suggestions?
> > > > >>
> > > > >> - Jed
> > > > >>
> > > > >> P.S. We're a EP1 mod.
> > > > >>
> > > > >> _______________________________________________
> > > > >> To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > >> please visit:
> > > > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > > >>
> > > > >>
> > > > >>
> > > > >> _______________________________________________
> > > > >> To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > >> please visit:
> > > > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > > >>
> > > > >>
> > > > >> _______________________________________________
> > > > >> To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > >> please visit:
> > > > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > > >>
> > > > >>
> > > > > _______________________________________________
> > > > > To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > > please visit:
> > > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Utilisant le client e-mail révolutionnaire d'Opera :
> > > > http://www.opera.com/mail/
> > > >
> > > > _______________________________________________
> > > > To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > please visit:
> > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >
> > > >
> > > > _______________________________________________
> > > > To unsubscribe, edit your list preferences, or view the list
> > > archives,
> > > > please visit:
> > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >
> > > >
> > > _______________________________________________
> > > To unsubscribe, edit your list preferences, or view the list
> archives,
> > > please visit:
> > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >
> >
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list
> archives,
> > please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >
> >
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to