北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: bbz

请教一个Mush中多个触发器执行Lua脚本的 顺序问题

[复制链接]
 楼主| 发表于 2015-2-25 15:19:33 | 显示全部楼层
顺便再问一句,机器人自动行走,除了抓出口或房间名外,还有啥办法可以知道 成功进入下一个房间吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-2-25 15:26:48 | 显示全部楼层
你可以用较多方法:其目的就是让服务器返回个信息:比如:set 某可用参数的方法来反馈,抓取反馈信息;设定个动作,抓取动作;设定个alias,抓取alias触发;等等。一般抓取出口的变化也是在你行走后来确定是否正确行走到位。这里网络速度若是不是十分lag的话。可以采用上诉方法之一来确认。
当然最好是用出口触发来确认是否已经行走到位。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-2-25 15:30:53 | 显示全部楼层
还有就是自己设计个infoend函数。也就是自己的信息发布完毕在执行后续的函数:当然由于现在北侠限定set。你需要根据自己的特点找到可用的参数了。。呵呵。

  1. infoend=function(infoendfun,...)
  2. ----print("infoend>>>!!!!")
  3.                         ------hook("infoend_fun",infoendfun,...)----函数hook
  4.                                         _infod={}
  5.                                         _infod.args={}
  6.                         for _, v in ipairs{...} do
  7.                                 table.insert(_infod.args, v)
  8.                         end --for
  9.                         wait.make(function()
  10.                                                 run("set no_more infoend")
  11.                                                 local l,w=wait.regexp('^(> |)*设定环境变数:no_more = "infoend"

  12. ,5)
  13.                                                 ----print("l=",l)
  14.                                                                 if l==nil then
  15.                                                                                 print("[:system:]::Error::infoend...>>catch nil")
  16.                                                                                 infoend(infoendfun,unpack(_infod.args))
  17.                                                                                 return
  18.                                                                 end                                                       
  19.                                                                 if string.find(l,"infoend")  then
  20.                                                                                 infoendfun(unpack(_infod.args))
  21.                                                                                 return
  22.                                                                 end
  23.                                                         print("[::system:]....infoend  Error!!")
  24.                                                         return
  25.                                                                 ---infoend(infoendfun,unpack(_infod.args))                                                               
  26.                         end)
  27. end
复制代码
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 01:33 PM , Processed in 0.008474 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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