作者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
1F:→ laechan :秒数不用隔那麽长, 3 秒就够保险了(一般是 2 秒) 05/20 09:15
2F:→ laechan :2秒最短是因为心跳秒数就是2,timer是+2+2在跳的 05/20 09:15
3F:→ laechan :不能在战斗中放的应该放在 else ... end 那一区 05/20 09:19