Paotin++ 关于文件加载的个人理解
本帖最后由 fengzhong 于 2025-11-15 03:42 PM 编辑paotin中有两个可以加载文件的命令,一个是 load-module(LM) 加载模块,一个是 load-file 加载文件。一、加载模块(LM)
本质上也是load-file 加载文件,是把被加载的文件封装在一个Class中进行加载。
例如:LM foo/bar 实际执行的代码如下:
class foo/bar open;
load-file plugins/foo/bar.tin;
load-file plugins/foo/bar/__init__.tin; #nop 如果前面的文件不存在; (对于初级玩家,像我这样的小白白这行可以忽略)
load-file plugins/foo/bar/__main__.tin; #nop 如果前面的文件不存在;(对于初级玩家,像我这样的小白白这行可以忽略)
class foo/bar close;
具体加载的时候,会按先后顺序寻找以下路径,进行加载。(主目录是paotin的安装目录,比如:d:/paotin)
- 1. 玩家为某个MUD自定义的特别定制版位置: var/mud/$MUD/plugins/foo/bar.tin ($MUD 对应的就是pkuxkx)
- 2. 一般玩家的自定义位置: var/plugins/foo/bar.tin
- 3. MUD定制版位置: mud/$MUD/plugins/foo/bar.tin
- 4. 默认脚本位置: plugins/foo/bar.tin
- 5. 玩家为某个MUD自定义的特别定制版位置: var/mud/$MUD/plugins/foo/bar/__init__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 6. 一般玩家的自定义位置: var/plugins/foo/bar/__init__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 7. MUD定制版位置: mud/$MUD/plugins/foo/bar/__init__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 8. 默认脚本位置: plugins/foo/bar/__init__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 9. 玩家为某个MUD自定义的特别定制版位置: var/mud/$MUD/plugins/foo/bar/__main__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 10. 一般玩家的自定义位置: var/plugins/foo/bar/__main__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 11. MUD定制版位置: mud/$MUD/plugins/foo/bar/__main__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
- 12. 默认脚本位置: plugins/foo/bar/__main__.tin(对于初级玩家,像我这样的小白白这行可以忽略)
二、加载文件
具体来说,假设文件名是 foo/bar.tin,则本命令会从以下位置按照从上到下的顺序进行查找:
- 1. 玩家为某个MUD自定义的特别定制版位置: var/mud/$MUD/foo/bar.tin($MUD 对应的就是pkuxkx)
- 2. 一般玩家的自定义位置: var/foo/bar.tin
- 3. MUD定制版位置: mud/$MUD/foo/bar.tin($MUD 对应的就是pkuxkx)
- 4. 默认脚本位置: foo/bar.tin
三、总结一下
load-module(LM) 加载的时候判断的目录如下:(假如Paotin安装在d:/paotin)(d:/paotin/var== d:/my-paotin
var/mud/pkuxkx/plugins/foo/bar.tin (对应 d:/my-paotin/mud/pkuxkx/plugins/)
var/plugins/foo/bar.tin (对应 d:/my-paotin/mud/plugins/)
mud/pkuxkx/plugins/foo/bar.tin(对应 d:/paotin/mud/pkuxkx/plugins/)
plugins/foo/bar.tin (对应 d:/paotin/plugins/)
load-file(LM) 加载的时候判断的目录如下:(假如Paotin安装在d:/paotin)(d:/paotin/var== d:/my-paotin
var/mud/$MUD/foo/bar.tin (对应 d:/my-paotin/mud/pkuxkx/)
var/foo/bar.tin (对应 d:/my-paotin/)
mud/$MUD/foo/bar.tin(对应 d:/paotin/mud/pkuxkx/)
foo/bar.tin (对应 d:/paotin/)
页:
[1]