[請益] 問一個觸發的寫法(zMud4.62)

看板mud (網路地下城/文字遊戲)作者 (小夜)時間15年前 (2010/06/03 10:53), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/3 (看更多)
請問一下我想寫一個指令,但遇上的瓶頸,想問問有沒好的解決方式 想寫的指令是:在打怪前會先根據自身的狀況幫自己先加加的指令(我是用別名來作) 譬如說我把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)

06/03 11:22, , 1F
#wait好像有bug,#alert還是啥的好像有用。
06/03 11:22, 1F

06/03 11:55, , 2F
進房間就直接cast 全套會不會比較好?
06/03 11:55, 2F

06/03 11:56, , 3F
還是身上已經有法術的敘述都一樣?
06/03 11:56, 3F

06/03 13:24, , 4F
試著用#alarm 取代 #wait 試看看
06/03 13:24, 4F

06/04 08:38, , 5F
#ts 2 #ti #alias
06/04 08:38, 5F
文章代碼(AID): #1C1naYA- (mud)
文章代碼(AID): #1C1naYA- (mud)