本帖最后由 托托 于 2016-4-18 20:31 编辑
这里举两个例子,一是在头上显示血量,二是显示荣誉、征服、勇气点数。
一、头上显示血量
80%以上绿色,50-80%以上黄色,50%以下变成红色,这样你就不用总盯着左上方了。
- function bloodShow()
- local frame = CreateFrame("Frame","bloodShow", WorldFrame)
- frame:SetPoint("CENTER")
- frame:SetWidth(80)
- frame:SetHeight(80)
- frame:SetScale(1.0) -- this does not effect the text size.
- local FrameText = frame:CreateFontString(nil,"ARTWORK");
- FrameText:SetFontObject(GameFontNormal);
- FrameText:SetFont(STANDARD_TEXT_FONT, 20,"outline")
- FrameText:SetTextColor(1,0,0,1) -- change this to change color
- FrameText:SetPoint("CENTER",UIParent,"CENTER",0,50)
- frame:SetScript("OnEvent", function(self, event, arg1,arg2, ...)
- if event == "UNIT_HEALTH" then
- FrameText:SetText(format("%d",UnitHealth("player")/UnitHealthMax("player")*100).."%")
- end
- local hp = UnitHealth("player") / UnitHealthMax("player")
- if hp>0.80 then
- FrameText:SetTextColor(0,1,0,1)
- elseif hp>0.50 then
- FrameText:SetTextColor(0,1,1,1)
- else
- FrameText:SetTextColor(1,0,0,1)
- end
- end)
- frame:Show()
- frame:RegisterEvent("UNIT_HEALTH")
- frame:RegisterEvent("PLAYER_ENTERING_WORLD")
- end
- bloodShow()
复制代码
二、大字体显示荣誉、征服、勇气点数:
尼玛字体好吓人,为啥有这种毫无画面感的需求呢?因为偶尔咱们会多开用hb之类的软件挂机刷分,游戏窗口一般会调的很小(比如我这里是400*300),所以如果要看自己刷到多少了就需要一个一个窗口最大化来看,很麻烦,所以把点数信息直接显示出来,一目了然。——ps一下,你甚至可以加一个刷满就唱歌提醒的功能。
- function honorShow()
- local frame = CreateFrame("Frame","honorShow", WorldFrame)
- frame:SetPoint("CENTER")
- frame:SetWidth(200)
- frame:SetHeight(200)
- frame:SetScale(1.0) -- this does not effect the text size.
- local FrameText = frame:CreateFontString(nil,"ARTWORK");
- FrameText:SetFontObject(GameFontNormal);
- FrameText:SetFont(STANDARD_TEXT_FONT, 300,"outline")
- FrameText:SetTextColor(1,0,0,1) -- change this to change color
- FrameText:SetPoint("CENTER",UIParent,"CENTER",10,150)--margin
- frame:SetScript("OnEvent", function(self, event, arg1,arg2, ...)
- local rongyu = select(1,GetCurrencyInfo(392))..": "..select(2,GetCurrencyInfo(392));
- local zhengfu = select(1,GetCurrencyInfo(390))..": "..select(2,GetCurrencyInfo(390));
- local yongqi = select(1,GetCurrencyInfo(396))..": "..select(2,GetCurrencyInfo(396));
- FrameText:SetText(rongyu.."\n"..zhengfu.."\n"..yongqi)
- end)
- frame:Show()
- frame:RegisterEvent("PLAYER_LOGIN")
- frame:RegisterEvent("PLAYER_ENTERING_WORLD")
- frame:RegisterEvent("UPDATE_BATTLEFIELD_STATUS")
- frame:RegisterEvent("UNIT_HEALTH")
- frame:RegisterEvent("LFG_UPDATE")
- frame:RegisterEvent("LFG_PROPOSAL_SHOW")
- frame:RegisterEvent("CHAT_MSG_CURRENCY")
- end
- honorShow();
复制代码
有几个事件监听是没用的,可以去掉,但也不影响使用,我这里就不改了,留个各位自己修改。
|