作者gingeryou (廢油)
看板WOW
標題Re: [問題] 問一個巨集函示的用法GetSpellCooldown
時間Tue May 23 09:13:20 2006
(恕刪)
給原po,你完全誤會 SpellID 和 booktype 要填的東西了,SpellID 是技能在法術書裡
的編號,編號的數法從上到下從左到右,先數完基礎那一頁再數 XX 那一頁。抱歉,我
沒玩盜賊,不知道盜賊的基礎下面那一頁是刺殺、戰鬥還是敏銳,如果是刺殺就先數刺
殺,如果是戰鬥就先數戰鬥,如果是敏銳就先數敏銳。至於 booktype ,如果是玩家的
法術書,以 BOOKTYPE_SPELL 表示;如果是寵物的法術書,以 BOOKTYPE_PET 表示。
所以,原po要判斷技能冷血是不是在 cd 中,應該寫
/script if GetSpellCooldown(
#1,BOOKTYPE_SPELL)
==0 then ....
#1 就填冷血的技能編號。請注意,每次學新技能或洗天賦可能會更動冷血在法術書的位
置,最好檢查一下。
備註:這個遊戲的巨集在寫「等於」的判斷式時,要寫兩個等號(
==)。
關於這個函數回傳的方式,下面這兩種系統都看得懂
start, duration = GetSpellCooldown(spellID, "bookType")
start = GetSpellCooldown(spellID, "bookType")
只寫 GetSpellCooldown(spellID, "bookType") ,它會傳回 start 的值。
其實我到現在還不是很清楚 start 表示的東西,只知道在冷卻時間結束時 start=0 。
以下我家小戰把嗜血、英勇打擊、斬殺以 GetSpellCooldown 函數串連的巨集,希望這
個例子對原po有幫助。
------程式碼----------------------------------------------------------------
/script c=CastSpellByName if GetSpellCooldown(#2,BOOKTYPE_SPELL)==0 and
UnitMana("player")>=30 then c("嗜血") elseif UnitHealth("target")<=20 then
c("斬殺") else c("英勇打擊") end
#2表示嗜血在法術書的編號。
--
※ 編輯: gingeryou 來自: 163.29.253.237 (05/23 09:14)
推 A1pha:喔喔!! 謝謝提醒XD 我常常會漏掉 == XD 05/23 10:30
推 A1pha:還學到 c=CastSpellByName 這樣的用法XD 05/23 10:38
→ A1pha:獲益良多 謝謝啦XD 05/23 10:39