mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-05 20:53:52 +00:00
* Add RoF2 Bazaar Support Enable RoF2 bazaar features * Add augments to Trader Items * Cleanup Cleanup of formatting and unused functions * Update PlayerProfile for correct char_id in trader transactions. Further cleanup. * Add parcel delivery price functionality Add parcel delivery price functionality via rules and new delivery cost struct. * Add RoF support for bazaar window outside of bazaar with parcel delivery * Further Testing and ActiveTransaction added Further testing and a few fixes and messages added. Add active transaction check to ensure two clients cannot purchase from the bazaar window at the same time * Cleanup and Formatting updates Cleanup and Formatting updates * Update database manifest for the trader table against default peq trader table * Logs and formatting * Update bazaarsearch to be content_db aware * Fix crash * Simplify search * Search fixes * Push up more search logging * More search fixes * Formatting * Update trader_repository.h * Add Rule for Bazaar Parcel Delivery Add a rule Bazaar:EnableParcelDelivery to enable/disable bazaar parcel delivery. Default is True. * Fix crash * Update Bazaar Search Adds/Tested bazaar search with move to content_db - race, class, money, number of returned items, stats, name, slot, level, traders, local traders, specific trader. Outstanding - type, more stats to add (heroic, etc) * Formatting * Push * Update bazaarsearch to include all stats that are available in RoF2 * Update BazaarSearch Updates the bazaar search for item types. They should be working as per RoF2+ types. * Formatting * Final updates to BazaarSearch Add search by augmentation slots available on the item. This enables all but Prestige, which I believe are not implemented yet. * Add Titanium functionality correct ItemType Search Add Titanium /trader /bazaar functionality. Added itemtype=armor bazaar search. It was missed in the search work * Close off for loops --------- Co-authored-by: Akkadius <akkadius1@gmail.com>
44 lines
899 B
C++
44 lines
899 B
C++
#ifndef EQEMU_ITEMS_REPOSITORY_H
|
|
#define EQEMU_ITEMS_REPOSITORY_H
|
|
|
|
#include "../database.h"
|
|
#include "../strings.h"
|
|
#include "base/base_items_repository.h"
|
|
|
|
class ItemsRepository: public BaseItemsRepository {
|
|
public:
|
|
static std::vector<int32> GetItemIDsBySearchCriteria(
|
|
Database& db,
|
|
std::string search_string,
|
|
int query_limit = 0
|
|
)
|
|
{
|
|
auto query = fmt::format(
|
|
"SELECT `id` FROM {} WHERE LOWER(`name`) LIKE '%%{}%%' ORDER BY id ASC",
|
|
TableName(),
|
|
Strings::Escape(search_string)
|
|
);
|
|
|
|
if (query_limit >= 1) {
|
|
query += fmt::format(" LIMIT {}", query_limit);
|
|
}
|
|
|
|
std::vector<int32> item_id_list;
|
|
|
|
auto results = db.QueryDatabase(query);
|
|
if (!results.Success() || !results.RowCount()) {
|
|
return item_id_list;
|
|
}
|
|
|
|
for (auto row : results) {
|
|
item_id_list.emplace_back(Strings::ToInt(row[0]));
|
|
}
|
|
|
|
return item_id_list;
|
|
}
|
|
|
|
|
|
};
|
|
|
|
#endif //EQEMU_ITEMS_REPOSITORY_H
|