202 lines
5.3 KiB
Plaintext
202 lines
5.3 KiB
Plaintext
/*
|
|
文件名:DrawMain.nut
|
|
路径:Base/CallBack/DrawMain.nut
|
|
创建日期:2024-08-06 18:58
|
|
文件用途:绘制回调
|
|
*/
|
|
//在DrawMain后面调用
|
|
function L_drawMainCustomUI_All() {
|
|
local obj = sq_getMyCharacter();
|
|
if (!obj) return;
|
|
|
|
local RootTab = getroottable();
|
|
|
|
//获取与上一帧的dt
|
|
if (!(RootTab.rawin("Rindro_DurationFlag"))) {
|
|
Rindro_DurationFlag <- L_Getmicroseconds();
|
|
Rindro_Duration <- 0;
|
|
} else {
|
|
local NowM = L_Getmicroseconds();
|
|
Rindro_Duration = (NowM - Rindro_DurationFlag);
|
|
Rindro_DurationFlag = NowM;
|
|
}
|
|
|
|
//下帧执行任务事件
|
|
if (RootTab.rawin("LenheartNextFrameFuncTab")) {
|
|
foreach(Func in RootTab["LenheartNextFrameFuncTab"]) {
|
|
Func();
|
|
}
|
|
RootTab["LenheartNextFrameFuncTab"] = [];
|
|
} else {
|
|
RootTab.LenheartNextFrameFuncTab <- [];
|
|
}
|
|
|
|
//重载逻辑
|
|
Sq_ReloadLogic();
|
|
|
|
//初始化活动图标
|
|
Lenheart_EventList_Fun(obj);
|
|
|
|
//加载注册Base函数窗口
|
|
if (RootTab.rawin("LenheartBaseFuncTab")) {
|
|
local LenheartFunc = RootTab["LenheartBaseFuncTab"];
|
|
foreach(Func in LenheartFunc) {
|
|
Func(obj);
|
|
}
|
|
}
|
|
|
|
//加载注册Ex函数窗口
|
|
if (RootTab.rawin("LenheartFuncTab")) {
|
|
local LenheartFunc = RootTab["LenheartFuncTab"];
|
|
foreach(Func in LenheartFunc) {
|
|
Func(obj);
|
|
}
|
|
}
|
|
|
|
//所有插件初始化完毕
|
|
if (!getroottable().rawin("LenheartPluginsInitFlag")) {
|
|
local T = {
|
|
op = 25001021,
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
getroottable().LenheartPluginsInitFlag <- true;
|
|
}
|
|
|
|
|
|
|
|
// if (!TTTAAA) TTTAAA = Rindro_Draw_Character(0, [601590000, 1751501, 601500069], "rest.ani", null);
|
|
// if (TTTAAA) TTTAAA.Draw(120, 200);
|
|
}
|
|
|
|
// for (local i = 0; i < 42; i++) {
|
|
// local Value = MemoryTool.DecodeMemoryData(0x394e8c00+0x1050 + (i * 4));
|
|
// if(Value == 151)print("Value :" + i * 4);
|
|
// }
|
|
// print(MemoryTool.DecodeMemoryData(0x1DFFB240));
|
|
// MemoryTool.EncodeMemoryData(0x304bdc00+0x1054,7);
|
|
// TTTAAA <- null;
|
|
|
|
// L_NewWindows("Lenheart", 56, 0x1);
|
|
// L_Sq_CallFunc(0xE6E070, "int", FFI_THISCALL, ["int", "int", "int", "int"], 0x01ADE090, 56, 0, 0);
|
|
// getroottable().Lsnzz <- Clock();
|
|
|
|
// dofile("sqr/Base/_Tool/Json.nut");
|
|
|
|
// print(T);
|
|
|
|
|
|
|
|
// Register_DPS_Pack(1, function(Jso) {
|
|
// printT(Jso);
|
|
// });
|
|
|
|
// for (local i = 0; i< 50; i++) {
|
|
// local asos = sq_CreateCharacter(0,0);
|
|
// // asos.setValid(false);
|
|
// // local obj = sq_GetCNRDObjectToActiveObject(asos);
|
|
// // sq_SendDestroyPacketPassiveObject(obj);
|
|
// // sendDestroyPacket(obj);
|
|
|
|
// // sq_SendDestroyPacketPassiveObject(asos);
|
|
|
|
// // sq_AddObject(sq_getMyCharacter(), asos, OBJECTTYPE_VIRTUALCHARACTER, false);
|
|
// // asos.setValid(false);
|
|
// // L_sq_Test(L_Sq_GetObjectAddress(asos));
|
|
// L_Sq_CallFunc(0x5A44B0, "void", FFI_MS_CDECL, ["int"], L_Sq_GetObjectAddress(asos));
|
|
// }
|
|
|
|
|
|
|
|
|
|
// local asos = sq_CreateAICharacter(900);
|
|
|
|
|
|
|
|
// // sq_DeleteParticleCreater(asos);
|
|
// local asos = sq_CreateAICharacter(419);
|
|
// asos.setCurrentPos(sq_getMyCharacter().getXPos() + 100, sq_getMyCharacter().getYPos(), 0);
|
|
// sq_AddObject(sq_getMyCharacter(), asos, OBJECTTYPE_VIRTUALCHARACTER, false);
|
|
// sq_ChangeDrawLayer(asos, ENUM_DRAWLAYER_CLOSEBACK);
|
|
|
|
|
|
// L_sq_GoDungeon(1504);
|
|
|
|
CargoType <- 0;
|
|
Sq_GetExeStr_Map[21910] <- function(Index) {
|
|
CargoType = 0;
|
|
return 21910;
|
|
}
|
|
Sq_GetExeStr_Map[21911] <- function(Index) {
|
|
CargoType = 1;
|
|
return 21911;
|
|
}
|
|
Rindro_Haker.LoadHook(0xE67800, ["int", "int"],
|
|
function(args) {
|
|
//点击了仓库转移物品
|
|
if (args[0] == 0x2B) {
|
|
if (CargoType == 0) {
|
|
printf("点击个人仓库转移物品");
|
|
local T = {
|
|
op = 21091001,
|
|
type = 0,
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
return [0];
|
|
}
|
|
if (CargoType == 1) {
|
|
printf("点击账号仓库转移物品");
|
|
local T = {
|
|
op = 21091001,
|
|
type = 1,
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
return [0];
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
function(args) {
|
|
// print(666);
|
|
// print(format("%02x", args.pop()));
|
|
// TTTAni <- args.pop();
|
|
return null;
|
|
});
|
|
|
|
|
|
|
|
// function onAttack_Swordman(obj, damager, boundingBox, isStuck)
|
|
// {
|
|
// local Mon = sq_GetCNRDObjectToActiveObject(damager);
|
|
// Mon.setHp(0, null, true);
|
|
// }
|
|
|
|
// function getCurrentModuleDamageRate(obj) {
|
|
// local LLJob = sq_getJob(obj);
|
|
// local LLGrowT = sq_getGrowType(obj);
|
|
// if (LLJob == 0 && LLGrowT == 2)
|
|
// return 2100000000.0;
|
|
|
|
// return 1.0;
|
|
// }
|
|
|
|
// function onStartDungeon_Swordman(obj) {
|
|
// print(666);
|
|
// obj.setEnableDamageBox(false);
|
|
// }
|
|
|
|
|
|
// local chrobj = sq_CreateCharacter(0, 4);
|
|
|
|
// print("-----------------------------------------------/");
|
|
// foreach(member, val in chrobj.getclass()) {
|
|
// ::print(member + "\n");
|
|
// local attr;
|
|
// if ((attr = chrobj.getclass().getattributes(member)) != null) {
|
|
// foreach(i, v in attr) {
|
|
// ::print("\t" + i + " = " + (typeof v) + "\n");
|
|
// }
|
|
// } else {
|
|
// ::print("\t<no attributes>\n")
|
|
// }
|
|
|
|
// } |