You need to change the portrait when your target changes (and you had one fp.xxx in your ft.xxx section)
Eg.
Lua Code:
--Player Frame
local fp = CreateFrame("Button", "FarmootPlayerPortrait", UIParent, "SecureUnitButtonTemplate")
fp:SetSize(70, 70)
fp:SetPoint("CENTER", -100, -320)
fp:SetAttribute("unit", "player")
RegisterUnitWatch(fp)
fp:SetAttribute("toggleForVehicle", true)
fp:RegisterForClicks("AnyUp")
fp:SetAttribute("*type1", "target")
fp:SetAttribute("*type2", "togglemenu")
fp:SetAttribute("*type3", "assist")
fp.Texture = fp:CreateTexture("$parent_Texture", "BACKGROUND")
fp.Texture:SetAllPoints()
SetPortraitTexture(fp.Texture, "player")
fp.Border = fp:CreateTexture("$parent_Border", "BORDER")
fp.Border:SetPoint("TOPLEFT", -6, 4)
fp.Border:SetPoint("BOTTOMRIGHT", 6, -10)
fp.Border:SetTexture("Interface/PLAYERFRAME/UI-PlayerFrame-Deathknight-Ring")
fp.Border:SetVertexColor(1, 1, 0, 1)
fp:RegisterUnitEvent("UNIT_PORTRAIT_UPDATE", "player")
fp:RegisterEvent("PLAYER_TARGET_CHANGED") -- Added
fp:SetScript("OnEvent", function(self)
if event == "UNIT_PORTRAIT_UPDATE" then
SetPortraitTexture(self.Texture, "player")
else
SetPortraitTexture(self.Target.Texture, "target") -- Added
end
end)
--Target Frame
local ft = CreateFrame("Button", "FarmootPlayerPortrait", UIParent, "SecureUnitButtonTemplate")
fp.Target = ft -- Added
ft:SetSize(50, 50)
ft:SetPoint("CENTER", 180, 0)
ft:SetAttribute("unit", "target")
RegisterUnitWatch(ft)
ft:SetAttribute("toggleForVehicle", true)
ft:RegisterForClicks("AnyUp")
ft:SetAttribute("*type1", "target")
ft:SetAttribute("*type2", "togglemenu")
ft:SetAttribute("*type3", "assist")
ft.Texture = ft:CreateTexture("$parent_Texture", "BACKGROUND")
ft.Texture:SetAllPoints()
SetPortraitTexture(ft.Texture, "target")
ft.Border = ft:CreateTexture("$parent_Border", "BORDER")
ft.Border:SetPoint("TOPLEFT", -6, 4)
ft.Border:SetPoint("BOTTOMRIGHT", 6, -10)
ft.Border:SetTexture("Interface/PLAYERFRAME/UI-PlayerFrame-Deathknight-Ring")
ft.Border:SetVertexColor(1, 1, 0, 1)
ft:RegisterUnitEvent("UNIT_PORTRAIT_UPDATE", "target")
ft:SetScript("OnEvent", function(self) SetPortraitTexture(self.Texture, "target") end)