|
本帖最后由 kkndbdra@tj 于 2018-8-10 07:20 编辑
mushclient 是如何与脚本交流的?这里是官网的原话:
How do scripts communicate with MUSHclient?
Scripts use the COM (Component Object Model) technology to send requests to MUSHclient or ask for information (except for Lua, see below). For example, you can use "Note" to tell MUSHclient to put a note in the output window, or "GetInfo" to find out information about the current world (like when it was connected).
Scripts use the "world" COM object to do this - this is available in all script languages. For example:
world.Note "Hello, there"
mush使用的是一个名为“world”的COM组件和脚本语言沟通的,懂COM组件技术的大神帮忙想想办法简化一下脚本语言的安装。
MUSH调用python脚本需要3个条件 :
首先 需要 一个32位python编译器可以将python脚本翻译为可执行代码,
解决方案:去python官网下载一个python 32位 版本,我暂时用的3.6.5 其他老一点的版本应该也可以,大家多试试。
在安装的时候请务必勾选 add python 3.6 to path (表示贮存python的环境变量) (附件中有安装文件)
****非常重要****
mushclient 是一个32位的程序。。。32位的程序。。。32位的程序。。。重要的事说三遍!
所以mushclient只能和python编译器的32位版相互通讯。请务必使用32位的python的编译器。
其次 mush要能够能找到调用python解释器的路径。(这里设置了Python的环境变量也没用,还要重新设置一些其他的环境变量,至于为什么会这样我也不是很明白,各位大神可以研究一下简便方法。)
(错误信息为:未注册的类 )
解决方案:去pywin32官网下载一个***32位***的 221版本的exe安装文件 在windows下安装一下,这样在windows的某处就会建立一些指向python所在位置的环境变量。mush就可以找到python的路径了,但是这些变量在哪里我也不知道。(附件中有安装文件)
最后 mush是通过CLSID调用python解释器的。
(错误信息为:。。。。。finding CLSID。。。。。python 这么一串话)
解决方案:在安装完pywin32以后 在你安装python的文件夹里有一个\Lib\site-packages\win32comext\axscript\client\pyscript.py文件
这个文件注册以后 python的CLSID就注册进入注册表了。具体怎么实现的我也不清楚。
大家使用python编辑器,或者命令行运行一下pys 文件夹中的pyscript.py这个文件,将python clsid注册到注册表中。
另外:python3.X的默认存档编码为UTF-8. MSUH好像借调是 windows CMD控制台 所以只能读取GBK格式文本,请大家使用文本编辑器存档的时候之一定要注意存档GBK格式。(不然中文部分会乱码)
***************************************************************************************
安装好以后,就可以在mush脚本选项里把LUA换成python使用了。
python 语言的语法和LUA差不多。稍加修改就可以重新编辑。
但是LUA不支持面向对象,python的面向对象的类功能非常强大,而且有很多功能强大的第三方库,(包括C/C++.java的)
可以实现许多大家心中“梦想”的功能。
时间有限,我只写了一句最简单的输出语句:
def output():
world.note("人生苦短")
world.note("我用python")
world.note 就是lua中的note mush把函数全部封装到了python的world模块中。
调用的时候通过world.note() 调用
详细用法请查看mush官网的函数讲解链接。
http://www.gammon.com.au/scripts/doc.php?general=function_list
然后下载 mushcilent 最新版 4.94 -- 该版本可以较好支持python3.x (附件中有安装文件)
4.风神版本的mush也可以尝试一下,原理都是一样的。应该也可以,问题不大 但我没试过。 4.84 和4.94的那个汉化文件包可以通用。
*******关于免安装绿色版脚本环境的搭建******
(本来想把VENV的虚拟环境直接放进MUSHCLIENT的文件夹里,方便不懂编程的玩家使用,但是还是在MUSH调用上卡住了,这些些问题有待大神解决,勉强凑合能用)
我已经打包好了一个名为pys的虚拟环境文件打包放在mushclient494文件夹里。
这个文件夹中包含了python程序运行所需要的最低要求的python.exe(32位,3.6.5版),pywin32等几个基本库。照理说有了这个环境包就不需要安装其他文件,可以直接运行了。
但是还是有2个问题:
第一:若果不安装pywin32的话mush找不到python解释器的位置(估计还是和环境变量有关)
第二:若果不注册pyscript.py的话mush在注册表中找不到python.exe CLSID的问题
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
-
1
查看全部评分
-
|