no message
This commit is contained in:
37
CSBase/CallBack/DrawHudMain.nut
Normal file
37
CSBase/CallBack/DrawHudMain.nut
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
文件名:DrawHudMain.nut
|
||||
路径:Base/CallBack/DrawHudMain.nut
|
||||
创建日期:2024-08-29 09:39
|
||||
文件用途:
|
||||
*/
|
||||
//血槽背景
|
||||
function L_HUD_BloodBackground() {
|
||||
local RootTab = getroottable();
|
||||
local obj = sq_getMyCharacter();
|
||||
if (!obj) return;
|
||||
if (RootTab.rawin("HudUi_Obj")) {
|
||||
RootTab.HudUi_Obj.BottomShow(obj);
|
||||
}
|
||||
if (RootTab.rawin("EventList_Obj")) {
|
||||
foreach(win in EventList_Obj.Events) {
|
||||
win.EventShow(obj);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getroottable().Camera_Pos <- {};
|
||||
|
||||
//城镇摄像机
|
||||
function L_Sync_Camera_Pos(Camera_Object) {
|
||||
// print(Camera_Object);
|
||||
// print(Camera_Object);
|
||||
getroottable().Camera_Pos.X <- L_sq_RA(Camera_Object + 0x638);
|
||||
getroottable().Camera_Pos.Y <- L_sq_RA(Camera_Object + 0x63C);
|
||||
}
|
||||
|
||||
|
||||
function Sq_DrawChannel() {
|
||||
// L_sq_DrawImg("interface2/cs_shop/cs_packageevent/2021_summer/hearoursummer_calendarui.img", 0, 0, 0);
|
||||
}
|
||||
|
||||
231
CSBase/CallBack/DrawMain.nut
Normal file
231
CSBase/CallBack/DrawMain.nut
Normal file
@@ -0,0 +1,231 @@
|
||||
/*
|
||||
文件名: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(name,Func in LenheartFunc) {
|
||||
|
||||
if(name = "GetDamageRateFuncN"){
|
||||
print(name);
|
||||
Func(obj);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//所有插件初始化完毕
|
||||
if (!getroottable().rawin("LenheartPluginsInitFlag")) {
|
||||
local T = {
|
||||
op = 25001021,
|
||||
}
|
||||
Rindro_BaseToolClass.SendPackEx(T);
|
||||
getroottable().LenheartPluginsInitFlag <- true;
|
||||
}
|
||||
|
||||
// for (local i = 0; i< 100; i++) {
|
||||
// for (local z = 0; z < 100; z++) {
|
||||
// sq_PutPixel(sq_RGBA(230, 200, 155, 255), 200 + i, 200 + z);
|
||||
// }
|
||||
// }
|
||||
|
||||
// sq_DrawBox(100, 100, 100, 100, 0xffffffff);
|
||||
|
||||
|
||||
// L_Sq_CallFunc(0x11E86C0, "char", FFI_STDCALL, ["int", "int", "int", "int", "int"], 10, 10, 750, 350, 0xffffffff);
|
||||
|
||||
// for (local i = 0; i< 100; i++) {
|
||||
// for (local z = 0; z< 100; z++) {
|
||||
// sq_PutPixel(sq_RGBA(230, 200, 155, 255), 200 + i, 200 + z);
|
||||
// }
|
||||
// }
|
||||
|
||||
// L_sq_Test(0x11A7B65);
|
||||
// local Device = NativePointer(0x1B45AB8).readInt();
|
||||
// print(format("Device:0x%02x", Device));
|
||||
// L_sq_Test(Device);
|
||||
|
||||
// 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")
|
||||
// }
|
||||
|
||||
// }
|
||||
84
CSBase/CallBack/GetDamageRate.nut
Normal file
84
CSBase/CallBack/GetDamageRate.nut
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
文件名:GetDamageRate.nut
|
||||
路径:Base/CallBack/GetDamageRate.nut
|
||||
创建日期:2024-08-09 14:10
|
||||
文件用途:获取伤害倍率
|
||||
*/
|
||||
RindroDamageRate <- 1.0;
|
||||
|
||||
function L_getCurrentModuleDamageRate(obj) {
|
||||
if (!obj)
|
||||
return 1.0;
|
||||
|
||||
local ClientRat = 1.0;
|
||||
try {
|
||||
ClientRat = getCurrentModuleDamageRate(obj).tofloat();
|
||||
} catch (exception) {
|
||||
ClientRat = 1.0;
|
||||
}
|
||||
|
||||
return (RindroDamageRate * ClientRat);
|
||||
}
|
||||
|
||||
|
||||
function Lenheart_GetDamageRate_Fun(obj) {
|
||||
//在城镇时
|
||||
if (sq_GetCurrentModuleType() == 1) {
|
||||
RindroDamageRate = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
//修改伤害回调
|
||||
function SetDamageRateCallBack(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
RindroDamageRate = Jso.rate;
|
||||
}
|
||||
Pack_Control.rawset(2024110902, SetDamageRateCallBack);
|
||||
|
||||
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;
|
||||
// }
|
||||
183
CSBase/CallBack/PackControl.nut
Normal file
183
CSBase/CallBack/PackControl.nut
Normal file
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
文件名:PackControl.nut
|
||||
路径:Base/PackControl/PackControl.nut
|
||||
创建日期:2024-08-06 22:13
|
||||
文件用途:
|
||||
*/
|
||||
Pack_Control <- {}
|
||||
Pack_Hex_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);
|
||||
print(exception);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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 Sq_BlobPack_Control(Size, Pointer) {
|
||||
local Pack = Packet();
|
||||
Pack.Load(Pointer, Size);
|
||||
local Op = Pack.GetInt();
|
||||
//读取位置回到原点
|
||||
// Pack.Seek(0);
|
||||
|
||||
if (Pack_Hex_Control.rawin(Op)) {
|
||||
Pack_Hex_Control[Op](Pack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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) {
|
||||
obj = sq_ObjectToSQRCharacter(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);
|
||||
|
||||
|
||||
getroottable().PluginsCompatibilityModeCallBack <- false;
|
||||
//兼容模式
|
||||
function CompatibilityModeCallBack(Chunk) {
|
||||
getroottable().PluginsCompatibilityModeCallBack <- true;
|
||||
}
|
||||
Pack_Control.rawset(30004, CompatibilityModeCallBack);
|
||||
32
CSBase/CallBack/PushDamage.nut
Normal file
32
CSBase/CallBack/PushDamage.nut
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
文件名:PushDamage.nut
|
||||
路径:Base/CallBack/PushDamage.nut
|
||||
创建日期:2024-08-30 14:41
|
||||
文件用途:发生伤害时
|
||||
*/
|
||||
PushDamageFontDataFuncTab <- {};
|
||||
PushDamageFontFuncTab <- {};
|
||||
|
||||
function Sq_PushDamageData(ObjAddress, MySelfAddress, Value) {
|
||||
// print("MyCharacter: " + format("%02x", L_sq_RA(0x1AB7CDC)));
|
||||
// print("ObjAddress: " + format("%02x", ObjAddress));
|
||||
// print("A1: " + format("%02x", A1));
|
||||
// print("A2: " + format("%02x", A2));
|
||||
// print(" ");
|
||||
foreach(Func in PushDamageFontFuncTab) {
|
||||
Func(ObjAddress, MySelfAddress, Value);
|
||||
}
|
||||
}
|
||||
|
||||
function Sq_PushDamageFontData(ObjAddress, X, Y, Z, Value, Type, A1, A2) {
|
||||
|
||||
local Flag = true;
|
||||
foreach(Func in PushDamageFontDataFuncTab) {
|
||||
local Ret = Func(ObjAddress, X, Y, Z, Value, Type, A1, A2);
|
||||
if (Ret == false) {
|
||||
Flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
return Flag;
|
||||
}
|
||||
Reference in New Issue
Block a user