精華區beta WOW 關於我們 聯絡資訊
最近看到巨集的討論比較熱烈了一點點,真是高興XD 高手變多的話就有更多教學可以看了...這是遜腳的悲歌 以下是前一陣子寫判斷型巨集時候的心得,看到前幾篇貓德練功巨集而興起的XD: 主題內容: /script z=0 i=1 u=UnitDebuff t="target" c=CastSpellByName while u(t,i) do if string.find(u(t,i),"AbominationExplosion")~=nil then z=1 end i=i+1 end if z==0 then c("腐蝕術") else c("痛苦詛咒") end 黃色部分是可替換的,藍色是這個巨集的骨幹結構 語法解釋: z=0 i=1 就是先定義變數,完全是自己設的,就是在一開始沒有任何動作的 時候,設一個 z=0,i=1 然後定義u=UnitDebuff t="target" c=CastSpellByName 簡化字串,節省字元數 接下來是while u(t,i) do (XXXXXXX...) 先說一下 u(t,i) 這是被我們簡化過的,原來是UnitDebuff("target",i)。 UnitDebuff(unitID,debuffIndex,showDispellable)是傳回某單位(unit)的debuff 資訊的函式,後面的括弧中是要填入的參數,作用是指引函式的目標。 其中unitID是妳的對象是誰?可以是player, target 等等; debuffIndex 是妳想知道的是第幾個debuff,一個單位最多可以同時有16個debuff,在這 裡我們設的是變數 i(之前有設i=1)showDispellable 是一個選擇性的參數,非必要。在此也沒有使用,就不提了。 先前提過這是傳回資訊的函式,傳回的格式是: debuffTexture, debuffApplications, debuffApplications debuffTexture:字串-此debuff的路徑和檔名(identifier),如果沒有debuff則傳回 nil; debuffApplications:數字-此debuff疊加的次數(本例沒用到) debuffType:字串-此減益法術(debuff)的類型。"Magic", "Curse", "Poison", "Disease" 如果是無法解除的 debuff 則傳回 nil(本例沒用到) while u(t,i) do XXXXXX,這裡的XXXXX是 "if XXX then XXX end" ,而 if 的內容是 string.find(u(t,i),"AbominationExplosion")~=nil 這表示查看u(t,i)傳回的字串中,有沒有AbominationExplosion(腐蝕術的debuff真名,不 等於英文技能名)這段,假使查看的結果"不等於" nil then z=1 (如果這樣,定義z=1) end 但是我們注意到,我們之前定義 i=1 這樣只有檢查到第一格 debuff,其他格也要檢查 ,所以再加一行 i=i+1 end 給他迴圈檢查,不用設什麼時候停止是因為內部定義 debuffIndex 最多到16,達到16時會自動停止;就這樣讓他全部跑完一遍。 接下來是 if z==0 then c("腐蝕術") else c("痛苦詛咒") end 剛剛說道,如果檢查結果不是 nil--就是如果"腐蝕術"這個debuff在的話--z=1,如果 是 nil (沒有中"腐蝕術")則 z 不變,還是原來的 0 。 這邊就是說,如果z是0的話,放"腐蝕術",不是0的話,放"痛苦詛咒"。c 是之前定義過的 CastSpellByName 函式。要注意的是,講到判斷"值"的時候,要用兩個等於 == , 一個等於 = 是定義的時候用的。 以上,即完成"沒腐蝕術先放腐蝕術,有的話就放痛苦詛咒"的巨集,只要狂按這顆鍵, 就可以自動判斷了。 -- 下篇:查不到debuff真名的話怎麼辦? 如果有人想看的話 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.63.88
yomi:想看 10/14 00:21
chongye:拜一下 看到巨集一定要推 10/14 00:20
SkyChaos:太棒的文了 非常期待 :D 10/14 00:22
guithawk:php教學嗎 XD 10/14 00:22
snowycat:推!! 雖然我看到數字還是很頭痛orz 10/14 00:24
greydust:有看有推 10/14 00:25
klr:讚!! 想看下一篇 10/14 00:29
robert1260:讚 10/14 00:31
newsnew:一定要推啊! :D 10/14 00:44
adolfeena:用力推,這篇超有用的:D 10/14 01:09
battlee:好文當然要看阿 大推 10/14 01:11
timeboy:好文 10/14 01:13
northerngaia:為什麼...玩個遊戲還是要看程式語言啊Q_Q 10/14 01:21
DudeFromMars:徹底研究一個遊戲 把自己變的更強 也是一種樂趣啊 10/14 01:27
hsm0618:太專業了 頭會痛 10/14 01:31
screwdriver:好文...推我也想找真名 10/14 01:37
ssbird:推 淺顯易懂的教學文 10/14 01:56
BK17:好文偷偷推你一下XD 10/14 01:57
anubisbrand:光是看到巨集教學就該推了 10/14 03:03
jonahlin:推 推 推 10/14 05:19
manpower0166:頭好痛 我摳巨集就好 推 10/14 08:42
eury:未看先推 10/14 09:24
raylun:good 10/14 10:06
cigaretteass:直接按END了原諒我阿阿阿~~~不過這篇該M的 10/14 10:34
robkoby:推這根魚竿!! 10/14 16:26
markmonmark:good! 10/14 19:29
siqiyin:good 10/15 03:51