更新茶服加密

This commit is contained in:
Lenheart 2025-12-11 20:05:06 +08:00
parent e3add47a71
commit e1407d010f
9 changed files with 198 additions and 7 deletions

View File

@ -52,6 +52,18 @@
"CSBase/Interface.nut" "CSBase/Interface.nut"
], ],
"ProjectScript": { "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, "Private": true,
"Script": [ "Script": [

View File

@ -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);

View File

@ -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);

View File

@ -49,6 +49,7 @@ class WorldBossC extends LenheartNewUI_Windows {
//奖励 //奖励
RewardList = null; RewardList = null;
RewardType = 0; RewardType = 0;
RewardSubType = 0;
//排行榜 //排行榜
RankObject = null; RankObject = null;
@ -84,6 +85,8 @@ class WorldBossC extends LenheartNewUI_Windows {
RewardList = []; RewardList = [];
RewardList.append(Jso.rewards); RewardList.append(Jso.rewards);
RewardList.append(Jso.rewards2); RewardList.append(Jso.rewards2);
if (Jso.rawin("rewards3"))
RewardList.append(Jso.rewards3);
}.bindenv(this)); }.bindenv(this));
Pack_Control.rawset(20060006, function(Chunk) { Pack_Control.rawset(20060006, function(Chunk) {
@ -163,7 +166,6 @@ class WorldBossC extends LenheartNewUI_Windows {
} }
}.bindenv(this)); }.bindenv(this));
// RankObject = []; // RankObject = [];
// for (local i = 0; i< 7; i++) { // for (local i = 0; i< 7; i++) {
// local Buffer = WorldBossC_Item(this, { // local Buffer = WorldBossC_Item(this, {
@ -278,6 +280,7 @@ class WorldBossC extends LenheartNewUI_Windows {
PersonalRankBtn.State = 0; PersonalRankBtn.State = 0;
Btn.State = 1; Btn.State = 1;
CheckType = 0; CheckType = 0;
RewardSubType = 0;
CheckRank(); CheckRank();
}.bindenv(this); }.bindenv(this);
AddChild(TeamRankBtn); AddChild(TeamRankBtn);
@ -289,6 +292,7 @@ class WorldBossC extends LenheartNewUI_Windows {
TeamRankBtn.State = 0; TeamRankBtn.State = 0;
Btn.State = 1; Btn.State = 1;
CheckType = 1; CheckType = 1;
RewardSubType = 1;
CheckRank(); CheckRank();
}.bindenv(this); }.bindenv(this);
AddChild(PersonalRankBtn); AddChild(PersonalRankBtn);
@ -361,7 +365,9 @@ class WorldBossC extends LenheartNewUI_Windows {
local RankPageStr = (RankPage + 1) + "/" + MaxRankPage; 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); L_sq_DrawCode(RankPageStr, X + 524 - LenheartTextClass.GetStringLength(RankPageStr) / 2, Y + 418, sq_RGBA(230, 200, 155, 255), 0, 1);
if (RewardList) { 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); DrawItemEx(X + 34 + (Pos * 36), Y + 423, ItemId, 1);
} }
} }

View File

@ -190,5 +190,11 @@
}, },
"Project/SeriaZeal": { "Project/SeriaZeal": {
"description": "赛丽亚的热忱" "description": "赛丽亚的热忱"
},
"Project/MonsterBlood": {
"description": "怪物血条"
},
"Project/Trainingroom": {
"description": "修炼场"
} }
} }

View File

@ -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, "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_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 skillLevel = sq_GetSkillLevel(obj, SKILL_BYKK_BLESSOFCOURAGE);
local range = sq_GetIntData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0); local range = sq_GetIntData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0);
local buffTime = sq_GetLevelData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0, skillLevel); local buffTime = sq_GetLevelData(obj, SKILL_BYKK_BLESSOFCOURAGE, 0, skillLevel);

View File

@ -1779,9 +1779,9 @@ function setCustomData_po_atpriest_bykk(obj, receiveData)
CNSquirrelAppendage.sq_Append(AddAppendage, activeObj, sqrChr, true); CNSquirrelAppendage.sq_Append(AddAppendage, activeObj, sqrChr, true);
local tiaozheng = 1; local tiaozheng = 1;
if(isSameObject(sqrChr, activeObj)){ // if(isSameObject(sqrChr, activeObj)){
tiaozheng = 0; // tiaozheng = 0;
} // }
AddAppendage.getVar("custom").setInt(11, phAttack * tiaozheng); AddAppendage.getVar("custom").setInt(11, phAttack * tiaozheng);
AddAppendage.getVar("custom").setInt(12, mgAttack * tiaozheng); AddAppendage.getVar("custom").setInt(12, mgAttack * tiaozheng);
AddAppendage.getVar("custom").setInt(13, attackSpeed); AddAppendage.getVar("custom").setInt(13, attackSpeed);

View File

@ -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; // local bonusRate = obj.getVar("summoners_bonusRate").get_vector(0).tofloat() / 1000.0;
//print("bonusRate = "+bonusRate); //print("bonusRate = "+bonusRate);
// pvector1 = (pvector1.tofloat() * bonusRate).tointeger(); // 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 destX_01 = 0;
local destY_01 = 0; local destY_01 = 0;
if(!isSameObject(obj, monsterobj)){ if(!isSameObject(obj, monsterobj)){

View File

@ -495,7 +495,8 @@ function setCustomData_po_swordman_bykk(obj, receiveData)
for (local i = 0; i < objectManager.getCollisionObjectNumber(); i++){ for (local i = 0; i < objectManager.getCollisionObjectNumber(); i++){
local object = objectManager.getCollisionObject(i);//得到控制類對象 local object = objectManager.getCollisionObject(i);//得到控制類對象
if (object && object.isObjectType(OBJECTTYPE_ACTIVE) && obj.isEnemy(object) && object.isInDamagableState(obj)){ 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); local activeObj = sq_GetCNRDObjectToActiveObject(object);
if(!CNSquirrelAppendage.sq_IsAppendAppendage(activeObj, APDPATH_SM_HUNDREDSWORD_HOLD)){ if(!CNSquirrelAppendage.sq_IsAppendAppendage(activeObj, APDPATH_SM_HUNDREDSWORD_HOLD)){
local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(activeObj, sqrChr, -1, false, APDPATH_SM_HUNDREDSWORD_HOLD, true); local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(activeObj, sqrChr, -1, false, APDPATH_SM_HUNDREDSWORD_HOLD, true);