Código Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_THUNDER)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
function onGetFormulaValues(player, level, maglevel)
local min = (level / 5) + (maglevel * 10)
local max = (level / 5) + (maglevel * 14)
return -min, -max
end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local spell = Spell("instant")
-- Tabla para almacenar los tiempos de reutilización de los jugadores
local playerCooldowns = {}
-- Función para actualizar los cooldowns de los jugadores
local function updateCooldowns()
for playerId, cooldown in pairs(playerCooldowns) do
if cooldown > 0 then
cooldown = cooldown - 1
playerCooldowns[playerId] = cooldown
-- Obtener al jugador por su ID
local player = Player(playerId)
if player then
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, "Wait " .. cooldown .. " seconds before using radiant strike again.")
end
end
end
addEvent(updateCooldowns, 1000) -- Espera 1 segundo antes de actualizar nuevamente
end
-- Iniciar la función para descuento de cooldowns
updateCooldowns()
-- Modifica la función spell.onCastSpell para aplicar el cooldown
function spell.onCastSpell(creature, variant)
local playerId = creature:getId()
if playerCooldowns[playerId] and playerCooldowns[playerId] > 0 then
local player = Player(creature)
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, "Wait " .. playerCooldowns[playerId] .. " seconds before using radiant strike again.")
return false
end
playerCooldowns[playerId] = 5 -- 5 segundos de cooldown para este jugador
return combat:execute(creature, variant)
end
spell:group("attack")
spell:id(246)
spell:name("Light Explosion")
spell:words("Radiant Strike")
spell:level(150)
spell:mana(800)
spell:groupCooldown(1 * 1000)
spell:isPremium(true)
spell:needLearn(false)
spell:vocation("druid;true", "elder druid;true")
spell:register()