Код:
local select = select
local GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty = GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty
local BLIP_TEX_COORDS = {
["WARRIOR"] = { 0, 0.125, 0, 0.25 },
["PALADIN"] = { 0.125, 0.25, 0, 0.25 },
["HUNTER"] = { 0.25, 0.375, 0, 0.25 },
["ROGUE"] = { 0.375, 0.5, 0, 0.25 },
["PRIEST"] = { 0.5, 0.625, 0, 0.25 },
["DEATHKNIGHT"] = { 0.625, 0.75, 0, 0.25 },
["SHAMAN"] = { 0.75, 0.875, 0, 0.25 },
["MAGE"] = { 0.875, 1, 0, 0.25 },
["WARLOCK"] = { 0, 0.125, 0.25, 0.5 },
["DRUID"] = { 0.25, 0.375, 0.25, 0.5 }
}
local BLIP_RAID_Y_OFFSET = 0.5;
for i=1,4 do
local partyIcon = _G["WorldMapParty"..i.."Icon"]
partyIcon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
end
for i=1,40 do
local raidIcon = _G["WorldMapRaid"..i.."Icon"]
raidIcon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
end
hooksecurefunc("WorldMapUnit_Update",function(self)
local unit = self.unit
if UnitIsPlayer(unit) then
local class = select(2, UnitClass(unit))
if ( GetNumRaidMembers() > 0 ) then
if ( UnitInParty(unit) ) then
self.icon:SetTexCoord(
BLIP_TEX_COORDS[class][1],
BLIP_TEX_COORDS[class][2],
BLIP_TEX_COORDS[class][3],
BLIP_TEX_COORDS[class][4]
);
else
self.icon:SetTexCoord(
BLIP_TEX_COORDS[class][1],
BLIP_TEX_COORDS[class][2],
BLIP_TEX_COORDS[class][3] + BLIP_RAID_Y_OFFSET,
BLIP_TEX_COORDS[class][4] + BLIP_RAID_Y_OFFSET
);
end
else
self.icon:SetTexCoord(
BLIP_TEX_COORDS[class][1],
BLIP_TEX_COORDS[class][2],
BLIP_TEX_COORDS[class][3],
BLIP_TEX_COORDS[class][4]
);
end
end
end)
P.S. можете объяснить, в чем разница на миникарте в текстурах которые цельные и которые вырезанные?) Никогда не понимал этого.