-- Attributes function ResetStats() if env(GetSpEffectID, 100760) == FALSE then return end act(ClearSpEffect, 100760) local charaInitParamId = 3000 + GetPointerValue(GAME_BASE.GAME_DATA_MAN.PLAYER_GAME_INFO.CLASS_INDEX) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.RUNE_LEVEL, GetParamValue(PARAM.CharaInitParam.LEVEL, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_VIGOR, GetParamValue(PARAM.CharaInitParam.VIGOR, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_MIND, GetParamValue(PARAM.CharaInitParam.MIND, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_ENDURANCE, GetParamValue(PARAM.CharaInitParam.ENDURANCE, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_STRENGTH, GetParamValue(PARAM.CharaInitParam.STRENGT, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_DEXTERITY, GetParamValue(PARAM.CharaInitParam.DEXTERITY, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_INTELLIGENCE, GetParamValue(PARAM.CharaInitParam.INTELLIGENCE, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_FAITH, GetParamValue(PARAM.CharaInitParam.FAITH, charaInitParamId)) SetPointerValue(CHR_INS_BASE.PLAYER_GAME_DATA.LEVELED_ARCANE, GetParamValue(PARAM.CharaInitParam.ARCANE, charaInitParamId)) end -- Resources function GetMaxFP() return GetPointerValue(CHR_INS_BASE.CHR_MODULES.DATA_MODULE.FP_MAX) end function SetFP(value) SetPointerValue(CHR_INS_BASE.CHR_MODULES.DATA_MODULE.FP, value) end hpTrackerTable = {} function TrackHP() if #hpTrackerTable == 0 then table.insert(hpTrackerTable, 1, { timeStamp = g_DeltaTimeCount, hp = env(GetHP) }) return end local hp = env(GetHP) if hpTrackerTable[1].hp == hp then return elseif hpTrackerTable[1].hp > hp then -- Took Damage act(AddSpEffect, 8000200) elseif hpTrackerTable[1].hp < hp then -- Healed act(AddSpEffect, 8000100) end table.insert(hpTrackerTable, 1, { timeStamp = g_DeltaTimeCount, hp = hp }) while hpTrackerTable[#hpTrackerTable].timeStamp < g_DeltaTimeCount - 10 and #hpTrackerTable > 10 do table.remove(hpTrackerTable, #hpTrackerTable) end end function GetHpRatio() return env(GetHP) / env(GetMaxHP) end