北大侠客行MUD论坛

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

mush中AddTrigger的使用问题

[复制链接]
发表于 2015-3-23 16:44:58 | 显示全部楼层 |阅读模式
参考了mush中文帮助,试验后有以下疑惑
1、是不是所有的参数都要写全
2、参数中是不是没有定义触发器组的参数

有过有相关的实例最好!

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-23 21:03:33 | 显示全部楼层
1 mush函数中,所有参数都要写全,(lua中的则不必),不过,你可以写个简化函数
2 AddTrigger没有定义触发器组的参数,解决方案是新增了一个tri后,修改其组参数属性..具体哪个,查手册..实例,我依稀记得,有写过类似的东西.你找找吧.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-23 21:29:56 | 显示全部楼层
本帖最后由 creat 于 2015-3-23 01:32 PM 编辑

引用红豆机器人中的一段,这是你需要的东西
  1. create_trigger = function(t_name, t_match, t_action, t_function, t_sent_to, t_group, t_multi_line)
  2.         DeleteTrigger (t_name)
  3.         AddTriggerEx (t_name, t_match, t_action, 1 + 8 + 32 + 1024, -1, 0, "", t_function, t_sent_to, 90)
  4.         if t_multi_line and t_multi_line ~= "" then
  5.                 SetTriggerOption ( t_name, "multi_line", "y");
  6.                 SetTriggerOption ( t_name, "lines_to_match", t_multi_line);
  7.         end
  8.         if t_group and t_group ~= "" then
  9.                 SetTriggerOption (t_name, "group", t_group)
  10.         end
  11. end
复制代码
应用实例
  1. create_trigger ("skillscheck",
  2. "^(?:│\\s+|│□)(\\W+)\\s\\((\-*\\D+)\\)\\s+\\-\\s*\\W+\\s*(\\d*)\\/\\s*(\\d*)│|(\\D*)目前所学过的技能:(共.*)|\\s*\\S*\\s*\\((\\S*)\\)\\s*:\\s*(\\S*?)(?:\\[\\互备\\]|)\\s*有效等级:\\s*\\d*$","skill ("%1","%2","%3","%4","%5","%6","%7")","",12,"_check_","")
  3. create_trigger ("hpbrief",
  4. "^\\#\\d*\\.*\\d*(?:\\w*)\\,(\-*\\d*),(\\d*),(\\d*),(\\d*),(\\d*)\\n\\#(\\d*),(\\d*),(\\d*),(\\d*),(\\d*),(\\d*)$","","hpbrief",12,"_check_",2)
复制代码
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2015-5-7 22:39:07 | 显示全部楼层
求教
  1. create_trigger ("skillscheck",
  2. "^(?:│\\s+|│□)(\\W+)\\s\\((\-*\\D+)\\)\\s+\\-\\s*\\W+\\s*(\\d*)\\/\\s*(\\d*)│|(\\D*)目前所学过的技能:(共.*)|\\s*\\S*\\s*\\((\\S*)\\)\\s*:\\s*(\\S*?)(?:\\[\\互备\\]|)\\s*有效等级:\\s*\\d*$","skill ("%1","%2","%3","%4","%5","%6","%7")","",12,"_check_","")
  3. create_trigger ("hpbrief",
  4. "^\\#\\d*\\.*\\d*(?:\\w*)\\,(\-*\\d*),(\\d*),(\\d*),(\\d*),(\\d*)\\n\\#(\\d*),(\\d*),(\\d*),(\\d*),(\\d*),(\\d*)$","","hpbrief",12,"_check_",2)
复制代码

中为什么正则表达式中的需要多增加一个"\"。例如在正常触发器对话框中增加触法器为:\s+精神:\s+(\d+),为什么使用Addtri()函数时,变成了“\\s+精神:\\s+(\\d+)”,这个有什么要求说明吗,求具体注解及出处。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-5-8 00:09:34 | 显示全部楼层
回复 4# popmud


这个我貌似可以说一句
lua里貌似大家都用的两个\。mush里是一个
个人认为是lua转化成mush时,也把\当成了转义符,因此如果只有一个\,到mush里就一个都没有了......
具体原因我不知道,反正我都是无脑加一个\
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 09:40 AM , Processed in 0.010740 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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