close

在rw裡, 有些加持狀態我們會抓狀態結束時再下一次進入狀態的指令, 例如看到

你脫離「月懸碧空」的加持狀態。

就會再pray一次

pattern:
脫離「月懸碧空」的加持狀態。$
(做法一)command:
pray suzin


但很不幸的, 有些狀態如果你本身還在那個狀態裡, 重下一次會先解除本來的狀態再進入一次該狀態(這是為了讓時間重算)
像這樣


你脫離「月懸碧空」的加持狀態。
你進入「月懸碧空」的加持狀態。

在做法一的觸發裡, 很不幸的這個造成無窮迴圈, 觸發每下一次pray又引發一次觸發, 最後指令數太多(暴走)被系統踢出去
引發這個問題, 可能是自己笨笨的重複下狀態, 也可能有好心人幫你下這個狀態, 所以無法完全避免(治本)
一個簡單的治標方法是, 限定觸發後幾秒內不會再度觸發(以下設定5秒), 這樣子就不會被連續觸發, 最不幸也5秒才觸發一次

(做法二)command:
#t- state_moon_tri
pray suzin
#alarm {+5} {#t+ state_moon_tri}


(做法三)command:
#if (!@pause_state_moon_tri) {
  pause_state_moon_tri = 1
  pray suzin
  #alarm {+5} {pause_state_moon_tri = 0}
  }


做法二要在options頁面把該trigger設id(例子中是state_moon_tri)
做法三要注意第一次跑前要把pause_state_moon_tri設為0, 不然永遠不會觸發

做法二跟三有一個很小可能的風險, 在那5秒內萬一斷線, 可能使變數無法歸零或觸發沒有回復

如果連續訊息來的很快, 在做法三有可能遇到(機率還是很低),
還沒跑到pause_state_moon_tri = 1那一行, 下一句訊息就來了又通過#if的檢查
我把pause_state_moon_tri = 1放在#if後第一句就是希望它早一點跑到
如果一定不能重複觸發,在做法二可以改個加強版
(做法四)command:
#pri {#t- state_moon_tri}
pray suzin
#alarm {+5} {#t+ state_moon_tri}


#pri是說一定要做完這行才能去處理下一句mud來的訊息, 所以連續訊息的問題就不會發生

因為做法二(四)看起來比較簡潔, 而且不用多一個變數, 我比較喜歡做法二(四)

除了月懸碧空這種加持狀態之外
我在戰鬥中補血的觸發也使用了這個技巧
為了不浪費補給品(更重要的是不浪費飽食跟精神)以取得最大的續航力
我用hp指令抓下來的值去計算要吃多少補品或繃帶
如果hp指令在我補完血前連續來二次(例如mob二手各擊中你一次), 就會變補二倍的量
這個地方我也是用本篇的技巧避開

arrow
arrow
    全站熱搜

    suzin 發表在 痞客邦 留言(1) 人氣()