popmud 发表于 2015-3-23 16:44:58

mush中AddTrigger的使用问题

参考了mush中文帮助,试验后有以下疑惑
1、是不是所有的参数都要写全
2、参数中是不是没有定义触发器组的参数

有过有相关的实例最好!

北大侠客行MUD,中国最好的MUD

lzkd 发表于 2015-3-23 21:03:33

1 mush函数中,所有参数都要写全,(lua中的则不必),不过,你可以写个简化函数
2 AddTrigger没有定义触发器组的参数,解决方案是新增了一个tri后,修改其组参数属性..具体哪个,查手册..实例,我依稀记得,有写过类似的东西.你找找吧.

creat 发表于 2015-3-23 21:29:56

本帖最后由 creat 于 2015-3-23 01:32 PM 编辑

引用红豆机器人中的一段,这是你需要的东西create_trigger = function(t_name, t_match, t_action, t_function, t_sent_to, t_group, t_multi_line)
      DeleteTrigger (t_name)
      AddTriggerEx (t_name, t_match, t_action, 1 + 8 + 32 + 1024, -1, 0, "", t_function, t_sent_to, 90)
      if t_multi_line and t_multi_line ~= "" then
                SetTriggerOption ( t_name, "multi_line", "y");
                SetTriggerOption ( t_name, "lines_to_match", t_multi_line);
      end
      if t_group and t_group ~= "" then
                SetTriggerOption (t_name, "group", t_group)
      end
end应用实例
create_trigger ("skillscheck",
"^(?:│\\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_","")
create_trigger ("hpbrief",
"^\\#\\d*\\.*\\d*(?:\\w*)\\,(\-*\\d*),(\\d*),(\\d*),(\\d*),(\\d*)\\n\\#(\\d*),(\\d*),(\\d*),(\\d*),(\\d*),(\\d*)$","","hpbrief",12,"_check_",2)

popmud 发表于 2015-5-7 22:39:07

求教
create_trigger ("skillscheck",
"^(?:│\\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_","")
create_trigger ("hpbrief",
"^\\#\\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+)”,这个有什么要求说明吗,求具体注解及出处。

ltblue 发表于 2015-5-8 00:09:34

回复 4# popmud


这个我貌似可以说一句
lua里貌似大家都用的两个\。mush里是一个
个人认为是lua转化成mush时,也把\当成了转义符,因此如果只有一个\,到mush里就一个都没有了......
具体原因我不知道,反正我都是无脑加一个\
页: [1]
查看完整版本: mush中AddTrigger的使用问题