词条
指令:当区块加载时
PC 最近更新 : · 阅读数:4120 · 发布于:湖北省 历史记录
指令:当区块加载时
“开发者的福音之一,不过这东西可能也没什么人用“
1 . 模组简介
ummmm,其实说实话,这个模组很有用,尤其是人物频繁移动的时候,它是一个比较方便且节省性能的写法。只是可惜,没有什么人会用这个模组。加载方块时触发功能的简单方法,无需每个 mod 多次执行相同的检查。 在很多情况下有助于替换 LoadGridsquare 事件。
2 . 详细描述
警告!这不是非模组开发者应该看到的内容,以下内容来自自动翻译,可参考模组readme文件## 命令和功能
### 注册一个函数
这些函数在“API.OnLoadCommands”表中设置。
API.OnLoadCommands.myFunction = function(square, myCommand)print(square, myCommand)end
造成的更改是临时的,需要在每次游戏重新加载时进行设置。
如果该函数返回 true,则下次再次加载方块时将重复该命令。
在所有其他情况下,该命令将被删除,并且该函数将不会再次被调用。
### 添加命令-功能触发器
您可以在下一次调用时添加命令。
`API.addCommand(x, y, z, { command = "myFunction" })`
造成的更改是永久性的,不需要在重新加载之间再次添加。
参数 1,2,3 用于方形 (x,y,z) 坐标。 它们应该是整数。
参数4,要调用的函数。
当加载方块时,该表将被存储并传递给您的函数。
如果函数返回 true,则将重用该table。
目前,如果您希望即使正方形没有对象也能调用函数,您应该设置 squareCanBeNil = true 。
## 重新加载持久性
每个 Square Command 都存储在该 Square 上的全局对象中,并且命令数据在重新加载之间保持不变。
API系统保存savedData表,然后在OnSGlobalObjectSystemInit事件上加载它,它可以像全局ModData表一样使用。
您只能保存主要类型,对象和函数不是持久性的。
## 例子
这是使用 API 的“软要求”作为可选扩展的示例。
```lua
local API = require "!_TargetSquare_OnLoad"
local addSpawns = function()
local instance = API and API.instance
if not instance then print("myLog: API has no instance") return end
instance.OnLoadCommands.isaWorldSpawn = function(square, myCommand)
ISAWorldSpawns.addToWorld(square, myCommand.sprite)
end
if instance.savedData["isaWorldSpawns"] then
return
end
local x, y, z = 1, 2, 3
instance.addCommand(x, y, z, { command = "isaWorldSpawn", sprite = "solarmod_tileset_01_0" })
instance.savedData["isaWorldSpawns"] = true
end
Events.OnSGlobalObjectSystemInit.Add(addSpawns)
```
## 调试问题
- 要求不返回teble
> 检查您是否使用了正确的文件名,如果找不到该文件,您将看到类似以下内容的日志消息:“require ... failed”
- API 没有实例表。
> API 在 OnSGlobalObjectSystemInit 事件上创建一个实例。 如果加载时没有实例,但游戏加载时有实例,则说明您尝试此操作为时过早。
- 发现其他错误或问题:在 Discord (poltergeist_ix)上联系或创建 github issue
3 . 模组说明
这是一个前置模组,但其可以使得模组开发变得更加简单,故简要展示,仅供各位模组开发大佬参考
4 . 模组信息
Mod ID: TargetSquareOnLoad
作者:Poltergeist
授权协议:GitHub开源项目,禁止二次上传
该模组由幸存者“xiao_peng1st”推荐,请允许我再次向您致谢,您推荐的模组会帮助到更多幸存者!
欢迎各位在评论区中讨论补充模组其他内容~如果有其他想看的模组即可留言!收藏网页不迷路,感谢您对维基做出的贡献!
评论(1)
Hurricane_Venus PC
2024年03月13日 08:48 来自山西省
#1