作者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)
推 stimim:#wait好像有bug,#alert還是啥的好像有用。 06/03 11:22
→ HateAlways:進房間就直接cast 全套會不會比較好? 06/03 11:55
→ HateAlways:還是身上已經有法術的敘述都一樣? 06/03 11:56
推 blackboy:試著用#alarm 取代 #wait 試看看 06/03 13:24
→ robrob99:#ts 2 #ti #alias 06/04 08:38