Add files via upload
reupload in right folder
This commit is contained in:
+4
-1
@@ -89,7 +89,10 @@ do
|
||||
total_cost = total_cost + value * count
|
||||
end
|
||||
end
|
||||
TradeSkillReagentLabel:SetText(SPELL_REAGENTS .. ' ' .. cost_label(total_cost))
|
||||
TradeSkillReagentLabel:SetText(SPELL_REAGENTS .. ' ' .. cost_label(total_cost))
|
||||
if ATSWReagentLabel then
|
||||
ATSWReagentLabel:SetText(SPELL_REAGENTS .. ' ' .. cost_label(total_cost))
|
||||
end
|
||||
return unpack(ret)
|
||||
end)
|
||||
for i = 1, 8 do
|
||||
|
||||
+16
-6
@@ -33,22 +33,32 @@ local WEAPON = T.set(
|
||||
'INVTYPE_RANGEDRIGHT'
|
||||
)
|
||||
|
||||
function M.value(slot, quality, level)
|
||||
function M.value(slot, quality, level, item_id)
|
||||
local expectation
|
||||
for _, event in distribution(slot, quality, level) do
|
||||
for _, event in distribution(slot, quality, level, item_id) do
|
||||
local value = history.value(event.item_id .. ':' .. 0)
|
||||
if not value then
|
||||
if not value then
|
||||
return
|
||||
else
|
||||
expectation = (expectation or 0) + event.probability * (event.min_quantity + event.max_quantity) / 2 * value
|
||||
end
|
||||
local market_value = history.market_value(event.item_id .. ':' .. 0)
|
||||
if market_value then
|
||||
value=min(value,market_value)
|
||||
end
|
||||
expectation = (expectation or 0) + event.probability * (event.min_quantity + event.max_quantity) / 2 * value
|
||||
end
|
||||
return expectation
|
||||
end
|
||||
|
||||
function M.distribution(slot, quality, level)
|
||||
function M.distribution(slot, quality, level, item_id)
|
||||
if not ARMOR[slot] and not WEAPON[slot] or level == 0 then
|
||||
return T.acquire()
|
||||
elseif --special items not following general rules
|
||||
--twillight cultist items are not disenchantable
|
||||
item_id==20408 or item_id==20407 or item_id==20406
|
||||
--enchanting created wands are not disenchantable
|
||||
or item_id==11288 or item_id==11290 or item_id==11287 or item_id==11289
|
||||
then
|
||||
return T.acquire()
|
||||
end
|
||||
|
||||
local function p(probability_armor, probability_weapon)
|
||||
|
||||
+92
-1
@@ -3,6 +3,8 @@ module 'aux.core.post'
|
||||
local aux = require 'aux'
|
||||
local info = require 'aux.util.info'
|
||||
local stack = require 'aux.core.stack'
|
||||
local history = require 'aux.core.history'
|
||||
local disenchant = require 'aux.core.disenchant'
|
||||
|
||||
local state
|
||||
|
||||
@@ -41,8 +43,97 @@ function post_auction(slot, k)
|
||||
PickupContainerItem(unpack(slot))
|
||||
ClickAuctionSellItemButton()
|
||||
ClearCursor()
|
||||
|
||||
local start_price = state.unit_start_price
|
||||
local buyout_price = state.unit_buyout_price
|
||||
|
||||
--use autoprice heuristic if start bid 0 is set
|
||||
if start_price == 0 then
|
||||
|
||||
local kz_daily = 0
|
||||
local kz_pricing = 0
|
||||
local kz_warn = 0
|
||||
|
||||
if buyout_price > 0 then
|
||||
kz_pricing=1
|
||||
start_price = buyout_price
|
||||
end
|
||||
|
||||
if history.market_value(state.item_key) ~= nil then
|
||||
local tmp = tonumber(history.market_value(state.item_key))
|
||||
tmp = max(0.99*tmp,tmp-50)
|
||||
buyout_price = max(buyout_price,tmp)
|
||||
kz_daily = 1
|
||||
end
|
||||
|
||||
if history.value(state.item_key) ~= nil then
|
||||
if kz_pricing == 1 and kz_daily == 1 then
|
||||
buyout_price = max(buyout_price,1.0*tonumber(history.value(state.item_key)))
|
||||
elseif kz_daily == 1 then
|
||||
start_price = max(start_price,0.91*tonumber(history.value(state.item_key)))
|
||||
else
|
||||
buyout_price = max(buyout_price,0.99* tonumber(history.value(state.item_key)))
|
||||
end
|
||||
else
|
||||
kz_warn = kz_warn + 1
|
||||
end
|
||||
|
||||
if disenchant.value(item_info.slot, item_info.quality, item_info.level, item_info.item_id) ~= nil then
|
||||
start_price = max(start_price,0.85* tonumber(disenchant.value(item_info.slot, item_info.quality, item_info.level, item_info.item_id)))
|
||||
end
|
||||
|
||||
if aux.account_data.merchant_buy[item_info.item_id] ~= nil then
|
||||
local tmp = tostring(aux.account_data.merchant_buy[item_info.item_id])
|
||||
tmp = strsub(tmp,1,-3)
|
||||
start_price = max(start_price,tonumber(tmp) * 1.1)
|
||||
buyout_price = max(buyout_price,tonumber(tmp) * 1.15)
|
||||
else
|
||||
local vendor_price = 0
|
||||
if aux.account_data.merchant_sell[item_info.item_id] ~= nil then
|
||||
vendor_price = tonumber(aux.account_data.merchant_sell[item_info.item_id])
|
||||
elseif ShaguTweaks.SellValueDB[item_info.item_id] ~= nil then
|
||||
local charges = 1
|
||||
if info.max_item_charges(item_info.item_id) ~= nil then
|
||||
charges=info.max_item_charges(item_info.item_id)
|
||||
end
|
||||
vendor_price = ShaguTweaks.SellValueDB[item_info.item_id] / charges
|
||||
end
|
||||
if vendor_price > 0 then
|
||||
if kz_daily == 0 then
|
||||
start_price = max(start_price, vendor_price * (1.35+3.65*math.exp(-(1/4000)* vendor_price)))
|
||||
else
|
||||
start_price = max(start_price, vendor_price * 1.35)
|
||||
end
|
||||
else
|
||||
kz_warn = kz_warn + 1
|
||||
end
|
||||
end
|
||||
|
||||
start_price = max(start_price,0.91 * buyout_price)
|
||||
buyout_price = max(start_price, buyout_price)
|
||||
|
||||
if kz_warn == 2 and kz_pricing == 0 then
|
||||
print("WARNING, insufficient data for autopricing!")
|
||||
if start_price == 0 then
|
||||
return stop()
|
||||
end
|
||||
end
|
||||
|
||||
local gold = floor(start_price / COPPER_PER_GOLD)
|
||||
local silver = floor(mod(start_price, COPPER_PER_GOLD) / COPPER_PER_SILVER)
|
||||
local copper = aux.round(mod(start_price, COPPER_PER_SILVER))
|
||||
|
||||
print("bid_price: "..gold.."g "..silver.."s "..copper.."c")
|
||||
|
||||
gold = floor(buyout_price / COPPER_PER_GOLD)
|
||||
silver = floor(mod(buyout_price, COPPER_PER_GOLD) / COPPER_PER_SILVER)
|
||||
copper = aux.round(mod(buyout_price, COPPER_PER_SILVER))
|
||||
|
||||
print("buyout_price: "..gold.."g "..silver.."s "..copper.."c")
|
||||
|
||||
StartAuction(max(1, aux.round(state.unit_start_price * item_info.aux_quantity)), aux.round(state.unit_buyout_price * item_info.aux_quantity), state.duration)
|
||||
end
|
||||
|
||||
StartAuction(max(1, aux.round(start_price * item_info.aux_quantity)), aux.round(buyout_price * item_info.aux_quantity), state.duration)
|
||||
|
||||
local send_signal, signal_received = aux.signal()
|
||||
aux.when(signal_received, function()
|
||||
|
||||
+6
-2
@@ -146,8 +146,12 @@ function scan_page(i)
|
||||
auction_info.query_type = get_state().params.type
|
||||
|
||||
history.process_auction(auction_info)
|
||||
|
||||
if (get_state().params.auto_buy_validator or pass)(auction_info) then
|
||||
|
||||
if (get_state().params.auto_bid_validator or pass)(auction_info) and auction_info.owner ~= UnitName("player") then
|
||||
local send_signal, signal_received = aux.signal()
|
||||
aux.when(signal_received, scan_page, i)
|
||||
return aux.place_bid(auction_info.query_type, auction_info.index, auction_info.bid_price, send_signal)
|
||||
elseif (get_state().params.auto_buy_validator or pass)(auction_info) and auction_info.owner ~= UnitName("player") then
|
||||
local send_signal, signal_received = aux.signal()
|
||||
aux.when(signal_received, scan_page, i)
|
||||
return aux.place_bid(auction_info.query_type, auction_info.index, auction_info.buyout_price, send_signal)
|
||||
|
||||
+9
-2
@@ -54,7 +54,7 @@ function M.extend_tooltip(tooltip, link, quantity)
|
||||
quantity = IsShiftKeyDown() and quantity or 1
|
||||
local item_info = T.temp-info.item(item_id)
|
||||
if item_info then
|
||||
local distribution = disenchant.distribution(item_info.slot, item_info.quality, item_info.level)
|
||||
local distribution = disenchant.distribution(item_info.slot, item_info.quality, item_info.level, item_id)
|
||||
if getn(distribution) > 0 then
|
||||
if settings.disenchant_distribution then
|
||||
tooltip:AddLine('Disenchants into:', aux.color.tooltip.disenchant.distribution())
|
||||
@@ -64,7 +64,7 @@ function M.extend_tooltip(tooltip, link, quantity)
|
||||
end
|
||||
end
|
||||
if settings.disenchant_value then
|
||||
local disenchant_value = disenchant.value(item_info.slot, item_info.quality, item_info.level)
|
||||
local disenchant_value = disenchant.value(item_info.slot, item_info.quality, item_info.level, item_id)
|
||||
tooltip:AddLine('Disenchant: ' .. (disenchant_value and money.to_string2(disenchant_value) or UNKNOWN), aux.color.tooltip.disenchant.value())
|
||||
end
|
||||
end
|
||||
@@ -77,6 +77,13 @@ function M.extend_tooltip(tooltip, link, quantity)
|
||||
end
|
||||
if settings.merchant_sell then
|
||||
local price = info.merchant_info(item_id)
|
||||
if price == nil and ShaguTweaks.SellValueDB[item_id] ~= nil then
|
||||
local charges = 1
|
||||
if info.max_item_charges(item_id) ~= nil then
|
||||
charges=info.max_item_charges(item_id)
|
||||
end
|
||||
price = ShaguTweaks.SellValueDB[item_id] / charges
|
||||
end
|
||||
if price ~= 0 then
|
||||
tooltip:AddLine('Vendor: ' .. (price and money.to_string2(price * quantity) or UNKNOWN), aux.color.tooltip.merchant())
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user