觸發(fā)結(jié)構(gòu)——5.1基礎(chǔ)觸發(fā)鏈:?jiǎn)捂湣⒎种Ш秃铣?/h1>
備注:本章內(nèi)容應(yīng)該會(huì)隨作者水平的提高而隨時(shí)更新。
?
單個(gè)觸發(fā)能做到的事情是有限的,在戰(zhàn)役觸發(fā)中通常需要“觸發(fā)套觸發(fā)”,即某些觸發(fā)會(huì)去允許其它觸發(fā),而某些觸發(fā)會(huì)去禁止其它觸發(fā)。一系列觸發(fā),按照明確的順序A允許B,B允許C,C允許其它觸發(fā)等等,這種結(jié)構(gòu)我稱為觸發(fā)鏈。數(shù)條觸發(fā)鏈中,某條觸發(fā)鏈中的某個(gè)觸發(fā)允許或禁止了其余觸發(fā)鏈中的某些觸發(fā),這樣形成了觸發(fā)鏈之間的聯(lián)系,會(huì)構(gòu)成一個(gè)觸發(fā)網(wǎng)絡(luò),戰(zhàn)役觸發(fā)通??梢砸暈樗杏|發(fā)構(gòu)成的一個(gè)觸發(fā)網(wǎng)絡(luò)。
?
單鏈?zhǔn)亲罨A(chǔ)的一種觸發(fā)鏈。它的基本結(jié)構(gòu)前文已經(jīng)提過,即:觸發(fā)A允許觸發(fā)B,觸發(fā)B允許觸發(fā)C,觸發(fā)C允許……直到最后一個(gè)觸發(fā)Z不再允許任何觸發(fā),標(biāo)志著這一條觸發(fā)鏈的結(jié)束。每個(gè)觸發(fā)都會(huì)有觸發(fā)條件,以及可以加多個(gè)觸發(fā)結(jié)果。單鏈通常用于按照順序的一系列觸發(fā)結(jié)果的觸發(fā)。
舉例:開局0秒后禁止玩家操作(觸發(fā)A),然后延時(shí)30秒允許玩家操作(觸發(fā)B),然后延時(shí)20秒援軍a入場(chǎng)(觸發(fā)C),然后延時(shí)60秒援軍b和援軍c入場(chǎng)(觸發(fā)D),最后當(dāng)敵人全滅(所屬方全部對(duì)象被消滅)時(shí)玩家勝利(觸發(fā)Z)。
需要注意的是,通常除了觸發(fā)A之外,所有的觸發(fā)均需要勾選觸發(fā)選項(xiàng)中的禁止。
?
分支和合成是在單鏈上的變種。分支結(jié)構(gòu)即某一個(gè)觸發(fā)同時(shí)允許多個(gè)觸發(fā),合成結(jié)構(gòu)與其相反,是多個(gè)觸發(fā)均允許某一個(gè)觸發(fā)。分支結(jié)構(gòu)通常用于復(fù)雜條件判斷的開始,合成結(jié)構(gòu)通常用于復(fù)雜條件判斷的結(jié)束。通常分支結(jié)構(gòu)后會(huì)接合成結(jié)構(gòu),單獨(dú)使用時(shí),分支結(jié)構(gòu)分出來的多個(gè)觸發(fā)可以構(gòu)成多條觸發(fā)鏈,而合成結(jié)構(gòu)可以將多條觸發(fā)鏈引到同一個(gè)結(jié)尾。
舉例:在歇斯底里中,當(dāng)玩家電力充足時(shí),允許兩個(gè)觸發(fā)(觸發(fā)A,允許觸發(fā)B、C)。當(dāng)心靈軍團(tuán)基地全滅時(shí),允許玩家勝利的觸發(fā)(觸發(fā)B,允許觸發(fā)D)。當(dāng)玩家堅(jiān)持20min時(shí),允許玩家勝利的觸發(fā)(觸發(fā)C,允許觸發(fā)D)。當(dāng)此觸發(fā)被允許后,延時(shí)10秒后使玩家勝利(觸發(fā)D)。
觸發(fā)A、B、C構(gòu)成分支結(jié)構(gòu),用于啟動(dòng)對(duì)玩家所有勝利條件的判定。觸發(fā)B、C、D構(gòu)成合成結(jié)構(gòu),用于在玩家達(dá)成任意一個(gè)勝利條件后啟動(dòng)勝利觸發(fā)(因?yàn)樽髡呤孪炔恢劳婕視?huì)達(dá)成哪個(gè)條件)。另外,通常為了不使觸發(fā)D被觸發(fā)多次,而造成一些奇怪的結(jié)果,觸發(fā)B會(huì)添加禁用觸發(fā)C的條件,觸發(fā)C會(huì)添加禁用觸發(fā)D的條件,即玩家達(dá)成一個(gè)條件后禁用其余條件對(duì)應(yīng)的觸發(fā)。不過有時(shí)這并不是必需的,可以視情況選擇。
聲明:以上舉例只是利用了戰(zhàn)役的內(nèi)容臨時(shí)編的舉例用的簡(jiǎn)單觸發(fā),并不是地圖中實(shí)際存在的應(yīng)該更復(fù)雜的觸發(fā)。