北大侠客行MUD论坛

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

再请教个mush plugin的问题。

[复制链接]
发表于 2009-9-6 17:00:47 | 显示全部楼层 |阅读模式
在mush的主页plugin里发现一个slowwalk的plugin作的很好。不过是匹配英语的。
他的plugin 网页在http://gammon.com.au/forum/?id=6008
现在我有个问题。他的plugin的匹配
Exits: north south
通过
      "^((?P\\[Exits\\: .+\\])|(.*)Alas, you cannot go that way\\.)$" >
]>
我想改下这个plugin 让他匹配我们的pkuxkx
我们的提示是。这里明显的出口是
      "^((?P\\[这里明显的出口是.+\\])|(.*)这里没有明显的出口\\.)$" >
]>
可是改了后怎么都触发不了。
是不是plugin的字符问题?
我后来把下面的子程序第一行改成
line, wildcards = wait.regexp ("&exits_trigger;", &timeout_secs;)
   
    -- check for timeout
   
    if not line then
      ColourNote ("white", "red", "Speedwalk timed-out")
      speedwalk_thread = nil
      return  -- give up
    end -- if
   
    -- check we didn't get told it was impossible
   
    if wildcards.exits == "" then
      ColourNote ("white", "red", "Speedwalk cancelled")
      speedwalk_thread = nil
      return  -- give up
    end -- if
   
    -- pause before doing another if wanted
   
    if &delay_secs; > 0 then
      wait.time (&delay_secs;)
    end -- if pause wanted
      
  end  -- of iterating through each speedwalk line
  
  -- all done!
我的修改:
line, wildcards = wait.regexp ("这里明显的出口是", &timeout_secs;)
这样可以走了。不过还是不太爽。请教下mush高手在plugin抓这个exit变量的方法。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-6 19:29:27 | 显示全部楼层
没有仔细看这个插件的用处,楼主简单介绍一下吧。
我把我的抓取房间出口的trigger发出来你看看

      enabled="y"
   group="system"
   lines_to_match="12"
   keep_evaluating="y"
   match="^(> )*\s+这里.*的出口是(.*)$"
   name="getroomexit"
   regexp="y"
   script="getroomexit"
   sequence="100"
  >
  


getroomexit=function(name, line, wildcards,styles)
        j=0
    re = rex.new ("(\[A-Za-z\]+)")
    re:gmatch (line, function (m, t)
         j=j+1
        exits_get[j]=m
        exits_get_temp[j]=m
            end )
         end
  end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-9-6 19:55:49 | 显示全部楼层
这个插件还是很有用的。
mush 的speedwalk 有很多缺点.
Too fast - so the MUD server doesn't process them all
太快,服务端处理不了
Too slow - you build in a pause and then it takes forever
太慢。浪费时间
Doesn't handle "you can't go that way" messages
对于这个方向没有出路的提示处理不了。(这个没有什么用,我感觉)
Cannot be paused while you chat, or kill a mob
在需要的地方暂停。(这个很有用)
Cannot be aborted if you change your mind
(在需要的地方放弃快速行走。这个也有点用)

这个plugin 可以实现!3s5e 向南走三步,向东走5步
到了满足条件的地方。trigger 输入pause speedwalk就会暂停
杀了盗宝人什么的 trigger  输入resume speedwalk  就会继续把刚才的快速行走走完
abort speedwalk  放弃当前的快速行走。
可以设置每步停下的时间。默认是0.5秒。感觉这个已经很不错了。
就是他原来设置的英文mud。所以每个新房间的提示是 Exit:
我们的应该是这里明显的出口是:
这个东西提取不好。虽然我的方法也能用。但是还是希望能找到更好的方法。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-6 20:05:22 | 显示全部楼层
跟我现在使用的走路方法是一样的,嘿嘿
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-9-6 20:39:59 | 显示全部楼层
是的。所以感觉这个plugin不错啊。
基本可以用了。我的方法比较土。呵呵。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 07:57 PM , Processed in 0.009941 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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