рд╣рдо рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ 1

рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯреАрдо рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ, рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ, рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓, рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ "рдЧреЗрдо рд╕реНрдЯреВрдбрд┐рдпреЛ" рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рднрд╛рдк рдореЗрдВ рдпрд╛ рд╕реНрдЯреАрдо рдЧреНрд░реАрдирд▓рд╛рдЗрдЯ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рднрд╛рдк рдХрд╛ рднрд╛рдЧреАрджрд╛рд░ рдмрди рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡рд┐рд╡рд░рдгред рдУрдкрди рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реНрдЯреАрдо рдПрдкрд┐ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди (рд╕реНрдЯреАрдо рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдбрд┐рд╕реНрд╕реИрдореНрдмрд▓реНрдб рд╡рд░реНрдЬрди рд╣реИред)

"рдУрдкрди рд╕реНрдЯреАрд╡рд░реНрдХреНрд╕ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ" - рд░рдпрд╛рди рд╕реНрдЯреАрдХрд░ред рддреЛ рдЦреБрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд▓реЗрдЦрди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓ (рдореЗрд░рд╛ рдирд╣реАрдВ) рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛, рдЬреЛ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ , рд╡реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рд╣реИрдВред рдЖрдк рд╕рд╛рдЗрдЯ рд╕реЗ рдУрдкрди рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ Visual Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рд╛рде рдореЗрдВ рдорд┐рдВрдЧ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд▓реЛ рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдк рдЦреБрд▓реЗ рд╕реНрдЯреАрдорд╡рд░реНрдХ рд╕реЗ рдЯреЗрд╕реНрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред

#include <SteamclientAPI.h> #include <SteamAPI.h> 

рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

 #pragma comment( lib, "../Resources/Libs/Win32/steamclient" ) #pragma comment( lib, "../Resources/Libs/Win32/steam" ) 

рд╣рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 12 рдХреЗ рд╕рд╛рде рд╕реНрдЯреАрдо рдмреЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИред
рдПрдХ рдЕрд╕рдВрддреБрд╖реНрдЯ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕реНрдЯреАрдо рдХреЗ рдкрде рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдПрдХ рдЦреЛрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХрд░рддрд╛ рд╣реИред

 CSteamAPILoader loader; auto *Client = (ISteamClient012 *)loader.GetSteam3Factory()(STEAMCLIENT_INTERFACE_VERSION_012, NULL); 

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЖрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

 if ( !Client ) { printf("Unable to get ISteamClient."); } 

рд╣рдо рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рдЗрдк рдмрдирд╛рддреЗ рд╣реИрдВред

 HSteamPipe pipe = Client->CreateSteamPipe(); 

рдкрд╛рдЗрдк рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

 if ( !pipe ) { printf("Unable to get pipe"); } 

рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╕реНрдЯреАрдо) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред

 HSteamUser user = Client->ConnectToGlobalUser( pipe ); 

рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ред

 if ( !user ) { printf("Unable connect to global user"); } 


рдПрдкреАрдЖрдИ рд╡реА 12 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

 auto *User = (ISteamUser012 *)Client->GetISteamUser( user, pipe, STEAMUSER_INTERFACE_VERSION_012); 

рдПрдкреАрдЖрдИ v.13 рдФрд░ v рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред 1 рджреЛрд╕реНрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред

 auto *Friends = (ISteamFriends001 *)Client->GetISteamFriends(user, pipe, STEAMFRIENDS_INTERFACE_VERSION_001); auto *Friends13 = (ISteamFriends013 *)Client->GetISteamFriends(user, pipe, STEAMFRIENDS_INTERFACE_VERSION_013); 

рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╛рд╡рдзрд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ IClient рдЗрдВрдЯрд░рдлреЗрд╕ (IClientUtils, IClientFriends, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпреЗ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдЧреНрд▓реЛрдмрд▓ рд╕реНрдЯреАрдо рдЕрдкрдбреЗрдЯ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛, ISteam ( рдКрдкрд░ рд╡рд░реНрдгрд┐рдд ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ , рдЕрдЧрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ IClient рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ, рдФрд░ рдпрд╣ рдХрднреА-рдХрднреА рд╣реЛрддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг DLL рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ (рдЖрдк рдЗрд╕реЗ рдЖрдпрд╛рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВред

рдЕрдм рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдмрджрд▓реЗрдВред (рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ)

 Friends->SetPersonaState(k_EPersonaStateSnooze); 

рд╣рдо рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рд╣рдореЗрдВ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рдореЗрдВ рд╕реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред

рд╣рдореЗрдВ рджреЛрд╕реНрддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред

 int friendcount = Friends->GetFriendCount(); printf("%d",friendcount); 


рдЕрдкрдирд╛ рдирд╛рдо рдмрджрд▓реЗрдВ

 Friends->SetPersonaName("Big_balls"); 


рд╣рдо рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рдорд┐рддреНрд░ рдХреА рд╕реНрдЯреАрдорд┐рдб (64 рдмрд┐рдЯреНрд╕) рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рджреЛрд╕реНрдд рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╕реНрдерд┐рддрд┐ рдСрдирд▓рд╛рдЗрди рд╣реИ рдФрд░ рджреЛрд╕реНрдд рдХрд╛ рдирд╛рдо рдХреНрд░реЗ рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВред

 for(int i = 1; i < friendcount + 1; i++) { CSteamID thisfriend = Friends->GetFriendByIndex(i); if(Friends->GetFriendPersonaState(thisfriend) == k_EPersonaStateOnline && strstr(Friends- >GetFriendPersonaName(thisfriend),"Crey") != 0) { char myMsg[] = "My friend Crey is online."; Friends->SendMsgToFriend(thisfriend, k_EChatEntryTypeEmote,myMsg,strlen(myMsg)+1); } 


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреАрдорд╡рд░реНрдХреНрд╕ рдХреА рдорджрдж рд╕реЗ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдЯреНрд░реЗрдб рдмреЙрдЯ рдХреЛ "рд╕реЗрдЯ рд░реЗрдЯ" рдФрд░ рдмрд╣реБрдд рд╕реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдкрд░ рд╡рд┐рдирд┐рдордп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рд╣рдо IScreenshots, IUserstats (рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ), рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In157999/


All Articles