2024-09-27 14:04:23 +08:00
|
|
|
/*
|
|
|
|
|
文件名:Hacker_Class.nut
|
|
|
|
|
路径:Base/_Tool/Hacker_Class.nut
|
|
|
|
|
创建日期:2024-09-24 06:25
|
|
|
|
|
文件用途:
|
|
|
|
|
*/
|
|
|
|
|
class _Rindro_Hacker {
|
|
|
|
|
HookTable = null;
|
|
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
|
HookTable = {};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function UnLoadHook(AddressStr) {
|
|
|
|
|
Sq_DeHookFunc(HookTable[AddressStr]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function LoadHook(AddressStr, ArgumentArr, EnterFunc, LeaveFunc) {
|
|
|
|
|
//如果已经HOOK过 需要先卸载原来的HOOK
|
|
|
|
|
if (HookTable.rawin(AddressStr)) {
|
|
|
|
|
UnLoadHook(AddressStr);
|
|
|
|
|
print("地址: " + AddressStr + " 已经装载了Hook,本次操作将会卸载之前的Hook在执行。")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local Controler = Sq_HookFunc(AddressStr, ArgumentArr, EnterFunc, LeaveFunc);
|
|
|
|
|
HookTable.rawset(AddressStr, Controler);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//初始化Hacker
|
2024-10-05 11:46:39 +08:00
|
|
|
if (!(getroottable().rawin("Rindro_Haker"))) Rindro_Haker <- _Rindro_Hacker();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//重选角色时触发的回调函数(进入赛利亚房间)
|
|
|
|
|
OnSetCharacter_Control <- {}
|
|
|
|
|
Rindro_Haker.LoadHook(0x674350, ["pointer", "int"],
|
|
|
|
|
function(args) {
|
|
|
|
|
foreach(Func in OnSetCharacter_Control) {
|
|
|
|
|
Func();
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
},
|
|
|
|
|
function(args) {
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
});
|