|
本帖最后由 kulic 于 2024-3-1 11:50 AM 编辑
大家好,我是古利斯,因為種種原因想把bot轉到手機上跑,
幾年前上網搜過基於python的mud client,都是斷更多年的老代碼,
最近本想找來改一改,看能不能跑起來,但卻驚喜的找到了PYMUD!也找到了這裡。
由於我本來是MUSHclient的老用戶,所以希望把bot轉過來直接用。
而PYMUD本身沒有trigger的GUI管理介面,
於是我把MUSH的數據從MCL檔提取,轉入SQLite3,
再寫一些嫁接MUSH功能到PYMUD的function,
這樣就能有GUI管理介面了,又能盡可能最少改動下跑起來XD
簡單列一下適配改動:
- 創建MCL到SQLite3的數據提取導入
- 讀取數據庫轉譯寫入PYMUD的alias,trigger等
- 用數據庫取代var的存取
- 改寫match類,把code和script混合在onSuccess執行,alias,trigger,timer不再有simple之分
- 加入原碼執行的send2script選項
- timer加入atTime時鐘觸發
- 改進#開頭的alias也能觸發
- 改進alias後綴字串自動成為%1等
- 加入enableID,用id啟用禁用trigger等
- 加入class world,嫁接world.常用功能
已知問題:
1 為了精確enableID啟用,把id設成alias,trigger,timer內不可重複,
所以在建立數據庫時可能會遇到sqlite3.IntegrityError: ID already exists in xxx
修改MCL內重複的id後,刪db3,再次執行mychar.py
2 class world嫁接功能並不全面,有需要的自行添加
3 可能會遇到python2轉到3的代碼問題,需小改寫,或用2to3自動轉
4 無法多開,因用global打通舊代碼,多開會數據錯亂
暫時只好多開PYMUD
使用指南:
1 打開mychar.py修改mcl檔名和文字編碼,想建立的數據庫檔名
2 單獨執行python3 mychar.py,會自動創建db3數據庫
3 打開pymud.py(在python site-packages裡)修改from .session import Session為from mychar import mySession as Session
4 跟pymud教學修改settings或創建pymud.cfg加入新會話,default_script指定為mychar
5 打開mychar.py在最下面加入自己的bot script
6 在mychar.py目録下執行python3 -m pymud
7 載入會話即可自動從數據庫載入bot
注意事項:
1 只對MUSH python的用家兼容
2 自己以前寫的bot script不要放在class Configuration內
3 bot的所有觸發參數均需在數據庫修改
PYMUD中對bot修改只是臨時性的
變量除外,變量為實時修改數據庫
以上是基於PYMUD 0.18.3的改動
測試環境:
deepin 20.9 + python 3.12.1
GUI數據庫軟件DB browser for SQLite
android 11 + termux 0.118.0 + python 3.11.2
下附代碼抛磚引玉,期待PYMUD變得越來越好,越來越多人用,
感謝newstart的貢獻!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|