111
This commit is contained in:
107
Project/FatalismStone/FatalismStone_BackPack.nut
Normal file
107
Project/FatalismStone/FatalismStone_BackPack.nut
Normal file
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
文件名: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");
|
||||
Reference in New Issue
Block a user