-- Попытается найти все аукционы с заданными параметрами. Фильтр поиска задается в отдельной таблице. Нужно указать поле для сортировки, направление сортировки и желательную страницу результата.
-- Поле сортировки задается енумом AUCTION_ORDERFIELD_.... Некоторые поля фильтра требуют строковый псевдоним какого-либо ресурса (itemClass, raretyMin, raretyMax). Проверить валидность маски для поиска по имени можно функцией auction.IsSearchNameValid.
-- Дополнительные подробности: LuaApiDetails (закрытая ссылка)
-- Новый поиск не начнётся, пока не закончен старый. См. auction.IsSearchInProgress().
-- Результат поиска - EVENT_AUCTION_SEARCH_RESULT.
-- Список аукционов передается на клиент постранично и метод auction.GetAuctions() возвращает только список из указанной при поиске страницы auction.GetAuctionsPage(). Количество страниц - auction.GetAuctionsPageCount().
-- -- параметры
-- filter: Table - фильр поиска. Описан таблицей с полями, каждое из которых может быть пустым (см. ниже)
-- orderField: number (enum AUCTION_ORDERFIELD_...) - поле сортировке
-- asc: boolean - направление сортировки. true - сортировать по возрастанию
-- page: number (int) - номер страницы для показа, начиная с 1
-- -- поля фильтра:
-- name: WString or nil - маска для поиска по имени
-- itemClass: string or nil - псевдоним класса предмета
-- dressSlot: number (enum DRESS_SLOT_...) or nil - слот одежды
-- rarityMin: string or nil - псевдоним минимального качества предмета
-- rarityMax: string or nil - псевдоним максимального качества предмета
-- levelMin: int or nil - минимальный уровень предмета
-- levelMax: int or nil - максимальный уровень предмета
-- bidMin: number or nil - минимальная последняя ставка
-- bidMax: number or nil - максивальная последняя ставка
-- buyoutMin: number or nil - минимальная цена выкупа
-- buyoutMax: number or nil - максивальная цена выкупа
-- onlyMyAuctions: bool or nil - показывать только аукционы, созданные главным игроком
-- onlyAuctionsWithMyBids: bool or nil - показывать только аукционы с последней ставкой от главного игрока
-- rootCategory: ItemCategoryId or nil - идентификатор корневой категории
-- childCategory: ItemCategoryId or nil - идентификатор терминальной категории
-- -- возвращаемые значения
-- нет
-- -- пример
-- if not auction.IsSearchInProgress() then
-- local filter = {}
-- filter.levelMin = 10
-- filter.levelMax = 12
-- auction.Search( filter, AUCTION_ORDERFIELD_LEVEL, false, 1 )
-- end
function Facade.AO.auction.Search( filter, orderField, asc, page )
Facade.support.debug.strictTypes( "Facade.AO.auction.Search",
{ filter, function ( t )
Facade.support.debug.strictTypes( "Facade.AO.auction.Search( filter )", {
{ t.name, "?string" },
{ t.itemClass, "?string" },
{ t.dressSlot, "?number" },
{ t.rarityMin, "?string" },
{ t.rarityMax, "?string" },
{ t.levelMin, "?number" },
{ t.levelMax, "?number" },
{ t.bidMin, "?number" },
{ t.bidMax, "?number" },
{ t.buyoutMin, "?number" },
{ t.buyoutMax, "?number" },
{ t.onlyMyAuctions, "?boolean" },
{ t.onlyAuctionsWithMyBids, "?boolean" },
{ t.rootCategory, "?number" },
{ t.childCategory, "?number" },
} )
end },
{ orderField, "number" },
{ asc, "boolean" },
{ page, "number" }
)
auction.Search( filter, orderField, asc, page )
end