Steamworks 문서
Steam 보관함 아이템 도구
이제 베타에서 다른 아이템의 Steam 보관함 아이템 태그을(를) 변경하는 데 사용할 '도구' 아이템을 정의할 수 있습니다.

ISteamInventory::ExchangeItems 호출을 사용하여 도구와 목표 아이템을 함께 전달할 수 있습니다. 태그가 전달되거나 생성되고 새로운 아이템(목표 아이템에서 복제된)이 생성됩니다.

이러한 태그는 Steam 클라이언트의 다른 아이템 속성과 함께 자동으로 전달되며 속성 이름 '태그'로 ISteamInventory::GetResultItemProperty를 호출하여 가져올 수 있습니다. 태그는 제공된 문자열 버퍼에서 ; 기호로 분리되어 반환됩니다.

간단한 예시


다음은 아이템에 ‘페인트’를 적용할 수 있는 도구의 예시입니다.

우선 도구에 대한 아이템 정의가 필요합니다. tags_to_remove_on_tool_use 속성을 사용하여 태그를 제거하지 않았다면 여러 도구가 아이템에 적용될 경우 중첩된 태그 또는 태그 카테고리가 생길 수 있으니 주의하시기 바랍니다. 새로운 태그가 적용되기 전에 먼저 일치하는 이전 태그를 제거해야 합니다.

itemdefid: 100 type: tag_tool name: Red Paint Can tags: paint_color:red tags_to_remove_on_tool_use: paint_color

목표 아이템에 'paint_color' 태그가 추가될 수 있음을 명시해야 합니다.

itemdefid: 200 type: item name: Hat allowed_tags_from_tools: paint_color

그리고 ISteamInventory::ExchangeItems 호출을 사용하여 '모자'에 '빨간색 페인트 통' 도구를 적용하면 결과 아이템에 'paint_color:red' 태그가 추가됩니다. 예상하는 아이템 정의 ID가 목표 아이템의 아이템 정의 ID와 일치해야 합니다.

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 );

태그만 제거하는 도구를 원한다면 '페인트 벗기기' 등을 정의할 수 있습니다. 위와 같은 방식으로 ISteamInventory::ExchangeItems를 호출해야 합니다. 아이템 정의에 tags_to_remove_on_tool_use 속성을 설정할 수 있습니다.

itemdefid: 300 type: tag_tool name: Paint Stripper tags_to_remove_on_tool_use: paint_color

태그 생성자 예시


특정 페인트 색상 대신 tag_generator 아이템 정의에서 태그를 적용할 도구를 설정할 수 있습니다.

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

그리고 사용자가 ISteamInventory::ExchangeItems 호출을 사용하여 '모자'에 '무작위 페인트 통'을 적용하면 '빨간색', '녹색', '파란색'을 얻을 확률이 33%, '금색'을 얻을 확률이 1%가 됩니다.

동적 속성 제한 예시


태그를 사용하여 아이템에 특정 동적 속성의 변경을 제한할 수 있습니다. 이제 tag_tool을 사용해 전에는 태그가 없으면 설정할 수 없었던 아이템에 이러한 속성을 설정할 수 있습니다. 다음은 로켓 발사기의 처치 수를 기록하는 아이템의 예시입니다.

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 API를 사용하면 로켓 발사기의 동적 속성 '처치 수'에 대해 클라이언트가 속성 업데이트를 하도록 만들 수 있습니다. 그러나 그 동적 속성 구성을 통해 아이템 혹은 관련 아이템 정의에 'stat_tracker' 태그가 있는 아이템을 제한할 수 있습니다. 로켓 발사기에 '처치 통계 추적'이 적용되면, 동적 속성 '처치 수'를 로켓 발사기에도 설정할 수 있습니다.