From 3c181a46312a5b2e1087a87d7247d9bd6074f6f2 Mon Sep 17 00:00:00 2001 From: Lenheart <947330670@qq.com> Date: Sat, 5 Jul 2025 22:29:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=93=E5=B1=95=E5=AD=97=E8=8A=82=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Base/CallBack/PackControl.nut | 18 +++++++++++++--- Base/_Tool/Packet_Class.nut | 39 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 Base/_Tool/Packet_Class.nut diff --git a/Base/CallBack/PackControl.nut b/Base/CallBack/PackControl.nut index a1ad7fd..0e0c7d8 100644 --- a/Base/CallBack/PackControl.nut +++ b/Base/CallBack/PackControl.nut @@ -50,6 +50,16 @@ function Sq_Pack_ControlLocal(Chunk) { } } +//字节流包 +function Sq_BlobPack_Control(Size,Pointer) +{ + local Pack = Packet(); + Pack.Load(Pointer,Size); + // print(Pack.GetInt()); + // print(Pack.GetInt()); +} + + function SendPackToDP_S(Id, T) { T.op <- 2147483646; T.dps_id <- Id; @@ -69,6 +79,7 @@ Pack_Control.rawset(2024041602, LenheartGotoDgnCallBack); //进入副本增加属性 function LenheartAdditionalAttributes(obj) { + obj = sq_ObjectToSQRCharacter(obj); //在副本中 if (sq_GetCurrentModuleType() == 3) { if (!CNSquirrelAppendage.sq_IsAppendAppendage(obj, "appendage/lenheartap.nut")) { @@ -76,12 +87,13 @@ function LenheartAdditionalAttributes(obj) { local Abarr = {}; foreach(AtObj in getroottable()["LenheartAttributesTable"]) { foreach(Apos, At in AtObj) { - if(!Abarr.rawin(Apos))Abarr[Apos] <- At; - else Abarr[Apos]+= At; + if (!Abarr.rawin(Apos)) Abarr[Apos] <- At; + else Abarr[Apos] += At; } } local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, -1, false, "appendage/lenheartap.nut", true); + CNSquirrelAppendage.sq_Append(appendage, obj, obj); local change_appendage = appendage.sq_getChangeStatus("Yosin_LenheartDgnBuff"); if (!change_appendage) { @@ -154,4 +166,4 @@ function LenheartAdditionalCallBack(Chunk) { getroottable().rawset("LenheartAttributesTable", T); } } -Pack_Control.rawset(20069016, LenheartAdditionalCallBack); +Pack_Control.rawset(20069016, LenheartAdditionalCallBack); \ No newline at end of file diff --git a/Base/_Tool/Packet_Class.nut b/Base/_Tool/Packet_Class.nut new file mode 100644 index 0000000..3c9bdb1 --- /dev/null +++ b/Base/_Tool/Packet_Class.nut @@ -0,0 +1,39 @@ +/* +文件名:Pack_Class.nut +路径:Base/_Tool/Pack_Class.nut +创建日期:2025-06-30 09:24 +文件用途:字节包 +*/ +class Packet{ + + //读取指针位置 + ReadIndex = 0; + + //内存数据 + Pointer = null; + //包大小 + Size = 0; + + + //加载包 + function Load(P,S) + { + Pointer = P; + Size = S; + } + + //读取整形 + function GetInt() + { + local Size_t = 4; + if(ReadIndex + Size_t > Size){ + print("读取包越界!"); + return; + } + local Buf = NativePointer(Pointer).add(ReadIndex).readInt(); + ReadIndex += Size_t; + return Buf; + } + + //读取 +}