|
本帖最后由 kkndbdra@tj 于 2019-6-3 10:24 编辑
经过楼主反复实测mush使用python脚本只需要三个条件:
1 p安装有python解释器(楼主测试用的python3.7 64位最新版)
2 安装pywin32 模块包 (要安装与python解释器对应的模块包)
3 把win32模块在系统里注册一下,不然python没有办法和mush通讯, 一般python脚本加载出错就是这个原因。
以我自己的路径为例子 C:\MUSHclient494\pysjwin64\venv\Lib\site-packages\win32comext\axscript\client 里面有一个pyscript.py文件
在cmd控制台中用python运行一下这个脚本,或者用文本编辑器run一下都可以。
然后用文本编辑器新建一个python项目即可,楼主在mushclient 中新建了一个pysjwin64文件夹项目:
用文本编辑器pycharm在其中新建一个名称main的主程序文件。mush选脚本文件的时候直接选这个文件即可。
如图所示:
放入一段测试代码:
# coding:GBK
import win32api
import win32con
win32api.MessageBox(win32con.NULL, '我的第一个pywin32窗口!', 'Hello', win32con.MB_OK)
如果python加载成功的话会弹出一个窗口:
证明mush 的python以及com组件可以正常运作,接下来就可以正式编写相关代码了。
先在顶部代码里写入:
# coding:GBK
因为书剑用的是GBK编码,python默认的是utf-8文字编码,如果不在开头声明这一句,python脚本传递给mush的汉字会变成乱码。
先测试一下如何在python中调用MUSH端口常见的几个内置函数,如果使用lua的话可以直接调用note()函数在mush中显示提示信息。
使用python脚本的时候mush将所有mush端的函数都放进world模块的组件中。
所以使用格式变成了 模块名称.函数名称() 的格式,例如:lua中的note() 变成了world.note()
在文本编辑器中(推荐pycharm)写一段测试代码;
# coding:GBK
def pynote(str1):
world.note(str1)
然后进入游戏--配置界面
将右下角的脚本标识符设置为 / .
然后在mush输入窗口中写入/world.note("大家好,欢迎进入书剑游戏!")
然后再尝试一下/pynote("大家好,欢迎进入书剑游戏!")
你会发现mush中出现了2次同样的文字:"大家好,欢迎进入书剑游戏!"
因为pynote其实就是改写了mush内置note()函数,我们以后经常会用到这些方法去设置我们需要的方法。
那么下一步测试一下如何利用python向mush传入入一个向上走的“N”指令
原理同上 mush 自带一个world.execute()函数,其官方说明如下:
Execute
类型 方法
简介 执行一个命令,就像你在命令窗口中输入它一样
我们登录一个角色 然后在命令窗口中直接调用这个函数让脚本去处理它:
/world.execute("north")
类似的函数还有/world.send() 当然还是有一些区别的大家QQ群文件中下载mush说明文档去查看具体区别。
你会发现人物朝北走了一步,和你直接输入north的效果是一样的。
你还可以尝试输入:/world.execute("say 大家好!")
和你在输入框中直接输入say 大家好! 的效果是一样的。
这样大家初步明白怎么制作一个python 的mush 机器人了吧。
其实就是把你平时用手输入的执行,让mush触发器脚本代替你去判断并且执行即可,和原来的zmud的触发器是一样的。
只不过原来的ZMUD简单指令变成了脚本函数,但是相应的mush python 脚本函数的功能要强大许多。可以做像原来ZMUD做不了的事情。
下一步我们从公版的登录功能开始改写成python的语法。
未完待续
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|