local lvldodge = 48903
local percent = 0.1 -- Porcentagem padrão de reflexão de dano
local storageID = 10001 -- ID do storage para controlar a habilidade de reflexão
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then
if (getPlayerStorageValue(cid, lvldodge) * 3) >= math.random(0, 1000) then
local reflectValue = math.ceil(value * percent)
doCreatureAddHealth(attacker, -reflectValue)
doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6)
-- Incrementar o storage para indicar que a habilidade foi usada
setPlayerStorageValue(cid, storageID, 1)
return false
end
end
return true
end
-- Adicionando o evento ao XML
local eventXML = [=[<event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/>]=]
local file = io.open('data/creaturescripts/creaturescripts.xml', 'a')
if file then
file:write(eventXML)
file:close()
else
print("Erro ao abrir o arquivo creaturescripts.xml")
end
-- Registro do evento no login.lua
local loginScript = [=[registerCreatureEvent(cid, "ReflectStone")]=]
local loginFile = io.open('data/creaturescripts/login.lua', 'a')
if loginFile then
loginFile:write(loginScript)
loginFile:close()
else
print("Erro ao abrir o arquivo login.lua")
end