local combat = createCombatObject() -- Configurações do buff local buffDuration = 5000 -- Duração total do buff (5 segundos) local tickInterval = 1000 -- Intervalo entre os ticks (1 segundo) local ticks = 4 -- Quantidade de ticks (4 vezes, 25 HP cada, totalizando 100 HP) local manaPercentPerTick = 0.10 -- Percentual de mana restaurada por tick (10%) local baseHpPerTick = 50 -- Cura base por tick (25 HP) local levelScaling = 0.05 -- Aumento de 5% na cura a cada 10 níveis -- Deslocamento para os efeitos visuais (ajuste conforme necessário) local offsetX = 1 -- +1 para direita, -1 para esquerda local offsetY = 0 -- +1 para baixo, -1 para cima function onCastSpell(creature, var) local maxMana = creature:getMaxMana() local restorePerTick = math.floor(maxMana * manaPercentPerTick) -- 10% da mana máxima por tick local level = creature:getLevel() -- Pega o nível do conjurador local tickCount = 0 -- Calcula a cura de HP ajustada pelo nível local adjustedHpPerTick = math.floor(baseHpPerTick * (1 + math.floor(level / 10) * levelScaling)) -- Função que restaura a mana e cura HP a cada tick local function restoreManaAndHp(creatureId) local creature = Creature(creatureId) if not creature then return end tickCount = tickCount + 1 creature:addMana(restorePerTick) -- Restaura a mana creature:addHealth(adjustedHpPerTick) -- Cura HP ajustado pelo nível -- Pega a posição atual do conjurador em cada tick local playerPos = creature:getPosition() -- Calcula as novas posições para os efeitos visuais em relação ao jogador local effectPos1 = Position(playerPos.x + offsetX, playerPos.y + offsetY, playerPos.z) local effectPos2 = Position(playerPos.x + 2 - offsetX, playerPos.y - offsetY, playerPos.z) -- Aplica os efeitos visuais nas posições ajustadas effectPos1:sendMagicEffect(191) effectPos2:sendMagicEffect(192) -- Continua restaurando mana e curando HP até que todos os ticks sejam completados if tickCount < ticks then addEvent(restoreManaAndHp, tickInterval, creatureId) else end end -- Inicia o buff de mana e cura addEvent(restoreManaAndHp, tickInterval, creature:getId()) -- Aplica o efeito 193 com o eixo ajustado local adjustedPos = Position(creature:getPosition().x + offsetX, creature:getPosition().y + offsetY, creature:getPosition().z) adjustedPos:sendMagicEffect(191) return false end