A tárgykiegészítők módot adnak a játékosoknak játékbeli tárgyaik személyre szabására, és értékesebb, érdekesebb, sőt akár egyedibb változatok készítésére a játékodban használt gyakori tárgyakból.
A hozzákapcsolt kiegészítők láthatók lesznek a raktár nézetben a Közösségben, és „egyedi” (nem tömegcikk) ajánlatot hoznak létre felkínáláskor a Steam Közösségi Piacon.
Te döntöd el, hogy milyen kiegészítőfajtákat támogatsz, és hogy milyen díszítő vagy játékbeli hatásai lehetnek a különféle kiegészítőfajtáknak. Dönthetsz úgy is, hogy a játékodban levő különféle tárgyfajtákhoz különféle kiegészítőfajtákat támogatsz.
Konkrét példaként megvizsgáljuk egy ismerős kiegészítőfajta, a matricák definiálását.
Ebben a példában a „Különleges” előtag automatikusan adódik hozzá.
Egy tárgy megjelölése testre szabhatóként
A játékosok csak olyan tárgyakhoz tudnak kiegészítőt kapcsolni, amelyeket kifejezetten beállítottál ahhoz a fajta kiegészítőhöz. Egy tárgy testre szabhatóként jelöléséhez frissítsd az ItemDef-et az
"accessory_tag"
tulajdonsággal, amelynek értéke egy tárgyankénti címkekategória token.
Példa:
"accessory_tag": "matrica",
Ehhez az ItemDef-hez egy olyan tárgyankénti címke, amelynek "matrica" a kategóriája, csatolt kiegészítőként lesz kezelve. A tárgyankénti címke
értéke a kiegészítő tárgy ItemDefID-je lesz.
Tartsd észben, hogy a tárgyankénti címkék a tárgy élettartama során megmaradnak, beleértve a tulajdonosváltozásokat is.
Egy tárgyhoz több kiegészítő is kapcsolódhat, mint a fenti példában látható. Az egyetlen tárgyhoz kapcsolható kiegészítők számát korlátozni tudod az "accessory_limit" tulajdonsággal:
"accessory_limit": 3,
Az alapértelmezett korlát 4. Nagyobb korlátot nem javaslunk.
A játékon belül, ha egy tárgy testre szabható, a hozzá kapcsolt kiegészítőket a tárgyankénti címkék vizsgálatával tudod megtalálni (hívd meg az
ISteamInventory::GetResultItemProperty()
metódust a "tags" tulajdonságnévvel).
Kiegészítő definiálása
Mivel valójában minden kiegészítő egy ItemDef, használni tudod a meglevő eszközöket a kiegészítő megjelenésének definiálására, köztük a legfontosabbal, az
icon_url
tulajdonsággal és a lokalizált nevekkel.
A testre szabott tárgyak generált leírása az ItemDef-ből származó információkat fogja használni. Ha megváltoztatod az ItemDef-et, a már a felhasználói raktárakban levő kiegészítők is frissülni fognak.
Egy egyszerű matricadefiníció:
{
"appid": 480,
"name": "Kék csillag",
"description": "Egy rejtelmes erővel bíró kék csillag matrica.",
"icon_url": ...
Egyszer használatos kiegészítők készítése
Bármilyen módszer, amely tárgyankénti címkéket ad hozzá, használható kiegészítők hozzákapcsolására. A legérdekesebb eset olyan felhasználódó kiegészítő definiálása, amelyet a játékosok kiérdemelhetnek vagy megvehetnek, elcserélhetnek, majd használhatnak.
Ezt a működést a
"tag_tool" tárgyfajta adja. A tag_tool felhasználásra kerül egy céltárgy módosításához.
Először is, a "tag_tool" engedélyezéséhez engedélyeznünk kell a kiegészítő címkét a testre szabható tárgyon (példánkban ez a hátizsák):
{
"appid": 480,
"itemdefid": 2000,
"type": "item",
"name": "Hétköznapi hátizsák",
"description": "Jól lehet benne mindenfélét tárolni, és sok hely van rajta matricáknak.",
"icon_url":...,
"accessory_tag": "matrica",
"accessory_limit": 3,
"allowed_tags_from_tools": "matrica"
}
Mindegyik matricafajta "tag_tool" értékre állított "type" tulajdonsággal lesz létrehozva. A tag_tool művelete a kiegészítő címke alkalmazása lesz, paraméterként ennek a matricának az ItemDef-jével. Így a matrica ItemDef-ünk így fog kinézni:
{
"appid": 480,
"itemdefid": 1001,
"name": "Kék csillag",
"description": "Egy rejtelmes erővel bíró kék csillag matrica.",
"price_category": "1;VLV25",
"icon_url"...,
"type": "tag_tool",
"tags": "matrica:1001",
}
Figyeld meg, hogy a "tags" érték ennek a matricának az ItemDefID-jét fogja alkalmazni a céltárgyra.
Azt is tartsd észben, hogy a kiegészítő tárgyak támogatják az összes szokásos raktárműveletet és dobási módot, beleértve az árkategóriák meghatározását és a tárgyáruházbeli árusítást.
Kiegészítők használata
A matrica tényleges elhelyezéséhez a tárgyon hívd meg az
ExchangeItems (barkácsolás) metódust a Steamworks SDK-ból (vagy a WebAPI-n keresztül egy megbízható szerverről). Add át a matricát és a testre szabható tárgyat anyagként, és állítsd be a cél ItemDef fajtáját az eredeti testre szabható tárggyal egyezőre. Ez alkalmazza a tag_tool-t, és frissíti a célt.
Ha a kérés érvényes, az ExchangeItems hívás felhasználja a matricát, és frissíti a címkéket a céltárgyon.
Tárgyankénti címkék más módokon is beállíthatók, például tárgygenerálókkal; lásd a
Steam Inventory Item Tags oldalt.
Lokalizáció és megjelenés
A kiegészítők automatikusan megjelennek a webes nézetben, beleértve a felhasználók hátizsákját és a Közösségi Piacot. A leírás blokk tartalmazni fog egy kis változatot minden egyes hozzákapcsolt kiegészítő ikonjából, és felsorolja az egyes kiegészítők lokalizált neveit.
Mint rendesen, a tárgynevek lokalizálása értékek megadásával történik az
ItemDef sémában.
A belső név lokalizált szövegének megadásáról nézd meg a „Steam Raktár tárgycímkék” oldalt a „Steam Raktár szolgáltatás” kategória alatt. A példánkban a "matrica" belső név egyszerűen a "Matrica" névre van leképezve minden támogatott nyelven.
Megadhatsz olyan speciális szöveget is, ami a fent említett speciális leírás blokk előtt fog megjelenni. Egyszerűen adj meg egy
accessory_description_<nyelv>
API nyelvkód tulajdonságot a tárgyad leírásában; a
dinamikus tulajdonságokkal kombinálva be tudsz állítani olyan tokeneket, amelyek dinamikus tulajdonságértékekre lesznek lecserélve.
Példa:
Ha a tárgypéldánynak (amihez van "matrica" kiegészítő csatolva) van egy
123
-ra állított
num_times_stickered
dinamikus tulajdonsága, akkor az alábbi megadása a matricatárgy definíciójában:
{
"accessory_description_english": "Stickers applied %num_times_stickered% times"
}
a következő szöveget fogja kiírni a webnézetben:
Stickers applied 123 times
Kiegészítők eltávolítása vagy cseréje
Felhasználás után egy kiegészítő tárgy nem állítható helyre annak eltávolításával a testre szabott tárgyról. A kiegészítők természetesen eltávolíthatók; lásd a tárgyankénti címkék dokumentációját a címkék tárgyakról eltávolításának módszereiért.
A felhasználói testreszabáshoz kínálhatsz olyan tag_tool tárgyat, amelynek egyetlen rendeltetése létező kiegészítők eltávolítása.
Két példány hozzáadása egy tárgyhoz egyazon kiegészítőből jelenleg nem támogatott. Ennek megkísérlése sikertelen lesz az ExchangeItems hívásban, és nem használja fel a kiegészítő tárgyat.