diff --git a/Project/CustomPlugins/lulu/ObjectConvert.nut b/Project/CustomPlugins/lulu/ObjectConvert.nut index 4049d89..3b4b20b 100644 --- a/Project/CustomPlugins/lulu/ObjectConvert.nut +++ b/Project/CustomPlugins/lulu/ObjectConvert.nut @@ -174,4 +174,87 @@ function sq_SetCurrentAttackInfoChangeStatus(attackInfo, Data1, Data2, Data3) B.writen(Data3, 'i'); B.seek(0); MemoryTool.EncodeMemoryData(AtkC + 0x234, B.readn('i')); +} + +function sq_GetCurrentAttackInfoHumanDamageRate(attackInfo) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local Res = MemoryTool.DecodeMemoryData(AtkC + 0x294); + local B = blob(); + B.writen(Res, 'i'); + B.seek(0); + return B.readn('f'); +} + +function sq_SetCurrentAttackInfoHumanDamageRate(attackInfo, rate) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local B = blob(); + B.writen(rate, 'f'); + B.seek(0); + MemoryTool.EncodeMemoryData(AtkC + 0x294, B.readn('i')); +} + +function sq_GetCurrentAttackInfoFortDamageRate(attackInfo) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local Res = MemoryTool.DecodeMemoryData(AtkC + 0x2A0); + local B = blob(); + B.writen(Res, 'i'); + B.seek(0); + return B.readn('f'); +} + +function sq_SetCurrentAttackInfoFortDamageRate(attackInfo, rate) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local B = blob(); + B.writen(rate, 'f'); + B.seek(0); + MemoryTool.EncodeMemoryData(AtkC + 0x2A0, B.readn('i')); +} + +function sq_GetCurrentAttackInfoMonsterDamageRate(attackInfo) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local Res = MemoryTool.DecodeMemoryData(AtkC + 0x2AC); + local B = blob(); + B.writen(Res, 'i'); + B.seek(0); + return B.readn('f'); +} + +function sq_SetCurrentAttackInfoMonsterDamageRate(attackInfo, rate) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local B = blob(); + B.writen(rate, 'f'); + B.seek(0); + MemoryTool.EncodeMemoryData(AtkC + 0x2AC, B.readn('i')); +} + +function sq_GetCurrentAttackInfoCriticalRate(attackInfo) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local Res = MemoryTool.DecodeMemoryData(AtkC + 0x68); + local B = blob(); + B.writen(Res, 'i'); + B.seek(0); + return B.readn('f'); +} + +function sq_SetCurrentAttackInfoCriticalRate(attackInfo, rate) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local B = blob(); + B.writen(rate, 'f'); + B.seek(0); + MemoryTool.EncodeMemoryData(AtkC + 0x68, B.readn('i')); +} + +function sq_GetCurrentAttackInfoDamageReaction(attackInfo) +{ + local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]); + local Res = MemoryTool.DecodeMemoryData(AtkC + 0x4C); + return Res; } \ No newline at end of file