LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 821|回复: 0

一段ElvUI的鼠标提示代码,求指点

[复制链接]
发表于 2015-8-15 20:59:10 | 显示全部楼层 |阅读模式
我用的是ElvUI,鼠标提示是根据职业,设定鼠标提示边框的颜色,而我不想用这个效果,就用技能提示时(如图所示)的样式——准确的说,除了装备根据品质染色,其他都用默认的边框颜色。
这个边框就是我想要的效果

先看看代码:

function TT:Colorize(tt)
local isGameTooltip = tt == GameTooltip
local GMF = GetMouseFocus()
local unit = (select(2, tt:GetUnit())) or (GMF and GMF:GetAttribute("unit"))

local reaction = unit and UnitReaction(unit, "player")
local player = unit and UnitIsPlayer(unit)
local tapped = unit and UnitIsTapped(unit)
local tappedbyme = unit and UnitIsTappedByPlayer(unit)
local connected = unit and UnitIsConnected(unit)
local dead = unit and UnitIsDead(unit)
local r, g, b;

if (reaction) and (tapped and not tappedbyme or not connected or dead) then
r, g, b = 0.55, 0.57, 0.61
tt:SetBackdropBorderColor(r, g, b)
if isGameTooltip then
GameTooltipStatusBar.backdrop:SetBackdropBorderColor(r, g, b)
GameTooltipStatusBar:ColorBar(r, g, b)
end
------------------这是没有看明白的部分
elseif player then
local class = select(2, UnitClass(unit)) ------------------我的的理解是:获取职业
if class then
local color = RAID_CLASS_COLORS[class] ------------------我的的理解是:根据职业,对color赋值。所以后面是职业颜色了,但是不会改=。=
tt:SetBackdropBorderColor(color.r, color.g, color.b)
if isGameTooltip then
GameTooltipStatusBar.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
GameTooltipStatusBar:ColorBar(color.r, color.g, color.b) ---------这个是血条颜色么?
end
end
elseif reaction then ------------------这个reaction是什么东东??
local color = FACTION_BAR_COLORS[reaction] ------------------这个FACTION_BAR_COLORS又是什么东东??
tt:SetBackdropBorderColor(color.r, color.g, color.b)
if isGameTooltip then
GameTooltipStatusBar.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
GameTooltipStatusBar:ColorBar(color.r, color.g, color.b)
end
else
local _, link = tt:GetItem() ------------------这里是根据装备品质赋值边框颜色吧?
local quality = link and select(3, GetItemInfo(link))
if quality and quality >= 2 then
local r, g, b = GetItemQualityColor(quality)
tt:SetBackdropBorderColor(r, g, b)
else
local r, g, b = unpack(E["media"].bordercolor) ------------------这里没看明白
tt:SetBackdropBorderColor(r, g, b)
if E.PixelMode then
r, g, b = 0.3, 0.3, 0.3
end

if isGameTooltip then
GameTooltipStatusBar.backdrop:SetBackdropBorderColor(r, g, b)
GameTooltipStatusBar:ColorBar(r, g, b)
end
end
end

tt.needRefresh = true
end
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-6-9 08:22 AM , Processed in 0.041576 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表