作者hmml (hmml)
看板mud_sanc
標題[心得] ZMUD ENABLE 技能自動變更使用級數的方法。
時間Thu Sep 4 21:14:30 2008
基本作法如下:
#trig {你的技能,『騎士風斬法』進步了} {en knight slash}
或在設定中編輯:
Patten:你的技能,『騎士風斬法』進步ꐊCommands:en knight slash
這樣一來,只要技能每進步一級,就會被觸發一次,重新設定使用等級。
但這樣做,觸發一百次中,只有一次是有效果的!感覺有些笨拙而不夠高級,
所以可以針對訊息最後的數字做分析,因此設定:
Patten:你的技能,『騎士風斬法』進步了~((%d)00~)
Commands:en knight slash
和前一例不同地,字串最後多了對數字的判斷。
%d是一個可以變動的數字,只要內容是阿拉伯數字,整句都是符合條件的字串。
大意是說:只要騎士風斬法最後的數字,最後兩位是00則執行commands的內容!
而最外面的()前方都有一個~,目的在使zmud將最外面的()視為字串的一部份,
而非zmud做自用的字元。
如此一來,zmud用來比對的句子會是
你的技能,『騎士風斬法』進步了(100)
若沒有加上~,則比對句會變成
你的技能,『騎士風斬法』進步了100
則觸發將不會成功。
如此一來,本觸發就會針對騎士風斬法的訊息,精確地做動作。看來也高級多了。
那能不能也針對技能部份做設定,來展現自己的才幹呢?也是可以的。即
Patten:你的技能,『(%1)』進步了~((%d)00~)
Commands:#if (%1 = "騎士風斬法") {en knight slash}
技能名的部份可以用*,也能用%1,我習慣用%1。
而commands部分改為#if的語法來判斷。依此類推,將所有en技一一用#if
寫入該觸發,即可不用每更換一項en技,就重新寫一條。當然Myskill狀況複雜,
要寫入也是可以,但建議分離出來。
但以上寫法有一個問題,與zmud本身吃中文字的問題有關,當技能名稱恰巧有zmud
在用的字元在裡面,技能名會變成亂碼,zmud會將該技能當做別的字串去執行動作,
如閃華裂光拳,zmud的判斷中,它是佛山無影腳,也是冰焰杖法,六脈神劍等等,
甚至血腥必殺劍未列入#if的技能,也同樣做出如上錯誤的判斷,結果zmud就執行
上述en技的等級更新動作。如此一來,不就想顯示自己的睿智,卻像在搞笑了?
那有沒有解決良方呢?也是有的,加一道手續即可:
patten部份不做任何改變,但不將%1直接代入#if處理,先將它帶到隔壁的房間,
好好地照顧一下......
不對!先把它帶到變數去,在Commands最前方加上:
#var skillname %1
接著再#if中的%1改成@skillname即可。
要設定閃華裂光拳時,先讓閃華裂光拳的升級訊息跑一次,這時,閃華裂光拳就
會被帶到廁所去凌~~~,啊~是skillname啦!
接著再到Var中的skillname那格看看抓到什麼內容,直接將內容複製下來,貼到
#if的判斷句即可。如果抓到亂碼,也一樣全部複製下來,加入判斷句中。
以下是本觸發的全貌:
Patten:你的技能,『(%1)』進步了~((%d)00~)
Commands:
#var skillname %1
#if (@skillname = "騎士風斬法") {en knight slash}
#if (@skillname = "武當劍法") {en wudon slash}
#if (@skillname = "星光杖法") {en starlight wand}
以下列推......
經過處理後,閃華裂光拳就能正常驅動,觸發也不會誤認其它技能了。
每創造新角色,只要整段貼過去,就高枕無憂囉!
理論上,在本觸發中加入特攻等級滿,自動更換下個一特攻來練也是可以的。
最後,是作者為規避技術上的錯誤,遭人譙到滿頭包的注意篇,請務必詳讀,
並時時刻刻銘記在心!
注意:
1.本篇所有內容依zmud 5.55版編輯規則編輯完成,不保證其它版本可以使用!
2.本篇各類zmud觸發指令列表使用方式參考自:
http://suzin.pixnet.net/blog/post/9225957 紅貓的重生世界
但不保證使用方式的正確性。
3.本篇作者資質魯鈍,int值在500以下,跟石化人差不多,不保證本觸發的編法最完美,
最簡便,效果最好,使用前請三思!
4.本篇作法只保證對作者一帖見效,不保證其它人用了也有效。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.250.112
※ 編輯: hmml 來自: 59.114.250.112 (09/04 21:16)
推 hlead :提醒一下,教基本可以,可是別教人掛機。 09/04 21:19
推 HighElf :%d的前後不必(),即是(%d)改為%d就行了,()另有用途 09/04 21:43
→ hmml :我習慣加,有加也沒事。 09/04 22:12
→ hmml :練功機不是我的專長,團長比較厲害! 09/04 22:16
推 Layase1 :/beg con算血量的觸發阿!!! 09/04 22:17
→ hmml :啊!3400篇! 09/04 22:17
→ Layase1 :厲害個屁 我連你說的都看不懂 不要啥都拿我出來說... 09/04 22:17
→ Layase1 :說真的 我很討厭這個稱呼 09/04 22:18
→ hmml :算血量沒在研究哩..... 09/04 22:24
推 hlead :寫觸發這種東西,就是要越精簡越好。... 09/04 22:48
推 coldblade :我比較糟糕,我都是在進區域時通通enable一遍 09/05 11:24
推 bahatest :推技能名變數...我得整理一下觸發了 09/05 16:39
→ bahatest :阿....等我新電腦穩定再說 09/05 16:40
推 bahatest :所以同理heart消失也可以全部寫成一個對吧 09/05 16:42
推 laechan :baha的點子不錯 09/05 16:50
推 Yanten :應該有辦法可以練到XX級就換下一招...試看看 09/06 09:59
推 hlead :有辦法阿,把%d改%2然後%2=99判定使用招數 換招。 09/06 10:25
推 bahatest :不用設%2....直接打9900就好 09/06 22:14
推 hlead :這樣要兩個觸發= =你們不是要大眾和? 09/06 22:39
推 hlead :pattern:你的技能,『%1』進步了~((%2)~)! 09/06 22:42
推 hlead :#if (%2 = "99") {enable judo} <--接想換得招式 09/06 22:42
推 hlead :怪怪的.. 後面是 進步了~((%2)00~)!才對..應該能用. 09/06 22:44
→ hmml :#if (@skillname = "魔法飛彈" & %2 = 99) 09/06 22:54
→ hmml :可以這麼設! 09/06 22:54