CREATE YOUR WORLD
Economy

Product API 활용 예제

18min

다음은 Product API를 사용하여 월드 통화 및 월드 상품을 관리하는 예입니다.

이 예제는 제품 API에 대한 기본적인 이해를 돕고 서버와 클라이언트 간의 메시지를 송수신하는 구현을 가능하게 하여 월드 통화 및 월드 상품의 획득와 차감을 쉽게 테스트할 수 있도록 합니다.

이 예제에는 월드 통화 및 월드 상품 클라이언트 스크립트에 대한 설명이 포함되어 있으며, 모든 서버 측 처리를 처리하는 통합 서버 스크립트가 뒤따르며 다음 기능이 포함됩니다:

  • 월드 통화 획득
  • 월드 통화 차감
  • 통화 차감 없이 월드 상품 획득
  • 월드 상품 차감
Document image




월드 통화 획득 및 차감

아래는 월드 통화 획득 및 차감을 관리하는 전체 클라이언트 코드와 이를 구현하는 방법입니다.

통화 클라이언트 스크립트

CurrencyManagerSample




통화 클라이언트 스크립트 설명

  • 캐릭터가 로드되면, 서버에 기존 통화 잔액을 로드하기 위해 방 메시지가 전송됩니다. 그런 다음 서버에서 수신한 잔액 정보를 기반으로 UI가 업데이트됩니다.
TypeScript

  • 메시지 교환을 용이하게 하기 위해, CurrencyMessage 인터페이스가 정의됩니다.
TypeScript

  • 사용자가 통화를 증가시키거나 감소시킬 때, 그들은 서버에 Room 메시지로 요청을 보냅니다. 어떤 통화를 얼마나 증가시키거나 감소시킬지를 포함한 데이터가 포함됩니다.
TypeScript

  • 서버는 통화의 증가 또는 감소를 처리한 후, 최종 잔액 정보를 클라이언트에 보냅니다. 클라이언트는 이 정보를 수신하고 UI를 업데이트합니다.
TypeScript




월드 상품의 획득 및 차감

아래는 월드 제품 획득 및 차감을 관리하는 전체 클라이언트 코드와 이를 구현하는 방법입니다.

제품 클라이언트 스크립트

ProductManagerSample




제품 클라이언트 스크립트 설명

  • 캐릭터가 로드될 때, InventoryService를 사용하여 ZEPETO.Inventory의 초기 제품 인벤토리를 로드합니다. 그런 다음 UI를 업데이트합니다.
TypeScript

  • 메시지를 보내고 받으려면, ProductMessage 인터페이스를 정의합니다. ProductAction 열거형을 예제 구현을 위해 정의합니다.
TypeScript

  • 제품을 증가시키거나 감소시킬 때, 해당 데이터를 서버에 룸 메시지로 보냅니다. 어떤 제품을 얼마나 증가시키거나 감소시킬지에 대한 데이터가 포함됩니다.
TypeScript

  • 제품 변경을 처리한 후, 서버는 최종 재고 정보를 클라이언트에 전송하여 UI를 업데이트합니다.
TypeScript




서버 스크립트

아래는 월드 통화와 제품을 관리하는 전체 서버 코드와 이를 구현하는 방법입니다.

전체 서버 스크립트

TypeScript




서버 스크립트 설명

  • 월드 통화를 관리하려면 ZEPETO.Multiplay.Currency.
  • 사용하려면 currency.credit()currency.debit()를 사용하여 원하는 통화의 잔액을 증가시키거나 감소시킵니다. 이후, currency.getBalances()를 호출하여 각 통화의 현재 잔액을 가져옵니다.
TypeScript

  • 월드 상품을 관리하려면 ZEPETO.Multiplay.Inventory.
  • 사용하려면 inventory.add()inventory.use()를 사용하여 원하는 통화의 잔액을 증가시키거나 감소시킵니다.
TypeScript

  • 클라이언트의 통화 및 제품 증가 또는 감소 요청을 처리합니다.
  • 사용 loadBalance()를 사용하여 ZEPETO Studio에 등록된 통화 정보를 가져옵니다.
  • 여러 통화가 있는 경우 특정 통화 ID 값에 조건을 걸어 해당 통화의 잔액만 가져올 수 있습니다.
  • 최종 잔액 값을 클라이언트에게 방 메시지로 전달합니다.