feixiong 发表于 2010-1-19 22:37:37

mush求助

Timer 函数 "CheckValid" 无法被执行 - 脚本已被禁用 或者 解析错误。
Timer 函数 "checkconnect" 无法被执行 - 脚本已被禁用 或者 解析错误。

我已经在lua里false改成了 true
注释了
--for k, v in pairs (io) do
--    if type (v) == "function" then
--      io = ReportDisabled ("io", k)
--    end -- type is function
--end -- for
可是怎么还是说无法被执行?
还出错提示
脚本错误处的上下文
   4 :
   5 : -- path
   6 : g_work_dir ="C:\Program Files\MUSHclient\worlds\xkx"
   7 :
   8*: require "xkx_map_base"
   9 :
10 : function on_linda_info(name, output, wildcards)
11 :local answer = "飞熊"
12 :cmdSender:Add("answer "..answer..";@10;i;kquest;@5;d;d;w;n;set no_teach dowhat")

maper 发表于 2010-1-19 22:43:39

8*: require "xkx_map_base"

feixiong 发表于 2010-1-19 22:52:31

明白了

我指定路径的时候   g_work_dir ="C:\\Program Files\\MUSHclient\\worlds\\xkx\\"原来只有一个\加了两个\\就行了,我晕死,这是怎么回事,为什么要加两个

vase 发表于 2010-1-19 23:52:01

這個...
\ 是轉義字符...

請google 轉義字符 一下

lzkd 发表于 2010-1-20 07:12:41

mark一下,这个问题我要收进FAQ

lzkd 发表于 2010-1-20 12:10:02

给出彻底解决问题的方法

楼主的写法不好,主要是使用了绝对路径,以后如果想移植代码,或者换目录什么的,那改起来就麻烦大了去了。
将下面代码下放你的主Lua程序中,就是mush载入的那个Lua文件include=function(str)
      dofile(luapath..str)
end
loadmod=function(str)
      include("feixiong\\"..str)
end

loadmclfile=function(str)
                local f=(loadfile(mclpath..str))
                if f~=nil then f() end
end
feixiong是放在你的Lua主程序的同一级的目录名(在这里,我写的是feixiong,以后你所有的程序都可以放这里面,好处自己可以去体会)
然后,要载入文件的时候,只要直接使用(假设我要载入一个test.lua文件,该文件在feixiong目录下)loadmod("test.lua")

[ 本帖最后由 lzkd 于 2010-1-20 12:14 PM 编辑 ]

zhuking 发表于 2010-1-20 12:39:10

学习了,先收下

feixiong 发表于 2010-1-20 22:45:03

十分感谢

十分感谢 LZKD
我就看到了个绝对路径没深考虑,谢谢

已经解决了我的问题HOHOttk_12

lzkd 发表于 2010-1-21 07:07:29

hehe 相互帮助是应该的

xspe 发表于 2012-3-28 16:39:02

还是不太懂,困惑
页: [1]
查看完整版本: mush求助