Try with creaturescripts, like a:
local dodge = {
[1] = {50, Y - you can use absorb here}
...
}
if getPlayerStorageValue(cid, XXX -- storage of dodge) > 0 then
local chance = math.random(1, # dodge[getPlayerStorageValue(cid, XXX)][1]) -- it read a chance from dodge, for 100 = 1%, for 50 = 2%...