
_NickCore
在我的模组或其他作者制作的模组中使用的核心集中功能与表格。
查看大图如果你是模组用户,且某个模组将 _NickCore 列为前置需求,你需要知道的是:必须使用 Fluffy Mod Manager 安装此模组。安装时,[b]请确认左下角的文字日志显示它确实已被安装[/b]。如果显示未安装任何文件,请重新下载并安装本模组。
如果你是模组作者并希望使用本模组,请继续阅读。
[size=5][b][u]功能特性[/u][/b][/size]
[b]已安装模组追踪[/b]
如果你在 data/_NickCore/Installed 文件夹中添加 ModName.json 文件,一个名为 ModName_installed 的全局变量将被设为 true,并且可用于 autorun 文件夹中的所有脚本。这有助于简化模组间的兼容性。
[b]文件列表[/b]
_NickCore/Files 返回 fs.glob(".*") 的结果,这是一个包含 data 文件夹中所有文件路径的 Lua 表格。全局可访问此数据意味着其他模组无需再调用极其耗性能的 fs.glob。请注意,你仍然需要过滤文件路径,但速度比 fs.glob 快数个数量级。
[b]启动工具[/b]
_NickCore/Startup 提供两个函数,用于在游戏启动时修改数据。
[list]
[]is_startup():只要尚未执行脚本重置,就返回 true。仅在游戏启动时修改游戏数据,而非在后续脚本重置时。[/]
[]is_game_data_ready(delay):当所有游戏数据加载完毕时返回 true,以便修改。如果提供了 delay 参数,它将额外等待该时长(秒)后才返回 true。[/]
[/list]
[b]共享属性表[/b]
_NickCore/Properties 提供一个包含游戏与玩家属性的表格。众多模组会收集这些属性,有时甚至每帧都收集。_NickCore 为你完成这一切,这意味着只需执行一次。请查看文章章节了解收集了哪些属性。
[b]计时器处理[/b]
_NickCore/Timers 提供以下函数来简化计时器的设置:
[list]
[]set_timer(delay, fn):在 delay 秒后调用 fn,并返回计时器键值。计时器会自动处理 FPS 差异,且游戏暂停时不会运行。[/]
[]cancel_timer(key):取消与 key 关联的计时器。[/]
[]end_timer(key):提前结束与 key 关联的计时器,并触发对应函数。[/]
[/list]
[b]带钩子的共享函数表[/b]
_NickCore/Functions 提供一个包含函数列表的表格,这些函数在不同的钩子中运行。众多模组会挂钩 requestActionCore 和 calcDamageValue 等方法。数十个这样的钩子同时进行计算可能导致性能问题。_NickCore 将这些钩子集中管理:它会挂钩这些方法,并在每次方法被调用时运行共享函数表中的所有函数。我的钩子还会在事前收集一些数据并向下传递,这样你无需每次自行设置,同时也提升了性能。请查看文章章节了解当前包含哪些钩子、你必须使用哪些函数表,以及传递的数据。
你也可以使用此函数表来每帧运行函数,并动态添加或删除它们。
[b]最佳启动参数修改方式[/b]
任何添加到 run_once 表中的函数,在该函数返回 true 时将被删除。因此,你可以利用此功能在启动时修改游戏参数,完成后返回 true,该函数便会消失,仿佛从未存在。
[b]规避 thread.get_hook_storage 错误的方法[/b]
REF 钩子存在一个错误:如果你在别处调用了一个已被挂钩的方法,后续对 thread.get_hook_storage 的调用将返回 nil。NickCore 通过将存储表格作为参数传递给钩子函数来规避此问题。
[b]关于脚本重置的有用信息[/b]
默认情况下,每次重置脚本时,模组都会打印几行文字表示发生了脚本重置,并显示游戏已运行的秒数。你可以通过打开 data/_NickCore/ScriptReset.json 并将 "true" 改为 "false" 来禁用此功能。
[size=5][b][u]关于脚本命名的说明[/u][/b][/size]
主脚本以 "aaa" 开头,以便最先加载。它[b]必须[/b]是第一个被加载的脚本,请确保没有其他脚本在其之前加载。请注意,Windows 会将以下划线 "_" 开头的脚本置于顶部,但 REFramework 实际上最后才会加载这些脚本。所以,"_NickCore.lua" 这种命名是行不通的。
显示 1-12 条,共 12 条
以上为资源接口提供的文件记录。安装时请在客户端确认文件、游戏版本及依赖。
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。