This commit is contained in:
2025-05-27 21:24:22 +08:00
parent e1528c41bb
commit d71fc5c822
126 changed files with 11382 additions and 1202 deletions

View File

@@ -2,8 +2,9 @@
文件名:DrawHudMain.nut
路径:Base/CallBack/DrawHudMain.nut
创建日期:2024-08-29 09:39
文件用途:血槽绘制入口(图层在血槽层)
文件用途:
*/
//血槽背景
function L_HUD_BloodBackground() {
local RootTab = getroottable();
local obj = sq_getMyCharacter();
@@ -21,6 +22,7 @@ function L_HUD_BloodBackground() {
getroottable().Camera_Pos <- {};
//城镇摄像机
function L_Sync_Camera_Pos(Camera_Object) {
// print(Camera_Object);
// print(Camera_Object);
@@ -31,5 +33,5 @@ function L_Sync_Camera_Pos(Camera_Object) {
function Sq_DrawChannel() {
// L_sq_DrawImg("interface2/cs_shop/cs_packageevent/2021_summer/hearoursummer_calendarui.img", 0, 0, 0);
print(Clock());
}
}

View File

@@ -9,17 +9,18 @@ function L_drawMainCustomUI_All() {
local obj = sq_getMyCharacter();
if (!obj) return;
local RootTab = getroottable();
//获取与上一帧的dt
if (!(getroottable().rawin("Rindro_DurationFlag"))) {
if (!(RootTab.rawin("Rindro_DurationFlag"))) {
Rindro_DurationFlag <- L_Getmicroseconds();
Rindro_Duration <- 0;
} else {
local NowM = L_Getmicroseconds();
Rindro_Duration = NowM - Rindro_DurationFlag;
Rindro_Duration = (NowM - Rindro_DurationFlag) / 2;
Rindro_DurationFlag = NowM;
}
local RootTab = getroottable();
//下帧执行任务事件
if (RootTab.rawin("LenheartNextFrameFuncTab")) {
foreach(Func in RootTab["LenheartNextFrameFuncTab"]) {
@@ -31,158 +32,119 @@ function L_drawMainCustomUI_All() {
}
//重载逻辑
try {
local Func = loadfile("Yosin_Game_Reloading.Sign", true);
Func();
L_Cmd("cmd.exe /c del Yosin_Game_Reloading.Sign");
//清空窗口
L_Windows_List = [];
//清空所有注册包
Pack_Control = {};
PushDamageFontDataFuncTab <- {};
PushDamageFontFuncTab <- {};
//清空活动图标窗口
getroottable().rawdelete("EventList_Obj");
//清空插件初始化状态
getroottable().rawdelete("LenheartPluginsInitFlag");
getroottable().rawdelete("RINDRO_GET_ITEM_FLAG");
//特殊清空
getroottable().rawdelete("OnlineAnnouncement_Obj");
//血槽UI
getroottable().rawdelete("HudUi_Obj");
//交互UI
getroottable().rawdelete("L_Each_Obj");
//战令
getroottable().rawdelete("AradPass_Obj");
//战斗力系统
getroottable().rawdelete("CombatRankC_Obj");
//刷图签到
getroottable().rawdelete("FightSign_Obj");
//希曼音乐会
getroottable().rawdelete("MidsummerParty_Obj");
//在线签到
getroottable().rawdelete("OnilneSign_Obj");
//全服竞拍
getroottable().rawdelete("ServerAuction_Obj");
//秒伤统计
getroottable().rawdelete("DamagePerSecond_Obj");
//皮肤仓库
getroottable().rawdelete("SkinHub_Obj");
} catch (exception) {
if (exception != "cannot open the file")
print("Reloading Script Fail !!! \n" + exception);
}
//
local RootTab = getroottable();
//尝试调用百级UI
// if (getroottable().rawin("Lenheart_100UI_Event_BackGround")) Lenheart_100UI_Event_BackGround();
// if (getroottable().rawin("Lenheart_100UI")) Lenheart_100UI(obj);
Sq_ReloadLogic();
//初始化活动图标
Lenheart_EventList_Fun(obj);
//加载注册Base函数窗口
if (RootTab.rawin("LenheartBaseFuncTab")) {
if (RINDRO_INIT_FLAG) {
local LenheartFunc = RootTab["LenheartBaseFuncTab"];
foreach(Func in LenheartFunc) {
Func(obj);
}
local LenheartFunc = RootTab["LenheartBaseFuncTab"];
foreach(Func in LenheartFunc) {
Func(obj);
}
}
//加载注册Ex函数窗口
if (RootTab.rawin("LenheartFuncTab")) {
if (RINDRO_INIT_FLAG) {
local LenheartFunc = RootTab["LenheartFuncTab"];
foreach(Func in LenheartFunc) {
Func(obj);
}
local LenheartFunc = RootTab["LenheartFuncTab"];
foreach(Func in LenheartFunc) {
Func(obj);
}
}
//所有插件初始化完毕
if (!getroottable().rawin("LenheartPluginsInitFlag")) {
if (RINDRO_INIT_FLAG) {
local T = {
op = 25001021,
}
Rindro_BaseToolClass.SendPackEx(T);
getroottable().LenheartPluginsInitFlag <- true;
local T = {
op = 25001021,
}
Rindro_BaseToolClass.SendPackEx(T);
getroottable().LenheartPluginsInitFlag <- true;
}
//初始化Item信息
if (!getroottable().rawin("RINDRO_GET_ITEM_FLAG")) {
RINDRO_CONFIG <- Rindro_GetLocalConfig();
getroottable().RINDRO_GET_ITEM_FLAG <- true;
Rindro_BaseToolClass.SendPackEx({
op = 20069005,
md5 = Rindro_GetMd5()
});
}
// if (Clock() - getroottable().Lsnzz >= 50) {
// getroottable().Lsnzz = Clock();
// local T = {
// op = 25001021,
// }
// Rindro_BaseToolClass.SendPackEx(T);
// }
// if (!CNSquirrelAppendage.sq_IsAppendAppendage(obj, "appendage/curreny.nut")) {
// local appendage1 = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, 174, false, "appendage/curreny.nut", true);
// }
// print(format("%02X", L_sq_RA(0x1B474D4)));
// print(R_Mouse.IsLock());
// print(format("%02X", L_sq_RA(0x3431de00 + 0x14)));
// L_sq_WA(0x3431de00 + 0x14,200);
// print(format("%02X", L_sq_RA(0x1AE94C4, "0x590+0x44+")));
//外界主界面
// if(L_sq_RA(0x1B474D4) == 0x3C7FB100)print(true);
// else print(false);
// print(CheckInOldW());
// GetTownBaseBackgroundAddress();
// print(getroottable().WindowsShowABFlag);
// L_Sq_GetPlayerEachName();
// Sout("%L",L_Sq_GetPlayerEachName());
// print(Rindro_BaseToolClass.GetEachNpcId());
// for (local i = 0; i< 400; i++) {
// local WindowAddress = L_sq_GetWindowById(i);
// if (WindowAddress != 0) print(format("%02X", WindowAddress));
// if (WindowAddress == 0x39F56000) print(i);
// }
// if (Clock() - getroottable().SINNU >= 10) {
// getroottable().SINNU = Clock();
// L_sq_MoveTown(1, 1, 474, 249);
// }
// print(sq_GetCurrentModuleType());
// Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/luke/newtile/02_success_back_1.ani", 430, 210 + 26, "卢克阻截开始" + AHSJKDNJKA);
}
// AHSJKDNJKA <- Clock();
// getroottable().SINNU <- Clock();
// 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);
// print(T);
// Register_DPS_Pack(1, function(Jso) {
// printT(Jso);
// });
// local asos = sq_CreateAICharacter(900);
// 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);
// }

View File

@@ -35,4 +35,50 @@ function SetDamageRateCallBack(Chunk) {
}
Pack_Control.rawset(2024110902, SetDamageRateCallBack);
getroottable()["LenheartFuncTab"].rawset("GetDamageRateFuncN", Lenheart_GetDamageRate_Fun);
getroottable()["LenheartFuncTab"].rawset("GetDamageRateFuncN", Lenheart_GetDamageRate_Fun);
// ModuleDamageTable <- {
// //这个1是 副本编号
// [1] = {
// //这个0是大职业编号 比如说鬼剑士就是 0 女格斗家就是 1 在character/character.lst 这个文件里可以看
// [0] = {
// //这个0 和 1 是转职编号 0就是未转职 1 就是转了剑魂
// [0] = 1.0,
// [1] = 3.0
// }
// },
// //2号副本
// [2] ={
// //女格斗家职业
// [1] = {
// [0] = 1.0,
// [1] = 3.0
// }
// }
// }
// function getCurrentModuleDamageRate(obj)
// {
// local Rate = 1.0;
// local stage = sq_GetGlobaludpModuleStage();
// local dungeon = sq_GetDungeonByStage(stage);
// local dungeonIndex = sq_GetDuegonIndex(dungeon);
// local LLJob = sq_getJob(obj);
// local LLGrowT = sq_getGrowType(obj);
// //处于生效副本中
// if(ModuleDamageTable.rawin(dungeonIndex)){
// //自己是生效职业
// if(ModuleDamageTable[dungeonIndex].rawin(LLJob)){
// //是生效转职
// if(ModuleDamageTable[dungeonIndex][LLJob].rawin(LLGrowT)){
// Rate += ModuleDamageTable[dungeonIndex][LLJob][LLGrowT].tofloat();
// }
// }
// }
// return Rate;
// }

View File

@@ -0,0 +1,157 @@
/*
文件名:PackControl.nut
路径:Base/PackControl/PackControl.nut
创建日期:2024-08-06 22:13
文件用途:
*/
Pack_Control <- {}
Pack_DPS_Control <- {}
function Register_DPS_Pack(Id, Func) {
Pack_DPS_Control.rawset(Id, Func);
}
function Sq_Pack_Control(Chunk) {
try {
local Pack_Json = Json.Decode(Chunk);
if (Pack_Json.op == 2147483646) {
if (Pack_DPS_Control.rawin(Pack_Json.dps_id)) {
local Jso = Json.Decode(Chunk);
Jso.rawdelete("op");
Pack_DPS_Control[Pack_Json.dps_id](Jso);
}
} else {
if (Pack_Control.rawin(Pack_Json.op)) {
try {
Pack_Control[Pack_Json.op](Chunk);
} catch (exception) {
print("error pack: " + Pack_Json.op);
}
}
}
} catch (exception) {
print("error packmsg: " + Pack_Json.op);
}
}
function Sq_Pack_ControlLocal(Chunk) {
local Pack_Json = Json.Decode(Chunk);
if (Pack_Json.op == 2147483646) {
if (Pack_DPS_Control.rawin(Pack_Json.dps_id)) {
local Jso = Json.Decode(Chunk);
Jso.rawdelete("op");
Pack_DPS_Control[Pack_Json.dps_id](Jso);
}
} else {
if (Pack_Control.rawin(Pack_Json.op)) {
Pack_Control[Pack_Json.op](Chunk);
}
}
}
function SendPackToDP_S(Id, T) {
T.op <- 2147483646;
T.dps_id <- Id;
Rindro_BaseToolClass.SendPackEx(T);
}
//进入副本回调
function LenheartGotoDgnCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
local DgnId = Jso.map.id;
local DgnRate = Jso.map.ra;
L_sq_GoDungeon(DgnId);
}
Pack_Control.rawset(2024041602, LenheartGotoDgnCallBack);
//进入副本增加属性
function LenheartAdditionalAttributes(obj) {
//在副本中
if (sq_GetCurrentModuleType() == 3) {
if (!CNSquirrelAppendage.sq_IsAppendAppendage(obj, "appendage/lenheartap.nut")) {
if ("LenheartAttributesTable" in getroottable()) {
local Abarr = {};
foreach(AtObj in getroottable()["LenheartAttributesTable"]) {
foreach(Apos, At in AtObj) {
if(!Abarr.rawin(Apos))Abarr[Apos] <- At;
else Abarr[Apos]+= At;
}
}
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, -1, false, "appendage/lenheartap.nut", true);
CNSquirrelAppendage.sq_Append(appendage, obj, obj);
local change_appendage = appendage.sq_getChangeStatus("Yosin_LenheartDgnBuff");
if (!change_appendage) {
change_appendage = appendage.sq_AddChangeStatusAppendageID(obj, obj, 0,
CHANGE_STATUS_TYPE_COOLTIME_DECLINE,
false, 0, 115514);
}
if (change_appendage) {
change_appendage.clearParameter();
foreach(Key, Value in Abarr) {
if (Key == 0) change_appendage.addParameter(13, false, Value.tofloat()); //HP
else if (Key == 1) change_appendage.addParameter(48, false, Value.tofloat()); //MP
else if (Key == "strength") change_appendage.addParameter(0, false, Value.tofloat()); //力量
else if (Key == "intelligence") change_appendage.addParameter(1, false, Value.tofloat()); //智力
else if (Key == "vitality") change_appendage.addParameter(2, false, Value.tofloat()); //体力
else if (Key == "spirit") change_appendage.addParameter(3, false, Value.tofloat()); //精神
else if (Key == "physicalAttack") change_appendage.addParameter(4, false, Value.tofloat()); //物攻
else if (Key == "magicAttack") change_appendage.addParameter(31, false, Value.tofloat()); //魔攻
else if (Key == "independentAttack") {
change_appendage.addParameter(53, false, Value.tofloat()); //独立
change_appendage.addParameter(54, false, Value.tofloat()); //独立
} else if (Key == "physicalDefense") change_appendage.addParameter(5, false, Value.tofloat()); //物理防御
else if (Key == "magicDefense") change_appendage.addParameter(32, false, Value.tofloat()); //魔法防御
else if (Key == "physicalCritical") change_appendage.addParameter(15, false, Value.tofloat() / 10.0); //物理暴击
else if (Key == "magicCritical") change_appendage.addParameter(16, false, Value.tofloat() / 10.0); //魔法暴击
else if (Key == "attackSpeed") change_appendage.addParameter(10, false, Value.tofloat()); //攻速
else if (Key == "releaseSpeed") change_appendage.addParameter(12, false, Value.tofloat()); //释放
else if (Key == "moveSpeed") change_appendage.addParameter(11, false, Value.tofloat()); //移速
else if (Key == "resistance") change_appendage.addParameter(39, false, Value.tofloat()); //抗磨
else if (Key == "hitRate") change_appendage.addParameter(33, false, Value.tofloat()); //命中
else if (Key == "avoidance") change_appendage.addParameter(27, false, Value.tofloat()); //闪避
else if (Key == "hpRecovery") change_appendage.addParameter(14, false, Value.tofloat()); //HP恢复
else if (Key == "mpRecovery") change_appendage.addParameter(29, false, Value.tofloat()); //MP恢复
else if (Key == "stun") change_appendage.addParameter(41, false, Value.tofloat()); //僵直
else if (Key == "hardStun") change_appendage.addParameter(34, false, Value.tofloat()); //硬直
else if (Key == "fire") change_appendage.addParameter(42, false, Value.tofloat()); //火强
else if (Key == "fireResistance") change_appendage.addParameter(20, false, Value.tofloat()); //火抗
else if (Key == "water") change_appendage.addParameter(43, false, Value.tofloat()); //冰强
else if (Key == "waterResistance") change_appendage.addParameter(21, false, Value.tofloat()); //冰抗
else if (Key == "light") change_appendage.addParameter(45, false, Value.tofloat()); //光强
else if (Key == "lightResistance") change_appendage.addParameter(23, false, Value.tofloat()); //光抗
else if (Key == "dark") change_appendage.addParameter(44, false, Value.tofloat()); //暗强
else if (Key == "darkResistance") change_appendage.addParameter(22, false, Value.tofloat()); //暗抗
}
}
}
}
}
}
if (getroottable().rawin("LenheartFuncTab")) {
getroottable()["LenheartFuncTab"].rawset("LenheartAdditionalAttributesFunc", LenheartAdditionalAttributes);
} else {
local T = {};
T.rawset("LenheartAdditionalAttributesFunc", LenheartAdditionalAttributes);
getroottable().rawset("LenheartFuncTab", T);
}
//进入副本增加属性
function LenheartAdditionalCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
if ("LenheartAttributesTable" in getroottable()) {
local T = getroottable()["LenheartAttributesTable"];
T.rawset("LenheartCollectBoxAb", Jso.Attribute);
} else {
local T = {};
T.rawset("LenheartCollectBoxAb", Jso.Attribute);
getroottable().rawset("LenheartAttributesTable", T);
}
}
Pack_Control.rawset(20069016, LenheartAdditionalCallBack);

View File

@@ -1,71 +0,0 @@
/*
文件名:Window_Get.nut
路径:Base/CallBack/Window_Get.nut
创建日期:2024-08-08 13:38
文件用途:窗口被获取时经过的函数
*/
getroottable().RindroOneRunTable <- {};
function OneRunCode(Func, Key, Window_Obj) {
if (!RindroOneRunTable.rawin(Key)) {
Func(Window_Obj);
RindroOneRunTable.rawset(Key, true);
}
}
function L_Old_Window_Get(Window_Obj) {
// print(L_sq_RA(Window_Obj + 0xC));
// L_sq_WA(Window_Obj + 0xC,257);
// L_sq_RA(Window_Obj, "0xC+");
// if (L_sq_RA(Window_Obj + 0x14) == 0) {
// print(L_sq_RA(Window_Obj + 0x18));
// print(format("%02x", Window_Obj));
// }
// if (0x422e2100 == Window_Obj) {
// print(L_sq_RA(Window_Obj + 0x14));
// }
// OneRunCode(function(Window_Obj) {
// if (0x185242C == L_sq_RA(Window_Obj)) {
// //任务提示
// if (L_sq_RAB(Window_Obj + 0x78) == 131 && L_sq_RAB(Window_Obj + 0x79) == 2) {
// L_sq_WA(Window_Obj + 0x14, 144);
// L_sq_WA(Window_Obj + 0x18, 53);
// }
// }
// }, "任务提示设置", Window_Obj);
// //任务提示
// if (0x185242C == L_sq_RA(Window_Obj)) {
// if (L_sq_RA(Window_Obj + 0x44) == 131 && L_sq_RAB(Window_Obj + 0x79) == 2) {
// L_sq_WA(Window_Obj + 0x14, 144);
// L_sq_WA(Window_Obj + 0x18, 53);
// }
// }
// if(369 == L_sq_RA(Window_Obj + 0x78))
// print(format("%02X", Window_Obj));
}
//窗口是否打开
function L_Old_Window_Visible(WindowObject, Flag) {
// print(format("%02X", WindowObject));
// if (Character_Info_Window_Address.rawin(WindowObject)) {
// L_sq_WAB(WindowObject + 0xc, 0);
// // print(L_sq_RA(WindowObject + 0x14));
// // print(format("%02X", WindowObject));
// }
// print(1213);
// foreach(Key, Table in Character_Info_Window_Address) {
// L_sq_WA(Key + 0xC, 256);
// // print(format("%02X", Key));
// }
}