/* 文件名:FatalismStone_BackPack.nut 路径:Project/FatalismStone/FatalismStone_BackPack.nut 创建日期:2025-08-27 17:54 文件用途:魂石背包类 */ //魂石背包类 class FatalismStone_BackPack { //背包总格子数 GridCount = 77; //穿戴总格子数 WearCount = 6; StoneArr = null; constructor() { StoneArr = []; //魂石单个数据回包 Rindro_BaseToolClass.RegisterHexPack(21000012, function(Pack) { local Uuid = Pack.GetInt(); local Info = { Cultivation = Pack.GetInt().tofloat() * 0.01, } foreach(StoneObject in StoneArr) { if (!StoneObject) continue; if (StoneObject.Uuid == Uuid) { StoneObject.InitializeData(Info); break; } } }.bindenv(this)); //魂石多个数据回包 Rindro_BaseToolClass.RegisterHexPack(21000014, function(Pack) { local Count = Pack.GetInt(); for (local i = 0; i< Count; i++) { local Uuid = Pack.GetInt(); local Info = { Cultivation = Pack.GetInt().tofloat() * 0.01, } foreach(StoneObject in StoneArr) { if (!StoneObject) continue; if (StoneObject.Uuid == Uuid) { StoneObject.InitializeData(Info); break; } } } }.bindenv(this)); } //通过数据构造背包 反序列化 function Deserialize(N_Data) { local BackpackData = N_Data[0]; local WearData = N_Data[1]; //转换背包数据 local BackPackArr = []; for (local i = 0; i<(GridCount * 3); i++) { local StoneId = BackpackData.add(i * 8).readInt(); local StoneUuid = BackpackData.add(i * 8 + 4).readInt(); if (StoneId != 0 && StoneUuid != 0) { local StoneObj = FatalismStone_Stone(StoneId); StoneObj.Stone_Type = i / GridCount; StoneObj.Uuid = StoneUuid; BackPackArr.append(StoneObj); } else { BackPackArr.append(null); } } //转化穿戴数据 local WearArr = []; for (local i = 0; i< WearCount; i++) { local StoneId = WearData.add(i * 8).readInt(); local StoneUuid = WearData.add(i * 8 + 4).readInt(); if (StoneId != 0 && StoneUuid != 0) { local StoneObj = FatalismStone_Stone(StoneId); StoneObj.Uuid = StoneUuid; WearArr.append(StoneObj); } else { WearArr.append(null); } } //两段数据放入总数据 StoneArr.extend(BackPackArr); StoneArr.extend(WearArr); } //获取魂石的列表 3为身上穿戴的 function GetList(Page) { local SliceLength = GridCount; if (Page == 3) SliceLength = WearCount; return StoneArr.slice(Page * 77, Page * 77 + SliceLength); } } L_Windows_List <- []; getroottable().rawdelete("LenheartPluginsInitFlag"); getroottable().rawdelete("EventList_Obj") getroottable().rawdelete("FatalismStone_Obj");