Lisävarusteet tarjoavat pelaajille tavan muokata pelinsisäisiä esineitään ja luoda arvokkaampia, mielenkiintoisempia ja jopa ainutlaatuisia versioita tavallisista peleissä käytetyistä esineistä.
Lisävarusteet näkyvät yhteisön tavaraluettelossa ja herättävät yhteisön kauppapaikalle listattuina huomiota uniikkeina, ei-kaupattavina esineinä.
On sinun päätettävissäsi, mitä lisävarustetyyppejä tuet ja millaisia kosmeettisia tai pelitehosteita eri lisävarustetyypeissä voi olla. Voit myös halutessasi tukea pelissäsi erityyppisiä lisävarusteita eri esinetyypeissä.
Konkreettisena esimerkkinä tarkastellaan tutuntyyppisen varusteen – tarrojen – määrittelyä.
Tässä esimerkissä uniikki-etuliite lisätään automaattisesti.
Esineen merkitseminen muokattavaksi
Pelaajat voivat lisätä lisävarusteita vain sellaisiin esineisiin, jotka on nimenomaisesti määritetty kyseiselle lisävarusteelle. Esine merkitään muokattavaksi päivittämällä ItemDef määritteellä
accessory_tag
, jonka arvona on esinekohtainen tunnisteluokka.
Esimerkki:
"accessory_tag": "sticker",
Tässä esimerkissä esinekohtainen ItemDef-tunnus, jonka luokka on sticker, käsitetään lisättynä lisävarusteena. Esinekohtaisen tunnisteen
arvo on lisävarusteen DefID.
Esinekohtaiset tunnisteet säilyvät esineen elinkaaren ajan, myös omistajuuden muuttuessa.
Yhdellä esineellä voi olla useita lisävarusteita, kuten yllä olevassa esimerkissä. Yksittäisen esineen lisävarusteiden määrää voidaan rajoittaa määritteellä accessory_limit.
"accessory_limit": 3,
Oletusarvoinen enimmäismäärä on neljä. Emme suosittele tätä suurempia määriä.
Jos esine on muokattavissa, sen lisävarusteet löytää pelissä esinekohtaisilla tunnisteilla kutsumalla SDK-menetelmää
ISteamInventory::GetResultItemProperty()
ja käyttämällä ominaisuuden nimeä tags.
Lisävarusteen määrittäminen
Koska jokainen lisävaruste on itse asiassa ItemDef, olemassa olevia työkaluja – ennen kaikkea määritystä
icon_url
sekä lokalisoituja nimiä – voidaan käyttää lisävarusteen ulkoasun määrittämiseen.
Mukautettujen esineiden luodussa kuvauksessa käytetään ItemDef:n tietoja. Jos muutat ItemDefiä, myös käyttäjien tavaraluetteloissa olevat lisävarusteet päivitetään.
Yksinkertainen tarran määritelmä:
{
"appid": 480,
"name": "Sininen tähti",
"description": "Sininen tähtitarra, jolla on maagisia voimia",
"icon_url": ...
Kertakäyttöisten lisävarusteiden luominen
Mitä tahansa menetelmää, joka lisää tuotekohtaisia tunnisteita, voidaan käyttää lisävarusteiden lisäämiseen. Mielenkiintoisin tapaus on sellaisen kuluvan lisävarusteen määrittäminen, jonka pelaajat voivat ansaita tai ostaa, vaihtaa ja sitten käyttää.
Tämän mahdollistaa esinetyyppi
tag_tool. Tag_tool kulutetaan esineen muokkaamiseen.
Jotta tunnistetyökalu voidaan ottaa käyttöön, on ensin otettava käyttöön lisävarustetunniste muokattavassa esineessä (tässä esimerkissä käytetään reppua):
{
"appid": 480,
"itemdefid": 2000,
"type": "item",
"name": "Arkireppu",
"description": "Kätevä säilytyspaikka, jossa on paljon tilaa tarroille.",
"icon_url":...,
"accessory_tag": "sticker",
"accessory_limit": 3,
"allowed_tags_from_tools": "sticker"
}
Jokainen tarratyyppi luodaan siten, että tyypin arvoksi on asetaan tag_tool. Tunnistetyökalun tehtävänä on käyttää lisävarustetunnistetta ja lisätä tarran argumentiksi ItemDef. Tarran ItemDef näyttää siis tältä:
{
"appid": 480,
"itemdefid": 1001,
"name": "Sininen tähti",
"description": "Sininen tähtitarra, jolla on maagisia voimia",
"price_category": "1;VLV25",
"icon_url"...,
"type": "tag_tool",
"tags": "sticker:1001",
}
Huomaa, että tunnistearvo käyttää tarran ItemDef-tunnusta esineessä.
Huomaa myös, että lisävarusteissa käytetään kaikkia tavallisia tavaraluettelotoimintoja ja julkaisumenetelmiä – mukaan lukien niiden myynti- ja hintaluokkien määrittely esinekaupassa.
Lisävarusteiden käyttäminen
Jos haluat liittää tarran kohteeseen, kutsu
ExchangeItems -luomismenetelmää Steamworks SDK:sta (tai WebAPI:n kautta luotetulta palvelimelta). Lähetä tarra ja muokattava esine materiaaleina ja aseta valittu ItemDef-tyyppi vastaamaan alkuperäistä muokattavaa esinettä. Tunnistetyökalu tag_tool otetaan käyttöön ja kohde päivitetään.
Jos pyyntö on kelvollinen, ExchangeItems-kutsu kuluttaa tarran ja päivittää esineen tunnisteet.
Esinekohtaisia tunnisteita voidaan määrittää myös muilla tavoilla, kuten esinegeneraattoreilla. Lue lisätietoa
täältä.
Lokalisointi ja näkyvyys
Lisävarusteet renderöidään automaattisesti verkkonäkymään, kuten käyttäjän reppuun ja yhteisön markkinapaikkaan. Kuvausosio sisältää pienen version kunkin lisätyn lisävarusteen kuvakkeesta sekä listan niiden lokalisoiduista nimistä.
Tavalliseen tapaan esineiden nimet lokalisoidaan antamalla arvot
ItemDef Schemassa.
Lue Steamin tavaraluettelopalvelu -sivulta tietoa sisäisen nimen lokalisoinnista. Esimerkissämme sisäinen nimi Tarra on yksinkertaisesti Tarra kaikilla tuetuilla kielillä.
Voit myös määrittää erikoistekstin, joka näytetään ennen edellä mainittua erikoiskuvauslohkoa. Anna
accessory_description_<language>
ohjelmointirajapinnan kielikoodin määritys esinekuvauksessa yhdessä
dynaamisten ominaisuuksien kanssa. Näin voit asettaa tunnuksia, jotka korvataan dynaamisilla arvoilla.
Esimerkki:
Jos esineellä, johon lisävaruste "-sticker" on lisätty, on dynaaminen ominaisuus
num_times_stickered
asetettu arvoon
123
, tarran esinemääritys
{
"accessory_description_finnish": "Tarroja kiinnitetty %num_times_stickered% kertaa"
}
palauttaa seuraavan tekstin verkkonäkymässä:
Tarroja kiinnitetty 123 kertaa.
Lisävarusteiden poistaminen tai vaihtaminen
Kun lisävaruste on kulutettu, sitä ei voi palauttaa poistamalla sitä esineestä. Lisävarusteet voidaan tietysti poistaa. Eri tavat poistaa tunnisteet esineestä löytyvät esinekohtaisten tunnisteiden dokumentaatiosta.
Voit tarjota käyttäjille tag_tool-työkalun, jonka ainoa tarkoitus on poistaa olemassa olevia lisävarusteita.
Kahden saman lisävarusteen lisäämistä kohteeseen ei tällä hetkellä tueta. Tämän yrittäminen epäonnistuu ExchangeItems-kutsulla eikä kuluta lisävarustetta.