MarketOfferList IOMarket::getOwnOffers(MarketAction_t action, uint32_t playerId) { MarketOfferList offerList; const int32_t marketOfferDuration = g_config.getNumber(ConfigManager::MARKET_OFFER_DURATION); std::ostringstream query; query << "SELECT `id`, `amount`, `price`, `created`, `itemtype` FROM `market_offers` WHERE `player_id` = " << playerId << " AND `sale` = " << action; DBResult_ptr result = Database::getInstance().storeQuery(query.str()); if (!result) { return offerList; } do { MarketOffer offer; offer.amount = result->getNumber<uint16_t>("amount"); offer.price = result->getNumber<uint32_t>("price"); offer.timestamp = result->getNumber<uint32_t>("created") + marketOfferDuration; offer.counter = result->getNumber<uint32_t>("id") & 0xFFFF; offer.itemId = result->getNumber<uint16_t>("itemtype"); offerList.push_back(offer); } while (result->next()); return offerList; }
MarketOfferList IOMarket::getActiveOffers(MarketAction_t action, uint16_t itemId) { MarketOfferList offerList; std::ostringstream query; query << "SELECT `id`, `amount`, `price`, `created`, `anonymous`, (SELECT `name` FROM `players` WHERE `id` = `player_id`) AS `player_name` FROM `market_offers` WHERE `sale` = " << action << " AND `itemtype` = " << itemId; DBResult_ptr result = Database::getInstance().storeQuery(query.str()); if (!result) { return offerList; } const int32_t marketOfferDuration = g_config.getNumber(ConfigManager::MARKET_OFFER_DURATION); do { MarketOffer offer; offer.amount = result->getNumber<uint16_t>("amount"); offer.price = result->getNumber<uint32_t>("price"); offer.timestamp = result->getNumber<uint32_t>("created") + marketOfferDuration; offer.counter = result->getNumber<uint32_t>("id") & 0xFFFF; if (result->getNumber<uint16_t>("anonymous") == 0) { offer.playerName = result->getString("player_name"); } else { offer.playerName = "Anonymous"; } offerList.push_back(offer); } while (result->next()); return offerList; }
MarketOfferList IOMarket::getOwnOffers(MarketAction_t action, uint32_t playerId) { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `id`, `amount`, `price`, `created`, `anonymous`, `itemtype` FROM `market_offers` WHERE `player_id` = " << playerId << " AND `sale` = " << action << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << ";"; DBResult* result; if(!(result = db->storeQuery(query.str()))) return MarketOfferList(); MarketOfferList offerList; do { MarketOffer offer; offer.amount = result->getDataInt("amount"); offer.price = result->getDataInt("price"); offer.timestamp = result->getDataInt("created") + g_config.getNumber(ConfigManager::MARKET_OFFER_DURATION); offer.counter = result->getDataInt("id") & 0xFFFF; offer.itemId = result->getDataInt("itemtype"); offerList.push_back(offer); } while(result->next()); result->free(); return offerList; }
MarketOfferList IOMarket::getActiveOffers(MarketAction_t action, uint16_t itemId) { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `id`, `player_id`, `amount`, `price`, `created`, `anonymous` FROM `market_offers` WHERE `sale` = " << action << " AND `itemtype` = " << itemId << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << ";"; DBResult* result; if(!(result = db->storeQuery(query.str()))) return MarketOfferList(); MarketOfferList offerList; do { MarketOffer offer; offer.amount = result->getDataInt("amount"); offer.price = result->getDataInt("price"); offer.timestamp = result->getDataInt("created") + g_config.getNumber(ConfigManager::MARKET_OFFER_DURATION); offer.counter = result->getDataInt("id") & 0xFFFF; if(!result->getDataInt("anonymous")) { IOLoginData::getInstance()->getNameByGuid(result->getDataInt("player_id"), offer.playerName); if(offer.playerName.empty()) offer.playerName = "Anonymous"; } else offer.playerName = "Anonymous"; offerList.push_back(offer); } while(result->next()); result->free(); return offerList; }
MarketOfferList IOMarket::getActiveOffers(MarketAction_t action, uint16_t itemId) { MarketOfferList offerList; std::ostringstream query; query << "SELECT `id`, `player_id`, `amount`, `price`, `created`, `anonymous` FROM `market_offers` WHERE `sale` = " << action << " AND `itemtype` = " << itemId; Database* db = Database::getInstance(); DBResult* result = db->storeQuery(query.str()); if (!result) { return offerList; } const int32_t marketOfferDuration = g_config.getNumber(ConfigManager::MARKET_OFFER_DURATION); do { MarketOffer offer; offer.amount = result->getDataInt("amount"); offer.price = result->getDataInt("price"); offer.timestamp = result->getDataInt("created") + marketOfferDuration; offer.counter = result->getDataInt("id") & 0xFFFF; if (result->getDataInt("anonymous") == 0) { IOLoginData::getInstance()->getNameByGuid(result->getDataInt("player_id"), offer.playerName); if (offer.playerName.empty()) { offer.playerName = "Anonymous"; } } else { offer.playerName = "Anonymous"; } offerList.push_back(offer); } while (result->next()); db->freeResult(result); return offerList; }