myu 发表于 2010-4-9 23:07:11

mushclient的当前目录

GetInfo(64)可以得到当前目录
可是怎么设置当前目录呢?
我有一台机器,在globals里设置了default world files directory为D:\mush,可是当前目录一直是C:\program files\Mushclient,有没办法改过来。

ddid 发表于 2010-4-10 00:45:54

不知道改这个有什么用?

MushClient.exe同目录下有个文件mushclient_prefs.sqlite

可以用SQLite工具去改(不过不推荐这么做)

在lua脚本中读取文件的话,一般用GetInfo()指示路径就够用了。

myu 发表于 2010-4-10 06:51:31

我想把lua文件放到一个指定的目录,以便管理。这就需要修改当前目录或脚本目录

[ 本帖最后由 myu 于 2010-4-10 06:52 AM 编辑 ]

lzkd 发表于 2010-4-10 07:14:37

因为mush的作者在写代码的时候,用的是绝对目录,所以mush里的目录,路径相关的是比较麻烦的.

不知道楼主的所谓----把lua文件放到一个指定的目录,以便管理---是什么意思,猜了一下,下面的方法可能可以达到楼主的要求.

假设你在lua主文件(主文件的意思是---你的mush载入的这个lua文件)下建立了一个myu目录,你想把一些lua文件放在myu目录下,以便管理.

那么,你在主文件中添加以下代码luapath=string.match(GetInfo(35),"^.*\\")

include=function(str)
        dofile(luapath..str)
end
loadmod=function(str)
        include("myu\\"..str)
end然后,你要引用myu目录下的文件,则可以loadmod("xxx.lua")就可以了,不知道楼主的要求是不是这样

myu 发表于 2010-4-10 08:42:40

小刀果然是高人,基本上是这个意思,我呢习惯于把某个类别的文件,放在一个单独的目录,避免各类文件混杂的情况。你这思路应该可行

lzkd 发表于 2010-4-10 08:50:40

原帖由 myu 于 2010-4-10 08:42 AM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
小刀果然是高人,基本上是这个意思,我呢习惯于把某个类别的文件,放在一个单独的目录,避免各类文件混杂的情况。你这思路应该可行

hehe 我可不是高人,这个习惯我也有.这个方法也是从别人那里学来的.
能用就好

linghuchong 发表于 2010-4-10 11:37:10

我绝对不相信小刀是文科出身的,如果是,那只能说当初选错专业了

lzkd 发表于 2010-4-10 12:52:34

原帖由 linghuchong 于 2010-4-10 11:37 AM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
我绝对不相信小刀是文科出身的,如果是,那只能说当初选错专业了
我是财会专业的,吃这碗饭已经不少时候了.
这个怎么都算不上理科出身吧?

myu 发表于 2010-4-12 16:05:16

发现了更好的办法
      dofile虽然可以基本上解决问题,但是终觉有点别扭,dofile是不如require的,require可以实现路径搜索和防止重复载入。要使用require实现指定目录的搜索,只要修改一下package.path变量,就可以达到。
      比如,在主文件里加入
      package.path=package.path..";"..GetInfo(57).."myu/?.lua"
   然后就可以直接用require "xxx"来加载游戏目录/myu子目录下的lua文件。

lzkd 发表于 2010-4-12 16:12:41

原帖由 myu 于 2010-4-12 04:05 PM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
发现了更好的办法
      dofile虽然可以基本上解决问题,但是终觉有点别扭,dofile是不如require的,require可以实现路径搜索和防止重复载入。要使用require实现指定目录的搜索,只要修改一下package.path变量,就可 ...

呵,我也学习一个新东西,谢谢
页: [1]
查看完整版本: mushclient的当前目录