寒服更新

This commit is contained in:
2026-02-13 20:20:00 +08:00
parent 513caa5347
commit 4de459884c
7 changed files with 806 additions and 10 deletions

View File

@@ -24,7 +24,6 @@ class Script {
getroottable()._Script_Data_Init_ = true;
}
function GetFileInfo(Path) {
local size = Asset_GetPvfFileSize(C_Object, Path);
if (size) {

View File

@@ -272,4 +272,30 @@ class World {
Sq_Delete_Point(end);
return PlayerArr;
}
//获取区域
function GetArea(TownId, AreaId) {
local GameWorld = Sq_CallFunc(S_Ptr("0x080DA3A7"), "pointer", []);
local Town = Sq_CallFunc(S_Ptr("0x086D1764"), "pointer", ["pointer", "int"], GameWorld, TownId);
local Area = Sq_CallFunc(S_Ptr("0x086C3BA2"), "pointer", ["pointer", "int"], Town, AreaId);
return Area;
}
//获取区域的玩家列表
function GetAreaUserList(Area) {
local List = [];
local VectorM = Memory.alloc(4 * 3);
Sq_CallFunc(S_Ptr("0x08168420"), "int", ["pointer"], VectorM.C_Object);
local Flag = Sq_CallFunc(S_Ptr("0x086C305E"), "bool", ["pointer", "pointer"], Area, VectorM.C_Object);
local start = VectorM.readPointer();
local finish = VectorM.add(4).readPointer();
local Size = Sq_Ptr2Int(Sq_PointerOperationPointer(finish, start, "-")) / 2;
for (local i = 0; i< Size; i++) {
local UserId = NativePointer(start).add(i * 2).readUShort();
local SUser = GetUserBySession(UserId);
if (SUser) List.push(SUser);
}
return List.len() > 0 ? List : null;
}
}

View File

@@ -6,15 +6,24 @@
*/
if (!("Cb_Use_Item_Sp_Func" in getroottable())) Cb_Use_Item_Sp_Func <- {};
// function Cb_use_item_sp(C_User, ItemId) {
// if (ItemId in Cb_Use_Item_Sp_Func) {
// local SUser = User(C_User);
// if (SUser) {
// local Ret = Cb_Use_Item_Sp_Func[ItemId](SUser, ItemId);
// if (Ret == false) return false;
// }
// }
// return true;
// }
function Cb_use_item_sp(C_User, ItemId) {
if (ItemId in Cb_Use_Item_Sp_Func) {
local SUser = User(C_User);
if (SUser) {
local Ret = Cb_Use_Item_Sp_Func[ItemId](SUser, ItemId);
if (Ret == false) return false;
Cb_History_ItemDown_Func["UseSharedEffectItem"] <- function(SUser, Data) {
if (Data[18] == "3") {
local ItemId = Data[15].tointeger();
if (ItemId in Cb_Use_Item_Sp_Func) {
if (SUser) {
Cb_Use_Item_Sp_Func[ItemId](SUser, ItemId);
}
}
}
return true;
}