北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: newstart

【PyMUD】PyMUD使用指南-基础篇(一)

[复制链接]
 楼主| 发表于 2023-7-10 08:06:55 | 显示全部楼层

Python语言里,函数是第一类对象。在Alias的构造函数中,OnSuccess命名参数所传递的只是self.getfromcorpse函数的引用而并非函数调用。真正的getfromcorpse函数在下面,定义是这样的:

    def getfromcorpse(self, name, line, wildcards):
        cmd = f"get {wildcards[0]} from corpse"
        self.session.writeline(cmd)

可以看到,该函数带有4个参数。除类的自引用self之外,name,line,wildcards分别代表Alias的名称、捕获的整行的内容、正则表达式匹配里的捕获结果(数组形式)。在PyMUD系统执行捕获到Alias输入时,会自动将相关参数传递到onSuccess对应的引用函数中,因此,里面的wildcards[0]就是正则表达式^gp\s(.+)$里的(.+)所匹配的内容。
例如,当输入gp gold命令时,PyMUD会自动进行正则表达式匹配,并将匹配结果gold存入wildcards[0]中,这样在下面的onSuccess时,cmd会格式化为get gold from corpse,并最终通过session.writeline发送到服务器。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-10 10:59:50 | 显示全部楼层
“ 当然现在岗位也不是程序员”

是真的吗?至少以前是程序员吧?
很牛。这么挺大的工程业余时间搞定。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-10 20:28:12 | 显示全部楼层
newstart 发表于 2023-7-10 08:06 AM
Python语言里,函数是第一类对象。在Alias的构造函数中,OnSuccess命名参数所传递的只是self.getfromcorp ...

哈哈,真是深奥,我都不知道函数还有这种引用方法
看了下Alias是个类,我的类的用法还停留在Alias.函数()
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-14 11:29:17 | 显示全部楼层
Unhandled exception in event loop:
  File "F:\pymud\objects.py", line 119, in async_execute
    await self.session.handle_input_async(*code[1:])
  File "F:\pymud\session.py", line 677, in handle_input_async
    await handler(*args[1:])

Exception object NoneType can't be used in 'await' expression
Press ENTER to continue...
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-14 11:29:48 | 显示全部楼层
每次输入#var查看数据的时候会出现在这个情况
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2023-7-14 12:09:48 | 显示全部楼层
里面有点bug,异常处理没弄好。
github中,7月9日版本已修复该问题。
请从github clone最新版解决
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-14 12:11:43 | 显示全部楼层
newstart 发表于 2023-7-14 12:09 PM
里面有点bug,异常处理没弄好。
github中,7月9日版本已修复该问题。
请从github clone最新版解决 ...

建议还是做release,不要直接clone

不然不同的branhch会让使用者比较头疼。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2023-7-14 12:41:36 | 显示全部楼层
jarlyyn 发表于 2023-7-14 12:11 PM
建议还是做release,不要直接clone

不然不同的branhch会让使用者比较头疼。

有道理,从现在开始发布release
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-7-15 13:21:19 | 显示全部楼层
newstart 发表于 2023-7-14 12:09 PM
里面有点bug,异常处理没弄好。
github中,7月9日版本已修复该问题。
请从github clone最新版解决 ...

好的,谢谢啦,我去下一个试一下
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2023-8-2 05:23:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 10:30 AM , Processed in 0.012962 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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