作者o035016 (AIR劇本檔提供中 請Q我)
看板WOW
標題[心得] 判斷型巨集寫法
時間Sat Oct 14 00:18:56 2006
最近看到巨集的討論比較熱烈了一點點,真是高興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