毁梦更新
This commit is contained in:
parent
f58fc1e30e
commit
ea5d573cde
|
|
@ -112,26 +112,9 @@ Gm_InputFunc_Handle["点券"] <- function(SUser, CmdString) {
|
|||
Gm_InputFunc_Handle["test"] <- function(SUser, CmdString) {
|
||||
|
||||
|
||||
|
||||
// MoveToCargo(SUser, 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Timer.SetTimeOut(function() {
|
||||
|
||||
// Haker.LoadHook("0x0850D39C", ["pointer", "int", "bool"],
|
||||
// function(args) {
|
||||
// return null;
|
||||
// },
|
||||
// function(args) {
|
||||
|
||||
|
||||
// print(SUser.GetCharacName());
|
||||
// // return false;
|
||||
// return null;
|
||||
// });
|
||||
|
||||
|
||||
}, 1)
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
// 定义修复老技能槽信息的函数
|
||||
function FixOldSkillSlotInfo() {
|
||||
Cb_reform_ui_group_no_Leave_Func["月光修复老技能"] <- function(args) {
|
||||
local skillClassValue = NativePointer(args[1]).sub(0x60).readInt();
|
||||
if (skillClassValue == 197) {
|
||||
NativePointer(args[1]).writeInt(4);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Cb_get_skillslot_group_Leave_Func["月光修复老技能"] <- function(args) {
|
||||
local slot = args[1];
|
||||
if (slot< 8 || slot >= 198) return -1;
|
||||
else if (slot >= 160) return 4;
|
||||
else if (slot >= 122) return 3;
|
||||
else if (slot >= 84) return 2;
|
||||
else if (slot >= 46) return 1;
|
||||
else return 0;
|
||||
}
|
||||
|
||||
Cb_get_skillslot_no_Leave_Func["月光修复老技能"] <- function(args) {
|
||||
local thisP = args[0];
|
||||
local skillId = args[1];
|
||||
local group = args[2];
|
||||
local slot = args[3];
|
||||
local is_active_skill = args[4];
|
||||
|
||||
if (!thisP || !NativePointer(thisP).readPointer()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
local buf = Sq_CallFunc(S_Ptr("0x86067DE"), "pointer", ["pointer", "int"], thisP, slot);
|
||||
if (!buf) {
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (is_active_skill && Sq_CallFunc(S_Ptr("0x8608D58"), "byte", ["pointer", "int"], thisP, skillId)) {
|
||||
local end = skillId ? 7 : 5;
|
||||
for (local i = 0; i <= end; ++i) {
|
||||
if (NativePointer(buf).add(2 * i).readU8() == skillId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
for (local i = 198; i <= 203; ++i) {
|
||||
if (NativePointer(buf).add(2 * i).readU8() == skillId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
local pos = 8 + group * 38;
|
||||
for (local i = 0; i< 38; ++i) {
|
||||
if (NativePointer(buf).add(2 * (pos + i)).readU8() == skillId) {
|
||||
return pos + i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
Cb_get_skillslot_no2_Leave_Func["月光修复老技能"] <- function(args) {
|
||||
local thisP = args[0];
|
||||
local buf = args[1];
|
||||
local skillId = args[2];
|
||||
local group = args[3];
|
||||
local is_active_skill = args[4];
|
||||
|
||||
if (!thisP || !NativePointer(thisP).readPointer()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (is_active_skill) {
|
||||
local end = skillId ? 7 : 5;
|
||||
for (local i = 0; i <= end; ++i) {
|
||||
if (NativePointer(buf).add(2 * i).readU8() == skillId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
for (local i = 198; i <= 203; ++i) {
|
||||
if (NativePointer(buf).add(2 * i).readU8() == skillId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local pos = 8 + group * 38;
|
||||
for (local i = 0; i< 38; ++i) {
|
||||
if (NativePointer(buf).add(2 * (pos + i)).readU8() == skillId) {
|
||||
return pos + i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
NativePointer(0x08604596).writeS8(5);
|
||||
NativePointer(0x0860459C).writeS8(5);
|
||||
NativePointer(0x08606A27).writeS8(5);
|
||||
NativePointer(0x0860795E).writeS8(5);
|
||||
|
||||
NativePointer(0x08608CD5).writeS8(8);
|
||||
NativePointer(0x08608CCF).writeS8(8);
|
||||
NativePointer(0x08608969).writeS8(8);
|
||||
NativePointer(0x08609001).writeS8(8);
|
||||
|
||||
NativePointer(0x08605090).writeUInt(8 + 38 * 4);
|
||||
NativePointer(0x08605097).writeUInt(8 + 38 * 5);
|
||||
NativePointer(0x0860514F).writeUInt(8 + 38 * 3);
|
||||
NativePointer(0x08605156).writeUInt(8 + 38 * 4);
|
||||
NativePointer(0x0860513F).writeUInt(8 + 38 * 2);
|
||||
NativePointer(0x08605146).writeUInt(8 + 38 * 3);
|
||||
NativePointer(0x0860512F).writeUInt(8 + 38 * 1);
|
||||
NativePointer(0x08605136).writeUInt(8 + 38 * 2);
|
||||
NativePointer(0x0860511F).writeUInt(8 + 38 * 0);
|
||||
NativePointer(0x08605126).writeUInt(8 + 38 * 1);
|
||||
NativePointer(0x0866C6C4).writeUInt(196);
|
||||
}
|
||||
|
||||
Timer.SetTimeOut(function() {
|
||||
// 调用函数启用修复
|
||||
FixOldSkillSlotInfo();
|
||||
}, 1);
|
||||
|
|
@ -28,7 +28,6 @@ Cb_MyDisPatcher_DisJointItem_disjoint_Enter_Func["茶服自定义分解机"] <-
|
|||
if (Sq_CallFunc(S_Ptr("0x81424E8"), "int", ["pointer"], v9)) return null;
|
||||
}
|
||||
|
||||
|
||||
ChaFuCustomDecompositionFixFlag = true;
|
||||
//跳过原逻辑
|
||||
Sq_WriteByteArr(S_Ptr("0x81F92D0"), Haker.AsmGenerateMcd(
|
||||
|
|
@ -42,6 +41,8 @@ Cb_MyDisPatcher_DisJointItem_disjoint_Enter_Func["茶服自定义分解机"] <-
|
|||
try {
|
||||
HandleDisjointRequest(SelfUser, args[1], args[2], args[3], OthersUser, args[5]);
|
||||
} catch (exception){
|
||||
print("error:")
|
||||
print(exception)
|
||||
Sq_CallFunc(S_Ptr("0x0867bf42"), "int", ["pointer", "int", "char"], SelfUser.C_Object, args[3], 19);
|
||||
Sq_CallFunc(S_Ptr("0x0867bf42"), "int", ["pointer", "int", "char"], OthersUser.C_Object, args[3], 19);
|
||||
}
|
||||
|
|
@ -321,10 +322,11 @@ function HandleDisjointRequest(MyUser, EquStol, Inventype, HeadId, ObjUser, Chan
|
|||
|
||||
// 添加物品到玩家背包
|
||||
// 参数说明:玩家对象, 物品ID, 数量, 类型(6=直接添加), 物品空间指针, 标志位(0)
|
||||
local slot = MyUser.GiveItem(itemId, itemCount);
|
||||
// local slot = MyUser.GiveItem(itemId, itemCount);
|
||||
local slot = Sq_CallFunc(S_Ptr("0x867B6D4"), "int", ["pointer", "int", "int", "int", "pointer", "int"], MyUser.C_Object, itemId, itemCount, 6, item_space.C_Object, 0);
|
||||
|
||||
// 将物品信息写入数据包
|
||||
PackObject.Put_Short(slot[1]); // 槽位
|
||||
PackObject.Put_Short(slot); // 槽位
|
||||
PackObject.Put_Int(itemId); // 物品ID
|
||||
PackObject.Put_Int(itemCount); // 数量
|
||||
}
|
||||
|
|
@ -438,7 +440,6 @@ function SetLevelCnt(itemId, equLevel, disjointerLevel) {
|
|||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
// 确保至少返回1个
|
||||
return baseCount > 0 ? baseCount : 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,6 +91,120 @@ _HM_DQJYHD_ <- "0"
|
|||
|
||||
function _Dps_JYYJBB2_Main_() {
|
||||
|
||||
Cb_History_ItemUp_Func["交易邮件播报"] <- function(SUser, args) {
|
||||
local reason = args[18];
|
||||
if (reason == "1") {
|
||||
local pvfitem = PvfItem.GetNameById(args[15].tointeger());
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [255, 0, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("获得", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + args[20] + "]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("交易的道具", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(pvfitem, [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(args[17] + "个", [255, 255, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Cb_History_MoneyUp_Func["交易邮件播报"] <- function(SUser, args) {
|
||||
local reason = args[16];
|
||||
if (reason == "1") {
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [255, 0, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("获得", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + getFirstBracketContent(args[17]) + "]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("交易的", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(args[15], [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("金币", [255, 255, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
Cb_MailBox11_Send_Leave_Func["交易邮件播报"] <- function(args) {
|
||||
local jewelSocketID = NativePointer(args[0]).readPointer();
|
||||
local SUser = User(jewelSocketID);
|
||||
local name = SUser.GetCharacName();
|
||||
local receive_name = NativePointer(args[1]).add(17).readUtf8String();
|
||||
local send_gold_count = NativePointer(args[1]).add(46).readU32();
|
||||
local send_item_id = NativePointer(args[1]).add(57).readU32();
|
||||
local send_item_count = NativePointer(args[1]).add(61).readU32(); //发送道具数量
|
||||
local item_name;
|
||||
if (send_item_id > 0) {
|
||||
item_name = PvfItem.GetNameById(send_item_id);
|
||||
}
|
||||
// 发送世界公告播报
|
||||
if (send_gold_count > 0 && send_item_id > 0) {
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("金币*" + send_gold_count, [255, 170, 0]);
|
||||
LoginMsgObj.PutColorString("和", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(send_item_count + "个", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(item_name, [255, 255, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
} else if (send_gold_count > 0) {
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("金币*" + send_gold_count, [255, 170, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
} else if (send_item_id > 0) {
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(send_item_count + "个", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(item_name, [255, 255, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
} else {
|
||||
local LoginMsgObj = AdMsg();
|
||||
LoginMsgObj.PutType(14);
|
||||
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("]", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
|
||||
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
|
||||
LoginMsgObj.PutColorString("发送了一封邮件", [255, 255, 0]);
|
||||
LoginMsgObj.Finalize();
|
||||
World.SendAll(LoginMsgObj.MakePack());
|
||||
LoginMsgObj.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Cb_History_ItemUp_Func["交易邮件播报"] <- function(SUser, args) {
|
||||
local reason = args[18];
|
||||
if (reason == "1" || reason == "17") {
|
||||
|
|
@ -276,6 +390,35 @@ function _Dps_JYYJBB2_Main_() {
|
|||
}
|
||||
}
|
||||
|
||||
Cb_DisPatcher_MoveItem_Enter_Func["毁梦定制一件入库"] <- function(args) {
|
||||
local ParamBase = NativePointer(args[2]);
|
||||
if (!ParamBase) return null;
|
||||
|
||||
// 读取 type 参数(ParamBase + 16 位置)
|
||||
local Type = ParamBase.add(16).readU8();
|
||||
|
||||
if (Type == 98) {
|
||||
// 移动到个人仓库
|
||||
local SUser = User(args[1]);
|
||||
if (SUser) {
|
||||
MoveToCargo(SUser, 0);
|
||||
}
|
||||
//执行原函数会判断是否等于0x7FFFFFFF 所以这里写0以后 原函数条件不成立 会return 阻止原函数执行
|
||||
ParamBase.add(4).writeInt(0);
|
||||
} else if (Type == 99) {
|
||||
// 移动到账号仓库
|
||||
local SUser = User(args[1]);
|
||||
if (SUser) {
|
||||
MoveToCargo(SUser, 1);
|
||||
}
|
||||
//执行原函数会判断是否等于0x7FFFFFFF 所以这里写0以后 原函数条件不成立 会return 阻止原函数执行
|
||||
ParamBase.add(4).writeInt(0);
|
||||
}
|
||||
|
||||
// 其他情况继续执行原逻辑
|
||||
return null;
|
||||
}
|
||||
|
||||
function getYearMonth() {
|
||||
local now = date();
|
||||
return format("%d%02d", now.year, now.month + 1);
|
||||
|
|
@ -317,6 +460,108 @@ function getContentBetweenDelimiters(str, delimiter = "\"") {
|
|||
|
||||
|
||||
|
||||
|
||||
// 移动物品到仓库的Hook实现
|
||||
// type: 0-个人仓库 1-账号仓库
|
||||
function MoveToCargo(SUser, type) {
|
||||
// slot: 3-8快捷栏 9-56线名栏 57-104消耗品栏 105-152材料栏 153-200任务栏 201-248副职业栏 249-311徽章栏
|
||||
local Cargo = null;
|
||||
local InvenObj = SUser.GetInven();
|
||||
if (!InvenObj) return;
|
||||
|
||||
// 根据类型选择仓库
|
||||
if (type == 0) {
|
||||
// 获取个人仓库
|
||||
local CargoPtr = Sq_CallFunc(S_Ptr("0x8151A94"), "pointer", ["pointer"], SUser.C_Object);
|
||||
if (!CargoPtr) return;
|
||||
Cargo = NativePointer(CargoPtr);
|
||||
} else if (type == 1) {
|
||||
// 获取账号仓库
|
||||
local CargoObj = SUser.GetAccountCargo();
|
||||
if (!CargoObj) return;
|
||||
Cargo = NativePointer(CargoObj.C_Object);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// 遍历 57-152 槽位(消耗品栏和材料栏)
|
||||
for (local slot = 57; slot <= 152; slot++) {
|
||||
// 获取背包对应slot的物品
|
||||
local SlotItem = InvenObj.GetSlot(1, slot);
|
||||
if (!SlotItem || SlotItem.IsEmpty) continue;
|
||||
|
||||
// 获取物品ID
|
||||
local ItemId = SlotItem.GetIndex();
|
||||
if (ItemId <= 0) continue;
|
||||
|
||||
local IsExist = -1;
|
||||
local CargoInvenItemPtr = null;
|
||||
local CargoItemId = 0;
|
||||
|
||||
// 根据仓库类型检查物品是否存在
|
||||
if (type == 0) {
|
||||
// 个人仓库检查
|
||||
IsExist = Sq_CallFunc(S_Ptr("0x850BC14"), "int", ["pointer", "int"], Cargo.C_Object, ItemId);
|
||||
if (IsExist == -1) continue;
|
||||
|
||||
// 获取个人仓库中物品的指针
|
||||
local CargoItemListPtr = NativePointer(Cargo.add(4).readPointer());
|
||||
CargoInvenItemPtr = CargoItemListPtr.add(61 * IsExist);
|
||||
CargoItemId = CargoItemListPtr.add(61 * IsExist + 2).readU32();
|
||||
} else {
|
||||
// 账号仓库检查
|
||||
IsExist = Sq_CallFunc(S_Ptr("0x828A61A"), "int", ["pointer", "int"], Cargo.C_Object, ItemId);
|
||||
if (IsExist == -1) continue;
|
||||
|
||||
// 获取账号仓库中物品的指针
|
||||
CargoInvenItemPtr = Cargo.add(61 * IsExist);
|
||||
CargoItemId = CargoInvenItemPtr.add(6).readU32();
|
||||
}
|
||||
|
||||
// 获取物品数量
|
||||
local CargoItemCount = Sq_CallFunc(S_Ptr("0x80F783A"), "int", ["pointer"], CargoInvenItemPtr.C_Object);
|
||||
local SlotItemCount = SlotItem.GetAdd_Info();
|
||||
|
||||
print("CargoItemCount: " + CargoItemCount + " SlotItemCount: " + SlotItemCount);
|
||||
// 检查是否超过物品堆叠上限 0 超过 1没超过
|
||||
local IsMax = Sq_CallFunc(S_Ptr("0x8501A79"), "int", ["int", "int"], CargoItemId, CargoItemCount + SlotItemCount);
|
||||
if (IsMax == 0) {
|
||||
// 超过堆叠上限,跳过
|
||||
continue;
|
||||
}
|
||||
|
||||
// 移动物品到仓库
|
||||
local Result = -1;
|
||||
if (type == 0) {
|
||||
// 个人仓库插入
|
||||
Result = Sq_CallFunc(S_Ptr("0x850B400"), "int", ["pointer", "pointer"], Cargo.C_Object, SlotItem.C_Object);
|
||||
} else {
|
||||
// 账号仓库插入
|
||||
Result = Sq_CallFunc(S_Ptr("0x8289c82"), "int", ["pointer", "pointer", "int"], Cargo.C_Object, SlotItem.C_Object, IsExist);
|
||||
}
|
||||
|
||||
if (Result >= 0) {
|
||||
// 删除背包物品
|
||||
Sq_CallFunc(S_Ptr("0x080CB7D8"), "int", ["pointer"], SlotItem.C_Object);
|
||||
// 更新背包
|
||||
SUser.SendUpdateItemList(1, 0, slot);
|
||||
|
||||
// 更新仓库显示
|
||||
if (type == 0) {
|
||||
// 更新个人仓库
|
||||
Sq_CallFunc(S_Ptr("0x865DB6C"), "int", ["pointer", "int"], SUser.C_Object, 2);
|
||||
} else {
|
||||
// 更新账号仓库
|
||||
local CargoObj = SUser.GetAccountCargo();
|
||||
if (CargoObj) {
|
||||
CargoObj.SendItemList();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Timer.SetTimeOut(function() {
|
||||
|
||||
getroottable()._DreamDestroyerCustomizedCombatPowerSystemC_ <- DreamDestroyerCustomizedCombatPowerSystemC();
|
||||
|
|
|
|||
|
|
@ -683,6 +683,11 @@ Cb_MyDisPatcher_DisJointItem_disjoint_Leave_Func <- {};
|
|||
_Hook_Register_Currency_Func_("0x81f92ca", ["pointer", "int", "int", "int", "pointer", "int", "short"], Cb_MyDisPatcher_DisJointItem_disjoint_Enter_Func, Cb_MyDisPatcher_DisJointItem_disjoint_Leave_Func);
|
||||
|
||||
|
||||
//移动物品
|
||||
Cb_DisPatcher_MoveItem_Enter_Func <- {};
|
||||
Cb_DisPatcher_MoveItem_Leave_Func <- {};
|
||||
_Hook_Register_Currency_Func_("0x81C5B76", ["pointer", "pointer", "pointer", "void"],Cb_DisPatcher_MoveItem_Enter_Func, Cb_DisPatcher_MoveItem_Leave_Func);
|
||||
|
||||
function _Hook_Register_Currency_DelayHook_() {
|
||||
//五国时的热点函数
|
||||
//获取Item Rarity
|
||||
|
|
|
|||
Loading…
Reference in New Issue