Steamworks dokumentáció
Steam Raktár tárgykiegészítők
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.

backpackcomic_resize30.png

Konkrét példaként megvizsgáljuk egy ismerős kiegészítőfajta, a matricák definiálását.

Unique_backpack.png

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.