Steamworks-dokumentaatio
Steamin tavaraluettelon esinetyökalut
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.