找回密码
 注册
搜索
查看: 825|回复: 3

【MUSH版】梅庄梅林走法

[复制链接]
门派:武当派
发表于 2019-4-26 16:49:21 | 显示全部楼层 |阅读模式
本帖最后由 kaillera@tj 于 2019-4-26 16:54 编辑

说明:该走法完全借鉴了ZMUD版本的思路,相当于把ZMUD版本的内容翻译为MUSH版,原版思路可见下帖:
http://www.sjever.net/bbs/forum.php?mod=viewthread&tid=125664


  1. local function hasway_meizhuang(dx)
  2.   if dx=="south" then
  3.      dx="west"
  4.   elseif dx=="west" then
  5.      dx="north"
  6.   elseif dx=="north" then
  7.      dx="east"
  8.   else
  9.      dx="south"
  10.   end
  11.   return dx
  12. end

  13. local function noway_meizhuang(dx)
  14.    if dx=="north" then
  15.      dx="west"
  16.   elseif dx=="west" then
  17.      dx="south"
  18.   elseif dx=="south" then
  19.      dx="east"
  20.   else
  21.      dx="north"
  22.   end
  23.   return dx
  24. end

  25. function out_meizhuang(dx)--主函数
  26.       if dx==nil then
  27.            dx="north"   --默认第一步,north
  28.       end
  29.                 world.Send(dx)
  30.                 wait.make(function()
  31.                    local l,w=wait.regexp("^(> |)这个方向没有出路。$|^(> |)梅林 - .*$|^(> |)小路 - .*$|^(> |)青石板大路 - .*$",5)--创建临时触发器
  32.                    if l==nil then
  33.                           out_meizhuang()--l==nil 相当于函数没有正常执行,这里再执行一次
  34.                           return
  35.                    end
  36.                    if string.find(l,"这个方向没有出路") then --第一种情况:没有出路,调用noway_meizhuang()来确定下一步方向
  37.                       print("失败")

  38.                       local dx1=noway_meizhuang(dx)
  39.                            print(dx1)
  40.                        local f=function()--加壳
  41.                             out_meizhuang(dx1)--递归,下同
  42.                           end
  43.                           f_wait(f,0.3)--f_wait(f, delay)相当于在延迟delay之后执行f()中的内容
  44.                       return
  45.                    end
  46.                    if string.find(l,"梅林") then
  47.                       print("成功")
  48.                           local dx2=hasway_meizhuang(dx)--第二种情况:有出路,调用hasway_meizhuang()来确定下一步方向
  49.                           print(dx2)
  50.                           local f=function()
  51.                             out_meizhuang(dx2)
  52.                           end
  53.                           f_wait(f,0.3)
  54.                           return
  55.                    end
  56.                    if string.find(l,"小路") then --递归结束条件:成功走出梅林
  57.                        finish() --回调函数,用于处理行走结束之后的动作
  58.                            return
  59.                    end
  60.                    if string.find(l,"青石板大路") then
  61.                        out_meizhuang()
  62.                       return
  63.                    end
  64.                 end)--end wait
  65. end--end func
复制代码
门派:武当派
发表于 2019-4-26 20:49:43 | 显示全部楼层
哇,这又是哪个隐藏的大神哇
门派:武当派
发表于 2019-4-28 14:55:26 | 显示全部楼层
门派 不明 真是隐藏的大神啊  
门派:明教
发表于 2019-5-15 14:23:06 | 显示全部楼层
不会用啊,f wait是啥   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-9 01:38 , Processed in 0.029360 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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