-1

我正在使用 Atom 获取脚本我的 TTS mod。在我的游戏中,我有一个带有 GUID 的包,ed743f我有一个调用我的文件的全局#include Shard/shard文件。在该文件中#include diceroller,我的diceRoller.ttslua文件中有以下代码:

diceRoller = getObjectFromGUID("ed743f")
  print(diceRoller, 'roller')

function onCollisionEnter()
  print('dice entered')
end

打印工作正常,因此文件被正确包含,但是如何将 onCollisionEnter 函数与正确的对象(diceRoller)“连接”?因为现在当我把骰子放在袋子里时,什么也没有发生。

4

2 回答 2

0

从文档中:

onCollisionEnter(...)

当一个对象开始与该函数所在的对象发生碰撞时,将调用此函数。不适用于全球。

功能开启意味着它是在该对象的对象脚本中实现的。

对象成员:

script_code对象上的 Lua 脚本。

对象脚本附加到游戏内对象并作为其一部分保存的脚本。这类似于任何其他属性,例如其比例或色调。一些函数要求对象引用以尝试在其上运行函数。在这些情况下,Global(正如这里所写)也是一个有效的对象引用。

根据我在这里读到的内容,我会说您需要在对象脚本中实现该功能。

请再次阅读手册。

https://api.tabletopsimulator.com/event/

于 2020-04-07T12:08:10.390 回答
0

@Piglet 说 onCollisionEnter(...) 在全局中不起作用是正确的。我所做的是右键单击桌面模拟器中的对象(包)并点击“脚本编辑器”。这将打开该对象的脚本文件。然后在那个文件中我做了一个 require 参考require("somefolder/somefile")。路径的根是:

C:\Users*****\Documents\桌面模拟器

所以现在我可以使用 onCollisionEnter(...) 因为脚本不是全局的,而是对象绑定的。

于 2020-04-08T10:18:17.460 回答