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

📄 sm_itemlink.lua

📁 时间太紧了
💻 LUA
字号:
local oldContainerFrameItemButton_OnClick = ContainerFrameItemButton_OnClick;
function ContainerFrameItemButton_OnClick(button, ignoreShift)
	if ( button=="LeftButton" and IsAltKeyDown() and not ignoreShift and SuperMacroFrame:IsVisible() ) then
		local item = GetContainerItemLink(this:GetParent():GetID(), this:GetID());
		if ( item ) then
			SuperMacroFrameText:Insert(item);
			return;
		end
	end
	oldContainerFrameItemButton_OnClick(button, ignoreShift);
end

local oldPaperDollItemSlotButton_OnClick = PaperDollItemSlotButton_OnClick;
function PaperDollItemSlotButton_OnClick(button, ignoreShift)
	if ( button=="LeftButton" and IsAltKeyDown() and not ignoreShift and SuperMacroFrame:IsVisible() ) then
		local item = GetInventoryItemLink("player", this:GetID());
		if ( item ) then
			SuperMacroFrameText:Insert(item);
			return;
		end
	end
	oldPaperDollItemSlotButton_OnClick(button, ignoreShift);
end

local oldBagSlotButton_OnClick = BagSlotButton_OnClick;
function BagSlotButton_OnClick()
	if ( arg1=="LeftButton" and SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
		this:SetChecked(not this:GetChecked());
		local item = GetInventoryItemLink("player", this:GetID());
		if ( item ) then
			SuperMacroFrameText:Insert(item);
			return;
		end
	end
	oldBagSlotButton_OnClick()
end

function SM_TradeSkillSkillButton_OnClick(button)
	old_SM_TradeSkillSkillButton_OnClick(button);
	local index = TradeSkillFrame.selectedSkill;
	local link = GetTradeSkillItemLink(index);
	if ( link ) then
		if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
			if ( IsControlKeyDown() ) then
				for i=1, GetTradeSkillNumReagents(index) do
					local link = GetTradeSkillReagentItemLink(index, i);
					local reagentName, reagentTexture, reagentCount = GetTradeSkillReagentInfo( index, i);
					SuperMacroFrameText:Insert(" "..reagentCount.."x"..link);				
				end
			else
				SuperMacroFrameText:Insert(link);
			end
			return;
		end
		if ( ChatFrameEditBox:IsVisible() and IsShiftKeyDown() ) then
			if ( IsControlKeyDown() ) then
				for i=1, GetTradeSkillNumReagents(index) do
					local link = GetTradeSkillReagentItemLink(index, i);
					local reagentName, reagentTexture, reagentCount = GetTradeSkillReagentInfo( index, i);
					ChatFrameEditBox:Insert(" "..reagentCount.."x"..link);				
				end
			else
				ChatFrameEditBox:Insert(link);
			end
			return;
		end
	end
end

function SM_CraftButton_OnClick(button)
	old_SM_CraftButton_OnClick(button);
	local index = GetCraftSelectionIndex();
	local link = GetCraftItemLink(index);
	--[[
	if ( not link ) then
		link = GetCraftInfo(index);
	end
	--]]
	if ( link ) then
		if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
			if ( IsControlKeyDown() ) then
				for i=1, GetCraftNumReagents(index) do
					local link = GetCraftReagentItemLink(index, i);
					local reagentName, reagentTexture, reagentCount = GetCraftReagentInfo( index, i);
					SuperMacroFrameText:Insert(" "..reagentCount.."x"..link);
				end	
			else
				SuperMacroFrameText:Insert(link);
			end
			return;
		end
		if ( ChatFrameEditBox:IsVisible() and IsShiftKeyDown() ) then
			if ( IsControlKeyDown() ) then
				for i=1, GetCraftNumReagents(index) do
					local link = GetCraftReagentItemLink(index, i);
					local reagentName, reagentTexture, reagentCount = GetCraftReagentInfo( index, i);
					ChatFrameEditBox:Insert(" "..reagentCount.."x"..link);
				end	
			else
				ChatFrameEditBox:Insert(link);
			end
			return;
		end
	end
end

function SM_TradeSkillItem_OnClick()
	local old_SM_TradeSkillReagent_OnClick = TradeSkillReagent1:GetScript("OnClick");
	for i=1, 8 do
		local item = getglobal("TradeSkillReagent"..i);
		item:SetScript("OnClick", function()
			if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
				local link = GetTradeSkillReagentItemLink( TradeSkillFrame.selectedSkill, this:GetID());
				if ( link ) then
					SuperMacroFrameText:Insert(link);
					return;
				end
			end
			if ( old_SM_TradeSkillReagent_OnClick ) then
				old_SM_TradeSkillReagent_OnClick();
			end
		end);
	end
	local old_SM_TradeSkillSkillIcon_OnClick = TradeSkillSkillIcon:GetScript("OnClick");
	TradeSkillSkillIcon:SetScript("OnClick", function()
		local index = TradeSkillFrame.selectedSkill;
		local link = GetTradeSkillItemLink(index);
		if ( link ) then
			if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
				if ( IsControlKeyDown() ) then
					for i=1, GetTradeSkillNumReagents(index) do
						local link = GetTradeSkillReagentItemLink(index, i);
						local reagentName, reagentTexture, reagentCount = GetTradeSkillReagentInfo( index, i);
						SuperMacroFrameText:Insert(" "..reagentCount.."x"..link);				
					end
				else
					SuperMacroFrameText:Insert(link);
				end
				return;
			end
    		if ( ChatFrameEditBox:IsVisible() and IsShiftKeyDown() ) then
    			if ( IsControlKeyDown() ) then
    				for i=1, GetTradeSkillNumReagents(index) do
    					local link = GetTradeSkillReagentItemLink(index, i);
    					local reagentName, reagentTexture, reagentCount = GetTradeSkillReagentInfo( index, i);
    					ChatFrameEditBox:Insert(" "..reagentCount.."x"..link);				
    				end
    			else
    				ChatFrameEditBox:Insert(link);
    			end
    			return;
    		end
		end
		if ( old_SM_TradeSkillSkillIcon_OnClick )then
			old_SM_TradeSkillSkillIcon_OnClick();
		end
	end);
end

function SM_CraftItem_OnClick()
	local old_SM_CraftReagent_OnClick = CraftReagent1:GetScript("OnClick");
	for i=1, 8 do
		local item = getglobal("CraftReagent"..i);
		item:SetScript("OnClick", function()
			if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
					local link = GetCraftReagentItemLink(GetCraftSelectionIndex(), this:GetID());
					if ( link ) then
						SuperMacroFrameText:Insert(link);
						return;
					end
			end
			if ( old_SM_CraftReagent_OnClick ) then
				old_SM_CraftReagent_OnClick();
 			end
		end);
	end
	local old_SM_CraftIcon_OnClick = CraftIcon:GetScript("OnClick");
	CraftIcon:SetScript("OnClick", function()
		local index = GetCraftSelectionIndex();
		local link = GetCraftItemLink(index);
		--[[
			if ( not link ) then
				link = GetCraftInfo(index);
			end
		--]]
		if ( link ) then
			if ( SuperMacroFrame:IsVisible() and IsAltKeyDown() ) then
				if ( IsControlKeyDown() ) then
					for i=1, GetCraftNumReagents(index) do
						local link = GetCraftReagentItemLink(index, i);
						local reagentName, reagentTexture, reagentCount = GetCraftReagentInfo( index, i);
						SuperMacroFrameText:Insert(" "..reagentCount.."x"..link);				
					end
				else
					SuperMacroFrameText:Insert(link);
				end
				return;
			end
			if ( ChatFrameEditBox:IsVisible() and IsShiftKeyDown() ) then
				if ( IsControlKeyDown() ) then
					for i=1, GetCraftNumReagents(index) do
						local link = GetCraftReagentItemLink(index, i);
						local reagentName, reagentTexture, reagentCount = GetCraftReagentInfo( index, i);
						ChatFrameEditBox:Insert(" "..reagentCount.."x"..link);
					end	
				else
					ChatFrameEditBox:Insert(link);
				end
				return;
			end
		end
		if ( old_SM_CraftIcon_OnClick ) then
			old_SM_CraftIcon_OnClick();
		end
	end);
end

local oldSpellButton_OnClick = SpellButton_OnClick;
function SpellButton_OnClick(drag)
	local id = SpellBook_GetSpellID(this:GetID());
	if ( id > MAX_SPELLS ) then
		return;
	end
	if ( IsShiftKeyDown() and SuperMacroFrame:IsVisible() ) then
		local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType);
		if ( spellName and not IsSpellPassive(id, SpellBookFrame.bookType) ) then
			if ( subSpellName and (strlen(subSpellName) > 0) ) then
				SuperMacroFrameText:Insert(TEXT(SLASH_CAST1).." "..spellName.."("..subSpellName..")");
			else
				SuperMacroFrameText:Insert(TEXT(SLASH_CAST1).." "..spellName);
			end
		end
		return;
	end
	oldSpellButton_OnClick(drag);
end

⌨️ 快捷键说明

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