- Awards
- 38
Script compartido por Gazia, un script que permite agregar un efecto a los montruos cuando mueren, como en el tibia oficial, asi bien hasta que looteen el cuerpo.
Este script utiliza EventCallback, tal y como esta es para TFS unicamente.
Ver el segundo codigo para Canary.
Para canary habria que encontrar la funcion onDropLoot, agregar esta parte dentro:
Crear un script en creaturescripts y agregar esto dentro:
Este script utiliza EventCallback, tal y como esta es para TFS unicamente.
Ver el segundo codigo para Canary.
Código Lua:
local maxTries = 100
local repeatInterval = 2300 -- Intervalo de repetición en milisegundos (2 segundos)
local function tryEffect(pos, itemId, tries)
if tries <= 0 then return end
tries = tries - 1
local tile = Tile(pos)
local corpse = tile:getItemById(itemId)
if not corpse or corpse:getSize() == 0 then return end
pos:sendMagicEffect(252)
addEvent(tryEffect, repeatInterval, pos, itemId, tries)
end
local event = EventCallback
function event.onDropLoot(monster, corpse)
if not corpse or not corpse:isContainer() then return end
local pos = corpse:getPosition()
local itemId = corpse:getId()
tryEffect(pos, itemId, maxTries)
end
event:register()
local creatureevent = CreatureEvent("effectmonster")
function creatureevent.onKill(player, target)
if not target:isMonster() then return end
local pos = target:getPosition()
local corpse = target:getType()
if corpse then
pos:sendMagicEffect(252) -- Envía el efecto mágico cuando el monstruo es asesinado
addEvent(tryRepeatedEffect, repeatInterval, pos, maxTries)
end
end
function tryRepeatedEffect(pos, tries)
if tries <= 0 then return end
local tile = Tile(pos)
local corpse = tile:getTopDownItem()
if not corpse or corpse:getSize() == 0 then return end
pos:sendMagicEffect(252) -- Envía el efecto mágico
tries = tries - 1
addEvent(tryRepeatedEffect, repeatInterval, pos, tries)
end
creatureevent:register()
Para canary habria que encontrar la funcion onDropLoot, agregar esta parte dentro:
Código Lua:
local maxTries = 100
local repeatInterval = 2300 -- Intervalo de repetición en milisegundos (2 segundos)
local function tryEffect(pos, itemId, tries)
if tries <= 0 then return end
tries = tries - 1
local tile = Tile(pos)
local corpse = tile:getItemById(itemId)
if not corpse or corpse:getSize() == 0 then return end
pos:sendMagicEffect(252)
addEvent(tryEffect, repeatInterval, pos, itemId, tries)
end
if not corpse or not corpse:isContainer() then
return
end
local pos = corpse:getPosition()
local itemId = corpse:getId()
if pos then
tryEffect(pos, itemId, maxTries)
end
Crear un script en creaturescripts y agregar esto dentro:
Código Lua:
local creatureevent = CreatureEvent("effectmonster")
function creatureevent.onKill(player, target)
if not target:isMonster() then return end
local pos = target:getPosition()
local corpse = target:getType()
if corpse then
pos:sendMagicEffect(252) -- Envía el efecto mágico cuando el monstruo es asesinado
addEvent(tryRepeatedEffect, repeatInterval, pos, maxTries)
end
end
function tryRepeatedEffect(pos, tries)
if tries <= 0 then return end
local tile = Tile(pos)
local corpse = tile:getTopDownItem()
if not corpse or corpse:getSize() == 0 then return end
pos:sendMagicEffect(252) -- Envía el efecto mágico
tries = tries - 1
addEvent(tryRepeatedEffect, repeatInterval, pos, tries)
end
creatureevent:register()