北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 73|回复: 0

Pymud基础教程 - 6、多行颜色触发

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式
多行、单行的区别,就只是匹配模式不一样。
单行匹配是一行正则,多行匹配是一组正则。


新建/script/jobs/多行颜色触发.py文件。我们之前创建了 index.py 脚本,添加了自动加载功能,所以这个脚本会自动加载,不需要我们手动添加,所以直接上代码自己看注释吧:

  1. from pymud import SimpleTrigger, Trigger

    # python3.0以后支持中文编程

    多行匹配 = [

        r"^[> ]*#(\d+.?\d*[KM]?),(\d+),(\d+),(\d+),(\d+),(\d+)$",

        r"^[> ]*#(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)$",

        r"^[> ]*#(\d+),(\d+),(-?\d+),(-?\d+),(\d+),(\d+)$",

    ]

    class Configuration:

        # __init__构造函数,self上下文对象,就像js里的this

        def __init__(self, session, *args, **kwargs):

            session.info("多行触发,加载成功!")

            self.session = session

            # 定义触发器对象

            self._objs = [

                Trigger(

                    self.session,

                    group="sys",

                    patterns=多行匹配,

                    onSuccess=self.tri_sc_pot,

                ),

                SimpleTrigger(

                    self.session,

                    r"^\s*\[33m神武\[2;37;0m\[36m功德录",

                    "#info 颜色触发成功!",

                    group="sys",

    # 比普通触发器多了一个raw参数,设置为True,就可以匹配ansi颜色码了

                    raw=True,

                ),

            ]

        # 回调函数

        def tri_color(self, name, line, wildcards):

            self.session.info("颜色触发匹配成功")

        def tri_sc_pot(self, name, line, wildcards):

            self.session.info("多行匹配模式触发,成功!")

            self.session.info(wildcards)

        def __unload__(self):

            self.session.delObjects(self._objs)

复制代码

输入 hpbrief



输入 look



测试触发?有的。
还是 #test %copy,但是复制带颜色的内容,需要用ctrl+R,而不是ctrl+c






教程目录:
Pymud基础教程 - 1、入坑退坑介绍
Pymud基础教程 - 2、随随便便安装
Pymud基础教程 - 3、简单加载脚本
Pymud基础教程 - 4、自动加载脚本
Pymud基础教程 - 5、简简单单触发
Pymud基础教程 - 7、哎呦插件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-22 06:53 AM , Processed in 0.013925 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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