作者hmml (hmml)
看板mud_sanc
標題Re: [問題] 主牧的技能觸發寫法
時間Mon May 20 00:06:07 2013
<triggers>
<trigger
enabled="y"
group=""
<triggers>
<trigger
enabled="y"
group=""
match="^(☆☆☆|○○○).*(☆☆☆|○○○)$"
name="Control_Fight"
regexp="y"
send_to="12"
sequence="100"
>
<send>
if '%1' == '☆☆☆' then
Execute ([[cast
'holy body
']]) --一觸發就執行
DoAfterSpecial (
5,
[[cast pray
]],10) --五秒後執行
DoAfterSpecial (
10,
[[cast 'holy shield'
]],10) --十秒後執行
DoAfterSpecial (
15,
[[cast encourage
]],10) --十五秒後執行
DoAfterSpecial (
20,
[[cast 'holy power'
]],10) --二十秒後執行
else
Execute ([[cast
'holy body
']]) --同上類推
DoAfterSpecial (5,[[cast pray]],10)
DoAfterSpecial (10,[[cast 'holy shield']],10)
DoAfterSpecial (15,[[cast encourage]],10)
DoAfterSpecial (20,[[cast 'holy power']],10)
end
</send>
</trigger>
</triggers>
if 架構應該不用再檢討了吧!所以就講MushClient裡的函數:
先說這一個:
Execute ([[cast
'holy body
']])
Execute() 相當於zMUD的#exec,它會分析裡面的內容是使用者設的別名,
還是要直接送給主機的指令。如果有照
Hamano的教學去設置Mushclient
,那你的分行符號應該是分號"
;";而井字號"
#"就是用來宣告後面的字
串是函數。這兩點關係到 Execute() 這函數好不好用。建議再檢查一
下你的MushClient設置是否沒問題。
Execute ([["cast holy body","cast pray","cast holy shield","cast
encourage","cast pure power"]])
所以你這段,假設cast無延遲,真得能瞬間五招,格式應該改為:
Execute ([["cast holy body";"cast pray";"cast holy shield";"cast
encourage";"cast pure power"]])
或直接換行,但注意[[]]內不要在行首隨意空格做排版,Execture會把內容
忠實地送出去,所以連空格把指令送出去的話,聖殿可不認得:
Execute ([["cast holy body"
"cast pray"
"cast holy shield"
"cast encourage"
"cast pure power"]])
另外你的引號""標的位置,不符合聖殿放法術的格式,所以應該改為:
Execute ([[cast 'holy body';cast pray;cast 'holy shield';cast
encourage;cast 'pure power']])
或:
Execute ([[cast 'holy body'
cast pray
cast 'holy shield'
cast encourage
cast 'pure power']])
再來:
DoAfterSpecial (
5,
[[cast pray
]],
10)
這個是暫時性的延遲函數指令,相當於zMUD的#alarm。
綠色字體是秒數,設定從0.1秒到24小時
減1秒。
黃色括號用來寫入指令,格式和Execute()一樣。
粉色字則是用來表示要如何處理內容,10是採用 Execute() 的處理方式。
這裡有一點提醒你:看一下上面的黃色行:
cast 'pure power'
這個技能在戰鬥中放不出來的。
如果你要一行輪流放,你可以試試speedwalk:
DoAfterSpeedWalk (long Seconds, BSTR SendText)
但是我沒用過這個,所以不清楚能不能達成你的需求。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.37.76
→ laechan :秒數不用隔那麼長, 3 秒就夠保險了(一般是 2 秒) 05/20 09:15
→ laechan :2秒最短是因為心跳秒數就是2,timer是+2+2在跳的 05/20 09:15
→ laechan :不能在戰鬥中放的應該放在 else ... end 那一區 05/20 09:19