作者hmml (hmml)
看板mud_sanc
标题[心得] Zmud EN技能自动重设等级的写法-2
时间Tue Sep 21 00:04:32 2010
上一个做法着重於#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
1F:→ nahceal :有神快拜 (咦怎麽过了10分钟还显示时间太近不能推 09/21 00:08
下面是#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)