void CallsignTagInfo::LoadFromRegistry() { char szSteamClanID[120]; szSteamClanID[0] = '\0'; DWORD cbClanID = sizeof(szSteamClanID); char szSteamOfficerToken[5]; szSteamOfficerToken[0] = '\0'; DWORD cbSteamOfficerToken = sizeof(szSteamOfficerToken); HKEY hKey; DWORD dwType; if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, ALLEGIANCE_REGISTRY_KEY_ROOT, 0, KEY_READ, &hKey)) { RegQueryValueEx(hKey, "SteamClanID", NULL, &dwType, (BYTE *)&szSteamClanID, &cbClanID); RegQueryValueEx(hKey, "SteamOfficerToken", NULL, &dwType, (BYTE *)&szSteamOfficerToken, &cbSteamOfficerToken); RegCloseKey(hKey); } CSteamID targetGroupID(strtoull(szSteamClanID, NULL, NULL)); CSteamID currentUser = SteamUser()->GetSteamID(); int clanCount = SteamFriends()->GetClanCount(); for (int i = 0; i < clanCount; i++) { if (targetGroupID == SteamFriends()->GetClanByIndex(i)) { m_steamGroupID = targetGroupID.ConvertToUint64(); break; } } UpdateStringValues(szSteamOfficerToken); }
/* <f1608> ../engine/sv_steam3.cpp:805 */ const char *Steam_GetCommunityName() { if (SteamFriends()) return SteamFriends()->GetPersonaName(); return NULL; }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- bool CAvatarImage::SetAvatarSteamID( CSteamID steamIDUser ) { ClearAvatarSteamID(); #ifndef NO_STEAM if ( SteamFriends() && SteamUtils() ) { int iAvatar = SteamFriends()->GetFriendAvatar( steamIDUser ); /* // See if it's in our list already */ uint32 wide, tall; if ( SteamUtils()->GetImageSize( iAvatar, &wide, &tall ) ) { int cubImage = wide * tall * 4; byte *rgubDest = (byte*)_alloca( cubImage ); SteamUtils()->GetImageRGBA( iAvatar, rgubDest, cubImage ); InitFromRGBA( rgubDest, wide, tall ); /* // put it in the list RGBAImage *pRGBAImage = new RGBAImage( rgubDest, wide, tall ); int iImageList = m_pImageList->AddImage( pRGBAImage ); m_mapAvatarToIImageList.Insert( iAvatar, iImageList ); */ } } #endif return m_bValid; }
tstring TPortal_GetPlayerNickname() { if (!SteamFriends()) return ""; const char* pszNickname = SteamFriends()->GetPersonaName(); return tstring(pszNickname); }
void SteamCallbackManager::onLobbyCreated(LobbyCreated_t* pCallback) { if (pCallback->m_eResult == k_EResultOK) { qDebug() << "Inviting steam friends" << pCallback->m_ulSteamIDLobby; auto url = SteamFriends()->GetFriendRichPresence(SteamUser()->GetSteamID(), "connect"); SteamMatchmaking()->SetLobbyData(pCallback->m_ulSteamIDLobby, "connect", url); SteamFriends()->ActivateGameOverlayInviteDialog(pCallback->m_ulSteamIDLobby); } }
tstring TPortal_GetPlayerNickname() { if (!SteamFriends()) return _T(""; const char* pszNickname = SteamFriends()->GetPersonaName(); return convertstring<char, tchar>(pszNickname); }
void SteamClient::updateLocation(QString status, QUrl locationUrl) { if (!initialized) { return; } auto connectStr = locationUrl.isEmpty() ? "" : CONNECT_PREFIX + locationUrl.toString() + CONNECT_SUFFIX; SteamFriends()->SetRichPresence("status", status.toLocal8Bit().data()); SteamFriends()->SetRichPresence("connect", connectStr.toLocal8Bit().data()); }
// this one probably will be called by some callbacks void Steam::updateGroupList() { if ( SteamFriends() == NULL ) { return; } groupList.clear(); int list_size = SteamFriends()->GetClanCount(); for(int i=0;i<list_size;i++) { CSteamID g_steam_id = SteamFriends()->GetClanByIndex(i); Ref<_SteamGroup> next_group = memnew( _SteamGroup(g_steam_id) ); groupList.push_back(next_group); } }
int32 UAdvancedFriendsLibrary::GetFriendSteamLevel(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId) { if (!PlayerController) { UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad Player Controller!")); return 0; } if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) { UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!")); return 0; } if (SteamAPI_Init()) { uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); return SteamFriends()->GetFriendSteamLevel(id); } return 0; }
bool CSteamCtx::Connect (CString *retsError) // Connect // // Connect to Steam. { if (m_bConnected) return true; // Boot up steam if (!SteamAPI_Init()) { if (retsError) *retsError = CONSTLIT("Unable to initialize Steam API."); m_bConnected = false; return false; } // We're enabled m_sUsername = CString(CString::csUTF8, SteamFriends()->GetPersonaName()); m_bConnected = true; return true; }
Array Steam::get_recent_players() { if ( SteamFriends() == NULL ) { return Array(); } Array uList; int list_size = SteamFriends()->GetCoplayFriendCount(); for(int i=0;i<list_size;i++) { CSteamID uSteamID = SteamFriends()->GetCoplayFriend(i); if ( SteamFriends()->GetFriendCoplayGame(uSteamID) == get_appid() ) // played the same game { Ref<_SteamUser> nextUser = memnew( _SteamUser(uSteamID) ); uList.push_back(nextUser); } } return uList; }
FOnlineIdentitySteam::FOnlineIdentitySteam() : SteamUserPtr(NULL), SteamFriendsPtr(NULL) { SteamUserPtr = SteamUser(); SteamFriendsPtr = SteamFriends(); }
Ref<_SteamUser> Steam::get_user() { if ( SteamFriends() != NULL && yourUser == NULL ) { CSteamID cSteamID = SteamUser()->GetSteamID(); yourUser = Ref<_SteamUser>( memnew( _SteamUser(cSteamID) ) ); } return yourUser; }
FVoiceEngineSteam::FVoiceEngineSteam(FOnlineSubsystemSteam* InSteamSubsystem) : SteamSubsystem(InSteamSubsystem), OwningUserIndex(INVALID_INDEX), bPendingFinalCapture(false), bIsCapturing(false), SerializeHelper(NULL) { SteamUserPtr = SteamUser(); SteamFriendsPtr = SteamFriends(); }
void CallsignTagInfo::UpdateStringValues(ZString selectedToken) { m_isOfficer = false; //m_callsignTag = ""; //m_index = 0; CSteamID currentUser = SteamUser()->GetSteamID(); m_callsignTag = FixupCallsignTag(SteamFriends()->GetClanTag(m_steamGroupID)); // If the user is on the officer's list, then they are an officer. int officerCount = SteamFriends()->GetClanOfficerCount(m_steamGroupID); for (int j = 0; j < officerCount; j++) { if (SteamFriends()->GetClanOfficerByIndex(m_steamGroupID, j) == currentUser) { m_isOfficer = true; break; } } // If the user is the group owner, then they are an officer. if (currentUser == SteamFriends()->GetClanOwner(m_steamGroupID)) { m_isOfficer = true; } ZString groupTag = FixupCallsignTag(SteamFriends()->GetClanTag(m_steamGroupID)); if (groupTag == "Dev" || groupTag == "Alleg") { m_isOfficer = true; } if (m_isOfficer == true) { ZString tokens = GetAvailableTokens(); if (tokens.Find(selectedToken) >= 0) m_callsignToken = selectedToken; else m_callsignToken = tokens.Middle(tokens.GetLength() - 1, 1); } }
// this one probably will be called by some callbacks void Steam::updateFriendList(int filter) { if ( SteamFriends() == NULL ) { return; } // default filter = lastFriendsFilter if ( filter == -1 ) { filter = lastFriendsFilter; } // if filter out of range then filter = ALL if ( filter<0 || filter>ALL ) { filter = ALL; } friendList.clear(); int list_size = SteamFriends()->GetFriendCount(0x04); // "regular" friend 0x04 (see sdk EFriendFlags) for(int i=0;i<list_size;i++) { CSteamID f_steam_id = SteamFriends()->GetFriendByIndex( i, 0x04 ); // "regular" friend 0x04 (see EFriendFlags) int f_state = int( SteamFriends()->GetFriendPersonaState(f_steam_id) ); if ( !(filter == ALL || filter == f_state || (filter==NOT_OFFLINE && f_state!=OFFLINE) ) ) { continue; } Ref<_SteamUser> new_friend = memnew( _SteamUser(f_steam_id) ); friendList.push_back(new_friend); } lastFriendsFilter = filter; }
const chowstring & SteamObject::get_user_name() { #ifdef CHOWDREN_ENABLE_STEAM if (!global_steam_obj.initialized) return empty_string; static chowstring name; name = SteamFriends()->GetPersonaName(); return name; #else return empty_string; #endif }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CSteam3Client::OnPersonaUpdated( PersonaStateChange_t *pPersonaStateChanged ) { if ( pPersonaStateChanged->m_nChangeFlags & k_EPersonaChangeName ) { if ( SteamUtils() && SteamFriends() && SteamUser() ) { CSteamID steamID = SteamUser()->GetSteamID(); IConVar *pConVar = g_pCVar->FindVar( "name" ); UpdateNameFromSteamID( pConVar, &steamID ); } } }
//----------------------------------------------------------------------------- // Purpose: Tell the server about any updates we have had client-side //----------------------------------------------------------------------------- bool CShip::BGetClientUpdateData( ClientSpaceWarUpdateData_t *pUpdateData ) { // Limit the rate at which we send updates, even if our internal frame rate is higher if ( m_pGameEngine->GetGameTickCount() - m_ulLastClientUpdateTick < 1000.0f/CLIENT_UPDATE_SEND_RATE ) return false; m_ulLastClientUpdateTick = m_pGameEngine->GetGameTickCount(); // Update playername before sending if ( m_bIsLocalPlayer ) { m_SpaceWarClientUpdateData.SetPlayerName( SteamFriends()->GetFriendPersonaName( SteamUser()->GetSteamID() ) ); } memcpy( pUpdateData, &m_SpaceWarClientUpdateData, sizeof( ClientSpaceWarUpdateData_t ) ); memset( &m_SpaceWarClientUpdateData, 0, sizeof( m_SpaceWarClientUpdateData ) ); return true; }
bool UAdvancedFriendsLibrary::RequestSteamFriendInfo(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId) { if (!PlayerController) { UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad Player Controller!")); return false; } if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) { UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!")); return false; } if (SteamAPI_Init()) { uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); return !SteamFriends()->RequestUserInformation(id, false); } return false; }
SW_PY int GetPersonaState() { return SteamFriends()->GetPersonaState(); }
SW_PY const char* GetPersonaName() { return SteamFriends()->GetPersonaName(); }
// Steam Friends SW_PY int GetFriendCount(int flag) { return SteamFriends()->GetFriendCount(flag); }
// Cleans up all the keys void Steam::clear_game_info() { if ( SteamFriends() == NULL ) { return; } SteamFriends()->ClearRichPresence(); }
// User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI) void SteamFriends_SetInGameVoiceSpeaking( CSteamID steamIDUser, bool Speaking ){return SteamFriends()->SetInGameVoiceSpeaking(steamIDUser,Speaking);};
// Opens Steam App Store void Steam::overlay_open_store(int app_id) { if ( SteamFriends() == NULL ) { return; } SteamFriends()->ActivateGameOverlayToStore( AppId_t(app_id), EOverlayToStoreFlag(0) ); }
// Open URL using Steam overlay browser void Steam::overlay_open_url(const String& url) { if ( SteamFriends() == NULL ) { return; } SteamFriends()->ActivateGameOverlayToWebPage( url.utf8().get_data() ); }
// activates game overlay to a specific place // valid options are // "steamid" - opens the overlay web browser to the specified user or groups profile // "chat" - opens a chat window to the specified user, or joins the group chat // "jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API // "stats" - opens the overlay web browser to the specified user's stats // "achievements" - opens the overlay web browser to the specified user's achievements // "friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend // "friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend // "friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite // "friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite void Steam::overlay_open_user(const String& url, Ref<SteamID> user) { if ( SteamFriends() == NULL ) { return; } SteamFriends()->ActivateGameOverlayToUser( url.utf8().get_data(), user->getCSteamID() ); //SteamFriends()->ActivateGameOverlayToUser( url.utf8().get_data(), CSteamID(uint64(steam_id)) ); }
bool Steam::set_game_info(const String& s_key, const String& s_value) { if ( SteamFriends() == NULL ) { return false; } return SteamFriends()->SetRichPresence(s_key.utf8().get_data(),s_value.utf8().get_data()); }
// activates the game overlay, with an optional dialog to open // valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements" void SteamFriends_ActivateGameOverlay( const char *Dialog ){return SteamFriends()->ActivateGameOverlay(Dialog);};