From f7d6d34c46cd2a752d3cc8eb6dc954f6534ce6f8 Mon Sep 17 00:00:00 2001 From: Lenheart <947330670@qq.com> Date: Tue, 10 Mar 2026 19:31:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=B2=E9=9C=B2=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Base/_Tool/MemoryClass.nut | 6 +++ Project/CustomPlugins/lulu/ObjectConvert.nut | 45 ++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/Base/_Tool/MemoryClass.nut b/Base/_Tool/MemoryClass.nut index 9e4bef3..badb867 100644 --- a/Base/_Tool/MemoryClass.nut +++ b/Base/_Tool/MemoryClass.nut @@ -154,6 +154,12 @@ class NativePointer { } function readInt() { + // if(L_sq_P2I(this.C_Object) < 0x7FFFFFFF && L_sq_P2I(this.C_Object) > 0x400000 && L_sq_P2I(this.C_Object) % 4 == 0) { + // if(L_sq_Test(L_sq_P2I(this.C_Object))){ + // return read('i'); + // } + // return 0; + return read('i'); } diff --git a/Project/CustomPlugins/lulu/ObjectConvert.nut b/Project/CustomPlugins/lulu/ObjectConvert.nut index 95fd640..3d2e796 100644 --- a/Project/CustomPlugins/lulu/ObjectConvert.nut +++ b/Project/CustomPlugins/lulu/ObjectConvert.nut @@ -12,4 +12,49 @@ function sq_GetCNRDObjectToPassiveObject(obj) { function sq_GetCNRDObjectToSQRPassiveObject(obj) { return L_Sq_ObjectAddressToSqrObject(L_Sq_GetObjectAddress(obj), "CNSquirrelPassiveObject", 0); +} + +function sq_GetObjectAbilityInteger(ObjectAddress) +{ + return NativePointer(ObjectAddress).readInt(); +} + +function sq_SetObjectAbilityInteger(ObjectAddress, Value) +{ + NativePointer(ObjectAddress).writeInt(Value); +} + +function sq_GetObjectAbilityFloat(ObjectAddress) +{ + return NativePointer(ObjectAddress).readFloat(); +} + +function sq_SetObjectAbilityFloat(ObjectAddress, Value) +{ + NativePointer(ObjectAddress).writeFloat(Value); +} + +function sq_GetObjectAbilityIntegerWithDecrypt(ObjectAddress) +{ + return MemoryTool.DecodeMemoryData(ObjectAddress); +} + +function sq_SetObjectAbilityIntegerWithDecrypt(ObjectAddress, Value) +{ + MemoryTool.EncodeMemoryData(ObjectAddress, Value); +} + +function sq_GetObjectAbilityFloatWithDecrypt(ObjectAddress) +{ + local Res = MemoryTool.DecodeMemoryData(ObjectAddress); + local B = blob(); + B.writen(Res, 'i'); + return B.readn('f'); +} + +function sq_SetObjectAbilityFloatWithDecrypt(ObjectAddress, Value) +{ + local B = blob(); + B.writen(Value, 'f'); + MemoryTool.EncodeMemoryData(ObjectAddress, B.readn('i')); } \ No newline at end of file