Áttekintés
Az új Steam Barátok és Csevegés kiadásával továbbfejlesztettük „részletes jelenlét” rendszerünk képességeit, hogy többet mutassanak az épp játszott játékokról. A játékos részletes jelenlétét olyasvalaminek tekintjük, amivel be lehet vonni a játékos barátait annak tevékenységébe. Például olyan barátok, akiknek megvan a játék, úgy vesznek részt, hogy tudják, mikor alkalmas az idő csatlakozni a játékhoz, vagy beszélni arról a játékossal, azoknak pedig, akiknek nincs meg a játék, felkeltheti az érdeklődését azáltal, hogy különféle részletes jelenlét szövegekkel találkoznak, amelyek többet mondanak nekik egy olyan játékról, amiről nem sokat tudnak.

Ebben a dokumentációban két olyan beállítást ismertetünk, amelyeket megadhatsz annak szabályzására, hogyan jelenik meg a játékod a játékosok barátlistáján:
- Részletes jelenlét karakterlánc: olyan információk megjelenítésére szolgál a játékos állapotáról a játékodban, amiről barátaik esetleg tudni akarnak.
- Barátcsoportosítás: olyan barátok csoportosítására szolgál, akik együtt játszanak a játékban.
Játék által vezérelt részletes jelenlét karakterlánc

A rendelkezésere álló rendszer testre szabható, így a csapatod tudja meghatározni, mely információk a legérdekesebbek egy játékos barátai számára.
A játékodnak meglesznek a saját konkrét adatai, amelyek a megfelelő bemutatandó információk lesznek a javított részletes jelenléthez. A kezdéshez azonban van néhány dolog, amit meg kell fontolni:
Többjátékos játékok
A többjátékos játék fajtájától függően eltérhetnek azok az információk, amelyek segítenek egy játékos barátainak tudni, mikor ugorjanak be. Egyes játékokat körökben játszanak, amelyeket az idő vagy a hátralévő játékosok határoznak meg, így ezt az információt a leghasznosabb megjeleníteni. Más többjátékos játékok akkor fejeződnek be, amikor elértek egy célt, és az e cél felé haladás mutatása lehet hasznos. Annak ismerete, hogy a játékosod melyik játékmódban vagy pályán van, szintén hasznos lehet segítségül a játékos barátainak eldönteni, hogyan lépjenek kapcsolatba a játékossal.
Egyjátékos játékok
Bár egyjátékos játékokhoz a játékos barátai nem csatlakoznak, baráti interakció továbbra is történhet, ha a mutatott információ arra készteti a barátot, hogy nézze a játékos játékát, vagy stratégiákról vagy a játék kiemelt pillanatairól beszéljen vele. Azt megmutató információk, hogy a játékos melyik zónában, fejezetben vagy pályán van, vagy hogy épp mit csinál a játékban, segíthetnek elérni e célokat.
*
A Steam barátlistán és csevegésben megjelenítendő karakterlánc megadásához állítsd be a
steam_display
kulcs/érték párt a
SetRichPresence-ben. További információk és példák az API-hívásokról a dokumentum végén találhatók.
Példák az adott esetben mutatható adatokra:- hátralevő idő,
- eltelt idő,
- még életben levő játékosok,
- a pálya vagy zóna neve,
- játékosszint,
- játékososztály,
- pontszám,
- nehézség,
- játékmód fajtája,
- a szerveren szabad helyek,
- a végzett cselekvés (pakli-összeállítás, felállásváltoztatás, a főmenüben stb.).
MEGJEGYZÉS: Ne feledd, hogy ennek a részletes jelenlét karakterláncnak el kell férnie egy sorban, és a játékosok neve alatt jelenik meg a barátlistában. Ha túl hosszú, a sor vége csonkítva lesz, vagy három pontban fog végződni.
Barátcsoportosítás
A további információsor mellett az új barátlista képes megjeleníteni az együtt játszó barátok csoportjait. Azok a barátok, akik egy társaságban, szerveren vagy meccsben vannak együtt, a játék kategóriájába lesznek csoportosítva egy őket összekötő vonallal. A csoportosítás meghatározásának módja a játékodtól és attól függ, mit a legészszerűbb megmutatni. Például a Dota 2-ben legfeljebb ötfős társaságok vannak, így a társaságot mutatjuk, amelyben játszanak, nem a teljes ötfős csapatot, amit a játék válogatott össze. A Counter-Strike-ban azonban lehet, hogy két barát játszik együtt egy szerveren, de ahelyett, hogy az egész szervert a társaság részeként mutatnák, csak az együtt játszó kölcsönös barátok vannak ugyanabba a Steam játékoscsoportba téve.

*
A játékosok csoportosításának megadásához a Steam barátlistán és csevegésben állítsd be a
steam_player_group
és
steam_player_group_size
kulcs/érték párokat a
SetRichPresence-ben.
Steam API és lokalizáció
Alább található egy kódrészlet annak bemutatására, milyen egyszerű mindezt beállítani.
Kódrészlet/*--------------------------- PÉLDA -------------------*/
const char *pchStatus;
if ( bWinning && cWinners > 1 )
{
pchStatus = "Döntetlen";
}
else if ( bWinning )
{
pchStatus = "Nyerésre áll";
}
else
{
pchStatus = "Vesztésre áll";
}
SteamFriends()->SetRichPresence( "gamestatus", pchStatus );
bool bDisplayScoreInRichPresence = true;
if ( bDisplayScoreInRichPresence )
{
char rgchBuffer[32];
sprintf_safe( rgchBuffer, "%2u", uMyScore );
SteamFriends()->SetRichPresence( "score", rgchBuffer );
}
SteamFriends()->SetRichPresence( "steam_display", bDisplayScoreInRichPresence ? "#StatusWithScore" : "#StatusWithoutScore" );
// Példa barátok csoportosítására, amikor együtt játszanak
if ( nPartyMemberCount > 1 && strPartyID )
{
// Ha egynél több felhasználóból álló társaságban vagyunk, és van érvényes PartyID-nk,
// akkor tájékoztatjuk a Steam részletes jelentlét rendszerét.
steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", strPartyID );
steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", CNumStr( nPartyMemberCount ) );
}
else
{
// Egyébként kiürítünk bármilyen információt, ami korábban ott volt, mert nem vagyunk társaságban.
steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", nullptr );
steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", nullptr );
}
A fenti kód olyan lokalizációt használ, amely az alábbihoz hasonló angol tokeneket tartalmaz:
"lang"
{
"Language" "hungarian"
"Tokens"
{
"#StatusWithoutScore" "{#Status_%gamestatus%}"
"#StatusWithScore" "{#Status_%gamestatus%}: %SCORE%"
"#Status_AtMainMenu" "A főmenüben"
"#Status_WaitingForMatch" "Meccsre vár"
"#Status_Winning" "Nyerésre áll"
"#Status_Losing" "Vesztésre áll"
"#Status_Tied" "Döntetlen"
}
}