[心得] Zmud EN技能自動重設等級的寫法-2
上一個做法著重於#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)}
======================================
1觸發句依然不變。
2金色行保留,可以降低吃字率。
3綠色行專門處理自創技能,需要使用myskill list指令重新設定的要求。
電腦會製作一道觸發,該觸發使用後會自行刪除。
4靛色行是所有enable技能的中文名(最後一項例外)列表,名字是skillchlist,
與@skillname比對之用。
5紫色行是所有enable技能的英文名列表,列表名skillenlist,必須和中文名列表
順序相同。
6亮綠色行是執行句。
判斷式為%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
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)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
18
25
4
12
21
33
-17
30