访问在另一个 object/script 中找到的数据

Accessing data found in another object/script

在桌面模拟器中,如何在对象之间交换信息?

有没有办法,例如,创建一个全局变量?

据我所知,没有全局变量,您不能创建 public 对象属性。但你并不是运气不好。


您可以使用 .getVar/.getTable.setVar/.setTable 获取和设置对象的 属性。 Docs.

例如,

对象aaaaaa

function onChat(message, player)
    local o = getObjectFromGUID("bbbbbb")
    local x = o.getVar("x")
    x = x + 1
    o.setVar("x", x)
    print(x)
end

对象bbbbbb

x = 0

也可以用Global.getVar(...)


或者,您可以创建一个方法,然后使用 .call 调用。这提供了更好的封装。

例如,

对象aaaaaa

function onChat(message, player)
    local o = getObjectFromGUID("82fbcf")
    local x = o.call("getX")
    x = x + 1
    o.call("setX", { value = x })
    print(x)
end

对象bbbbbb

x = 0

function getX(args)
    return x
end

function setX(args)
    x = args["value"]
end

参数只能是table.

您也可以使用Global.call(...)