abofoulla
New Member
- Joined
- Apr 24, 2017
- Messages
- 44
- Solutions
- 1
- Reaction score
- 2
[Error - Action Interface]
[09/02/2020 01:56:44] In a timer event called from:
[09/02/2020 01:56:44] data/actions/scripts/immunity.lua: onUse
[09/02/2020 01:56:45] Description:
[09/02/2020 01:56:45] data/actions/scripts/immunity.lua:17: attempt to call global 'unregisterCreatureEvent' (a nil value)
[09/02/2020 01:56:45] stack traceback:
[09/02/2020 01:56:45] data/actions/scripts/immunity.lua:17: in function <data/actions/scripts/immunity.lua:15>
actions/scripts/immunity.lua
[09/02/2020 01:56:44] In a timer event called from:
[09/02/2020 01:56:44] data/actions/scripts/immunity.lua: onUse
[09/02/2020 01:56:45] Description:
[09/02/2020 01:56:45] data/actions/scripts/immunity.lua:17: attempt to call global 'unregisterCreatureEvent' (a nil value)
[09/02/2020 01:56:45] stack traceback:
[09/02/2020 01:56:45] data/actions/scripts/immunity.lua:17: in function <data/actions/scripts/immunity.lua:15>
actions/scripts/immunity.lua
Lua:
local config = {
cooldown = { storage = 3997, duration = 40 },
duration = 3,
ignoreCooldownGroup = 4,
uses = 5
}
local function sendEffect(cid)
if not isPlayer(cid) then return end
doChangeSpeed(cid, getCreatureBaseSpeed(cid))
doSendMagicEffect(getThingPos(cid), 34)
doSendAnimatedText(getThingPos(cid), 'Protected', COLOR_GREY)
end
local function unregister(cid)
if not isPlayer(cid) then return end
unregisterCreatureEvent(cid, 'ImmunitySpell')
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local uses = getItemAttribute(item.uid, 'uses')
if not uses then
doItemSetAttribute(item.uid, 'uses', config.uses)
uses = config.uses
end
uses = uses - 1
if getCreatureStorage(cid, config.cooldown.storage) > os.time() and getPlayerGroupId(cid) < config.ignoreCooldownGroup then
doPlayerSendTextMessage(cid,27, string.format('You can only use this spell each %d seconds.', config.cooldown.duration))
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
return true
end
doCreatureSetStorage(cid, config.cooldown.storage, os.time() + config.cooldown.duration)
registerCreatureEvent(cid, 'ImmunitySpell')
for i = 0, config.duration - 1 do
addEvent(sendEffect, i * 1000, cid)
end
addEvent(unregister, config.duration * 1000, cid)
doItemSetAttribute(item.uid, 'uses', uses)
if uses <= 0 then
doRemoveItem(item.uid)
doPlayerSendTextMessage(cid,27,"You used the last charge, your item is gone.")
else
doPlayerSendTextMessage(cid,27, string.format('You used a charge, you have %d charges left.', uses))
end
return true
end