
四个文件夹,分别有不同的固定作用
date:代码层面,就是你主要工作的地方
overload:里面的资源会覆盖原始游戏,其中的新内容自然就是添加进原始游戏,我就只是添加了几个图片,以及几个设置文件,我还不清楚覆盖原始游戏会有啥讲究,大概同路径+同名就覆盖?
superload:也是覆盖,我不清楚和前者的具体区别,但似乎总被用于高级一点的地方,通常改高级文件比较容易发生MOD冲突,新加内容可能还行,重写内容可能就比较严重,我没用过,看过一点点别的MOD,只知道这么多
【hooks文件夹里面的load.lua】
这里就要重点说一下它了
说白了就是个载入管理,它负责了你的文件载入,不载入没法用
我琢磨着,应该是因为文件格式本身没有那么固定,所以有些人的文件名太过于自由
所以就必须用这个文件手动载入
例如我的:

很简洁,头顶的一系列local就是载入某些功能,懂点编程的就知道是作用域的问题
下面的诸如Birther:loadDefinition(略)就是使用这些功能载入文件
乍看之下,好像有点繁琐,不过对于不懂编程的人也能够理解的信息是:
程序知道了你的这个文件是被哪个功能载入的,自然就知道了这个文件是干嘛用的了
从这个角度来说,你的文件名毫无意义,但是我还是建议你们最好有强迫症
乱起名字,写的时候一路爽,查找内容火葬场
【简单介绍下这几个功能结构】
lua的格式似乎有好多种,至少TOME4里面是这么用的
冒号":"代表了调用函数
那么冒号左边是大类,是容器,是功能的集合体
而冒号的右边就是这个容器里面的众多功能之一
可以看到此处的右边亲一色是“loadDefinition”它们隶属于不同的容器,作用性质上相同,实质肯定不同,不会编程的只要记住这是固定格式,而冒号左边的才是关键
ActorTalents:负责管理技能,从local可以看到它的具体路径,对应的就是一个lua文件,这个lua文件里面一定可以搜索到loadDefinition,如果你想要研究某些功能的结构,这种逆推理的理解是很基本的
Birther:负责管理职业、种族的选择界面,里面指定了啥职业拥有哪些技能树,等等
ActorTemporaryEffects:负责管理临时效果,就是BUFF、DEBUFF啦,我载入了3个这类文件,实际上,这三个文件的内容全部写在一个文件里面也没有任何问题,这纯粹就是手动分类而已。。文件名可以乱取,真正决定这些状态是精神还是物理还是魔法,是文件里面的代码决定的
我就用了这么点功能,所以只用了这么几个载入代码,实际上还可以载入很多其它的功能,取决于你的MOD涉及到更多的功能,比如说,你想要新增“伤害类型”,那么你就要调用并载入伤害类型的文件
游戏中很多内容可以改,这里不是详细介绍,大体感觉如此,就说说另一层面的功能:

这同样是写在load里面的内容,是我在别的addon里面看到的,我自己没用过
从代码内容来看,我猜测是直接将这部分代码,加入到某些容器里面的函数末尾
代码的具体生效流程我不清楚,也没有试过,这里只是提及确实有这种功能
那么再补充说下为啥要这么干,其实很简单,有些功能你只能这么实现
追根究底是作者自己安排不到位,整个游戏的架构问题,有些功能只能改底层代码
别想太多,了解就好,这种问题,适合懂的人开贴详细说明了,不是一两句的问题
所以回过头来看我用到的功能,你小改一下,真用不到多少功能:

对于不懂编程的:
至于local后面的class啊,Birther啊,都是随便起名,用来代替等号右边,此处推荐同名,别乱起名
格式直接抄过去用,只改一改关键的地方,比如说文件名
你们看看summonerplus,它居然接在data-的后面,根本不像是个目录
你也别想太多,这个游戏引擎就是这么写的,data-后面就是要接你的MOD文件名
也就是init.lua里面的short_name,也就是addon文件夹的tome-文件名
它们都是同一个文件名,这是固定格式
虽然你会发现,addon文件夹里面的名字其实可以乱取,游戏同样载入没问题,不过如果你要上传addon就必须按照格式来