装备跨界
This commit is contained in:
58
Project/Trainingroom/Training_ModifyAttributes.nut
Normal file
58
Project/Trainingroom/Training_ModifyAttributes.nut
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
文件名:Training_ModifyAttributes.nut
|
||||
路径:Project/Trainingroom/Training_ModifyAttributes.nut
|
||||
创建日期:2025-12-13 02:22
|
||||
文件用途:修改训练房角色属性
|
||||
*/
|
||||
class Training_ModifyAttributesC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
}
|
||||
|
||||
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) {
|
||||
// print(2);
|
||||
L_sq_DrawCode("修改属性页面", X + 50, Y + 80, sq_RGBA(230, 200, 155, 255), 0, 1);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y - 28);
|
||||
|
||||
if (Parent && Parent.Visible) {
|
||||
X = Parent.X;
|
||||
Y = Parent.Y + 28;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
56
Project/Trainingroom/Training_Setting.nut
Normal file
56
Project/Trainingroom/Training_Setting.nut
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
文件名:Training_Setting.nut
|
||||
路径:Project/Trainingroom/Training_Setting.nut
|
||||
创建日期:2025-12-13 02:24
|
||||
文件用途:训练房设置
|
||||
*/
|
||||
class Training_SettingC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
}
|
||||
|
||||
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) {
|
||||
L_sq_DrawCode("设置页面", X + 50, Y + 80, sq_RGBA(230, 200, 155, 255), 0, 1);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y - 28);
|
||||
|
||||
if (Parent && Parent.Visible) {
|
||||
X = Parent.X;
|
||||
Y = Parent.Y + 28;
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Project/Trainingroom/Training_State.nut
Normal file
56
Project/Trainingroom/Training_State.nut
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
文件名:Training_State.nut
|
||||
路径:Project/Trainingroom/Training_State.nut
|
||||
创建日期:2025-12-13 02:23
|
||||
文件用途:训练状态管理
|
||||
*/
|
||||
class Training_StateC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
}
|
||||
|
||||
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) {
|
||||
L_sq_DrawCode("状态页面", X + 50, Y + 80, sq_RGBA(230, 200, 155, 255), 0, 1);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y - 28);
|
||||
|
||||
if (Parent && Parent.Visible) {
|
||||
X = Parent.X;
|
||||
Y = Parent.Y + 28;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
58
Project/Trainingroom/Training_SummonMonster.nut
Normal file
58
Project/Trainingroom/Training_SummonMonster.nut
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
文件名:Training_SummonMonster.nut
|
||||
路径:Project/Trainingroom/Training_SummonMonster.nut
|
||||
创建日期:2025-12-13 02:02
|
||||
文件用途:训练室-召唤怪物
|
||||
*/
|
||||
class Training_SummonMonsterC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
}
|
||||
|
||||
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) {
|
||||
// print(1);
|
||||
L_sq_DrawCode("召唤怪物页面", X + 50, Y + 80, sq_RGBA(230, 200, 155, 255), 0, 1);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y - 28);
|
||||
|
||||
if (Parent && Parent.Visible) {
|
||||
X = Parent.X;
|
||||
Y = Parent.Y + 28;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,11 +5,14 @@
|
||||
文件用途:
|
||||
*/
|
||||
class TrainingroomC extends LenheartNewUI_Windows {
|
||||
|
||||
X = -321;
|
||||
|
||||
//调试模式
|
||||
DeBugMode = true;
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
// NoWindow = true;
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
@@ -21,45 +24,173 @@ class TrainingroomC extends LenheartNewUI_Windows {
|
||||
//位移修炼场副本编号
|
||||
MoveTrainingroomDungeonId = 1;
|
||||
|
||||
//是否在修炼场中
|
||||
InTrainingroom = false;
|
||||
|
||||
//队列
|
||||
Queue = null;
|
||||
//图像
|
||||
Img = Rindro_Image("training/main.img");
|
||||
|
||||
|
||||
//主界面展开状态
|
||||
MainState = 0;
|
||||
|
||||
//子页面配置
|
||||
PageConfig = ["召唤怪物", "修改属性", "状态", "设置"];
|
||||
//子页面标题
|
||||
Title = null;
|
||||
//子页面
|
||||
PageList = null;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
Title = [];
|
||||
PageList = [];
|
||||
Queue = QuestQueue();
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
X = -321;
|
||||
|
||||
InitPvf();
|
||||
|
||||
Cb_OpenWindow_Enter_Func.rawset("TrainingroomC", function(args) {
|
||||
NativePointer(Rindro_Haker.CpuContext.ecx).add(4344 * 4).writeInt(1);
|
||||
if (args[0] == 244 && InTrainingroom) {
|
||||
NativePointer(Rindro_Haker.CpuContext.ecx).add(4344 * 4).writeInt(0);
|
||||
ChangeMainState(false);
|
||||
}
|
||||
}.bindenv(this));
|
||||
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
||||
local LogicFunc = function(Btn) {
|
||||
foreach(Pos, obj in Title) {
|
||||
if (obj != Btn) obj.State = 0;
|
||||
else {
|
||||
obj.State = 1;
|
||||
ChangeSubPage(Pos);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
foreach(Pos, Name in PageConfig) {
|
||||
local Tabbars1 = LenheartNewUI_TabbarsText((Pos * 61), 4, Name);
|
||||
if (Pos == 0) Tabbars1.State = 1;
|
||||
Tabbars1.SetTextOffset(31 - LenheartTextClass.GetStringLength(Name) / 2, 4);
|
||||
AddChild(Tabbars1);
|
||||
Tabbars1.OnClickEx = LogicFunc.bindenv(this);
|
||||
Title.append(Tabbars1);
|
||||
}
|
||||
|
||||
|
||||
//返回城镇
|
||||
local ReturnToTheTownButton = LenheartNewUI_ButtonText(236, 450, 15, "返回城镇");
|
||||
ReturnToTheTownButton.Idx = 74;
|
||||
ReturnToTheTownButton.DWidth = 18;
|
||||
ReturnToTheTownButton.Width = 74;
|
||||
ReturnToTheTownButton.SetTextOffset(-4, 1);
|
||||
ReturnToTheTownButton.OnClickEx = function(Btn) {
|
||||
L_sq_SendPackType(45);
|
||||
L_sq_SendPack();
|
||||
ChangeMainState(false);
|
||||
}.bindenv(this);
|
||||
AddChild(ReturnToTheTownButton);
|
||||
|
||||
PageList.append(Training_SummonMonsterC("修炼场_召唤怪物页面", 0, 0, 300, 140, 0));
|
||||
PageList.append(Training_ModifyAttributesC("修炼场_修改属性页面", 0, 0, 300, 140, 0));
|
||||
PageList.append(Training_StateC("修炼场_状态页面", 0, 0, 300, 140, 0));
|
||||
PageList.append(Training_SettingC("修炼场_设置页面", 0, 0, 300, 140, 0));
|
||||
|
||||
ChangeSubPage(0);
|
||||
}
|
||||
|
||||
function ChangeSubPage(Index) {
|
||||
for (local i = 0; i< PageList.len(); i++) {
|
||||
local Object = PageList[i];
|
||||
Object.Visible = false;
|
||||
RemoveChild(Object.ObjectId);
|
||||
}
|
||||
|
||||
PageList[Index].Visible = true;
|
||||
AddChild(PageList[Index]);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
Img.DrawPng(0, X, Y);
|
||||
//分割线
|
||||
Rindro_Image_GlobalMap["lenheartui"].DrawExPng(230, X, Y + 25, 0, sq_RGBA(255, 255, 255, 250), 1.5, 1.0);
|
||||
//子页面背景框
|
||||
//嵌套背景框
|
||||
// DrawNineBox(X + 0, Y + 26, 302, 146, "interface/lenheartwindowcommon.img", 0);
|
||||
}
|
||||
|
||||
function ChangeMainState(flag) {
|
||||
if (MainState == 0) {
|
||||
MainState = 1
|
||||
Queue.AddQuest("界面移动动画", function(Name, Time) {
|
||||
local Offset = sq_GetAccel(-321, 0, Time, 500, true);
|
||||
X = Offset;
|
||||
if (Offset == 0) {
|
||||
MainState = 2;
|
||||
Queue.RemoveQuest(Name);
|
||||
}
|
||||
}.bindenv(this));
|
||||
} else if (MainState == 2) {
|
||||
MainState = 1;
|
||||
Queue.AddQuest("界面移动动画", function(Name, Time) {
|
||||
local Offset = sq_GetAccel(0, -321, Time, 500, true);
|
||||
X = Offset;
|
||||
if (Offset == -321) {
|
||||
MainState = 0;
|
||||
Queue.RemoveQuest(Name);
|
||||
}
|
||||
}.bindenv(this));
|
||||
}
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
Queue.Run();
|
||||
|
||||
}
|
||||
|
||||
//修炼场中Proc
|
||||
function ProcInTraining(obj) {
|
||||
InTrainingroom = false;
|
||||
//判断自己是否在修炼场中
|
||||
if (sq_GetCurrentModuleType() != 3) return;
|
||||
local stage = sq_GetGlobaludpModuleStage();
|
||||
local dungeon = sq_GetDungeonByStage(stage);
|
||||
local dungeonIndex = sq_GetDuegonIndex(dungeon);
|
||||
if (dungeonIndex != MoveTrainingroomDungeonId) return;
|
||||
InTrainingroom = true;
|
||||
|
||||
local KThisC = L_sq_RA(0x1B470E0);
|
||||
local KeyFlag = L_sq_RA(KThisC + 269 + DIK_F12);
|
||||
if (KeyFlag == 128 && MainState != 1) {
|
||||
ChangeMainState(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
|
||||
//主动调用子对象窗口的Proc
|
||||
foreach(Object in Childrens) {
|
||||
if (Object instanceof LenheartNewUI_Windows)
|
||||
Object.Proc(obj);
|
||||
}
|
||||
|
||||
//判断自己是否在需要位移修炼场的区域
|
||||
if (sq_GetCurrentModuleType() == 1) {
|
||||
@@ -76,6 +207,8 @@ class TrainingroomC extends LenheartNewUI_Windows {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ProcInTraining(obj);
|
||||
}
|
||||
|
||||
function InitPvf() {
|
||||
@@ -101,7 +234,7 @@ 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);
|
||||
LenheartNewUI_CreateWindow(TrainingroomC, "修炼场窗口", 0, 35, 306, 474, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user