@kyleflow
Maybe it's not optimal, but try this, it should work:
HardenTable = {}
function Skill_Shpf_End ( ATKER , DEFER , sklv )
local statelv = sklv
local statetime = 180
local deferId = GetPlayerID(GetChaPlayer(DEFER))
local bufferSpr = Sta(ATKER)
HardenTable[deferId] = bufferSpr
AddState ( ATKER , DEFER , STATE_SHPF , statelv , statetime )
end
function State_Shpf_Add ( role , statelv )
local buffer_spr = 0
local deferId = GetPlayerID(GetChaPlayer(role))
if HardenTable[deferId] ~= nil then
buffer_spr = HardenTable[deferId]
end
local def_dif = 10 + statelv * 4 + buffer_spr
local def = DefSb(role) + def_dif
SetCharaAttr( def , role , ATTR_STATEV_DEF )
ALLExAttrSet(role)
end
function State_Shpf_Rem ( role , statelv )
local buffer_spr = 0
local deferId = GetPlayerID(GetChaPlayer(role))
if HardenTable[deferId] ~= nil then
buffer_spr = HardenTable[deferId]
HardenTable[deferId] = nil
end
local def_dif = 10 + statelv * 4 + buffer_spr
local def = DefSb(role) - def_dif
SetCharaAttr( def , role , ATTR_STATEV_DEF )
ALLExAttrSet(role)
end