[心得] Zmud EN技能自動重設等級的寫法-2

看板mud_sanc (Sanctuary - 聖殿)作者 (hmml)時間15年前 (2010/09/21 00:04), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
上一個做法著重於#if的判斷,寫得也比較工整。還能加入自動更換特攻的 判斷句進去,但似乎比較耗費資源(會從第一句一路執行到最後),比較 耗資源。 這個寫法判斷的部份比較少,應該比較省資源,基本上聖殿能學到的enable 技能都在裡面,有需要也是在後面持續新增即可,維護也頗方便,習慣的話 比前一個做法容易一些。不過功能也比較單純。 ================================== Pattern :『(%1)』進步了~((%d)00~)! Commands: #var skillname %1 #if (%1 = "自創技能") {#temp {你成功使用第%d級的『~*自創技能~*』} {myskill list}} skillchlist="迴槍刺擊|焚城槍法|打狗棒法|百花棍法|小醉拳|佛山無影腳|美女拳法|如來 神掌|黯然銷魂掌|閃華裂光拳|太極拳|少林拳法|六脈神劍|飄雲杖法|冰燄杖法|星光杖法| 半月斬|傲寒六訣|牙突|落日刀法|王者之路|刃擊術|闇影之牙|舞燄之斧|戰龍之斧|焚鋒之 章|飄零之卷|彩虹七色劍|水蓮劍法|武當劍法|騎士風斬法|*自創技能*|2-sword-as-1" skillenlist="return lance|burn-city lance|pkdog rod|flower rod|drink fist|fosan foot|girl fist|zulai fist|shadow fist|sankalekouken|taichi fist|soulin fist|6-vessels swordray|fly-cloud wand|icefire wand|starlight wand|hafe blade|6-cold blade|toothstab|sunset blade|king-road|battle dagger|shadow teeth|fire axe|war-dragon axe|burnedge chapter|drift volume|rainbow slash|water-lotus slash|wudon slash|knight slash|myskill|2-sword-as-1" #if (%ismember(@skillname,@skillchlist) = 0) {#noop} {en %item(@skillenlist,%ismember(@skillname,@skillchlist)} ====================================== 觸發句依然不變。 金色行保留,可以降低吃字率。 綠色行專門處理自創技能,需要使用myskill list指令重新設定的要求。  電腦會製作一道觸發,該觸發使用後會自行刪除。 靛色行是所有enable技能的中文名(最後一項例外)列表,名字是skillchlist,  與@skillname比對之用。 紫色行是所有enable技能的英文名列表,列表名skillenlist,必須和中文名列表  順序相同。 亮綠色行是執行句。  判斷式為%ismember(@skillname,@skillchlist) = 0 %ismember是一個比對用函式,當@skillname和@skillchlist中的名單相符時,它會  算出@skillname在名單中的位置。  EX:當@skillname為迴槍刺擊時,本判斷式會算出1的數值。因為迴槍刺擊是 @skillchlist名單的第一筆資料。    當@skillname為騎風槍殺時,本判斷式會得到0這個值,因為@skillchlist中 不存在該筆資料,所以以0表示。  本句表示當判斷式數值為0時,不做任何動作(#noop),否則執行動作: {en %item(@skillenlist,%ismember(@skillname,@skillchlist)}  黃色部份已解說過,而%item與%ismember作用相反,它會依照數值取出列表中相對  應位置的資料。  EX:當@skillname為焚城槍法,黃色部分運算後會得到2的結果,而%item會根據2 的結果,取出@skillenlist裡相應的資料,即第2筆:burn-city lance 結果就是en burn-city lance    如果是自創技能,其後會加下myskill list的指令。 其實比對的部份可以用#case來寫,功能不會少於狂用#if的做法,判斷句也是最少。 當然,也是最亂的排版。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.232.56.149

09/21 00:08, , 1F
有神快拜 (咦怎麼過了10分鐘還顯示時間太近不能推
09/21 00:08, 1F
下面是#case的寫法,因為能包一堆指令進去,所以也簡便一些。判斷只有一兩個。 新增時skillchlist新增在最後,#case則要新增在倒數第二,倒數第一是給溢位用的。 #var skillname %1 skillchlist="迴槍刺擊|焚城槍法|打狗棒法|百花棍法|小醉拳|佛山無影腳|美女拳法|如 來神掌|黯然銷魂掌|閃華裂光拳|太極拳|少林拳法|六脈神劍|飄雲杖法|冰燄杖法|星光杖 法|半月斬|傲寒六訣|牙突|落日刀法|王者之路|刃擊術|闇影之牙|舞燄之斧|戰龍之斧|焚 鋒之章|飄零之卷|彩虹七色劍|水蓮劍法|武當劍法|騎士風斬法|*自創技能 *|2-sword-as-1" #case %ismember(@skillname,@skillchlist) {en return lance} {en burn-city lance} {en pkdog rod} {en flower rod} {en drink fist} {en fosan foot} {en girl fist} {en zulai fist} {en shadow fist} {en sankalekouken} {en taichi fist} {en soulin fist} {en 6-vessels swordray} {en fly-cloud wand} {en icefire wand} {en starlight wand} {en hafe blade} {en 6-cold blade} {en toothstab} {en sunset blade} {en king-road} {en battle dagger} {en shadow teeth} {en fire axe} {en war-dragon axe} {en burnedge chapter} {en drift volume} {en rainbow slash} {en water-lotus slash} {en wudon slash} {en knight slash} {en myskill myskill list} {en 2-sword-as-1} {#noop} ※ 編輯: hmml 來自: 118.232.56.149 (09/21 00:17) 由於skillchlist很長,所以建議修改成如下,目前已存在技能放在skilloldlist裡, 需要新編技能進去,直接寫入skillnewlist裡,最後再寫入skillchlist裡去。 #case在想斷行的地方,寫成兩個指令就會自行斷行,推薦指令#noop。 skilloldlist="迴槍刺擊|焚城槍法|打狗棒法|百花棍法|小醉拳|佛山無影腳|美女拳法| 如來神掌|黯然銷魂掌|閃華裂光拳|太極拳|少林拳法|六脈神劍|飄雲杖法|冰燄杖法|星光 杖法|半月斬|傲寒六訣|牙突|落日刀法|王者之路|刃擊術|闇影之牙|舞燄之斧|戰龍之斧| 焚鋒之章|飄零之卷|彩虹七色劍|水蓮劍法|武當劍法|騎士風斬法|*自創技能*|" skillnewlist="2-sword-as-1" skillchlist=@skilloldlist@skillnewlist ※ 編輯: hmml 來自: 118.232.56.149 (09/21 00:59) ※ 編輯: hmml 來自: 125.231.32.94 (04/04 23:54)
文章代碼(AID): #1CbuOJVM (mud_sanc)
文章代碼(AID): #1CbuOJVM (mud_sanc)