老胡 发表于 2016-2-13 21:02:55

【教程】 【GC八段】 【自己写插件】在界面上显示自己想要的信息(血量、荣誉等)

本帖最后由 托托 于 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();


有几个事件监听是没用的,可以去掉,但也不影响使用,我这里就不改了,留个各位自己修改。




羊~ 发表于 2016-2-13 23:53:55

胡大威武,想了多年的东西,终于发现了,再也不用看万恶的左上角了·
另外请教胡大,请问 血量百分比位置 怎么调节,还有怎么不用 百分比,直接做成血量类型的呢,一个纯血条,类似于魔兽自带的看队友的血条那种,但是魔兽自带是默认显示所有人,而不是单独自己~~请教·

青山 发表于 2016-2-14 19:16:44

你已经封神了

墨水 发表于 2016-2-14 20:42:40

虽然看不懂,但还是向大神致敬!
看不懂啊:'(

眼睛里的湖水 发表于 2016-2-15 00:13:29

这东西略吊,胡大大给介绍下怎么用呀

深秋的黎明 发表于 2016-2-15 00:31:33

             胡总威武{:5_246:}

醉骚 发表于 2016-2-15 00:42:55

赞                        

l0stazure 发表于 2016-2-15 11:17:46

这个插件 直接就放 记事本里然后改成LUA 文件 放 addons里就行了?

l0stazure 发表于 2016-2-17 09:39:03

大神麻烦写个toc文件好么,另外问下这个插件版本号自己写的话什么游戏版本都支持么?

牛盾 发表于 2016-2-18 22:10:13

老胡,你号被封了几个?我两个大号都被封半年了~!
页: [1] 2 3
查看完整版本: 【教程】 【GC八段】 【自己写插件】在界面上显示自己想要的信息(血量、荣誉等)