Auctions
#
Read more about the Auctions system in Hiro here.
Creating a New Auction
#
To create a new auction, use the auctionsCreate
function.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| void onAuctionCreate(const Hiro::Auction& auction)
{
for (auto it = auction.reward.items.begin(); it != auction.reward.items.end(); it++)
{
std::cout << "Found codex item: " << it->second.name << '\n';
}
}
void onError(const Nakama::NError& error)
{
std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}
Hiro::AuctionCreateRequest request;
request.templateId = "template_auction_001";
request.conditionId = "condition_001";
request.instanceIds.insert(std::make_pair<std::string, std::string>("item_instance_001", "1"));
hiroClient->auctionsCreate(session, request, onAuctionCreate, onError);
|
Placing a Bid on an Auction
#
You can place a bid on an auction using the auctionsBid
function.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| void OnAuctionsBid(const Hiro::Auction& auction)
{
for (auto it = auction.reward.items.begin(); it != auction.reward.items.end(); it++)
{
std::cout << "Found codex item: " << it->second.name << '\n';
}
}
void onError(const Nakama::NError& error)
{
std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}
Hiro::AuctionBidRequest request;
request.id = "auction_instance_123";
request.version = "condition_001";
request.bid.currencies.insert(std::make_pair<std::string, std::string>("gold", "1000"));
hiroClient->auctionsBid(session, request, OnAuctionsBid, onError);
|
Canceling an Auction
#
If an auction needs to be canceled before it ends, the auctionsCancel
method can be used.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| void OnAuctionsCancel(const Hiro::AuctionCancel& auctionCancel)
{
for (auto it = auctionCancel.reward.items.begin(); it != auctionCancel.reward.items.end(); it++)
{
std::cout << "Found codex item: " << it->second.name << '\n';
}
}
void onError(const Nakama::NError& error)
{
std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}
Hiro::AuctionsCancelRequest request;
request.id = "auction_instance_123";
hiroClient->auctionsCancel(session, request, OnAuctionsBid, onError);
|
Claiming a Winning Bid
#
Once an auction has ended, the winning bidder can claim their item using auctionsClaimBid
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| void OnAuctionsClaimBid(const Hiro::AuctionClaimBid& auctionClaimBid)
{
for (auto it = auctionClaimBid.reward.items.begin(); it != auctionClaimBid.reward.items.end(); it++)
{
std::cout << "Found codex item: " << it->second.name << '\n';
}
}
void onError(const Nakama::NError& error)
{
std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}
Hiro::AuctionClaimBidRequest request;
request.id = "auction_instance_123";
hiroClient->auctionsClaimBid(session, request, OnAuctionsBid, onError);
|
Listing Available Auctions
#
You can list the currently available auctions using the auctionsList
function.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| void OnAuctionsList(const Hiro::AuctionList& auctionList)
{
for (auto it = auctions.begin(); it != auctions.end(); it++)
{
std::cout << "Auction found: " << it->second.id << '\n';
}
}
void onError(const Nakama::NError& error)
{
std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}
Hiro::AuctionListRequest request;
hiroClient->auctionsList(session, request, OnAuctionsBid, onError);
|