跳转至内容
  • 0 赞同
    1 帖子
    24 浏览
    N
    由于邮件系统限制,部分注册的邮箱地址无法收到确认邮件(实际是被服务商拦截)。而收不到确认邮件会导致账号注册未通过验证,从而无法在论坛发帖和参与讨论。 对于这种情况,请使用你注册的邮箱,向 contact@pymud.cn 人工发送一封邮件,写明要注册论坛,标明你在论坛上实际的注册ID和注册邮箱,我会不定时进行人工处理,对账号进行认证核实。 若一段时间后我仍未处置,未认证账号也可在 “欢迎新用户” 板块发帖说明,我会不定期回复和处理。 Due to email system limitations, some registered email addresses fail to receive confirmation emails (as they are blocked by the service provider). Without this confirmation, account registration remains unverified, preventing you from posting or participating in discussions on the forum. In such cases, please send an email from your registered address to contact@pymud.cn stating that you wish to register for the forum; include your actual forum username and registered email address. I will manually process these requests and verify accounts on an irregular basis. If your request remains unaddressed after some time, you may also post in the "Welcome New Users" section to explain the situation; I will check and handle such posts periodically.
  • PyMUD 更新 0.22.8版

    已移动 公告与通知
    1
    0 赞同
    1 帖子
    119 浏览
    N
    0.22.8 (2026-08-09) 问题修复: 修复如果变量的值带ANSI颜色代码,会无法打印的问题。 问题修复:修复如果变量的键是数字类型,会无法正常打印的问题。 感谢 @hhyzz 提供的问题BUG和修复代码
  • 关于#var命令的bug提交

    PyMUD讨论区
    2
    2
    1 赞同
    2 帖子
    177 浏览
    N
    已按你提供的见习修复上述问题,并发布0.22.8版。
  • PyMUD 更新 0.22.7版(同时附0.22.6更新历史)

    已移动 公告与通知
    1
    0 赞同
    1 帖子
    138 浏览
    N
    0.22.7 (2026-07-12) 问题修复: 修复 #{sessionname} 无法切换会话的问题。 问题修复: 调整 modules.py 中变量命名,防止出现歧义。 0.22.6 (2026-05-15) 问题修复: 修复当关闭所有会话后,状态窗口就再无法正常显示的问题。 问题修复: 修复当存在未关闭记录器,退出程序会卡住或者报错的问题。 0.22.7 (2026-07-12) Bug Fix: Fixed the issue where #{sessionname} cannot change the current session. Buf Fix: Change the names of some variables in modules.py to avoid ambiguity. 0.22.6 (2026-05-15) Bug Fix: Fixed the issue where the status window becomes unresponsive after closing all sessions. Bug Fix: Fixed the issue where the program hangs or crashes when there are unclosed loggers.
  • 0 赞同
    2 帖子
    129 浏览
    N
    给一个参考(片段),炼药的,判断颜色后执行对应操作: 触发器使用raw模式,抓取对应的ANSI颜色代码,根据不同颜色执行不同处理: Trigger(self.session, "^\x1b\\[([\\d;]+)m[\r\n]*$", raw = True, enabled = False, id = "tri_medicine_color", onSuccess = self.ontri_color, group = "medicine") def ontri_color(self, name, line, wildcards): color = wildcards[0] if "31" in color: # 31: red self.info(f"颜色:红色 ({color}), 使用 turnup") self.session.writeline("turnup") elif "35" in color: # 35: magenta self.info(f"颜色:紫色 ({color}), 使用 blow") self.session.writeline("blow") elif "37" in color: # 37: while self.info(f"颜色:白色 ({color}), 使用 turndown") self.session.writeline("turndown") elif "36" in color: # 36: cyan self.info(f"颜色:青色 ({color}), 使用 defend") self.session.writeline("defend") else: self.warning(f"未知的颜色代码: {color}") self._objs["color"].enabled = False
  • 关于如何调试pymud脚本的配置

    PyMUD讨论区
    2
    2
    0 赞同
    2 帖子
    319 浏览
    B
    实测有效. trae里鼠标支持有问题.vscode正常.
  • 云服务器上内存缓慢增长,有哪些调试手段?

    PyMUD讨论区
    3
    0 赞同
    3 帖子
    269 浏览
    N
    tmux.conf配置设置缓存上限?
  • 删除变量的cmd

    PyMUD讨论区
    5
    0 赞同
    5 帖子
    600 浏览
    D
    为啥不直接把.mud删掉完事呢?
  • 修改 websocket 插件以支持 socks5 代理或者指定 IP 接口

    PyMUD讨论区
    3
    1
    0 赞同
    3 帖子
    354 浏览
    N
    要像上图一样同时监控多个账号的状态,参考以下方法: 使用本帖附带的 websocket 插件 在某一个角色都加载的脚本中,构建一个 overview 函数,并通过调用插件的 sendOverview 方法注册到插件中。示例如下: from pymud import IConfig class AExampleOfOverview(IConfig): def __init__(self, session, *args, **kwargs): ws = self.session.getGlobal("ws") if ws and hasattr(ws, "sendOverview"): ws.sendOverview(self.session, self.overview) # 此函数为关键,返回一个dict,key会作为websocket显示状态的表头,内容在下面 def overview(self): data = dict() data["角色"] = ( f"{self.session.getVariable('name', 'none')}({self.session.getVariable('id', 'id')})" ) # fullme time fullme = int(self.session.getVariable("%fullme", 0)) delta = time.time() - fullme data["FM"] = int(delta // 60) data["发呆"] = int(self.session.idletime // 60) data["位置"] = ( f"{self.session.getVariable('city', '未知地域')}{self.session.getVariable('room', '未知房间')}" ) data["任务"] = self.session.cmds["jobmanager"].currentJob data["状态"] = self.session.cmds["jobmanager"].currentStatus data["忙闲"] = "忙" if self.session.getVariable("is_busy", False) else "闲" data["战斗"] = self.session.getVariable("is_fighting", False) return data 以下是插件最新版本 websocket.2.0.5.zip
  • 北大侠客行,线索名称与房间名对应关系校正

    MUD游戏讨论区
    2
    0 赞同
    2 帖子
    242 浏览
    粉
    收到,好东西,谢谢分享
  • PyMUD 更新 0.22.5 版

    已移动 公告与通知
    1
    0 赞同
    1 帖子
    254 浏览
    N
    0.22.5 (2026-05-02) 功能新增: 为Session类型增加 invalidate 方法,调用该方法时,只有本会话是当前会话时,该方法才会调用 PyMudApp.invalidate() 进行刷新。 注意事项: 对于在个人脚本中调用的 session.application.invalidate() 方法,建议改成 session.invalidate()。因为会话的刷新会判断前台,而application的刷新会强制刷新。 功能新增: 增加 lazy 模式,当设置为 lazymode 模式时,即使 PyMudApp.invalidate() 的调用也不会进行显示刷新,系统仅保留在切换会话、以及定时1s材记性刷新。该模式可以通过快捷键F4切换。在lazy模式下,最底下状态栏右侧会显示"LAZY"提示。该模式可以用于在后台挂机运行时,降低CPU占用率。 功能新增: 增加 verbatim 模式,当设置为 verbatim 模式时,所有命令行输入的命令,都不会进行解析,直接发送到服务器。该模式可以通过快捷键F3切换。在 verbatim 模式下,最底下状态栏右侧会显示"VERB"提示。 功能新增: 增加一个非解析提示符"/",当在命令行行首使用该提示符时,所有后续命令不进行任何解析,直接发送到服务器。该提示符可以通过 pymud.cfg 中的 noparser 进行覆盖。此提示符相当于临时使用 verbatim 模式。 功能新增: 增加设置 "cmd_prefix",当配置该参数后,在窗口中的命令回显或者log记录中,输入的命令会带有该前缀。改配置默认为空白,可以通过 pymud.cfg 中的 cmd_prefix 进行覆盖。同步调整了命令的显示样式,与info默认值相同。 功能调整:在#var等命令执行之后,会调用del删除创建的临时列表,以加快内存释放。 功能调整: 在会话被关闭时,会调用del对会话中的相关对象同步进行清除,并使用代码调用执行垃圾回收(但我测试了,并没有啥用处,内存占没什么变化)。 问题修复: 修复了在使用网络配置(包括指定IP和使用socks5代理)连接服务器后,当断开后,再重新执行 #con 不会再次调用网络配置,而是直接使用默认配置的问题。 English update history is translated by TRAE (GLM5) 0.22.5 (2026-05-02) New Feature: Added invalidate method to Session class. When called, it only triggers PyMudApp.invalidate() for refresh if the current session is the active session. Note: For session.application.invalidate() calls in personal scripts, it is recommended to change to session.invalidate(). Because session refresh checks for foreground status, while application refresh forces a refresh. New Feature: Added lazy mode. When lazy mode is enabled, even PyMudApp.invalidate() calls will not trigger display refresh. The system only refreshes when switching sessions or on a 1-second timer. This mode can be toggled with the F4 hotkey. In lazy mode, "LAZY" is displayed on the right side of the bottom status bar. This mode can be used to reduce CPU usage when running in the background. New Feature: Added verbatim mode. When verbatim mode is enabled, all commands entered in the command line are sent directly to the server without any parsing. This mode can be toggled with the F3 hotkey. In verbatim mode, "VERB" is displayed on the right side of the bottom status bar. New Feature: Added a non-parsing prefix "/". When this prefix is used at the beginning of a command line, all subsequent commands are sent directly to the server without any parsing. This prefix can be overridden via noparser in pymud.cfg. This prefix is equivalent to temporarily using verbatim mode. New Feature: Added "cmd_prefix" setting. When configured, command echo in the window or log records will display commands with this prefix. Default is empty, can be overridden via cmd_prefix in pymud.cfg. Also adjusted command display style to match the default info style. Improvement: After executing commands like #var, temporary lists created are deleted using del to speed up memory release. Improvement: When a session is closed, related objects in the session are cleared synchronously using del, and garbage collection is triggered programmatically (however, testing showed no significant effect on memory usage). Bug Fix: Fixed the issue where after disconnecting, when you using #con, the default network configuration is used instead of the one you specified.
  • PyMUD 0.22.4 正式版发布

    已移动 公告与通知
    1
    0 赞同
    1 帖子
    442 浏览
    N
    0.22.4 (2026-02-24) 功能新增: 当一台设备拥有多个网卡和IP时,可以指定使用哪个IP进行连接。 功能新增: 支持直接使用socks5代理进行连接。可以支持无需认证的代理(如ssh -D创建的socks5代理),和用户名密码认证的代理。 功能新增: 上述两功能,通过新增的 network 配置字典来实现,也可以在#session, #connect命令中直接指定。使用方式见下方。 问题修复: 修复了提示错误代码时不正确显示函数名、文件名和行数的情况 问题修复: 修复了内存监控启动代码BUG导致无法正常监控的问题 其他变更: 完善修复了所有涉及 basedpyright 提示不符合编码标准的内容,改为更符合编码标准的写法 其他变更: 默认的 remain_last_input 现在设置为 True 了 其他变更: 新版的 SessionBuffer 确认可以正常运行,删除了原来的 SessionBuffer 实现 其他变更: 移除了所有不需要的 import 内容 其他变更: 当所有会话都被关闭后,底下的状态窗口将会清空 多IP网络/Socks5代理连接使用方法: 首先在pymud.cfg中增加配置字段 network,内容如下(如果复制使用,请删除注释内容): { // 放在根节点内部即可 "network" : { "ipv6": false, // 是否启用ipv6,可接受 true|false,默认为false。该设置仅会影响 auto 模式模式,即设置 auto 模式是否会自动获取IPv6地址 "local_addr": "auto", // 本地绑定的IP地址,可接受 auto|preset,默认auto,即自动获取本地所有网络设备的IP,当配置为 preset 时,会使用ip_list中的IP "ip_list": [ // 当local_addr设置为 preset 时,需要配置该字段,用于指定使用哪个IP进行连接。 "192.168.1.100", "192.168.2.100", ], "proxy": true, // 是否启用代理,可接受 true|false,默认为false。 "proxies": { // Socks5代理列表,可配置多个,即可以使用无密码的代理,也可以使用用户名密码认证的代理。 "proxy1": "socks5://192.168.6.66:1080", // 使用proxy1标识该无密码代理 "proxy2": "socks5://user:password@yoursock5proxy.site:1080", // 使用proxy2标识该用户名密码认证代理 } } } 当配置完成后,启动pymud时, 世界菜单中,每一个角色的都会添加一个下级菜单,将IP和代理列表中的代理都添加为子菜单。此时,角色自身菜单,以及下级子菜单都可以单机连接到服务器。 当依然单机角色菜单时,会使用系统当前默认网络设备进行连接。 当点击角色下级菜单中的IP时,会指定绑定该IP进行连接。例如,一台设备有2个网卡,一个连接到电信网络,一个连接到联通网络,即使系统设置默认连接是网卡1电信网络,通过IP绑定也可以使用联通网络连接到服务器。 当点击角色下级菜单中的代理时,会指定使用该代理进行连接。例如,在配置中增加了一个代理 proxy1,当点击角色下级菜单中的 proxy1 时,会使用该代理进行连接。 也可以在#session/#connect命令中指定IP或代理。二者语法相同,都是在最后面增加了 >> 来指定IP或代理。注意,>>之后的IP或者代理之间没有空格。例如: #session pkuxkx.newstart >>#2 # 指定使用ip_list中(当local_addr设置为 preset 时)或自动获取的ip列表(也会显示在菜单上)的第2个(序号从1开始)IP进行连接 #session pkuxkx.newstart >>@proxy1 @ 指定使用proxies中配置的proxy1代理进行连接 #con >>>#1 # 会话断开后(比如使用#dis命令),可以使用 #con 重新指定以第1个IP连接。 #con >>socks5://192.168.6.67:1080 # 也可以在命令直接指定新的socks5代理。(IP只能使用序号指定,不接收手动填入) #con命令也可以使用三个大于号 >>> 来连接。这二者区别在于,当使用 >> 时,该配置会变成本会话的默认配置,下次直接 #con 就是使用该配置;而使用 >>> 时,只是临时指定该配置,下次 #con 还是会使用原先的配置。
  • 初探pymud的自动地图功能

    PyMUD讨论区
    9
    0 赞同
    9 帖子
    1k 浏览
    T
    以下为过程中的一些心得: 1 . 探索地图和使用已经被证明是正确的地图是完全两回事,探索过程中进入任何房间即使所有信息一致,也得证明它是新房间还是已经探明的房间。 2. 房间之间的连接不全都是互逆的,有些出口是单向的。 3. 房间允许看向四周获得信息,这些信息对辅助定位非常重要。把这些可以获得的信息整合到一起,用特定顺序组织后转换为哈希码,作为该房间的身份签名(signature),这个签名有不同的等级,可分为房间名、房间描述+出口、周围房间名+出口、周围房间名+描述+出口,房间签名用于比对两个房间是不是同一个房间。 4. 有些房间并非一成不变的,它可以自己随机变化,比如:骰子房,房间描述随着骰子的变化在不停的变化;有些房间描述会因为玩家的互动而变化。 5. 有些地图中的结构完全对称,即有些房间不但自身签名完全一致而且它周围房间的签名也完全一致,要探索很远才能确定它是哪一个。 6. 有些房间进入需要特定条件或被npc拦截,不过这个基于pymud的命令很好解决。 7. 迷宫内的房间和常规房间完全不同的逻辑,要提前提取迷宫入口特征,把对应的入口识别出来在代码中封住。 8. 深度优先排重需要角色可以回到备选房间,如果附近有单向出口,导致回溯失败会从而测绘出错。 9. 探索过程中对于可通过的连接,必须保证100%可以执行成功,这是探索地图的基石。 10. 如果对游戏了解,知道某些房间是独一无二的,即一旦进入就知道自己的位置,需要提前写进列表中,作为探索地图的锚点。 11. 原则上只相信通过移动而获得的连接,但为提高效率,把那些移动后彼此通过look可以确认互逆方向的房间签名匹配的连接直接写进数据库,而无需实际移动
  • PyMUD 0.22.2 正式版发布

    已移动 公告与通知
    5
    0 赞同
    5 帖子
    659 浏览
    T
    不知道为什么现在又可以了 这个功能挺好~~~~
  • ssh 命令详解

    个人博客区
    3
    0 赞同
    3 帖子
    422 浏览
    N
    按字母顺序排列的详解速查: SSH 客户端参数详解 ssh (Secure Shell) 是一个用于安全远程登录和执行命令的工具。以下参数基于 OpenSSH 客户端。 常用参数概览 ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-P tag] [-p port] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command [argument ...]] ssh [-Q query_option] 参数详细说明 参数 说明 -4 强制使用 IPv4 地址。 -6 强制使用 IPv6 地址。 -A 启用认证代理转发。允许远程主机通过本地 SSH 代理进行认证。 -a 禁止认证代理转发。 -C 启用压缩。所有数据在传输前都会被压缩。 -f 后台运行。SSH 会在执行命令前转入后台,通常与 -n 配合使用。 -g 允许远程主机连接本地转发的端口。如果不使用此选项,端口转发仅绑定到本地回环地址。 -i identity_file 指定用于公钥认证的私钥文件路径(例如 ~/.ssh/id_rsa)。 -l login_name 指定登录远程主机的用户名。 -N 不执行远程命令。仅用于端口转发。 -n 将标准输入重定向到 /dev/null。通常用于后台运行 SSH。 -p port 指定远程 SSH 服务监听的端口号(默认为 22)。 -q 静默模式。抑制所有警告和诊断信息。 -t 强制分配伪终端。对于运行全屏程序(如 top 或文本菜单)非常有用。 -v 详细模式。打印调试信息。可使用多个 -v(如 -vvv)以增加详细程度。 -X 启用可信的 X11 转发。 -x 禁用 X11 转发。 -Y 启用可信的 X11 转发(比 -X 更宽松的信任级别)。 -y 启用信任的 X11 转发(与 -Y 类似,具体行为可能依赖于实现)。 -B bind_interface 指定 SSH 客户端发送数据包的网络接口。 -b bind_address 在本地主机上绑定指定的源地址(源 IP)发出连接。 -c cipher_spec 指定用于加密会话的加密算法。 -D [bind_address:]port 指定本地动态应用程序级端口转发。SSH 将充当 SOCKS 代理服务器。 -E log_file 将调试日志追加到指定的文件中。 -e escape_char 设置转义字符(默认为 ~)。 -F configfile 指定一个替代的配置文件(默认为 ~/.ssh/config)。 -I pkcs11 指定 PKCS#11 共享库的路径,用于硬件安全密钥。 -J destination 指定跳转主机(Jump Host)。格式为 [user@]host[:port],可指定多个。 -L address 指定本地端口转发。将本地端口映射到远程主机的某个端口。 -m mac_spec 指定用于数据完整性校验的消息认证码(MAC)算法。 -O ctl_cmd 控制一个正在运行的 SSH 多路复用主进程(如 check, exit, stop)。 -o option 以 选项=值 的形式指定配置选项(如 -o StrictHostKeyChecking=no)。 -P tag 与 -Q 一起使用,用于查询特定的配置参数。 -R address 指定远程端口转发。将远程主机的端口映射到本地主机的某个端口。 -S ctl_path 指定用于连接共享的控制套接字路径。 -W host:port 将本地标准输入输出直接连接到远程主机的指定端口。 -w local_tun[:remote_tun] 请求 TUN/TAP 接口转发,用于创建虚拟专用网络(VPN)。 -Q query_option 查询可用的加密算法、MAC 等信息(如 ssh -Q cipher)。 使用示例 基本连接: ssh user@hostname 指定端口: ssh -p 2222 user@hostname 本地端口转发: ssh -L 8080:localhost:80 user@hostname (将本地 8080 转发到远程的 80) 动态端口转发(SOCKS 代理): ssh -D 1080 user@hostname 后台运行并静默: ssh -f -N -L 8080:localhost:80 user@hostname
  • 如何实现session断线重连的功能呢

    PyMUD讨论区
    3
    0 赞同
    3 帖子
    454 浏览
    T
    多谢群主大人~~~~~~
  • 中文MUD都有什么站点

    MUD游戏讨论区
    4
    0 赞同
    4 帖子
    603 浏览
    O
    风云五 106.12.197.143:5555
  • 一个极简COMMAND的演示代码

    PyMUD讨论区
    5
    1 赞同
    5 帖子
    571 浏览
    T
    command还可以返回值,所以可以把一个大任务分解成若干具有返回值的command,根据返回值判断下一步操作
  • AI软件开发的又一里程碑

    程序开发讨论区
    2
    0 赞同
    2 帖子
    336 浏览
    N
    结果很快就被打脸了 https://m.toutiao.com/article/7596878729889071651/?app=news_article&timestamp=1768895064&use_new_style=1&req_id=2026012015442459992E389CA4B86EA3F6&group_id=7596878729889071651&req_id_new=2026012015442459992E389CA4B86EA3F6&chn_id=-3&share_did=MS4wLjACAAAAlmN2N2xl45m9DDeD3nvO8q6O3z7rT3nl__fkiK7DyVN8qDpvraWOQtfNac-DtgDZ&share_uid=MS4wLjABAAAAnPLB9vmFy-HOkJvCwwnpOsLW9ionGSGMcG7SBIjSexDXabGKsm-Jq9qVVWGHoLz8
  • #help close 没有-f的说明

    PyMUD讨论区
    3
    1
    0 赞同
    3 帖子
    350 浏览
    N
    0.22.3版已增加