作者tsevoli (小夜)
看板mud
标题[请益] 问一个触发的写法(zMud4.62)
时间Thu Jun 3 10:53:19 2010
请问一下我想写一个指令,但遇上的瓶颈,想问问有没好的解决方式
想写的指令是:在打怪前会先根据自身的状况帮自己先加加的指令(我是用别名来作)
譬如说我把kill设成别名了
一下kill就会判断身上的加加 然後决定要不要先cast pray还是c bless,还是c armor
如果最後都有了就kill mob,缺那一种就先加那种後才k
我原先的写法是这样的
先将pray bless armor 都已经设好变数,
pray=1 就是身上没pray
pray=2 就是身上还有pray 以此类推bless armor
本来是用#if{#if{#if {}}}去写,但只套了两层的#if就很复杂了.後头还其他加加..
如下...只是光pray跟bless就很冗长,要再加armor下去..很难加.土法链钢式笨方法
#if @pray=1 {#if @bless=1 {c bless;#wa 2000;c pray;#wa 2000;k @monser} {c pray;#wa 2000;k @monster}} {#if @bless=1 {c bless;#wa 2000;k @monster} {k @monster}}
想问问有没有大能提供较佳的写法
第二个问题
我换了一个写法,也是行不通
#if @pray=1 {c pray;#wa 2000};
#if @bless=1 {c bless;#wa 2000};
#if @armor=1 {c armor;#wa 2000};
k @monster
看起来简洁明确多了,逻辑上也通,可是!!
实际上跑起来,c pray後并不会等2秒才c bless
一下指令後,3个#if内的指令就同时一起下了
这个问题常常遇到...#if{}内的#wa,不会发挥效果(除非这个#if摆最後,後面没指令了)
#if @pray=1 {c pray};#wa 2000;
#if @bless=1 {c bless};#wa 2000
#if @armor=1 {c armor};#wa 2000;
k @monster
这样也不行 ,变成每打一只mob.不管有没有cast都要先等2+2+2秒....= =
想问问有没办法让一连续执行的指令中,插入一个判断句(譬如说if或其他的)
然後让判断句中的#wa都作动完,才跑後面的指令呢??
举例:
原本的动作是 1;2;3;4;5;6
现在想在2跟3之间加作一个判断7要不要作的指令
但7的动作会延迟2秒,所以如果作了7就要等2秒才能作後面的3;4;5;6
若写 1;2;#if xxx {7;#wa 2000};4;5;6 <--这样不行..跑起来还是1;2;7;3;4;5;6的效果
以上...请大能帮忙一下,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.218.222.246
※ 编辑: tsevoli 来自: 124.218.222.246 (06/03 11:06)
1F:推 stimim:#wait好像有bug,#alert还是啥的好像有用。 06/03 11:22
2F:→ HateAlways:进房间就直接cast 全套会不会比较好? 06/03 11:55
3F:→ HateAlways:还是身上已经有法术的叙述都一样? 06/03 11:56
4F:推 blackboy:试着用#alarm 取代 #wait 试看看 06/03 13:24
5F:→ robrob99:#ts 2 #ti #alias 06/04 08:38