local combat = createCombatObject() -- Configurações do buff local buffDuration = 800 -- Duração total do buff (800 ms) local tickInterval = 200 -- Intervalo entre os ticks (200 ms) local ticks = 4 -- Quantidade de ticks local manaPercentPerTick = 0.10 -- 10% da mana máxima por tick local baseHpPerTick = 100 -- Cura base por tick local levelScaling = 0.05 -- Aumento de 5% na cura a cada 10 níveis -- Deslocamentos padrões para outros efeitos local offsetX = 2 local offsetY = 0 -- Deslocamentos específicos para o efeito 93 local offsetX93 = 0 local offsetY93 = 0 function onCastSpell(creature, var) local maxMana = creature:getMaxMana() local restorePerTick = math.floor(maxMana * manaPercentPerTick) local level = creature:getLevel() local tickCount = 0 local adjustedHpPerTick = math.floor(baseHpPerTick * (1 + math.floor(level / 10) * levelScaling)) local function restoreManaAndHp(creatureId) local creature = Creature(creatureId) if not creature then return end tickCount = tickCount + 1 creature:addMana(restorePerTick) creature:addHealth(adjustedHpPerTick) local playerPos = creature:getPosition() -- Aplica o efeito 93 com offsets separados local effectPos1 = Position(playerPos.x + offsetX93, playerPos.y + offsetY93, playerPos.z) effectPos1:sendMagicEffect(93) -- Aplica o efeito 125 apenas na primeira vez if tickCount == 1 then local effectPos2 = Position(playerPos.x + 2 - offsetX, playerPos.y - offsetY, playerPos.z) effectPos2:sendMagicEffect(125) end if tickCount < ticks then addEvent(restoreManaAndHp, tickInterval, creatureId) end end addEvent(restoreManaAndHp, tickInterval, creature:getId()) local adjustedPos = Position(creature:getPosition().x + offsetX, creature:getPosition().y + offsetY, creature:getPosition().z) adjustedPos:sendMagicEffect(100) return false end