跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Cerulean)
  • 不使用皮肤
折叠
品牌标识

PyMUD官方论坛

N

newstart

@newstart
Global Moderator
关于
帖子
19
主题
6
分享
0
群组
1
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 如何加载不同模块(.py)?
    N newstart

    @shanghua 在 如何加载不同模块(.py)? 中说:

    https://www.pkuxkx.net/forum/thread-50002-1-1.html

    跟这帖子不一样吗?

    一样的,就是这个🤣

    PyMUD讨论区

  • 如何加载不同模块(.py)?
    N newstart

    很好,就是需要有探索精神😂🤣

    PyMUD讨论区

  • 如何加载不同模块(.py)?
    N newstart

    你可以试试看,我不太确定行不行,main.py不知道放什么的话,不用也没关系

    PyMUD讨论区

  • 如何加载不同模块(.py)?
    N newstart

    步骤一:先把目录结构改成这样的

    > 
    > |-----mud_main.py              # 主入口
    > |-----pymud.cfg                # 配置文件,设置default_script": [" mud_main"]
    > |-----xkx/                     # 此处增加一个目录,作为package管理所有的下级模块
    >       |----- __init__.py       # 此处增加一个空文件,文件名必须为 __init__.py 用来指示 xkx 这个目录是一个 package。下级每一个子目录都要增加一个 __init__.py 的空文件
    >       |----- main.py           # 建议增加一个包内的最终管理文件,通用的配置都放在这里,mud_main.py仅保留入口检查功能
    >       |----- triggers/
    >             |----- __init__.py                   # 空文件,指示为package
    >             |----- common_triggers.py            # 通用trigger
    >       |----- commands/
    >             |----- __init__.py                   # 空文件,指示为package
    >             |----- fight.py                      # fight 模块
    
    

    步骤二: mud_main.py 的内容写成这样的

    import os
    from pymud import IConfig, Session
    
    class EntryConfig(IConfig):
        def __init__(self, session: Session, *args, **kwargs):
            reload = kwargs.get("reload", False)    # 处理参数里的 reload, 用于支持 #reload mud_main 就可以重新加载所有脚本
            self.session = session
            
            # 脚本加载顺序
            mods = list()
            current_dir = os.path.dirname(__file__)        # 获取当前文件所在的目录
            root_dir = os.path.join(current_dir, "xkx")    # 当前目录下的xkx目录
    
            dir = os.path.join(root_dir, "triggers")           # 处理triggers子目录下的所有文件
            if os.path.exits(dir):
                for file in os.listdir(dir):
                    if file.endswith(".py") and (not file.startswith("__")):     #获取目录下的所有.py文件,并排除 __init__.py
                        mods.append(f"xkx.triggers.{file[:-3]}")
    
            dir = os.path.join(root_dir, "commands")     # 处理 commands目录下的所有文件,原理同上
            if os.path.exists(dir):
                for file in os.listdir(dir):
                    if file.endswith(".py") and (not file.startswith("__")):     #获取目录下的所有.py文件,并排除 __init__.py
                        mods.append(f"xkx.commands.{file[:-3]}")
    
            mods.append("xkx.main")                           # 通用的main文件可能会调用其他模块内容,放在最后
    
            session.load_module(mods)
    
            if reload:                     # 处理 reload
                session.reload_module(mods)
    
            self.mods = mods     # 保存mods供unload使用
    
        def __unload__(self):
            # 卸载时按照加载的反向顺序逐个卸载
            for mod in reversed(self.mods):
                self.session.unload_module(mod)
    
    

    后续要往子目录里增加文件,直接加 xxx.py 就可以了,在子目录下的文件会被自动获取并加载。

    PyMUD讨论区

  • 新版功能测试中
    N newstart
    • 可以进行内存占用分析了(不过分析自身很占资源)
      内存占用分析.png

    • #var命令可以处理嵌套命令了!
      #var获取嵌套变量对象.png

    本版本还在测试中,尽请期待 🙂

    PyMUD讨论区

  • 关于多行Trigger的讨论
    N newstart

    很多时候都是这么实现的,比如抓房间描述不确定多少行时,用房间名做首行触发,用出口描述做结束触发,中间再判断是什么。

    PyMUD讨论区

  • 关于多行Trigger的讨论
    N newstart

    或者可以自己定义多个触发器来配合实现总行数不确定的情况,比如第一个触发器tri1仅触发首行,第二个tri2仅触发尾行,第三个触发器tri3用 .* 作为全部匹配。当第一个触发器触发时,打开第三个触发器,然后对每一个进行判断;当第二个触发器触发时,关闭第三个触发器,这样就能全部手动处理了。

    PyMUD讨论区

  • 关于多行Trigger的讨论
    N newstart

    PyMUD的多行触发是以开头第一行作为标志的,所以patterns的第一行必须要是一个有明显特征的行。只要首行不会匹配到其他内容,那么后续N行的出发匹配都OK。

    PyMUD讨论区

  • RFC #854 TELNET 协议规范
    N newstart

    TELNET RFC文档概述

    RFC #854 TELNET 协议规范

    0. 基本信息

    WEB页面:https://www.rfc-editor.org/rfc/rfc854.html
    发布日期:1983-05
    本RFC为ARPA互联网社区指定了一个标准。ARPA互联网上的主机预计将采用并实施本标准。
    

    1. 引言

    TELNET协议的目的是提供一种相当通用的、双向的、面向八位字节的通信设施。它的主要目标是允许一种将终端设备和面向终端的过程相互连接的标准方法。可以设想,该协议也可以用于终端通信(“链接”)和过程过程通信(分布式计算)。
    

    2. 一般考虑

    TELNET连接是一种传输控制协议(TCP)连接,用于传输带有穿插TELNET控制信息的数据。
    TELNET协议建立在三个主要思想之上:第一,“网络虚拟终端”(Network Virtual Terminal, NVT)的概念;第二,协商选择权原则;第三,终端和过程的对称视图。
    
    1. 当首次建立TELNET连接时,假设每一端都在“网络虚拟终端”(NVT)发起和终止。NVT是一种假想的设备,它提供规范终端的标准、网络范围的中间表示。这就不需要“服务器”和“用户”主机来保存有关彼此终端特性和终端处理约定的信息。所有主机,包括用户和服务器,都映射其本地设备特性和约定,以便看起来是在处理网络上的NVT,并且每个主机都可以由另一方进行类似的映射。NVT旨在在过度限制(没有为主机提供足够丰富的词汇表来映射到其本地字符集)和过度包容(惩罚使用普通终端的用户)之间取得平衡。
      注:“用户”主机是物理终端通常连接到的主机,“服务器”主机是通常提供某些服务的主机。作为另一种观点,即使在终端到终端或过程到过程通信中也适用,“用户”主机是发起通信的主机。
    2. 协商选项的原则考虑到这样一个事实,即许多主机将希望提供超过NVT内可用服务的额外服务,并且许多用户将拥有复杂的终端,并且希望拥有优雅的服务,而不是最低限度的服务。独立于TELNET协议,但在TELNET协议中结构化的是各种“选项”,这些选项将被批准,并可与“DO,DON’T,WILL,WON’T”结构(如下所述)一起使用,以允许用户和服务器同意为其TELNET连接使用一组更详细(或可能只是不同)的约定。这些选项可能包括更改字符集、回声模式等。
      设置选项使用的基本策略是让任何一方(或双方)发起请求,要求某些选项生效。然后,另一方可以接受或拒绝该请求。如果请求被接受,该选项将立即生效;如果被拒绝,则连接的相关方面保持为针对NVT所指定的。显然,一方可能总是拒绝启用某个选项的请求,并且决不能拒绝禁用某个选项,因为所有各方都必须准备好支持NVT。
      选项协商的语法已经设置好,如果双方同时请求一个选项,双方都会将对方的请求视为对自己的肯定确认。
    3. 协商语法的对称性可能会导致非终止确认循环——各方将传入的命令视为必须确认的新请求,而不是确认。为防止此类循环,以以下规则为准:
    • a. 缔约方只能要求更改选项状态;也就是说,一方不能仅仅为了宣布其处于何种模式而发出“请求”。
    • b. 如果一方收到似乎是进入其已经处于的某种模式的请求,则不应确认该请求。这种不回应对于防止谈判中无休止的循环至关重要。即使模式没有更改,也需要对更改模式的请求发送响应。
    • c. 当一方向第二方发送选项命令时,无论是作为请求还是确认,并且该选项的使用将对从第一方发送到第二方的数据的处理产生任何影响,则该命令必须在希望其生效的点插入数据流中。(需要注意的是,从发送请求到收到确认之间会经过一段时间,这可能是否定的。因此,主机可能希望在请求选项后缓冲数据,直到它知道请求是被接受还是被拒绝,以向用户隐藏“不确定期”。)
      当TELNET连接首次建立时,选项请求可能会来回奔波,因为各方都试图从另一方获得尽可能好的服务。然而,除此之外,还可以使用选项来动态修改连接的特性,以适应不断变化的本地条件。例如,正如稍后将要解释的那样,NVT使用的传输规程非常适合许多“一次一行”的应用程序,如BASIC,但不太适合许多“每次一个字符”的应用,如NLS。当“一次一个字符”规则适合本地进程并协商合适的选项时,服务器可能会选择投入该规则所需的额外处理器开销。然而,当不再需要详细控制时,它可以切换(即协商)回NVT,而不是永久地承受额外的处理开销。
      如果进程仅通过重新请求选项来响应拒绝,则进程发起的请求可能会激发非终止请求循环。为了防止这种循环的发生,被拒绝的请求不应该重复,直到发生变化。在操作上,这可能意味着进程正在运行不同的程序,或者用户已经给出了另一个命令,或者在给定进程和给定选项的上下文中有意义的任何东西。一个很好的经验法则是,重新请求只应作为来自连接另一端的后续信息的结果或当本地人工干预要求时发生。
      选项设计者不应感到受到可用于选项谈判的有限语法的约束。简单语法的目的是让选择变得容易——因为相应地,人们很容易声称对它们一无所知。如果某个特定选项需要比“DO,DON’T,WILL,WON’T”更丰富的谈判结构,那么正确的策略是使用“DO,DO’T,WILL,WON”来确定双方都理解该选项,一旦完成,就可以自由使用更奇特的语法。例如,一方可能会发送更改(建立)线路长度的请求。如果它被接受,那么可以使用不同的语法来实际协商线路长度——这样的“子协商”可能包括最小允许、最大允许和所需线路长度的字段。重要的概念是,在之前的一些(标准)谈判已经确定双方都能够解析扩展的语法之前,这种扩展的谈判永远不应该开始。
      总之,任何一方发送WILL XXX,以表明该方希望(要约)开始执行选项XXX,DO XXX和DOT XXX是其肯定和否定的确认;类似地,发送DO XXX以指示希望(请求)另一方(即DO的接收方)开始执行选项XXX,WILL XXX和WON’T XXX作为肯定和否定的确认。由于NVT是在没有启用选项的情况下剩下的,因此“DON'T”和“WON'T”响应保证使连接处于两端都可以处理的状态。因此,所有主机都可以在完全不知道不支持的选项的情况下实现其TELNET进程,只需对无法理解的任何选项请求返回拒绝(即拒绝)即可。
      TELNET协议已经尽可能地实现了服务器-用户对称,因此它可以轻松自然地涵盖用户-用户(链接)和服务器-服务器(协作进程)的情况。人们希望,但并非绝对需要,各种选择将进一步推动这一意图。无论如何,人们明确承认对称是一种操作原理,而不是一条铁律。
      应查阅配套文件“TELNET选项规范”,以获取有关建立新选项的程序的信息。

    3. 网络虚拟终端(Network Virtual Terminal, NVT)

    网络虚拟终端(NVT)是一种双向字符设备。NVT有一台打印机和一个键盘。打印机响应输入数据,键盘产生输出数据,通过TELNET连接发送,如果需要“回声”,也发送到NVT的打印机。“回声”将不会穿过网络(尽管存在启用“远程”回声操作模式的选项,但不需要主机来实现此选项)。代码集是八位字段中的七位USASCII,此处修改的除外。任何代码转换和时序考虑都是局部问题,不会影响NVT。
    

    3.1 传输数据

    尽管通过网络的TELNET连接本质上是全双工的,但NVT应被视为在线路缓冲模式下运行的半双工设备。也就是说,除非协商了相反的选项,否则以下默认条件适用于通过TELNET连接传输数据:
    
    1. 只要本地缓冲区空间的可用性允许,数据应该在生成数据的主机中累积,直到完整的数据线准备好传输,或者直到出现一些本地定义的要传输的显式信号。该信号可以由过程产生,也可以由人类用户产生。
      这条规则的动机是,对一些主机来说,处理网络输入中断的成本很高,再加上默认的NVT规范,即“回声”不会穿过网络。因此,在其源处缓冲一定数量的数据是合理的。许多系统在每条输入线的末端进行一些处理操作(即使是行式打印机或打卡器也经常以这种方式工作),因此传输应该在线的末端触发。另一方面,用户或过程有时可能会发现有必要或希望提供不终止于线路末端的数据;因此,提醒实施者提供本地发信号通知所有缓冲数据应立即传输的方法。

    2. 当进程已完成向NVT打印机发送数据,并且没有来自NVT键盘的排队输入以供进一步处理时(即,当TELNET连接一端的进程在没有另一端输入的情况下无法继续进行时),该进程必须发送TELNET Go Ahead(GA)命令。
      此规则并不要求从每行末尾的终端发送TELNET GA命令,因为服务器主机通常不需要特殊信号(除了行末尾或其他本地定义的字符)来开始处理。相反,TELNET GA旨在帮助用户的本地主机操作物理上的半双工终端,该终端具有“可锁定”键盘,如IBM 2741。对这种类型的终端的描述可能有助于解释GA命令的正确使用。
      终端计算机连接始终处于用户或计算机的控制之下。双方都不能单方面从对方手中夺取控制权;相反,控制端必须明确地重新隐藏其控制。在终端,硬件的构造是为了在每次“线路”终止时(即,当用户键入“新行”键时)放弃控制。当这种情况发生时,连接的(本地)计算机处理输入数据,决定是否应该生成输出,如果不应该,则将控制权返回给终端。如果应该生成输出,则计算机将保留控制权,直到所有输出都已传输。
      通过网络使用这种类型的终端的困难应该是显而易见的。“本地”计算机在看到线路末端信号后不再能够决定是否保留控制;这个决定只能由处理数据的“远程”计算机做出。因此,TELNET GA命令提供了一种机制,“远程”(服务器)计算机可以向“本地”(用户)计算机发出信号,表示是时候将控制权交给终端用户了。它应该在这些时间发送,并且只有在用户应该被赋予终端控制权时才发送。请注意,GA命令的过早传输可能会导致输出阻塞,因为用户可能会认为传输系统已经暂停,因此他将无法手动扭转线路。

      当然,上述内容不适用于用户到服务器的通信方向。在这个方向上,GA可以在任何时候发送,但不需要发送。此外,如果TELNET连接用于进程到进程的通信,则无需向任何方向发送GA。最后,对于终端到终端的通信,可能在任一方向、一个方向或两个方向上都不需要GA。如果主机计划支持终端到终端的通信,则建议主机向用户提供手动发信号通知通过TELNET连接发送GA的时间到了的方式;然而,这并不是TELNET流程实现者的要求。
      请注意,TELNET模型的对称性要求TELNET连接的每一端都有一个NVT,至少在概念上是这样。

    3.2 控制功能的标准表示

    如本文件导言所述,TELNET协议的主要目标是通过网络提供终端设备和面向终端的进程的标准接口。这种类型的互连的早期经验表明,某些功能是由大多数服务器实现的,但调用这些功能的方法差异很大。对于与多个服务器系统交互的人类用户来说,这些差异非常令人沮丧。因此,TELNET为其中五个函数定义了一个标准表示,如下所述。这些标准表示具有标准但非必需的含义(使用TELNET的其他协议可能需要中断处理(IP)功能除外);也就是说,不向本地用户提供功能的系统不需要向网络用户提供功能,并且可以将功能的标准表示视为“否”操作。另一方面,向本地用户提供功能的系统必须向发送该功能的标准表示的网络用户提供相同的功能。
    
    3.2.1 中断过程 Interrupt Process (IP)
    许多系统提供暂停、中断、中止或终止用户进程操作的功能。当用户认为自己的进程处于无休止的循环中,或者无意中激活了不需要的进程时,经常使用此功能。IP是调用此函数的标准表示形式。实施人员应注意,使用TELNET的其他协议可能需要IP,因此,如果要支持这些其他协议,则应实施IP。
    
    3.2.2 中止输出 Abort Output (AO)
    许多系统提供了一种功能,该功能允许正在生成输出的进程运行到完成(或达到与运行到完成时相同的停止点),但不将输出发送到用户的终端。此外,该功能通常清除已经产生但尚未实际打印(或显示)在用户终端上的任何输出。AO是调用此函数的标准表示。例如,一些子系统通常可以接受用户的命令,向用户的终端发送一个长文本字符串作为响应,最后通过向用户的端子发送一个“提示”字符(前面有<CR><LF>)来表示准备接受下一个命令。如果在传输文本字符串的过程中接收到AO,则合理的实现方式是抑制文本字符串的剩余部分,但传输提示字符和前面的<CR><LF>。(这可能与接收到IP时可能采取的操作不同;IP可能会导致文本字符串被抑制并退出子系统。)
    应该注意的是,通过提供该功能的服务器系统,可能存在系统外部的缓冲区(在网络和用户的本地主机中),这些缓冲区应该被清除;实现这一点的适当方法是向用户系统发送“Synch”信号(如下所述)。
    
    3.3.3 你在吗 Are You There (AYT)
    许多系统提供一种功能,该功能向用户提供一些可见(例如,可打印)的证据,表明系统仍在运行。当系统出乎意料地长时间“静默”时,用户可能会调用此函数,因为计算的长度出乎意料(用户),系统负载异常重等。AYT是调用此函数的标准表示。
    
    3.3.4 删除字符 Erase Character (EC)
    许多系统提供了一种功能,可以从用户提供的数据流中删除最后一个在前未删除的字符或“打印位置”*。此功能通常用于在出现键入错误时编辑键盘输入。EC是调用此函数的标准表示。
    注意:“打印位置”可能包含几个字符,这些字符是重击的结果,或是<char1>BS<char2>等序列的结果。。。
    
    3.3.5 删除行 Erase Line (EL)
    许多系统提供删除当前输入“行”中所有数据的功能。此功能通常用于编辑键盘输入。EL是调用此函数的标准表示。
    
    个人博客区

  • PyMUD运行的好伙伴 - uv包管理器
    N newstart

    因为PyMUD开发需要经常在多个Python版本下测试是否有效,以前使用传统的pyenv来创建虚拟环境解决问题,后来发现操作起来实在太过于繁琐,因此找到了一款新的基于命令行的包管理工具, uv,完整替代了我所有的需求,包括不同Python版本的管理、虚拟环境、依赖管理等等,而且 uv 是通过 rust 开发,支持并发操作,碰到新环境搭建需要 pip 拉取一堆依赖项时,速度极快,已经是我正常开发和运行过程中不可缺少的工具了,现在推荐给大家。

    相关链接
    • 代码 https://github.com/astral-sh/uv
    • 文档 https://docs.astral.sh/uv/
    官宣的我觉得很有用的特点
    • 🚀 用一个工具替代 pip,pip-tools,pipx,poetry,pyenv,twine,virtualenv 等等
    • ⚡️ 比标准pip快10~100倍。
    • 🐍 可用于安装和管理 Python 版本。
    • 🛠️ 管理pypi发布的 Python 包。
    • ⏬ 可以通过curl或者pip安装,而无需安装 Rust 或 Python。
    • 🖥️ 跨平台,支持 macOS、Linux 和 Windows。

    详细信息可参见官方文档 😊

    个人博客区

  • 最近发现一个奇怪的BUG
    N newstart

    不知道为什么,在某些时候,PyMUD启动时偶尔会出现无法识别类型的情况,报错为类似 "Trigger对象不包含session属性" 这种,似乎是不同地方import的Session类型不一致,比如pymud.Session和pymud.session.Session不能被识别为一个类型,因此导致 isinstance(session, Session)判断失败,再进一步就是所有脚本加载均会被认为是从脚本。最终处理都是通过重新处理venv环境、重新指定python版本来解决的,更进一步的原因还没有查到。
    不知道各位用户有没有碰到过类似的问题?

    PyMUD讨论区 bug报告

  • PyMUD 0.22.2a2预览版发布
    N newstart

    PyMUD 0.22.2a2预览版已推送到 pypi.org, 感兴趣的可以尝鲜。相对于 0.22.2a1 版和 0.22.1 版主要修改包括:

    • 功能新增: 可以通过.cfg文件指定 "auto_chars" 来定义启动pymud时自动打开的会话。(0.22.2a1新增)
    • 问题修复: 修复GMCPTrigger类型enabled属性不生效问题。 (0.22.2a1新增)
    • 问题修复: 修复添加/删除系统时钟回调时,可能会导致的异常问题。(0.22.2a2新增)
    • 问题修复: 修复在增加系统时钟回调时,如果回调函数代码错误产生异常,会导致系统时钟停顿的问题。(0.22.2a2新增)

    auto_chars 示例

    • 以下 pymud.cfg 代码可以让运行pymud时自动打开会话并登录 mychar2 和 mychar4 :
    {
        "sessions": {
            "pkuxkx": {
                "host": "mud.pkuxkx.net",
                "port": "8081",
                "encoding": "utf8",
                "autologin": "{0};{1}",
                "default_script": ["main"],
                "chars": {
                    "mychar1": ["mycharid1", "mypassword1"],
                    "mychar2": ["mycharid2", "mypassword2"],
                    "mychar3": ["mycharid3", "mypassword3"],
                    "mychar4": ["mycharid4", "mypassword4"],
                }
            }
        },
        "auto_chars": ["mychar2", "mychar4"]
    }
    

    0.22.2a2版修复的错误概述

    本版修复的两个错误主要解决 websocket 插件会调用系统时钟回调来处理sendOverview,但添加/移除回调或者回调写错都会导致系统时钟停止的问题。系统时钟停止后,会导致sendOverview不会再被调用刷新,且控制台ui的连接时间也不会保持每秒自动刷新,而只是随数据变化刷新。

    公告与通知 信息发布 新版发布 预览版

  • 国外的mud有啥推荐的?
    N newstart

    还有这个网站也是:
    https://mudstats.com/

    MUD游戏讨论区

  • 国外的mud有啥推荐的?
    N newstart

    有个网站:https://mushcode.com/mushlist 列出了许多MUD的服务器清单,包括是否活跃,登录人数

    MUSH/MUX List
    Submit To List
    Name Type Status Version Players Connected Average Db Size Stats
    8BitMUSH
    8bit.fansi.org 4201 Social UP TinyBit 1.6 (The One True MUSH Server) 10 11 54219 Stats
    Adults Only
    adults.mushpark.com 6969 Adult UP MUX 2.13.0.0-MP MPARK-ST 1 1 6888 Stats
    Age of Dragons MUX
    portent.genesismuds.com 4910 Fantasy UP MUX 2.10.1.14 0 0 697 Stats
    AmbMinimal
    galaxy.silvren.com 6666 Unknown UP RhostMUSH 4.2.2-4RL(A) 0 0 6797 Stats
    AnotherMUX
    anothermux.org 2860 Social UP MUX 2.12.0.10 2 2 985 Stats
    Ares Demo
    mush.aresmush.com 7206 Social UP AresMUSH 1 0 Stats
    AtlantisMUX
    atlantis.mushpark.com 7777 Fantasy UP RhostMUSH 4.27.1 4 3 44070 Stats
    ATS TrekMUSH
    ats.trekmush.org 1701 Star Trek UP PennMUSH 1.8.8p0 4 4 46416 Stats
    Avalice MUSH
    galaxy.silvren.com 7248 Freedom Planet UP RhostMUSH Alpha 4.0.0RL(A).p3 0 0 342 Stats
    Battle Fantasia MUSH
    pinksugarheartattack.net 2873 Anime UP PennMUSH 1.8.5p5 1 3 781 Stats
    Before the Dawn MUX
    infiniteodysseys.com 7505 Fantasy DOWN MUX 2.10.1.12 7 2642 Stats
    Big Damn MUSH :: Be a Hero
    bigdamn.com 7777 Firefly UP CobraMUSH v0.73p2 [release] 1 1 3848 Stats
    Blood of Dragons
    bod.westeros.org 3000 A Song of Ice and Fire UP PennMUSH 1.8.7p0 9 9 5481 Stats
    BrazilMUX
    brazilmux.tinymux.org 2860 Social UP MUX 2.13.0.4 Alpha 6 5 383 Stats
    Cajun Knights MUSH
    galaxy.silvren.com 2005 Unknown UP RhostMUSH 4.2.2-37RL(A) 0 0 17600 Stats
    Cajun Nights
    galaxy.silvren.com 7373 World of Darkness UP RhostMUSH Alpha 4.1.0RL(A).p2 1 0 17600 Stats
    Calaveras
    71.171.93.80 1510 Television UP PennMUSH 1.8.7p0 0 0 310 Stats
    CaveMUSH
    cavemush.com 6116 Social UP RhostMUSH Alpha 4.1.0RL(A).p2 8 7 10470 Stats
    Champions MUSH
    championsmush.com 6363 Super Hero UP PennMUSH 1.8.4p9 3 1 3300 Stats
    City of Hope MUSH
    cityofhope.genesismuds.com 8888 World of Darkness UP MUX 2.10.1.12 38 30 21889 Stats
    Comic Adventures MUX
    galaxy.silvren.com 4220 Super Hero UP MUX 2.12.0.3 Alpha 8 7 2707 Stats
    Comic Adventures MUX (Rhost Port)
    galaxy.silvren.com 4225 Unknown UP RhostMUSH 4.2.2-8RL(A) 0 0 2251 Stats
    Crystal Singer MUSH
    crystalmush.kydance.net 6886 Anne McCaffrey's Crystal Singer UP TinyMUSH 3.1.p6 4 3 12988 Stats
    Dark Gift
    darkgift.mushpark.com 6251 World of Darkness UP TinyMUSH 3.2 1 1 9319 Stats
    DarkMetal MUSH
    darkmetal2039.com 2039 World of Darkness UP RhostMUSH 4.27.1 3 4 23141 Stats
    Dev Asylum
    rhostdev.mushpark.com 4201 Social UP RhostMUSH 4.27.2 9 8 306 Stats
    DinoMUSH
    dino.surly.org 6250 Social UP TinyMUSH 3.0.p3 19 19 1819 Stats
    Dragonfly Dreams: Egg Game
    dragonflydreams.aresmush.com 4201 Pern UP AresMUSH 0 0 Stats
    Dream Chasers MUSH
    dreamchasers.space 4767 JRPG UP PennMUSH 1.8.8p0 20 16 1964 Stats
    Dry Gulch
    drygulch.aresmush.com 4201 Historical UP AresMUSH 0 0 Stats
    DynamixMUSH
    dynamix.fansi.org 4200 Social UP PennMUSH 1.8.3p10 1 0 9296 Stats
    Elder Tale Online
    eldertaleonline.com 7705 Isekai UP PennMUSH 1.8.8p0 4 2 1261 Stats
    Elements
    galaxy.silvren.com 3333 Unknown UP RhostMUSH Alpha 3.9.4RL(A).p5 0 0 25 Stats
    Elendor
    mush.elendor.net 1892 Tolkien UP PennMUSH 1.7.1p3 Elendor 0 0 32563 Stats
    Elysium MUSH
    elysium.vineyard.haus 3337 Adult UP PennMUSH 1.8.8p0 0 0 1641 Stats
    Estrelitta Chronicles
    galaxy.silvren.com 4444 Unknown UP RhostMUSH 4.2.2-179RL(A) 0 0 179 Stats
    Excelsior!
    excelsior.troll20.com 4201 Marvel UP AresMUSH 1 0 Stats
    Fantasy Moon
    galaxy.silvren.com 2900 Sailor Moon UP RhostMUSH Alpha 4.1.0RL(A).p2 0 0 2936 Stats
    Fate's Harvest
    fatesharvest.com 6464 Changeling: the Lost DOWN MUX 2.12.0.2 Alpha 1 1 6835 Stats
    FedMUSH
    galaxy.silvren.com 2024 Unknown UP RhostMUSH 4.2.2-3RL(A) 2 0 1367 Stats
    From the Ashes: Detroit by Night
    fta.darcness.net 2860 World of Darkness UP MUX 2.12.0.3 Alpha 0 0 1633 Stats
    Fulcrum
    fulcrum.mu 2601 World of Darkness UP RhostMUSH 4.27.1 7 11 13638 Stats
    GATEWAY - The MU* Community
    scrozzle.noderunner.net 6700 Social UP MUX 2.12.0.10 7 5 8369 Stats
    GlobalMUSH
    mildew.org 4201 Social UP MUX 2.6.5.28 7 6 37858 Stats
    Harry Potter: Illusion and Delusion
    chaos.caile.org 5555 Harry Potter UP TinyMUSH 3.1.b11 0 0 1398 Stats
    Heroes Assemble MUSH
    heroesassemble.mushhaven.com 3000 Super Hero UP PennMUSH 1.8.8p0 64 65 7597 Stats
    HyperMUX
    infiniteodysseys.com 7500 Super Hero DOWN MUX 2.10.1.12 0 2751 Stats
    Invocation MUSH
    chaos.caile.org 4444 Pern DOWN TinyMUSH 3.1.b11 0 0 1684 Stats
    Jupiter's Children MUX
    jupiter.iamyourgod.org 3169 Super Hero UP MUX 2.10.1.12 0 0 839 Stats
    Keys
    keys.aresmush.com 4201 Supernatural UP AresMUSH 16 20 Stats
    Legends and Legacies
    lnl.aresmush.com 4201 Super Hero UP AresMUSH 11 10 Stats
    Liberation MUSH
    game.liberationmush.site 2020 World of Darkness UP RhostMUSH 4.27.2 56 57 14510 Stats
    MUS*H
    mush.pennmush.org 4201 Social UP PennMUSH 1.8.8p0 14 14 14088 Stats
    Maelstrom Earth
    mearth.mushpark.com 9376 Super Hero UP MUX 2.13.0.0-MP MPARK-ST 3 2 1974 Stats
    Magical Girl Diaries
    galaxy.silvren.com 7801 Unknown UP RhostMUSH Alpha 3.9.5RL(A).p3 0 0 74 Stats
    Marvel Cinematic Universe
    mo.mushpark.com 2012 Super Hero UP MUX 2.13.0.0-MP MPARK-ST 1 1 6942 Stats
    Mediterranean Nights
    galaxy.silvren.com 8888 World of Darkness UP RhostMUSH Alpha 4.0.0RL(A).p3 0 0 8118 Stats
    MegaMan MUSH
    megamanmush.com 1997 MegaMan UP PennMUSH 1.8.8p0 2 1 4548 Stats
    Miami By Night
    mushhell.com 8250 World of Darkness UP TinyMUSH 3.1.p6 1 1 2 Stats
    Modern Nights Mush
    BigDamnMush.com 1777 World of Darkness UP PennMUSH 1.8.8p0 0 0 2743 Stats
    MPUG (Puggy)
    puggy.mushpark.com 9033 Social UP MUX 2.13.0.0-MP MPARK-ST 9 9 4510 Stats
    Multiverse Crisis MUSH
    multiversemush.com 5001 Multitheme UP PennMUSH 1.8.6p2 40 31 4223 Stats
    MuxNexus CodeStuff
    galaxy.silvren.com 2222 World of Darkness UP RhostMUSH 4.2.2-3RL(A) 0 0 17499 Stats
    NaughtyMuffin MUSH
    muffinmush.club 2469 Adult UP PennMUSH 1.8.6p1 18 16 5872 Stats
    Noirlendale
    mushpark.com 6000 Unknown UP MUX 2.13.0.0-MP MPARK-ST 1 2 4058 Stats
    NoKaOi
    galaxy.silvren.com 1959 Social UP RhostMUSH Alpha 4.0.0RL(A).p2 3 2 2017 Stats
    Obsidian Reverie: Ascendency
    obsidianreverie.com 4201 World of Darkness UP AresMUSH 1 2 Stats
    Olympus Island MUSH
    oim.wolfpaw.net 1960 Super Hero UP PennMUSH 1.7.7p28 0 0 2905 Stats
    On Dragon Wings
    pern.gaslightswitch.com 4201 Pern UP AresMUSH 4 6 Stats
    OscarMUX
    tinymux.hodgeheg.co.uk 2860 Social DOWN MUX 2.10.1.14 0 0 154 Stats
    OtherSpace
    jointhesaga.com 1790 Sci-Fi UP PennMUSH 1.8.8p0 1 1 40650 Stats
    Parlor City
    mush.disloops.com 4201 Social UP PennMUSH 1.8.8p0 1 1 568 Stats
    Passion and Pain
    passion.mushpark.com 1313 Adult UP MUX 2.13.0.0-MP MPARK-ST 1 1 14779 Stats
    Pax Republica: A Star Wars MUSH
    paxrepublica.net 9999 Star Wars UP PennMUSH 1.8.8p0 4 3 1584 Stats
    Penultimate Destination
    penultimatemush.com 9500 Adult UP PennMUSH 1.8.8p0 659 626 12962 Stats
    Persona MUSH
    mysterymeep.net 2012 Anime DOWN PennMUSH 1.8.5p1 0 0 1544 Stats
    PogoMUX
    pogo.mudhosting.net 5555 Social DOWN MUX 2.10.1.12 1 771 Stats
    Pokemorph
    mush.pokemorph.com 2222 Pokemon UP PennMUSH 1.8.8p0 7 5 8816 Stats
    Pokemorph Paradise
    PokemorphParadise.aresmush.com 4201 Pokemon UP AresMUSH 10 11 Stats
    Prospect: From The Ashes
    prs.muxnexus.com 5555 World of Darkness UP RhostMUSH 4.2.2-3RL(A) 8 3 17499 Stats
    Radiant Heart MUSH
    radiantheartmush.com 7777 Anime UP PennMUSH 1.8.8p0 32 35 839 Stats
    Realms of Corl
    chaos.caile.org 4201 Fantasy DOWN TinyMUSH 3.1.b11 0 0 1113 Stats
    Retro MUSH
    galaxy.silvren.com 1984 Transformers UP RhostMUSH Alpha 4.1.0RL(A) 0 0 1154 Stats
    RetroMux
    darcness.net 4201 World of Darkness UP MUX 2.12.0.10 32 26 11608 Stats
    Rhostshyl
    rhostshyl.mushpark.com 4096 Fantasy UP RhostMUSH 4.2.1-6RL(A) 2 2 13473 Stats
    RivaMUSH
    riva.silvren.com 7777 Belgariad UP RhostMUSH Alpha 3.9.3RL(A).p1 1 0 10410 Stats
    SassMUSH
    rabioli.ca 4201 Social UP PennMUSH 1.8.7p0 1 1 117 Stats
    Seekers in the Darkness
    galaxy.silvren.com 3200 Unknown UP RhostMUSH Alpha 4.1.0RL(A) 0 0 29 Stats
    Seven Nations
    sevennations.aresmush.com 2021 Multitheme UP AresMUSH 0 0 Stats
    Shadowrun - Denver
    aelfhame.net 1999 Shadowrun UP TinyMUSH 3.0.p4 20 20 15172 Stats
    Shadowrun: Anarchy MUSH
    galaxy.silvren.com 2816 Cyberpunk UP RhostMUSH 4.2.1-50RL(A) 0 0 321 Stats
    Shangrila MUX
    shangrilamux.com 9999 Adult UP MUX 2.13.0.0-MP MPARK-BB-ST 437 454 44070 Stats
    Shattered
    shatteredmu.com 4201 Fantasy UP AresMUSH 0 1 Stats
    Sheltering Sky: Colorado by Night
    mush.shelteringcolorado.com 2601 World of Darkness UP PennMUSH 1.8.5p3 0 0 10670 Stats
    ShyeMush
    shye.org 1701 Sci-Fi UP TinyMUSH 3.2 0 0 1857 Stats
    SluggyMUX
    sluggy.surly.org 2025 Social UP MUX 2.10.1.13 2 2 13193 Stats
    Sonic Universe
    galaxy.silvren.com 1986 Unknown UP RhostMUSH Alpha 4.1.0RL(A) 0 0 40 Stats
    Spellbound
    spellbound.mugames.org 4201 Supernatural DOWN AresMUSH 3 4 Stats
    Star Trek: Typhon Accords
    startrekkin.net 1701 Star Trek UP CobraMUSH v0.73p4 [fspace] 5 4 8314 Stats
    Star Wars MUSH
    starwarsmush.com 4402 Star Wars UP PennMUSH 1.8.7p0 5 2 12131 Stats
    Star Wars Republic
    silvren.com 6006 Star Wars UP RhostMUSH Alpha 4.1.0RL(A).p1 0 0 3767 Stats
    Star Wars: Age of Alliances
    swaoa-mush.com 5500 Star Wars UP PennMUSH 1.8.7p0 66 57 30108 Stats
    Star Wars: Age of the Empire
    galaxy.silvren.com 6400 Star Wars UP RhostMUSH 4.2.2-3RL(A) 0 0 269 Stats
    Star Wars: From The Ashes
    galaxy.silvren.com 9999 Star Wars UP RhostMUSH Alpha 3.9.5RL(A).p3 0 0 227 Stats
    Star Wars: Rebirth Mush
    game.starwarsrebirth.com 9999 Star Wars UP PennMUSH 1.8.6p1 6 3 6362 Stats
    Star Wars: Regicide
    galaxy.silvren.com 2451 Star Wars UP RhostMUSH 4.2.2-199RL(A) 1 0 3767 Stats
    Star Wars: Restoration
    swrestorationmush.com 4201 Star Wars UP AresMUSH 1 1 Stats
    TaintedEarth
    galaxy.silvren.com 1976 Unknown UP RhostMUSH Alpha 3.9.5RL(A).p3 0 0 65 Stats
    Talislanta
    galaxy.silvren.com 2112 Unknown UP RhostMUSH 4.2.2-40RL(A) 0 0 2197 Stats
    Tenebrae - the Emblem of Ea
    tenebraemush.net 4001 Fantasy UP MUX 2.12.0.10 4 7 3449 Stats
    The Becoming
    bardo.aresmush.com 4201 Fantasy UP AresMUSH 7 11 Stats
    The Edge of Darkness MUSH
    teod.dyndns.org 7410 World of Darkness UP RhostMUSH Alpha 4.0.0RL(A).p3 0 0 11789 Stats
    The Laboratory
    labmush.mushpark.com 3939 Adult UP MUX 2.13.0.0-MP MPARK-ST 1 1 2831 Stats
    The Pantheons Of Earth
    galaxy.silvren.com 1993 Unknown UP RhostMUSH Alpha 3.9.5RL(A).p3 0 0 4 Stats
    The Sixth Estate
    sixth-estate.aresmush.com 4201 Supernatural UP AresMUSH 1 2 Stats
    TinyTIM
    yay.tim.org 5440 Social UP TinyTIM (MUSH) 3 2 96647 Stats
    Titanic Two-Tone Tales Noir
    galaxy.silvren.com 2215 Super Hero UP RhostMUSH Alpha 3.9.5RL(A).p3 0 0 128 Stats
    TMEWYMUSH
    galaxy.silvren.com 9718 Unknown UP RhostMUSH 4.9.0 0 0 76 Stats
    ToobisMU
    toobis.org 4420 Social UP PennMUSH 1.8.8p0 1 64 Stats
    Towers of New Londinium
    game.towersmux.net 4201 World of Darkness UP MUX 2.12.0.10 14 18 3302 Stats
    Transformers Universe MUX
    tfuniverse.mudhosting.net 1976 Transformers DOWN MUX 2.4.2.30 8 15216 Stats
    Twilight Zone the MUSH
    muds.toccobrator.com 9901 Unknown UP RhostMUSH 3.2.4.p18-20U 5 5 1291 Stats
    United Heroes MUSH
    unitedheroesmush.com 1999 Super Hero UP PennMUSH 1.8.8p0 4 5 8087 Stats
    WayPosts
    galaxy.silvren.com 2020 Unknown UP RhostMUSH Alpha 3.9.4RL(A) 0 0 48 Stats
    Wicked Things
    216.136.9.8 4919 Unknown UP TinyMUSH 3.2 0 0 1381 Stats
    Wilde Adventures MUX
    wildeadventures.net 1221 Adult UP RhostMUSH 4.20.1 21 17 50000 Stats
    Wilds of Pern
    wildsofpern.aresmush.com 2021 Pern UP AresMUSH 1 1 Stats
    Winter's Edge
    winter.mushpark.com 3000 Fantasy UP MUX 2.13.0.0-MP MPARK-ST 1 1 5692 Stats
    World Tree MUSH
    worldtreemush.com 4099 Multitheme UP PennMUSH 1.8.8p0 52 54 577 Stats
    Wyrden
    mushpark.com 1972 Unknown UP MUX 2.13.0.0-MP MPARK-ST 2 2 372 Stats
    X-Men: Fight for Freedom
    galaxy.silvren.com 5050 X-Men UP RhostMUSH 4.2.2-3RL(A) 0 0 516 Stats
    Yet Another Fucking Comic MUSH
    nomoreheroes.org 4201 Super Hero UP AresMUSH 18 18 Stats
    YorMUSH
    yormush.com 9988 Adult UP PennMUSH 1.8.8p0 28 30 735 Stats
    Yuriba Mush
    yuriba.com 4201 Adult UP PennMUSH 1.8.6p1 21 20 19935 Stats

    MUD游戏讨论区

  • 国外的mud有啥推荐的?
    N newstart

    我知道一个叫『香格里拉』的,shangrila mux,网址是
    https://www.shangrilamux.com/
    MUD登录是:shangrilamux.com, 端口 9999

    MUD游戏讨论区

  • PyMUD论坛上线啦
    N newstart

    @bigb 在 PyMUD论坛上线啦 中说:

    邮件确认也可以了,但是等了一天邮件才到。

    邮件确认问题是因为我在前天晚上不小心改错了配置,昨天上午修复后重新发的,现在应该没问题。

    公告与通知

  • PyMUD运行的好伙伴 - tmux终端复用器
    N newstart

    windows都有窗口,不需要使用tmux也没关系😊

    个人博客区

  • PyMUD运行的好伙伴 - tmux终端复用器
    N newstart

    PyMUD的运行好伙伴 - tmux终端复用器

    PyMUD是一个运行于终端的MUD客户端,当运行PyMUD同时还要再执行其他终端命令时,就可以用到tmux终端复用器了,它可以让pymud在无UI的系统中后台运行,可以分屏同时处理游戏以及脚本代码。以下就是tmux的主要使用方法介绍。

    介绍

    tmux 是一个终端复用器,允许用户在一个终端窗口中管理多个独立的终端会话。这使得多任务处理变得更加高效,并且即使断开 SSH 连接,后台任务也会继续运行。

    安装

    在大多数 Linux 发行版中可以通过包管理器安装 tmux:

    • Debian/Ubuntu: sudo apt-get install tmux
    • Fedora: sudo dnf install tmux
    • macOS (通过 Homebrew): brew install tmux

    基本命令

    创建会话

    tmux new -s mysession
    

    这里的 -s 参数用于指定会话名称。

    列出所有会话

    tmux ls
    

    关闭会话

    tmux kill-session -t mysession
    

    这里的 -t 参数用于指定要关闭的会话名称。

    附加到会话

    tmux attach -t mysession
    

    分离会话

    当您想要暂时离开某个会话而不终止它时,可以使用快捷键 Ctrl+b 然后按 d 来分离会话。

    快捷键

    以下是一些常用的 tmux 快捷键组合:

    常规操作

    • 分离当前会话: Ctrl+b 然后按 d
    • 列出并选择会话: Ctrl+b 然后按 s
    • 重命名当前会话: Ctrl+b 然后按 $

    窗口管理

    • 新建窗口: Ctrl+b 然后按 c
    • 切换下一个窗口: Ctrl+b 然后按 n
    • 切换上一个窗口: Ctrl+b 然后按 p
    • 关闭当前窗口: Ctrl+d 或者 Ctrl+b 然后按 &

    分屏

    • 水平分割: Ctrl+b 然后按 %
    • 垂直分割: Ctrl+b 然后按 "
    • 切换屏幕方向: Ctrl+b 然后按 Space
    • 关闭当前面板: Ctrl+b 然后按 x

    跨屏复制

    1. 进入复制模式: Ctrl+b 然后按 [
    2. 使用方向键移动光标选择文本。
    3. 按 Enter 复制选定的文本。
    4. 在目标位置粘贴: Ctrl+b 然后按 ]

    示例

    假设我们要创建一个新的名为 projectA 的会话,并在这个会话中打开两个不同的窗口来分别编写代码和查看日志。

    1. 创建并进入新会话:
      tmux new -s pymud
      
    2. 新建第二个窗口:
      Ctrl+b c
      
    3. 查看所有会话列表:
      tmux ls
      
    4. 分割当前窗口以同时显示代码编辑器和终端输出:
      • 水平分割: Ctrl+b %
      • 垂直分割: Ctrl+b "
    5. 在不同窗口间切换:
      • 下一个窗口: Ctrl+b n
      • 上一个窗口: Ctrl+b p
    6. 当完成工作后,退出当前会话但保持其运行状态:
      Ctrl+b d
      
    7. 再次附加到该会话:
      tmux attach -t pymud
      
    8. 最终,如果不再需要此会话,则可将其关闭:
      tmux kill-session -t pymud
      

    以上就是 tmux 的一些基本使用方法和常用快捷键,熟练掌握这些功能可以使你使用PyMUD的效率大大提高。

    个人博客区

  • PyMUD论坛上线啦
    N newstart

    测试用户注册、邮箱确认与帖子回复😊

    公告与通知
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
Powered by NodeBB Contributors
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组