diff --git a/FileConfig.json b/FileConfig.json index 1453dfc..6d5afe0 100644 --- a/FileConfig.json +++ b/FileConfig.json @@ -52,6 +52,18 @@ "CSBase/Interface.nut" ], "ProjectScript": { + "修炼场": { + "Private": true, + "Script": [ + "Project/Trainingroom/Trainingroom.nut" + ], + "info": { + "ProjectAuthor": "官方 (期限:月)", + "ProjectVersion": "1.0.0", + "ProjectDescribe": "NPC交易定制插件", + "ImageMini": "http://49.234.27.222:8651/dps/download2/Image:chengjiu.png" + } + }, "融合装备": { "Private": true, "Script": [ diff --git a/Project/MonsterBlood/MonsterBlood.nut b/Project/MonsterBlood/MonsterBlood.nut new file mode 100644 index 0000000..98e1ea0 --- /dev/null +++ b/Project/MonsterBlood/MonsterBlood.nut @@ -0,0 +1,57 @@ +/* +文件名:MonsterBlood.nut +路径:Project/MonsterBlood/MonsterBlood.nut +创建日期:2025-12-10 19:13 +文件用途:怪物血条 +*/ +class MonsterBloodC extends Rindro_BaseToolClass { + + constructor() { + + + } + + + function DrawFront(args) { + + } + + function DrawBack(args) { + + } + +} + + +getroottable().rawdelete("MonsterBlood_Obj"); + +function Lenheart_MonsterBlood_Fun(obj) { + local RootTab = getroottable(); + if (!RootTab.rawin("MonsterBlood_Obj")) { + RootTab.rawset("MonsterBlood_Obj", MonsterBloodC()); + + + local Func = function(args) { + print(args[0]); + } + // Rindro_Haker.LoadHook(0x43D8C0, ["pointer", "void"], + // function(args) { + // print(args[0]); + // if (getroottable().rawin("MonsterBlood_Obj")) getroottable().MonsterBlood_Obj.DrawBack(args); + // }, + // function(args) { + // if (getroottable().rawin("MonsterBlood_Obj")) getroottable().MonsterBlood_Obj.DrawFront(args); + // }); + + Rindro_Haker.LoadHook(0x43D770, ["int", "int", "int"], + function(args) { + print(args[0]); + if (getroottable().rawin("MonsterBlood_Obj")) getroottable().MonsterBlood_Obj.DrawBack(args); + }, + function(args) { + if (getroottable().rawin("MonsterBlood_Obj")) getroottable().MonsterBlood_Obj.DrawFront(args); + }); + } +} + +getroottable()["LenheartFuncTab"].rawset("MonsterBloodFuncN", Lenheart_MonsterBlood_Fun); \ No newline at end of file diff --git a/Project/Trainingroom/Trainingroom.nut b/Project/Trainingroom/Trainingroom.nut new file mode 100644 index 0000000..d6f55bb --- /dev/null +++ b/Project/Trainingroom/Trainingroom.nut @@ -0,0 +1,108 @@ +/* +文件名:Trainingroom.nut +路径:Project/Trainingroom/Trainingroom.nut +创建日期:2025-12-11 01:20 +文件用途: +*/ +class TrainingroomC extends LenheartNewUI_Windows { + //调试模式 + DeBugMode = true; + + //不是窗口 + // NoWindow = true; + + //是否可见 + // Visible = false; + + //位移修炼场信息 + MoveTrainingroomInfo = null; + //位移修炼场Flag + MoveTrainingroomFlag = false; + //位移修炼场副本编号 + MoveTrainingroomDungeonId = 1; + + + + + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + Childrens = []; + //注册控件 + RegisterWidget(); + + LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); + + InitPvf(); + } + + function RegisterWidget() { + // //关闭按钮 + // local CloseButton = LenheartNewUI_BaseButton(278, 0, 11, 12, "interface/lenheartwindowcommon.img", 276); + // CloseButton.OnClick = function() { + // this.Visible = false; + // }.bindenv(this); + // Childrens.append(CloseButton); + + + } + + //绘制主界面 + function DrawMain(obj) { + + } + + function Show(obj) { + DrawMain(obj); + LenheartNewUI_Windows.Show(obj); + + } + + //逻辑入口 + function Proc(obj) { + LenheartNewUI_Windows.SyncPos(X, Y); + + + //判断自己是否在需要位移修炼场的区域 + if (sq_GetCurrentModuleType() == 1) { + if (MoveTrainingroomInfo) { + if (L_sq_GetTownIndex() == MoveTrainingroomInfo[0] && L_sq_GetRegionIndex() == MoveTrainingroomInfo[1] && L_sq_GetTownXpos() >= MoveTrainingroomInfo[2] && L_sq_GetTownXpos() <= (MoveTrainingroomInfo[2] + MoveTrainingroomInfo[4]) && L_sq_GetTownYpos() >= MoveTrainingroomInfo[3] && L_sq_GetTownYpos() <= (MoveTrainingroomInfo[3] + MoveTrainingroomInfo[5])) { + if (!MoveTrainingroomFlag) { + MoveTrainingroomFlag = true; + L_sq_GoDungeon(MoveTrainingroomDungeonId); + } + } else { + if (MoveTrainingroomFlag) { + MoveTrainingroomFlag = false; + } + } + } + } + } + + function InitPvf() { + Rindro_Script.GetFileData("etc/trainingroom.etc", function(DataTable, Data) { + while (!Data.Eof()) { + local Fragment = Data.Get(); + if (Fragment == "[area]") { + MoveTrainingroomInfo = [Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + } else if (Fragment == "[dungeon]") { + MoveTrainingroomDungeonId = Data.Get(); + } + } + }); + } +} + +L_Windows_List <- []; +getroottable().rawdelete("LenheartPluginsInitFlag"); +getroottable().rawdelete("EventList_Obj") +getroottable().rawdelete("Trainingroom_Obj"); + +function Lenheart_Trainingroom_Fun(obj) { + local RootTab = getroottable(); + if (!RootTab.rawin("Trainingroom_Obj")) { + RootTab.rawset("Trainingroom_Obj", true); + LenheartNewUI_CreateWindow(TrainingroomC, "修炼场窗口", ((getroottable().Rindro_Scr_Width - 405) / 2).tointeger(), 64, 405, 372, 28); + } +} + +getroottable()["LenheartFuncTab"].rawset("TrainingroomFuncN", Lenheart_Trainingroom_Fun); \ No newline at end of file diff --git a/Project/WorldBoss/WorldBoss.nut b/Project/WorldBoss/WorldBoss.nut index aa831bc..99fbb54 100644 --- a/Project/WorldBoss/WorldBoss.nut +++ b/Project/WorldBoss/WorldBoss.nut @@ -49,6 +49,7 @@ class WorldBossC extends LenheartNewUI_Windows { //奖励 RewardList = null; RewardType = 0; + RewardSubType = 0; //排行榜 RankObject = null; @@ -84,6 +85,8 @@ class WorldBossC extends LenheartNewUI_Windows { RewardList = []; RewardList.append(Jso.rewards); RewardList.append(Jso.rewards2); + if (Jso.rawin("rewards3")) + RewardList.append(Jso.rewards3); }.bindenv(this)); Pack_Control.rawset(20060006, function(Chunk) { @@ -163,7 +166,6 @@ class WorldBossC extends LenheartNewUI_Windows { } }.bindenv(this)); - // RankObject = []; // for (local i = 0; i< 7; i++) { // local Buffer = WorldBossC_Item(this, { @@ -278,6 +280,7 @@ class WorldBossC extends LenheartNewUI_Windows { PersonalRankBtn.State = 0; Btn.State = 1; CheckType = 0; + RewardSubType = 0; CheckRank(); }.bindenv(this); AddChild(TeamRankBtn); @@ -289,6 +292,7 @@ class WorldBossC extends LenheartNewUI_Windows { TeamRankBtn.State = 0; Btn.State = 1; CheckType = 1; + RewardSubType = 1; CheckRank(); }.bindenv(this); AddChild(PersonalRankBtn); @@ -361,7 +365,9 @@ class WorldBossC extends LenheartNewUI_Windows { local RankPageStr = (RankPage + 1) + "/" + MaxRankPage; L_sq_DrawCode(RankPageStr, X + 524 - LenheartTextClass.GetStringLength(RankPageStr) / 2, Y + 418, sq_RGBA(230, 200, 155, 255), 0, 1); if (RewardList) { - foreach(Pos, ItemId in RewardList[RewardType]) { + local Typep = RewardType; + if (Typep == 0 && RewardSubType == 1 && RewardList.len() == 3) Typep = 2; + foreach(Pos, ItemId in RewardList[Typep]) { DrawItemEx(X + 34 + (Pos * 36), Y + 423, ItemId, 1); } } diff --git a/folder-alias.json b/folder-alias.json index 6b889aa..ae628d0 100644 --- a/folder-alias.json +++ b/folder-alias.json @@ -190,5 +190,11 @@ }, "Project/SeriaZeal": { "description": "赛丽亚的热忱" + }, + "Project/MonsterBlood": { + "description": "怪物血条" + }, + "Project/Trainingroom": { + "description": "修炼场" } } \ No newline at end of file diff --git a/user/114.66.51.249/2_atpriest_3.c b/user/114.66.51.249/2_atpriest_3.c index 02af032..d7da89d 100644 --- a/user/114.66.51.249/2_atpriest_3.c +++ b/user/114.66.51.249/2_atpriest_3.c @@ -1016,6 +1016,7 @@ function onKeyFrameFlag_Blessofcourage(obj, flagIndex) if(CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/priest/1crusader_bykk/ap_gloriousbless.nut")) CNSquirrelAppendage.sq_RemoveAppendage(obj, "character/priest/1crusader_bykk/ap_gloriousbless.nut"); if(CNSquirrelAppendage.sq_IsAppendAppendage(obj, APDPATH_CRUXOFVICTORIA)) CNSquirrelAppendage.sq_RemoveAppendage(obj, APDPATH_CRUXOFVICTORIA); + if(CNSquirrelAppendage.sq_IsAppendAppendage(obj, APDPATH_BLESSOFCOURAGE)) CNSquirrelAppendage.sq_RemoveAppendage(obj, APDPATH_BLESSOFCOURAGE); local skillLevel = sq_GetSkillLevel(obj, SKILL_BYKK_BLESSOFCOURAGE); local range = sq_GetIntData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0); local buffTime = sq_GetLevelData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0, skillLevel); diff --git a/user/114.66.51.249/2_atpriest_5.c b/user/114.66.51.249/2_atpriest_5.c index 909481c..c2aa891 100644 --- a/user/114.66.51.249/2_atpriest_5.c +++ b/user/114.66.51.249/2_atpriest_5.c @@ -1779,9 +1779,9 @@ function setCustomData_po_atpriest_bykk(obj, receiveData) CNSquirrelAppendage.sq_Append(AddAppendage, activeObj, sqrChr, true); local tiaozheng = 1; - if(isSameObject(sqrChr, activeObj)){ - tiaozheng = 0; - } + // if(isSameObject(sqrChr, activeObj)){ + // tiaozheng = 0; + // } AddAppendage.getVar("custom").setInt(11, phAttack * tiaozheng); AddAppendage.getVar("custom").setInt(12, mgAttack * tiaozheng); AddAppendage.getVar("custom").setInt(13, attackSpeed); diff --git a/user/114.66.51.249/6_mage_8.c b/user/114.66.51.249/6_mage_8.c index 4a573b7..8065beb 100644 --- a/user/114.66.51.249/6_mage_8.c +++ b/user/114.66.51.249/6_mage_8.c @@ -2644,7 +2644,7 @@ function createPassiveObject_k_k(obj,monsterobj,skillIndex,subtype,x,y,z,pvector // local bonusRate = obj.getVar("summoners_bonusRate").get_vector(0).tofloat() / 1000.0; //print("bonusRate = "+bonusRate); // pvector1 = (pvector1.tofloat() * bonusRate).tointeger(); - if((skillIndex == SKILL_BYKK_SUMMONRAMOS && subtype == 41) || (skillIndex == 25 && subtype == 7) || (skillIndex == 46 && subtype == 6)) pvector2 = (pvector2.tofloat() * summoners_kuk_setbonusRate(obj).tofloat() / 1000.0).tointeger(); + //if((skillIndex == SKILL_BYKK_SUMMONRAMOS && subtype == 41) || (skillIndex == 25 && subtype == 7) || (skillIndex == 46 && subtype == 6)) pvector2 = (pvector2.tofloat() * summoners_kuk_setbonusRate(obj).tofloat() / 1000.0).tointeger(); local destX_01 = 0; local destY_01 = 0; if(!isSameObject(obj, monsterobj)){ diff --git a/user/114.66.51.249/7_swordman_1.c b/user/114.66.51.249/7_swordman_1.c index 41ee245..618e80d 100644 --- a/user/114.66.51.249/7_swordman_1.c +++ b/user/114.66.51.249/7_swordman_1.c @@ -495,7 +495,8 @@ function setCustomData_po_swordman_bykk(obj, receiveData) for (local i = 0; i < objectManager.getCollisionObjectNumber(); i++){ local object = objectManager.getCollisionObject(i);//得到控制類對象 if (object && object.isObjectType(OBJECTTYPE_ACTIVE) && obj.isEnemy(object) && object.isInDamagableState(obj)){ - if(sq_Abs(sq_GetXPos(object) - xPos) <= 275 && sq_Abs(sq_GetYPos(object) - yPos) <= 138){ + local xDis = sq_Abs(sq_GetXPos(object) - xPos), yDis = sq_Abs(sq_GetYPos(object) - yPos); + if((xDis <= 275 && yDis <= 15) || (xDis <= 220 && yDis <= 30) || (xDis <= 165 && yDis <= 45) || (xDis <= 110 && yDis <= 60) || (xDis <= 55 && yDis <= 75)){ local activeObj = sq_GetCNRDObjectToActiveObject(object); if(!CNSquirrelAppendage.sq_IsAppendAppendage(activeObj, APDPATH_SM_HUNDREDSWORD_HOLD)){ local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(activeObj, sqrChr, -1, false, APDPATH_SM_HUNDREDSWORD_HOLD, true);