北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 927|回复: 0

MUSH轉PYMUD分享

[复制链接]
发表于 2024-2-29 17:15:40 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1精华 +30 收起 理由
icer + 30 赞一个!

查看全部评分

北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 02:25 AM , Processed in 0.011922 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表