-
Notifications
You must be signed in to change notification settings - Fork 2
/
kSellGreyNRepair.lua
74 lines (64 loc) · 2.56 KB
/
kSellGreyNRepair.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
--[[
Name: Auto Sell Grey & Repair
Description: Sells grey items and repairs your items using guild funds if possible
Copyright 2017 Mateusz Kasprzak
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
]]
local function OnEvent(self, event)
-- Auto Sell Grey Items
totalPrice = 0
for myBags = 0,4 do
for bagSlots = 1, C_Container.GetContainerNumSlots(myBags) do
CurrentItemLink = C_Container.GetContainerItemLink(myBags, bagSlots)
if CurrentItemLink then
_, _, itemRarity, _, _, _, _, _, _, _, itemSellPrice = GetItemInfo(CurrentItemLink)
itemInfo = C_Container.GetContainerItemInfo(myBags, bagSlots)
if itemRarity == 0 and itemSellPrice ~= 0 then
totalPrice = totalPrice + (itemSellPrice * itemInfo.stackCount)
C_Container.UseContainerItem(myBags, bagSlots)
PickupMerchantItem()
end
end
end
end
if totalPrice ~= 0 then
DEFAULT_CHAT_FRAME:AddMessage("Items were sold for "..GetCoinTextureString(totalPrice), 255, 255, 255)
end
-- Auto Repair
if (CanMerchantRepair()) then
repairAllCost, canRepair = GetRepairAllCost();
-- If merchant can repair and there is something to repair
if (canRepair and repairAllCost > 0) then
costTextureString = GetCoinTextureString(repairAllCost);
-- Use Guild Bank
guildRepairedItems = false
if (IsInGuild() and CanGuildBankRepair()) then
-- Checks if guild has enough money
local amount = GetGuildBankWithdrawMoney()
local guildBankMoney = GetGuildBankMoney()
amount = amount == -1 and guildBankMoney or min(amount, guildBankMoney)
if (amount >= repairAllCost) then
RepairAllItems(true);
guildRepairedItems = true
DEFAULT_CHAT_FRAME:AddMessage("Equipment has been repaired by your Guild for "..costTextureString, 255, 255, 255)
end
end
-- Use own funds
if (repairAllCost <= GetMoney() and not guildRepairedItems) then
RepairAllItems(false);
DEFAULT_CHAT_FRAME:AddMessage("Equipment has been repaired for "..costTextureString, 255, 255, 255)
end
end
end
end
local f = CreateFrame("Frame")
f:SetScript("OnEvent", OnEvent);
f:RegisterEvent("MERCHANT_SHOW");