作者caiin (這個世界瘋了...)
看板mud_sanc
標題Re: [問題] 主牧的技能觸發寫法
時間Mon May 20 14:12:00 2013
不好意思 我現在又遇到一個問題~
就是一直顯示錯誤@@
--
錯誤號: 0
事件: Compile error
描述: [string "Script file"]:1: unexpected symbol near '<'
呼叫者: Immediate execution
--
我研究了很久 還是找不到原因QQ
※ 引述《hmml (hmml)》之銘言:
: <triggers>
: <trigger
: enabled="y"
: group=""
: <triggers>
: <trigger
: enabled="y"
: group=""
: match="^(☆☆☆|○○○).*(☆☆☆|○○○)$"
: name="Control_Fight"
: regexp="y"
: send_to="12"
: sequence="100"
: >
: <send>
: if '%1' == '☆☆☆' then
: Execute ([[cast 'holy body']]) --一觸發就執行
: DoAfterSpecial (5,[[cast pray]],10) --五秒後執行
: DoAfterSpecial (10,[[cast 'holy shield']],10) --十秒後執行
: DoAfterSpecial (15,[[cast encourage]],10) --十五秒後執行
: DoAfterSpecial (20,[[cast 'holy power']],10) --二十秒後執行
: else
: Execute ([[cast 'holy body']]) --同上類推
: DoAfterSpecial (5,[[cast pray]],10)
: DoAfterSpecial (10,[[cast 'holy shield']],10)
: DoAfterSpecial (15,[[cast encourage]],10)
: DoAfterSpecial (20,[[cast 'holy power']],10)
: end
: </send>
: </trigger>
: </triggers>
: if 架構應該不用再檢討了吧!所以就講MushClient裡的函數:
: 先說這一個:
: Execute ([[cast 'holy body']])
: Execute() 相當於zMUD的#exec,它會分析裡面的內容是使用者設的別名,
: 還是要直接送給主機的指令。如果有照Hamano的教學去設置Mushclient
: ,那你的分行符號應該是分號";";而井字號"#"就是用來宣告後面的字
: 串是函數。這兩點關係到 Execute() 這函數好不好用。建議再檢查一
: 下你的MushClient設置是否沒問題。
: Execute ([["cast holy body","cast pray","cast holy shield","cast
: encourage","cast pure power"]])
: 所以你這段,假設cast無延遲,真得能瞬間五招,格式應該改為:
: Execute ([["cast holy body";"cast pray";"cast holy shield";"cast
: encourage";"cast pure power"]])
: 或直接換行,但注意[[]]內不要在行首隨意空格做排版,Execture會把內容
: 忠實地送出去,所以連空格把指令送出去的話,聖殿可不認得:
: Execute ([["cast holy body"
: "cast pray"
: "cast holy shield"
: "cast encourage"
: "cast pure power"]])
: 另外你的引號""標的位置,不符合聖殿放法術的格式,所以應該改為:
: Execute ([[cast 'holy body';cast pray;cast 'holy shield';cast
: encourage;cast 'pure power']])
: 或:
: Execute ([[cast 'holy body'
: cast pray
: cast 'holy shield'
: cast encourage
: cast 'pure power']])
: 再來:
: DoAfterSpecial (5,[[cast pray]],10)
: 這個是暫時性的延遲函數指令,相當於zMUD的#alarm。
: 綠色字體是秒數,設定從0.1秒到24小時減1秒。
: 黃色括號用來寫入指令,格式和Execute()一樣。
: 粉色字則是用來表示要如何處理內容,10是採用 Execute() 的處理方式。
: 這裡有一點提醒你:看一下上面的黃色行:cast 'pure power'
: 這個技能在戰鬥中放不出來的。
: 如果你要一行輪流放,你可以試試speedwalk:
: DoAfterSpeedWalk (long Seconds, BSTR SendText)
: 但是我沒用過這個,所以不清楚能不能達成你的需求。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.155.10
1F:→ laechan :有一個 < 就要有一個 > 05/20 15:05
2F:→ hmml :科科,其實錯誤就在前幾行裡面 05/20 18:59
3F:→ caiin :是指有重複的地方嗎??? 我有刪掉耶 但是一樣QQ 05/20 19:00
4F:→ hmml :注意前幾行,有多了幾行重複的,不必要的。 05/20 19:01
5F:→ hmml :那你就重做一個,只複製<Send><\Send>之間的部份試試 05/20 19:02
6F:→ caiin :還是無法Orz 該不會是因為我是用免安裝版@@??? 05/21 10:22
7F:→ laechan :裝 notepad2, 然後把 script 檔丟進去找是否有漏 < > 05/21 11:56
8F:→ laechan :或是把 script 檔直接丟進瀏覽器(如firefox)觀看也可 05/21 11:57
9F:→ caiin :firefox顯示星星符號不合語法...囧a 05/21 12:27
10F:→ caiin :所以我把星星改成 戰鬥開始 ??? 05/21 12:35
11F:→ laechan :先換成別的(如 ***, $$$, ★★★,..) try try 05/21 13:33
12F:→ caiin :嘗試過了 還是不行QQ 好像全形字不符合語法?? 05/22 11:51
13F:推 hmml :你先把你的貼上來... 05/23 00:04
14F:推 hmml :左側的勾選項,和下方的Send to項內容也貼上來 05/23 00:23