作者hmml (hmml)
看板mud_sanc
標題[心得] Zmud 將各class中相同字串的觸發整合為一個
時間Sat Oct 2 11:31:57 2010
減少triggers數量的方式,增加修減也不難。適用戰鬥開始與戰鬥結束兩條觸發,
因為指令並不複雜。
Pattern:□ □ □ 戰 鬥 [開] 始 □ □
Commands:
001 classlist="blood|blood2|8kwa|king|hole"
002 #var classopen ""
003
#forall @classlist {#var classopen %additem(%trigger(%i),@classopen)}
004 #case
%ismember(1,@classopen) {hi} {hello} {glare} {runaway} {dunno}
總共四行:
001:建立一個名為classlist的列表,把要用到的class名字全塞進去,用|隔開。
002:建立或清空一個名為classopen的Variable。
003:
先從綠色部份說明:
#forall @classlist {%i}:循序執行@classlist的內容,如照左方所寫執行
,則會在視窗循序輸出:
blood
blood2
8kwa
king
hole
黃色部份:
輸出class的開關狀態,0為關,1為開。套入綠色執行式成
#forall @classlist {#trigger(%i)}時,則會視窗循序輸出:
0
1(假設目前blood2正在開啟)
0
0
0
藍色部份:
#var classopen %additem(%trigger(%i),@classopen)
%additem將%trigger(%i)的結果增加到@classopen的內容後方,但不會修改內容,
所以要加上#var classopen來真正修改@classopen,配合#forall部份,就會執行
以下指令:
#var classopen %additem(%trigger(blood),@classopen) =0
#var classopen %additem(%trigger(blood2),@classopen) =1
#var classopen %additem(%trigger(8kwa),@classopen) =0
#var classopen %additem(%trigger(king),@classopen) =0
#var classopen %additem(%trigger(hole),@classopen) =0
而classopen裡的列表會有如下的變化:
0
0|1
0|1|0
0|1|0|0
0|1|0|0|0 ←本行最終執行結果。
004:
%ismember(1,@classopen):輸出資料"1"在classopen所在位置,結果是2(第二筆)
將2帶入#case中:
#case
2 {hi} {hello} {glare} {runaway} {dunno}
依據2這個結果,#case 會選出右方第二個指令,即{hello},輸出至視窗:
hello
=============================================================================
Pattern:□ □ □ 戰 鬥 [開] 始 □ □
Commands:
classlist="
blood|blood2|8kwa|king|hole"
#var
classopen ""
#forall @
classlist {#var
classopen %additem(%trigger(%i),@
classopen)}
#case %ismember(1,@
classopen)
{hi} {hello} {glare} {runaway} {dunno}
藍色和
紫色部份可以依自己喜好更名,但同色要相同名稱。
綠色部份依使用需求自行增修減刪,但classlist和#case的內容要相對應。
註:常常會出現所有的class都沒開的情況(跑區域),如果不想讓#case亂執行項目,
請在#case最後方加上{#noop},或填入想執行的命令,當classlist裡的class列表
都沒開啟時,#case會得到0的要求,依zmud設計會執行#case最尾端的項目。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.176.62
→ nahceal :有神快拜 10/02 13:00
推 tawi :敗神 10/02 14:43
推 tawi :這個Trigger幾版的能用?? 10/02 14:58
推 pkhinet :推推推!! 10/02 17:02
→ laechan :將這才能用來寫任務可能會... 10/04 15:07
推 justinj :....我只能說7.21可以存很多的觸發..amem 10/04 17:26
→ justinj :一般來說我只會寫路徑...跑錯了或停了就重下一組開始 10/04 17:27