Beta-versiossa voi nyt määrittää työkaluja, joilla voi muokata
Steamin tavaraluettelon esinetunnisteita muille esineille.
ISteamInventory::ExchangeItems-kutsulla voit lähettää sekä työkalun että kohdesineen. Tunnisteet siirretään tai generoidaan, ja uusi (kohde-esineestä kopioitu) esine luodaan.
Tunnisteet lähetetään automaattisesti muiden esineominaisuuksien mukana Steam-asiakasohjelmaan ja palautetaan kutsumalla ISteamInventory::GetResultItemProperty() ominaisuuden nimen "tags"-tunnisteilla. Tunnisteet palautetaan merkkijonopuskurilla
;
-merkillä eroteltuina.
Yksinkertainen esimerkki
Tässä on esimerkki työkalusta, joka voi soveltaa värin maalaustoimintoa toiseen esineeseen.
Aluksi työkalu tarvitsee esinemäärityksen. Huomaa! Tunnisteet kannattaa poistaa käyttämällä
tags_to_remove_on_tool_use
-ominaisuutta. Muussa tapauksessa esineessäsi voi olla kaksinkertaiset tunnisteet tai tunnisteluokat, jos useita työkaluja on sovellettu esineeseesi. Vastaavat tunnisteet poistetaan ennen uusien käyttämistä.
itemdefid: 100
type: tag_tool
name: Red Paint Can
tags: paint_color:red
tags_to_remove_on_tool_use: paint_color
Määritä kohde-esine siten, että siihen voi käyttää "paint_color"-tunnistetta:
itemdefid: 200
type: item
name: Hat
allowed_tags_from_tools: paint_color
Käyttäjä voi soveltaa punaisen maalipurkin "Red Paint Can" -työkalua hattuuna "Hat" käyttämällä
ISteamInventory::ExchangeItems-kutsua. Esineellä pitäisi tuloksena olla "paint_color:red"-tunniste. Huomaa, että esinemääritystunnuksen on vastattava kohde-esineen tunnusta.
SteamItemInstanceID_t inputItems[2] = { unPaintCanItemDefID, unHatItemDefID };
uint32 inputQuantities[2] = { 1, 1 };
SteamItemDef_t outputItems[1] = { unHatItemDefID };
uint32 outputQuantity[1] = { 1 };
SteamInventoryResult_t resultHandle;
SteamInventory()->ExchangeItems( &resultHandle, outputItems, outputQuantity, 1, inputItems, inputQuantities, 2 );
Jos haluat työkalun, joka poistaa vain tunnisteen, voit määrittää esimerkiksi tämän "Paint Stripper" kaltaisen työkalun. Voit kutsua
ISteamInventory::ExchangeItems yllä kuvatulla tavalla. Esinemäärityksessäsi olisi vain
tags_to_remove_on_tool_use
-ominaisuusjoukko.
itemdefid: 300
type: tag_tool
name: Paint Stripper
tags_to_remove_on_tool_use: paint_color
Esimerkki tunnistegeneraattorista
Tietyn maalin värin sijaan voit määrittää työkalun, jolla voi käyttää
tag_generator
-esinemäärityksen tunnisteita.
itemdefid: 500
type: tag_generator
name: Tag Generator Paint
tag_generator_name: paint_color
tag_generator_values: red:33;blue:33;green:33;gold:1
itemdefid: 100
type: tag_tool
name: Random Paint Can
tag_generators: 500
tags_to_remove_on_tool_use: paint_color
Kun käyttäjä soveltaa "Randon Paint Can" -työkalua hattuunsa "Hat" ja tekee
ISteamInventory::ExchangeItems-kutsun, hän saa 33 % todennäköisyydellä punaisen, vihreän tai sinisen värin ja 1 % todennäköisyydellä kultaisen värin.
Esimerkki dynaamisten ominaisuuksien rajoittamisesta
Voit rajoittaa esineen
dynaamisten ominaisuuksien muokkaamista tunnisteita käyttämällä. Tunnistetyökalulla
tag_tool
voit sallia näiden ominaisuuksien määrityksen esineessä, jossa se oli aiemmin kielletty vaadittujen tunnisteiden puuttuessa. Tässä on esimerkki esineestä, joka seuraa raketinheitintappoja.
itemdefid: 100
type: item
name: Rocket Launcher
itemdefid: 200
type: tag_tool
name: Kill Stat Tracker
tags: stat_tracker:kills
tags_to_remove_on_tool_use: stat_tracker:kills
Steamworks-ohjelmointirajapintaa käyttämällä voit määrittää sen, että asiakasohjelma päivittää Rocket Launcher -raketinheittimen muuttuvan ominaisuuden tapoille "kills". Dynaamisen ominaisuusmäärityksen voi kuitenkin rajoittaa koskemaan esineitä, joissa on tunniste "stat_tracker" joko esineessä tai sen määrityksessä. Kun tappotilastoja seuraava "Kill Stat Tracker" on otettu käyttöön Rocket Launcher -raketinheittimessä, voidaan sille määrittää myös tappojen "kills" ominaisuus.