⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auctooltip.lua

📁 时间太紧了
💻 LUA
字号:
--[[	Auctioneer Addon for World of Warcraft(tm).	Version: 3.5.0.0917 (Platypus)	Revision: $Id: AucTooltip.lua 874 2006-05-21 20:36:12Z mentalpower $	Auctioneer tooltip functions.	Functions to present and draw the tooltips.	License:		This program is free software; you can redistribute it and/or		modify it under the terms of the GNU General Public License		as published by the Free Software Foundation; either version 2		of the License, or (at your option) any later version.		This program is distributed in the hope that it will be useful,		but WITHOUT ANY WARRANTY; without even the implied warranty of		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the		GNU General Public License for more details.		You should have received a copy of the GNU General Public License		along with this program(see GPL.txt); if not, write to the Free Software		Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.]]--Local function prototypeslocal hookTooltipfunction hookTooltip(funcVars, retVal, frame, name, link, quality, count)	EnhTooltip.DebugPrint("Displaying "..name)	if (not link) then EnhTooltip.DebugPrint("No link was passed to the client");  return; end	-- nothing to do, if auctioneer is disabled	if (not Auctioneer.Command.GetFilter("all")) then		return;	end;	if EnhTooltip.LinkType(link) ~= "item" then return end	local auctKey = Auctioneer.Util.GetAuctionKey();	-- initialize local variables	local itemID, randomProp, enchant, uniqID, lame = EnhTooltip.BreakLink(link);	local itemKey = itemID..":"..randomProp..":"..enchant;	local embedded = Auctioneer.Command.GetFilter('embed');	-- OUTPUT: seperator line	if (embedded) then		if (Auctioneer.Command.GetFilter('show-embed-blankline')) then			EnhTooltip.AddLine(" ", nil, embedded);		end	else		EnhTooltip.AddLine(name, nil, embedded);		EnhTooltip.LineQuality(quality);	end	if (Auctioneer.Command.GetFilter('show-link')) then		-- OUTPUT: show item link		EnhTooltip.AddLine("Link: " .. itemID .. ":" .. enchant .. ":" .. randomProp .. ":" .. uniqID, nil, embedded);		EnhTooltip.LineQuality(quality);	end	local itemInfo = nil;	-- show item info	if (itemID > 0) then		frame.eDone = 1;		local auctionPriceItem = Auctioneer.Core.GetAuctionPriceItem(itemKey, auctKey);		local aCount,minCount,minPrice,bidCount,bidPrice,buyCount,buyPrice = Auctioneer.Core.GetAuctionPrices(auctionPriceItem.data);		-- show auction info		if (aCount == 0) then			-- OUTPUT: "Never seen at auction"			EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoNever'), _AUCT('TextAuction')), nil, embedded);			EnhTooltip.LineColor(0.5, 0.8, 0.5);		else -- (aCount > 0)			-- calculate auction values			local avgMin = math.floor(minPrice / minCount);			local bidPct = math.floor(bidCount / minCount * 100);			local avgBid = 0;			if (bidCount > 0) then				avgBid = math.floor(bidPrice / bidCount);			end			local buyPct = math.floor(buyCount / minCount * 100);			local avgBuy = 0;			if (buyCount > 0) then				avgBuy = math.floor(buyPrice / buyCount);			end			local median, medCount = Auctioneer.Statistic.GetUsableMedian(itemKey, auctKey);			if (Auctioneer.Command.GetFilter('show-average')) then -- show item's average auction price				-- OUTPUT: "Seen [aCount] times at auction total"				EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoSeen'), aCount), nil, embedded);				EnhTooltip.LineColor(0.5,0.8,0.1);				if (not Auctioneer.Command.GetFilter('show-verbose')) then -- default mode					-- OUTPUT: "[avgMin] min/[avgBuy] BO ([avgBid] bid)"					EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoAverage'), EnhTooltip.GetTextGSC(avgMin), EnhTooltip.GetTextGSC(avgBuy), EnhTooltip.GetTextGSC(avgBid)), nil, embedded);					EnhTooltip.LineColor(0.1,0.8,0.5);				else -- verbose mode					if (count > 1) then						-- OUTPUT: "Averages for [count] items:"						EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoHeadMulti'), count), nil, embedded);						EnhTooltip.LineColor(0.4,0.5,1.0);						-- OUTPUT: "  Minimum ([avgMin] ea)"						EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoMinMulti'), EnhTooltip.GetTextGSC(avgMin)), avgMin*count, embedded);						EnhTooltip.LineColor(0.4,0.5,0.8);						if (Auctioneer.Command.GetFilter('show-stats')) then -- show buyout/bidded percentages							-- OUTPUT: "  Bidded ([bidPct]%, [avgBid] ea)"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBidMulti'), bidPct.."%, ", EnhTooltip.GetTextGSC(avgBid)), avgBid*count, embedded);							EnhTooltip.LineColor(0.4,0.5,0.85);							-- OUTPUT: "  Buyout ([buyPct]%, [avgBuy] ea)"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBuyMulti'), buyPct.."%, ", EnhTooltip.GetTextGSC(avgBuy)), avgBuy*count, embedded);							EnhTooltip.LineColor(0.4,0.5,0.9);						else -- don't show buyout/bidded percentages							-- OUTPUT: "  Bidded ([avgBid] ea)"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBidMulti'), "", EnhTooltip.GetTextGSC(avgBid)), avgBid*count, embedded);							EnhTooltip.LineColor(0.4,0.5,0.85);							-- OUTPUT: "  Buyout ([avgBuy] ea)"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBuyMulti'), "", EnhTooltip.GetTextGSC(avgBuy)), avgBuy*count, embedded);							EnhTooltip.LineColor(0.4,0.5,0.9);						end						if (median) then							-- OUTPUT: "  Buyout median"							EnhTooltip.AddLine(_AUCT('FrmtInfoBuymedian'), median * count, embedded);							EnhTooltip.LineColor(0.4,0.5,0.95);						end					else -- (count = 0 | 1)					   -- OUTPUT: "Averages for this item:"						EnhTooltip.AddLine(_AUCT('FrmtInfoHeadOne'), nil, embedded);						EnhTooltip.LineColor(0.4,0.5,1.0);						-- OUTPUT: "  Minimum bid"						EnhTooltip.AddLine(_AUCT('FrmtInfoMinOne'), avgMin, embedded);						EnhTooltip.LineColor(0.4,0.5,0.8);						if (Auctioneer.Command.GetFilter('show-stats')) then -- show buyout/bidded percentages							-- OUTPUT: "  Bidded [bidPct]%"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBidOne'), " "..bidPct.."%"), avgBid, embedded);							EnhTooltip.LineColor(0.4,0.5,0.85);							-- OUTPUT: "  Buyout [buyPct]%"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBuyOne'), " "..buyPct.."%"), avgBuy, embedded);							EnhTooltip.LineColor(0.4,0.5,0.9);						else -- don't show buyout/bidded percentages						   -- OUTPUT: "  Bidded [bidPct]%"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBidOne'), ""), avgBid, embedded);							EnhTooltip.LineColor(0.4,0.5,0.85);							-- OUTPUT: "  Buyout [buyPct]%"							EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBuyOne'), ""), avgBuy, embedded);							EnhTooltip.LineColor(0.4,0.5,0.9);						end						if (median) then							-- OUTPUT: "  Buyout median"							EnhTooltip.AddLine(_AUCT('FrmtInfoBuymedian'), median, embedded);							EnhTooltip.LineColor(0.4,0.5,0.95);						end					end				end				if median and Auctioneer.Command.GetFilter('show-median') then -- show item's median buyout price					local historicalMedian, historicalMedCount = Auctioneer.Statistic.GetItemHistoricalMedianBuyout(itemKey, auctKey);					local snapshotMedian, snapshotMedCount = Auctioneer.Statistic.GetItemSnapshotMedianBuyout(itemKey, auctKey);					if historicalMedian and historicalMedCount > Auctioneer.Util.NullSafe(snapshotMedCount)  then						-- OUTPUT: "Last [historicalMedCount], median BO (ea)"						EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoHistmed'), historicalMedCount), historicalMedian, embedded)						EnhTooltip.LineColor(0.1,0.8,0.5);					end					if snapshotMedian then						-- OUTPUT: "Scanned [snapshotMedCount], median BO (ea)"						EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoSnapmed'), snapshotMedCount), snapshotMedian, embedded)						EnhTooltip.LineColor(0.1,0.8,0.5);					end				end			end -- if(Auctioneer.Command.GetFilter('show-average')) - show item's average auction price			-- seperate line for suggested auction price (for clarification, even if the values have already been shown somewhere else			if (Auctioneer.Command.GetFilter('show-suggest')) then -- show item's suggested auction price				local hsp, histCount, market, warn, nexthsp, nextwarn = Auctioneer.Statistic.GetHSP(itemKey, auctKey);				if hsp == 0 and buyCount > 0 then					hsp = math.floor(buyPrice / buyCount); -- use mean buyout if median not available				end				local discountBidPercent = tonumber(Auctioneer.Command.GetFilterVal('pct-bidmarkdown'));				local countFix = count				if countFix == 0 then					countFix = 1				end				local buyPrice = Auctioneer.Statistic.RoundDownTo95(Auctioneer.Util.NullSafe(hsp) * countFix);				local bidPrice = Auctioneer.Statistic.RoundDownTo95(Auctioneer.Statistic.SubtractPercent(buyPrice, discountBidPercent));				if (count > 1) then					-- OUTPUT: "Suggested price for your [count] stack: [bidPrice] min/[buyPrice] BO"					EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoSgststx'), count, EnhTooltip.GetTextGSC(bidPrice, true), EnhTooltip.GetTextGSC(buyPrice, true)), nil, embedded);					EnhTooltip.LineColor(0.5,0.5,0.8);				else -- count = 0 | 1					-- OUTPUT: "Suggested price: [bidPrice] min/[buyPrice] BO"					EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoSgst'), EnhTooltip.GetTextGSC(bidPrice, true), EnhTooltip.GetTextGSC(buyPrice, true)), nil, embedded);					EnhTooltip.LineColor(0.5,0.5,0.8);				end				EnhTooltip.AddLine(warn, nil, embedded);				local cHex, cRed, cGreen, cBlue = Auctioneer.Util.GetWarnColor(warn);				EnhTooltip.LineColor(cRed, cGreen, cBlue);			end			if (not Auctioneer.Command.GetFilter('show-verbose')) then				if (Auctioneer.Command.GetFilter('show-stats')) then -- show buyout/bidded percentages					-- OUTPUT: "[bidPct]% have bid, [buyPct]% have BO"					EnhTooltip.AddLine(string.format(_AUCT('FrmtInfoBidrate'), bidPct, buyPct), nil, embedded);					EnhTooltip.LineColor(0.1,0.5,0.8);				end			end		end -- (aCount > 0)		local also = Auctioneer.Command.GetFilterVal("also");		if (Auctioneer.Util.IsValidAlso(also)) and (also ~= "off") then			if (also == "opposite") then				also = Auctioneer.Util.GetOppositeKey();			elseif (also == "neutral") then				also = Auctioneer.Util.GetNeutralKey();			elseif (also == "home") then				also = Auctioneer.Util.GetHomeKey();			end			if (also == auctKey) then return end;			local auctionPriceItem = Auctioneer.Core.GetAuctionPriceItem(itemKey, also);			local aCount,minCount,minPrice,bidCount,bidPrice,buyCount,buyPrice = Auctioneer.Core.GetAuctionPrices(auctionPriceItem.data);			if (aCount == 0) then				EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoNever'), also), nil, embedded);				EnhTooltip.LineColor(0.5,0.8,0.1);			else				-- calculate auction values				local avgMin = math.floor(minPrice / minCount);				local bidPct = math.floor(bidCount / minCount * 100);				local avgBid = 0;				if (bidCount > 0) then					avgBid = math.floor(bidPrice / bidCount);				end				local buyPct = math.floor(buyCount / minCount * 100);				local avgBuy = 0;				if (buyCount > 0) then					avgBuy = math.floor(buyPrice / buyCount);				end				if (Auctioneer.Command.GetFilter('show-average')) then					EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoAlsoseen'), aCount, also), nil, embedded);					EnhTooltip.LineColor(0.5,0.8,0.1);					EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoAverage'), EnhTooltip.GetTextGSC(avgMin), EnhTooltip.GetTextGSC(avgBuy), EnhTooltip.GetTextGSC(avgBid)), nil, embedded);					EnhTooltip.LineColor(0.1,0.8,0.5);				end				if (Auctioneer.Command.GetFilter('show-stats')) then					EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoBidrate'), bidPct, buyPct), nil, embedded);					EnhTooltip.LineColor(0.1,0.5,0.8);				end				-- seperate line for suggested auction price (for clarification, even if the values have already been shown somewhere else				if (Auctioneer.Command.GetFilter('show-suggest')) then -- show item's suggested auction price					local hsp, histCount, market, warn, nexthsp, nextwarn = Auctioneer.Statistic.GetHSP(itemKey, also);					if hsp == 0 and buyCount > 0 then						hsp = math.floor(buyPrice / buyCount); -- use mean buyout if median not available					end					local discountBidPercent = tonumber(Auctioneer.Command.GetFilterVal('pct-bidmarkdown'));					local countFix = count					if countFix == 0 then						countFix = 1					end					local buyPrice = Auctioneer.Statistic.RoundDownTo95(Auctioneer.Util.NullSafe(hsp) * countFix);					local bidPrice = Auctioneer.Statistic.RoundDownTo95(Auctioneer.Statistic.SubtractPercent(buyPrice, discountBidPercent));					if (count > 1) then						-- OUTPUT: "Suggested price for your [count] stack: [bidPrice] min/[buyPrice] BO"						EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoSgststx'), count, EnhTooltip.GetTextGSC(bidPrice, true), EnhTooltip.GetTextGSC(buyPrice, true)), nil, embedded);						EnhTooltip.LineColor(0.5,0.5,0.8);					else -- count = 0 | 1						-- OUTPUT: "Suggested price: [bidPrice] min/[buyPrice] BO"						EnhTooltip.AddLine(string.format(">> ".._AUCT('FrmtInfoSgst'), EnhTooltip.GetTextGSC(bidPrice, true), EnhTooltip.GetTextGSC(buyPrice, true)), nil, embedded);						EnhTooltip.LineColor(0.5,0.5,0.8);					end					EnhTooltip.AddLine(">> "..warn, nil, embedded);					local cHex, cRed, cGreen, cBlue = Auctioneer.Util.GetWarnColor(warn);					EnhTooltip.LineColor(cRed, cGreen, cBlue);				end			end		end	endendAuctioneer.Tooltip = {	HookTooltip = hookTooltip,}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -