From 493d0d22546391a17d209274b7b1d4ed461fd9c7 Mon Sep 17 00:00:00 2001 From: Jennifer Date: Thu, 3 Oct 2019 18:04:06 +0100 Subject: [PATCH] EMA Version: v1.13.2-Release-v0.6(121022) Game Version: 1.13.2 Release Date: 3/10/2019 ## Purchase -- Should No Longer Multiple The Count Cost Of Stacked Items. -- Issue #26 ## Team -- Fixed Issue #20 Again! - Dev Note: Fixed The Lua Error But Did Not Fix The Friend System. ( Is a MixInTable Now) --- CHANGELOG.txt | 14 +++++++++++ Core/Team-Classic.lua | 5 ++-- EMA-Classic.toc | 2 +- Locales/Classic-Core-Locale-enUS.lua | 14 ++++++++--- Modules/Purchase-Classic.lua | 43 ++++++++++++++++++++++++---------- 5 files changed, 60 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 795d1c6..cc8fb56 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,6 +2,20 @@ ChangeLogs: --------------------------- +EMA Version: v1.13.2-Release-v0.6(121022) +Game Version: 1.13.2 +Release Date: 3/10/2019 + +## Purchase + -- Should No Longer Multiple The Count Cost Of Stacked Items. + -- Issue #26 + +## Team + -- Fixed Issue #20 Again! + - Dev Note: Fixed The Lua Error But Did Not Fix The Friend System. ( Is a MixInTable Now) + +--------------------------- + EMA Version: v1.13.2-Release-v0.6(121021) Game Version: 1.13.2 Release Date: 24/9/2019 diff --git a/Core/Team-Classic.lua b/Core/Team-Classic.lua index 132fe32..0cf6fc3 100644 --- a/Core/Team-Classic.lua +++ b/Core/Team-Classic.lua @@ -1350,9 +1350,10 @@ function EMA:PARTY_INVITE_REQUEST( event, inviter, ... ) if EMA.db.inviteAcceptFriends == true then -- Iterate each friend; searching for the inviter in the friends list. for friendIndex = 1, C_FriendList.GetNumOnlineFriends() do - local _, _, _, _, friendName = C_FriendList.GetFriendInfoByIndex( friendIndex ) + local f = C_FriendList.GetFriendInfoByIndex( friendIndex ) -- Inviter found in friends list, allow the invite to be accepted. - if inviter == friendName then + --EMA:Print("test", inviter, f.name ) + if inviter == f.name then acceptInvite = true break end diff --git a/EMA-Classic.toc b/EMA-Classic.toc index fdaf95f..fbbc99d 100644 --- a/EMA-Classic.toc +++ b/EMA-Classic.toc @@ -2,7 +2,7 @@ ## Title: EMA-Classic ## Notes: Ebony's MultiBoxing Assistant Classic ## Author: Jennifer Calladine 'Ebony' -## Version: v1.13.2-Release-v0.6(121021) +## Version: v1.13.2-Release-v0.6(121022) ## SavedVariables: CoreProfileDB, CommunicationsProfileDB, TeamProfileDB, TagProfileDB, MessageProfileDB, CurrProfileDB, DisplayTeamProfileDB, FollowProfileDB, GuildProfileDB, InteractionProfileDB, ItemUseProfileDB, PurchaseProfileDB, QuestProfileDB, QuestWatcherProfileDB, SellProfileDB, TalkProfileDB, ToonProfileDB, TradeProfileDB, MailProfileDB, ISBoxerProfileDB #Libs diff --git a/Locales/Classic-Core-Locale-enUS.lua b/Locales/Classic-Core-Locale-enUS.lua index dbf1523..482214e 100644 --- a/Locales/Classic-Core-Locale-enUS.lua +++ b/Locales/Classic-Core-Locale-enUS.lua @@ -611,9 +611,17 @@ L["PURCHASE_MSG"] = "Purchase Messages" L["ITEM_ERROR"] = "Item Tags Must Only Be Made Up Of Letters And Numbers." L["NUM_ERROR"] = "Amount To Buy Must Be A Number." L["BUY_POPUP_ACCEPT"] = "Are You Sure You Wish To Remove The Selected Item From The Auto Buy Items List?" -L["ERROR_BAGS_FULL"] = "I Do Not Have Enough Space In My Bags To Complete My Purchases." -L["ERROR_GOLD"] = "I Do Not Have Enough Money To Complete My Purchases." -L["ERROR_CURR"] = "I Do Not Have Enough Other Currency To Complete My Purchases." + +L["ERROR_BAGS_FULL"] = function( name ) + return string.format( "I Do Not Have Enough Space In My Bags To Complete My Purchase of %s", name ) +end +L["ERROR_GOLD"] = function( name ) + return string.format( "I Do Not Have Enough Money To Purchase %s", name ) +end +L["ERROR_CURR"] = function( name ) + return string.format( "I Do Not Have Enough Currency To Complete My Purchase Of %s", name ) +end + -------------------------- -- Trade Locale diff --git a/Modules/Purchase-Classic.lua b/Modules/Purchase-Classic.lua index 32a6bf5..18aa4c2 100644 --- a/Modules/Purchase-Classic.lua +++ b/Modules/Purchase-Classic.lua @@ -564,6 +564,7 @@ function EMA:DoMerchantAutoBuy() local outOfBagSpace = false local outOfMoney = false local outOfOtherCurrency = false + local name = nil -- Iterate all the wanted items... if EMA.db.globalBuyList == true then itemTable = EMA.db.global.autoBuyItemsListGlobal @@ -580,6 +581,8 @@ function EMA:DoMerchantAutoBuy() -- Does the merchant have the item in stock? local itemIndexMerchant = EMA:DoesMerchantHaveItemInStock( itemLink ) if itemIndexMerchant ~= nil then + local itemName = GetMerchantItemInfo( itemIndexMerchant ) + name = itemName --EMA:Print("inStock", itemIndexMerchant) -- Yes, item is in stock, how many does the character need? local amountNeeded = EMA:GetAmountNeededForItemTopUp( itemLink, maxItemAmount ) @@ -589,6 +592,7 @@ function EMA:DoMerchantAutoBuy() -- Attempt to buy the items. local noFreeBagSpace, notEnoughMoney, notEnoughOtherCurrency = EMA:BuyItemFromMerchant( itemIndexMerchant, amountNeeded ) -- Set flags if problems occurred. + --EMA:Print("failed", noFreeBagSpace, notEnoughMoney, notEnoughOtherCurrency ) if noFreeBagSpace then outOfBagSpace = true end @@ -598,19 +602,25 @@ function EMA:DoMerchantAutoBuy() if notEnoughOtherCurrency then outOfOtherCurrency = true end + local name = GetMerchantItemInfo( itemIndexMerchant ) + itemIndexMerchant = itemIndexMerchant end end end end - -- If there was a problem, tell the master. - if outOfBagSpace then - EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_BAGS_FULL"], false ) - end - if outOfMoney then - EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_GOLD"], false ) - end - if outOfOtherCurrency then - EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_CURR"], false ) + --EMA:Print("fail", name ) + if name ~= nil then + -- If there was a problem, tell the master. + --EMA:Print("fail", name ) + if outOfBagSpace then + EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_BAGS_FULL"]( name ), false ) + end + if outOfMoney then + EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_GOLD"]( name ), false ) + end + if outOfOtherCurrency then + EMA:EMASendMessageToTeam( EMA.db.messageArea, L["ERROR_CURR"]( name ), false ) + end end end @@ -655,6 +665,7 @@ end function EMA:BuyItemFromMerchant( itemIndexMerchant, amountToBuy ) -- Flags will be set if the character does not have enough bag space or money. + --EMA:Print("item", itemIndexMerchant, amountToBuy) local noFreeBagSpace = false local notEnoughMoney = false local notEnoughOtherCurrency = false @@ -665,8 +676,14 @@ function EMA:BuyItemFromMerchant( itemIndexMerchant, amountToBuy ) local costToBuy = 0 local moneyAvailable = 0 -- Get information about the item from the merchant. - local name, texture, price, itemsPerStack, numberAvailable, isUsable, extendedCost = GetMerchantItemInfo( itemIndexMerchant ) + local name, texture, price, itemsPerStack, numberAvailable, isPurchasable, isUsable, extendedCost = GetMerchantItemInfo(itemIndexMerchant) local maximumCanBuyAtATime = GetMerchantItemMaxStack( itemIndexMerchant ) + -- Crazy Cat Maths On stack of items + if itemsPerStack > 1 then + price = price / itemsPerStack + else + price = price + end -- Loop buying stacks from the merchant until the required number has been purchased. repeat -- Still need to buy more than the maximum? @@ -680,7 +697,7 @@ function EMA:BuyItemFromMerchant( itemIndexMerchant, amountToBuy ) -- Attempt to buy this amount from the merchant; although actual amount bought may differ, -- depending on merchant stock and over buy flag. -- How many does the merchant have left? - numberAvailable = select( 5, GetMerchantItemInfo( itemIndexMerchant ) ) + --numberAvailable = select( 5, GetMerchantItemInfo( itemIndexMerchant ) ) -- Calculate how many to buy depending on the stacksize and whether over buying is allowed. actualAmountToBuy = buyThisAmount if EMA.db.autoBuyOverflow == true then @@ -688,6 +705,7 @@ function EMA:BuyItemFromMerchant( itemIndexMerchant, amountToBuy ) else actualAmountToBuy = floor(actualAmountToBuy) end + --EMA:Print("test1221", actualAmountToBuy, "a", actualAmountToBuy ) -- If requesting more than the number available, then just buy as much as possible. -- If numberAvailable is -1 then there is unlimited stock available. if numberAvailable ~= -1 then @@ -698,8 +716,9 @@ function EMA:BuyItemFromMerchant( itemIndexMerchant, amountToBuy ) -- Does the character have enough money? costToBuy = actualAmountToBuy * price moneyAvailable = GetMoney() + --EMA:Print("NO MONEY", moneyAvailable , costToBuy, actualAmountToBuy ) if moneyAvailable < costToBuy then - --EMA:Print("NO MONEY", moneyAvailable , costToBuy ) + notEnoughMoney = true end -- Is there enough free space for this item in the characters bags? -- 1.7.9.5