fengzhong 发表于 2025-11-15 15:28:38

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]
查看完整版本: Paotin++ 关于文件加载的个人理解