📄 sm_itemlink.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 + -