作者k0286 (k0)
看板WOW
標題[討論] 使用技能喊話類型巨集
時間Mon Jul 27 11:59:01 2009
因為板上常用人問這方面的問題,所以把這篇好文分享給大家
作者是NGA的Macro區神人之一,axb
本人只略做整理和簡化
---------------以下正文---------------------
看到不少人在求喊話巨集,總結了一下~~基本是自己寫的或者修改的~
有更好用的巨集的話歡迎分享。 。
簡單版
最樸素的技能說話宏
/cast 技能名
/y 我對%t使用了XXX
優點:簡單
缺點:缺點太多說不過來
樸素改良版
/cast 技能名
/stopmacro [btn:2]
/y 我對%t使用了XXX
優點:左鍵點使用技能+喊話,右鍵點使用技能不喊話
缺點:缺點太多說不過來
中級版
X秒內只說一次
/腳本 local t=GetTime()macroT=macroT or 0;if t-macroT>
3 then SendChatMessage("
施放技能","SAY")macroT=t;end
/cast 技能名
注:巨集中的
3是間隔時間
優點:不管怎麼按每X秒內只會說一次,不會洗頻
缺點:無法判斷法術是否成功施放,同時有兩個公共變量有可能導致插件出錯(基本不會
)
人物在施法或在gcd中不會洗頻by Xstubborn
/腳本 if not UnitCastingInfo("player")and 0==GetSpellCooldown("
尋找礦物")then
SendChatMessage("施放技能","SAY")end
/cast 技能名
注:
尋找礦物改成任意有gcd的技能;無gcd的技能不能用這個巨集
優點:基本不會洗頻
缺點:法術施放不出來的時候(比如被暈時)還是會洗頻,
上一個巨集的無gcd技能版
/腳本 if not UnitCastingInfo("player")and 0==GetSpellCooldown("聖盾術")then
SendChatMessage("天殺的,快治療我,我快嗝屁了。","yell")end
/cast 聖盾術
優點:基本不會洗頻
缺點:法術施放不出來的時候(比如空藍時)還是會洗頻
使用飾品版
/script if not UnitCastingInfo("player")and
0==GetInventoryItemCooldown("player",13)then SendChatMessage("使用飾品
","SAY")end
/use 13
優點:基本不會洗頻
缺點:飾品無法使用時候還是會洗頻
前幾個巨集的改進版
/腳本 macroT,macrot=macroT or 0,GetTime()if not UnitCastingInfo("player")and
0==GetSpellCooldown("聖盾術")and macrot-macroT>3 then SendChatMessage("施放技
能","SAY" )macroT=macrot;end
/cast 聖盾術
優點:施法失敗在X秒內只會說一次,不會洗頻
缺點:施放失敗還是會說話
高級版
施放成功後喊話(帶目標)
12.10 3.0更新
/腳本 U="UNIT_SPELLCAST_S"F=F or
CreateFrame("frame")R=F.RegisterEvent;R(F,U.."ENT")R(F,U.."UCCEEDED")F:SetScript("
OnEvent",function(_,_,a,b,_,c)if a=="player"and b=="變形術"then
n=type(c)=="string"and c or SendChatMessage(n .."已被我變羊")end end)
/施放 變形術
優點:施法成功後才會說話,失敗不喊話,不會洗頻
缺點:對不同目標技能用的太快有可能出現目標錯誤;可能和不知名插件衝突造成不知名
錯誤~
施放前喊話(帶目標)
/腳本 F=F or
CreateFrame("frame");F:RegisterEvent("UNIT_SPELLCAST_SENT")F:SetScript("OnEvent",function()if
arg1=="player" and arg2=="變形術" then SendChatMessage( "對"..arg4.."使用變羊
術")F:SetScript("OnEvent",nil)end end)
/施放 變形術
注:想要減少字符數的話可以把F:SetScript("OnEvent",nil)去掉
優點:開始施法時喊話,基本不會洗頻
缺點:字數限制相當死;當目標不在視野中等情況施法失敗時還是會喊話;可能和不知名
插件衝突造成不知名錯誤~
施放成功後喊話(無目標)by恆砂
/腳本 F=F or
CreateFrame("frame")F:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")F:SetScript("OnEvent",function()if
arg1=="player"and arg2=="聖盾術"then SendChatMessage( "使用聖盾術
")F:SetScript("OnEvent",nil)end;end)
/施放 聖盾術
稍微改了一下,用巨集之後直接用技能不會喊話了。
優點:施法成功後才會說話,不會洗頻
缺點:可能和不知名插件衝突造成不知名錯誤~
額外說明
修改喊話類型
SendChatMessage的格式為
SendChatMessage("內容","方式"(,"語言","附加"))
方式可選項為emote(表情),guild(公會),party(小隊),raid(團隊),yell(大喊),say(說話
,默認),whisper(密語)
比如在小隊裡喊話是
SendChatMessage("內容","party")
隨機說話內容
1.在/腳本後面添加local n={"要說的話1","要說的話2","要說的話3"}
2.SendChatMessage()中說話的內容改為n[random(#n)](原來的引號要去掉)
如
中級加強施法版(上一個巨集的改進版,施法失敗在X秒內只會說一次,不會洗頻)這個加
上隨機說話就是:
/腳本 local n={"要說的話1","要說的話2","要說的話3"}macroT,macrot=macroT or
0,GetTime()if not UnitCastingInfo("player")and 0== GetSpellCooldown("聖盾術
")and macrot-macroT>3 then
SendChatMessage(n[random(#n)],"SAY")macroT=macrot;end
/cast 技能名
隨機是否說話
1.在SendChatMessage前面加上if 2>random(3)then
2.在end後面再補一個end
3. 2>random(3)代表有1/3的機率說話,3>random(5)代表2/5機率說話,類推。
比如
中級版(適合有cd切無gcd的技能,不過在施法失敗的情況下還是會刷屏)改成有機率喊
話就是:(注意空格!)
/script if not UnitCastingInfo("player")and 0==GetSpellCooldown("聖盾術")then
if 2>random(3)then SendChatMessage("天殺的,快治療我,我快嗝P了。",
"yell")end end
/cast 聖盾術
友情提示:高級版的幾個巨集除了喊話內容和技能名稱之外其他不建議新手修改,否則可
能出現各種不知名錯誤。
附註:/run=/script=/腳本=/跑
--
Smallcoll The POWA Mage's penknife
+43 stamina
+51 intellect
+550 spell power
+52 crit rating
" Smell Cool "
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.224.74
推 Golu:嗚喔..... 07/27 12:00
推 xrdx:先推再慢慢研究...好多 07/27 12:05
推 meowyih:辛苦了 (小聲: 都上色了, 順便 "宏" 改成 "巨集" 吧? :)) 07/27 12:07
推 lpllpllpl:嗚喔 好文章 不m嗎? 07/27 12:07
推 jackalin2002:這篇一定要M阿!! 專業好文 先推 07/27 12:17
推 nin64:推 07/27 12:32
推 jackalin2002: 07/27 12:35
推 jackalin2002: 07/27 12:39
推 BlueJet0501:超棒 小版主快收! 07/27 12:52
推 jackalin2002:非常感謝原PO熱心教導!! 07/27 13:12
推 jackalin2002:再推~~ 07/27 13:31
推 silvercomet:非常感謝分享 受益良多啊!! 07/27 13:33
推 hshne:感謝分享 <(_ _)> 07/27 13:50
推 spa910542:嗚喔好厲害 07/27 14:29
→ howar31:部份技能喊話可以用CastYeller2幫喊 07/27 14:51
推 hn85017889:看完之後我還是繼續用我的案例一好了= = 07/27 15:47
推 koonyu:有問題耶 如果去掉F:SetScript("OnEvent",nil) 07/27 17:40
→ koonyu:喊話會多一行 且 第二次喊話的目標變成怪怪的三個數字 07/27 17:40
推 jogsweet:好文推推 07/27 17:48
→ Agamemnonk:其實不要一直按就不會洗頻了 ..... 07/28 01:25
推 Darrentender:推...還有去憤怒要常回來看我...Q_Q 07/28 02:15