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)