Re: [心得] MUSHclient向全視窗或指定視窗送出命令的做法

作者: xyzliu (Kliu)   2018-03-29 00:25:03
不好意思...這篇小弟看了很久
因資質駑鈍....仍然寫不出來對某個視窗下指令的方法
文章也是很久以前的文,看能否有緣遇大神指導...
是這樣的,小弟開了三個角色
想在A角色的視窗直接對B or C角色下達命令,recall之類...
我該怎麼做到,從zmud跳mushclient 真的是比登山難...
求大神能現身指教....
※ 引述《hmml (hmml)》之銘言:
: 這是一個對我而言蠻有用的功能,所以很早就在找怎麼
: 寫這個功能了,它相當於zMUD的"ID:指令"或#all,#all是向
: 全部視窗發佈命令。'ID:指令'其實是切換視窗,送命令只是
: 順便而已。
: 在MushClient裡,它需要這個函數:
: GetWorld (視窗名稱):用來取得指定視窗的位址。
: 當然,也可以用這個:
: GetWorldById(視窗ID):用法同上,只是你要取得
: 視窗的ID值有點麻煩,當視窗名稱撞名的時候,才
: 可能採用它,誰那麼無聊,不同角色的視窗都用同
: 一個名字呢?
: 寫法如下:
: 1. 決定別名的寫法,記得點選正規表示法項目:
: ^to(\S+) (.*)$
: 以to為起頭,藍色部份為%1,代表角色的ID(假設
: 視窗名設得跟遊戲中的角色ID相同),黃色部份為%2
: ,用來輸入指令。藍色部份和黃色部份中間空一格。
: 注意大小寫,不管是正規表示法還是Lua,都很明確細
: 份大小寫,A 不等同 a,And and aNd 雖然只差大小
: 寫,但三者都不一樣。
: 2. 將GetWorld的內容指定到一個變數裡:
: toName = GetWorld(%1)
: 3. 再用toName去接發送的指令行:
: toName:Send('%2')
: 基本上,這樣就完成了,如果你正在玩弄kimokimo
: 走不開,想對aiggkimd下個recall的指令,就這麼輸入
: :
: toaiggkimd recall
: 這樣,aiggkimd就會recall了。
: 4. Send()是用來對MUD送命令的,如果只是想顯示個訊
: 息,就要用:
: toName:Note('%2')
: 5. 另外還有:
: toName:Execute('%2')
: 如果你送的命令是MushClient的alias,只有這個才
: 能展開它。
: 6. 瑞士小刀:
: toName:DoAfterSpecial(0.1,'%2',12)
: 其實它相當於zMUD的#alarm +Sec {commands},
: 不過它是我目前找到唯一能把指令送給腳本分析器
: 再分析內容的函數,所以它能吃內含函數的指令,
: 改動第三個參數的值,可以決定把內容送去哪裡:
: 0:遊戲
: 1:命令
: 2:輸出窗口
: 3:狀態欄
: 4:記事本(新建)
: 5:記事本(追加)
: 6:記錄文件
: 7:記事本(替換)
: 8:命令隊列
: 9:變數
: 10:執行(等同於在命令窗口輸入命令)
: 11:快速行走(把發送內容解析為快速行走路徑)
: 12:腳本(發送給腳本解析器來執行腳本命令)
: 13:立即發送(在命令隊列執行之前就發送給遊戲)
: 用途廣泛,0相當於Send,2相當於Note,10相當於Execute,
: 12可以執行程式碼,先記這幾個就行了。第一個參數可以設
: 定幾秒後執行,從0.1秒到23時59分59秒之間都可以。所以,
: 用它必然要接受至少0.1秒的延時輸出,應該還能接受吧!
: 當使用它以腳本分析來對其它視窗輸出指令時,如:
: toName:DoAfterSpecial(0.1,'Send('save')',12)
: 就格式而言沒什麼問題,不過,它會出錯,要改成:
: toName:DoAfterSpecial(0.1,'Send([[save]])',12)
: 才會正常,其它函數也一樣!這個就是重點,因為我常常忘
: 記,所以寫這篇的啦!找出這個解法花一個小時,然後下次
: 再用,又花一個小時想發生什麼事...Orz
: 7. GetWorldById() 贏過 GetWorld() 的地方,就是它不用將
: 內容存到變數就能直接引用,雖然我沒用過,不過,
: http://mc.chinaido.com/help.php?function=GetWorldById
: 它範例是直接引用。
: 8. #all 的功能就是這個指令再加強,使用for迴圈去完成它:
: for key, value in pairs (GetWorldList()) do
: toName = GetWorld (value)
: toName: DoAfterSpecial(0.1,'%2',12)
: end

Links booklink

Contact Us: admin [ a t ] ucptt.com