我的插件运行不了,请教一下
各位大神,我的插件为何运行不了,这个插件我写得比较难看,但是不知道错误处在哪来,mushclient只是提示我插件错误,无法解析我的这个是想写个丐帮的打听(dating)任务,通过获取NPC给的任务关键词去相应的城门
另外想请教,我这样写是不是思路是不是非常笨,还有没有更简洁的写法?require "wait"
require "tprint"
go_quest=function()
place=GetTriggerInfo("get_quest", 102)---得到做任务的地点信息
while place=("北门") do
go_n() ---去北门做任务
end
while place=("东门") do
go_e()
end
while place=("南门") do
go_s()
end
while place=("西门") do
go_w()
end
end
go_n=function()
wait.make (function ()--- coroutine below here
wait.time(3)
Execute( "out;n;n;n;n" ) ---去北门了
send('l') ---通过看城门进行触发
end)-- end of coroutine
end
go_e=function()
wait.make (function ()--- coroutine below here
wait.time(3)
Execute( "out;e;e;e;e" ) ---去东门了
send('l') ---通过看城门进行触发
end)-- end of coroutine
end
go_s=function()
wait.make (function ()--- coroutine below here
wait.time(3)
Execute( "out;s;s;s;s" ) ---去南门了
send('l') ---通过看城门进行触发
end)-- end of coroutine
end
go_w=function()
wait.make (function ()--- coroutine below here
wait.time(3)
Execute( "out;w;w;w;w" ) ---去西门了
send('l') ---通过看城门进行触发
end)-- end of coroutine
end
北大侠客行MUD,中国最好的MUD Mushclient提示:
"go_quest()
Trigger 函数 "dating" 无法被执行 - 脚本已被禁用 或者 解析错误。" 学习了! 本帖最后由 xspe 于 2012-4-8 03:53 PM 编辑
我没有什么编程经验,我按自己的理解把Istillsun大侠的程序翻译一下,不懂的地方请Istillsun和其他大侠指教
require "wait"---读取模块"wait"
require "tprint"---读取模块"tprint"
path={
["西门"]={"out;w;w;w;w", "e;e;e;e;enter shudong"},
["东门"]={"out;e;e;e;e", "w;w;w;w;enter shudong"},
["北门"]={"out;n;n;n", "s;s;s;enter shudong"},
["南门"]={"out;s;s;s;s", "n;n;n;n;enter shudong"},
} ---创建了一个名字为path的数组,里面包含有四个类似为“西门”的数组,数组含有两组值
go_quest=function()---创建了一个名字为go_quest的function函数
wait.make(function()---调用了wait模块里的wait.make函数
Execute("ask zuo about job")--在mushclient里命令行里执行"ask zuo about job"
l,w=wait.regexp("你向左全打听有关『job』的消息。") ---这句和下面一句我不太懂了,是调用了wait模块里的wait.regexp,同时为何要触发这句呢?
l,w=wait.regexp("打探消息就靠你们这些跑腿的了,你去(.*)打听") ---接上面的,这个写法我不太懂,是大概知道需要触发句,同时需要正则来获取变量
local place=w ---获取一个局部变量,就是接任务的地点,但是这个写法啥意思?"place=w"这个""表示获取就是变量吗?为何是1呢?而上句的"l,w"一直没搞懂
Execute(path) ---按获取的变量,来执行path数组对应的值(也就是路径)
while true do ---这句不理解,意思是当获取了变量的值,则执行?是这个意思吗?
Execute("dating") ---同上
l,w=wait.regexp("你已经完成了打听消息的任务,可以回去复命了!",3) ---这个写法不理解,并且触发后还跟了个",3",不明白...
if l~=nil then ---这句判断是什么意思?
print("10s后返回...") ---输出信息“10s后返回...”
wait.time(10) ---等待10秒
break ---这个"break"的作用是结束if判断吗?
end
end
Execute(path) ---当根据上面的判断,结束任务,按path数组里的place数组的第二个值来执行回去的路径
end)
end
既然LUA是计算机语言,以上就是我能理解的语言,并且给出翻译,各位大神一看就知道我确实是个编程小白,请大神能用通俗易懂的语言来帮我解释一下,谢谢yct38 谢谢istillsu大侠,这下明白了,我个人认为使用Mushclient来编程玩MUD也是MUD的乐趣之一
以后请多多指教~yct6
页:
[1]