当我尝试使用现场显示的示例来制作世界对象注册事件时,我在 worldobject 上收到一个错误,这意味着它是一个 nil 值,如下所示:
lua_scripts/test.lua:5:尝试索引全局"WorldObject"(零值(
尝试了几个不同的例子,结果相同,所以自然而然地,我希望这可能是我的一些疏忽。
测试示例:
local function YourFunction(eventid, delay, repeats, worldobject)
worldobject:SendUnitSay("My name is " .. worldobject:GetName(), 255)
end
worldobject:RegisterEvent(YourFunction, 10000, 5)
local function Timed(eventid, delay, repeats, worldobject)
print(worldobject:GetName())
end
worldobject:RegisterEvent(Timed, 1000, 5)
两者都返回开头所述的错误。
您必须指定哪个 worldobject 应该具有脚本。
这是一个生物的例子:
local npcID = 100;
local YourNPC = {};
function YourNPC.YourFunction(eventid, delay, repeats, creature)
creature:SendUnitSay("My name is " .. creature:GetName(), 255)
end
function YourNPC.OnSpawn(event, creature)
creature:RegisterEvent(YourNPC.YourFunction, 10000, 5)
end
RegisterCreatureEvent(npcID, YourNPC.OnSpawn, 5)
在生物生成时,该生物会说 5 次"我的名字是",延迟 10 秒。它只适用于生物"100",所以不要忘记更改ID。
官方埃露娜文档:http://www.elunaengine.com/WorldObject/RegisterEvent.html