worldobject:RegisterEvent ошибка при индексации worldobject

Когда я пытаюсь использовать примеры, показанные на сайте, для создания события регистрации объекта мира, я получаю сообщение об ошибке в объекте мира, подразумевая, что это нулевое значение, например:

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)

Оба возвращают указанную в начале ошибку.


person Oliver H. D.    schedule 19.06.2019    source источник


Ответы (1)


Вы должны указать, какой мировой объект должен иметь сценарий.

Вот пример существа:

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.

Официальный документ Eluna: http://www.elunaengine.com/WorldObject/RegisterEvent.html

person Shard_MW    schedule 19.06.2019