作者ak147 (挨冬铠儿)
看板WOW
标题[创作] UI简易教学之二
时间Tue Oct 18 18:57:37 2011
在上篇以及之前的范例中
大家可以了解到UI的本体其实都是frame
有了本体才能以SetScript来让他主动去执行我们所写的script
*注1
(或以HookScript来挂上script 接在SetScript的东西後执行)
SetScript可以让frame在注册的事件触发的时後自动去执行我们设定的程式
但要是事件不只一样呢?
以下举CombatEvents中的一小段作为范例 (由於字数限制有简化过)
STEP I&II
请延续上篇 以下从
STEP III 开始玩
STEP III
打开
core.lua 贴上以下东西 (--表示是注释,可以不用贴进去)
local f = CreateFrame("Frame")
--建立一个Frame用来监听事件
f:RegisterEvent("PLAYER_REGEN_ENABLED")
--注册事件, 玩家回血时触发
f:RegisterEvent("PLAYER_REGEN_DISABLED")
--注册事件, 玩家不回血时触发
f:SetScript("OnEvent",
--在事件触发时执行以下script
function(self,
event)
--注2
if
event == "PLAYER_REGEN_DISABLED" then
--停止自动回血也就是进入战斗
print("进入战斗")
--在对话框显示 进入战斗
elseif
event =="PLAYER_REGEN_ENABLED" then
--开始自动回血也就是离开战斗
print("离开战斗")
--在对话框显示 离开战斗
end
--结束if
end
--结束function
)
--SetScript最後的)
存档并关掉
注1:
没有本体也可以设定slash command去手动执行script (范例 /红字)
注2
这边引入了两个变数并命名为self及event
self代表的是f这个frame本身 (因为我们SetScript是set在f上嘛)
event则是OnEvent时的事件名称
所以我们在这边引入这个变数用以分辨不同事件
但要是事件只有一项 或是不同事件触发时都做一样的事情 那当然不用这样做罗
因为都是做同样的事~ 所以不需要去区分 (范例 /memory)
但还有一种情况是事件发生时会有很多变数可以用
最着名的就是COMBAT_LOG_EVENT_UNFILTERED这个事件了 也就是俗称的CLEU
由於人生就是不断的战斗 所以他最实用
这也导致只要bz一偷改这个东西的变数时 很多UI就会开始哀嚎
这边就先不提 有兴趣可以 google 或是打开之前发的CombatEvents的lua档来参考
↓
http://www.google.com/search?q=COMBAT_LOG_EVENT_UNFILTERED
EXERCISE
浏览所有的Events
http://www.wowwiki.com/Events_(API)
PREP
SetScript除了OnEvent之外还能干嘛
http://www.wowwiki.com/Widget_handlers
多这两项是因为上回被嘘内容太浅 阿干我也是初学者啊 这我自学心得呐
--
(RC))
RL: 战士, 你减伤@#$%?(模糊模糊)
[R]
防战: 啥?听不清楚? 回音好大声
[R]
术士: 你减伤几啪
[R]
法师: 问你减伤几啪
[R]
戒骑: 你减伤激巴
[R]
防战: 你才积芭
~所以最後减伤到底多少的某日Raiding~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
1F:推 HTRex:... 10/18 18:59
2F:→ ak147:干麻将...换页对齐好难 10/18 19:01
3F:推 VendeRox:看到有关程式语言的东西就湿了....... 10/18 19:02
4F:→ ak147:其实就长一点的巨集... 10/18 19:05
5F:推 look32019:... 10/18 19:17
6F:→ alyh: 干麻将...换页对齐好难 XDDDDDD 10/18 19:18
7F:推 look32019:你为什麽要干麻将.... 10/18 19:22
好硬
8F:推 ayaka0527:大家好 我是罗志祥 10/18 19:22
楼上正妹小香
9F:推 stanwhale:喔喔 SetScript嘛 我小时候常常拿来玩呢 10/18 20:34
10F:→ ak147:那第三篇OnUpdate就交给stanwhale了(逃跑 10/18 20:41
※ 编辑: ak147 来自: 114.37.75.204 (10/18 21:11)
11F:推 jefflin921:不去忙开潮店,还在搞ui阿 10/18 21:47
12F:推 look32019:潮店!!! 10/18 21:47
13F:→ ak147:what is the 潮店? 10/18 21:48
14F:→ ak147:卖雨衣的? 10/18 21:49
15F:→ look32019:卖很潮的麻将吗? 10/18 21:54
16F:推 jefflin921:湿透了... 10/18 21:59
17F:→ ak147:感慨到眼框都湿了 10/18 21:59
18F:推 jefflin921:到时记得算我5折! 10/18 22:10
19F:→ ak147:多讲的..你又不会出现... 10/18 22:28
20F:推 o035016:难得好文 10/19 13:08