- 新增偷窃系统(Steal)模块及相关UI界面 - 添加自己服(MySelf)装备功能及显示界面 - 在folder-alias.json中添加新系统路径映射 - 为BaseTool_Class添加DrawNineBoxAlpha方法支持透明度 - 修改NewItemInfoWindow装备判断逻辑 - 在FileConfig.json中为多个系统添加Enabled配置项 - 在ObjectConvert.nut中添加装备掉落相关函数
142 lines
3.9 KiB
Plaintext
142 lines
3.9 KiB
Plaintext
/*
|
|
文件名:Steal.nut
|
|
路径:Project/Steal/Steal.nut
|
|
创建日期:2026-04-07 05:19
|
|
文件用途:
|
|
*/
|
|
|
|
class StealC_Password_Box extends LenheartNewUI_CommonUi {
|
|
|
|
//数字序列
|
|
NumberSeq = null;
|
|
|
|
|
|
constructor(X, Y) {
|
|
LenheartNewUI_CommonUi.constructor(X, Y, 30, 120);
|
|
//生成数字序列
|
|
NumberSeq = [];
|
|
for (local i = 0; i< 10; i++) {
|
|
local Info = {
|
|
num = sq_getRandom(0, 9),
|
|
CorrectFlag = false,
|
|
}
|
|
NumberSeq.append(Info);
|
|
}
|
|
//随机一个正确的数字
|
|
local CorrectIndex = sq_getRandom(0, 9);
|
|
NumberSeq[CorrectIndex].CorrectFlag = true;
|
|
}
|
|
|
|
function Show(obj) {
|
|
local Dt = Parent.Duration;
|
|
Parent.Img.DrawExPng(10, X, Y, 0, sq_RGBA(255, 255, 255, 90), 1.0, 1.0);
|
|
//绘制数字
|
|
for (local i = 0; i< 10; i++) {
|
|
local Info = NumberSeq[i];
|
|
local Color = Info.CorrectFlag ? sq_RGBA(157, 245, 10, 255) : sq_RGBA(150, 150, 150, 255);
|
|
L_sq_DrawCode(Info.num.tostring(), X + 15 - LenheartTextClass.GetStringLength(Info.num.tostring()) / 2, Y + 10 + i * 24, Color, 0, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
class StealC extends LenheartNewUI_Windows {
|
|
//调试模式
|
|
// DeBugMode = true;
|
|
|
|
//不是窗口
|
|
// NoWindow = true;
|
|
|
|
//是否可见
|
|
// Visible = false;
|
|
|
|
Img = Rindro_Image("steal/widget.img");
|
|
|
|
//解锁完成度
|
|
UnlockComplete = 0.57;
|
|
|
|
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);
|
|
|
|
for (local i = 0; i< 8; i++) {
|
|
local PasswordBox = StealC_Password_Box(280 + i * 30, 268);
|
|
AddChild(PasswordBox);
|
|
}
|
|
}
|
|
|
|
|
|
//绘制主界面
|
|
function DrawMain(obj) {
|
|
//灰色背景
|
|
DrawNineBoxAlpha(X, Y, 800, 600, "interface2/common/mypopup/popup.img", 0, 150);
|
|
|
|
//宝箱动画
|
|
local Ani = DrawAniEx(X + 425, Y + 230, "npc/animation/storagediamond.ani");
|
|
Ani.setImageRateFromOriginal(2.0, 2.0);
|
|
|
|
|
|
//完成度文字
|
|
local StealCompleteStr = "解锁完成度: " + UnlockComplete * 100.0 + "%";
|
|
L_sq_DrawCode(StealCompleteStr, X + 410 - LenheartTextClass.GetStringLength(StealCompleteStr) / 2, Y + 406, sq_RGBA(255, 255, 255, 255), 0, 1);
|
|
|
|
//完成度进度条
|
|
Img.DrawPng(2, X + 162, Y + 425);
|
|
setClip(X + 168, Y + 429, X + 168 + (463 * UnlockComplete).tointeger(), Y + 429 + 6);
|
|
Img.DrawPng(3, X + 168, Y + 429);
|
|
releaseClip(); //裁切结束
|
|
|
|
|
|
//解锁界面
|
|
Img.DrawPng(9, X + 269, Y + 260);
|
|
//解锁锁定条
|
|
Img.DrawPng(11, X + 269 + 8, Y + 260 + 60);
|
|
}
|
|
|
|
function Show(obj) {
|
|
DrawMain(obj);
|
|
|
|
//裁切遮罩密码框
|
|
setClip(X + 280, Y + 268, X + 280 + 8 * 30, Y + 268 + 120);
|
|
LenheartNewUI_Windows.Show(obj);
|
|
releaseClip(); //裁切结束
|
|
|
|
}
|
|
|
|
//逻辑入口
|
|
function Proc(obj) {
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
L_Windows_List <- [];
|
|
getroottable().rawdelete("LenheartPluginsInitFlag");
|
|
getroottable().rawdelete("EventList_Obj")
|
|
getroottable().rawdelete("Steal_Obj");
|
|
getroottable().rawdelete("L_Each_Obj");
|
|
|
|
|
|
|
|
function Lenheart_Steal_Fun(obj) {
|
|
local RootTab = getroottable();
|
|
if (!RootTab.rawin("Steal_Obj")) {
|
|
RootTab.rawset("Steal_Obj", true);
|
|
LenheartNewUI_CreateWindow(StealC, "偷窃系统窗口", 0, 0, 800, 600, 0);
|
|
}
|
|
}
|
|
|
|
getroottable()["LenheartFuncTab"].rawset("StealFuncN", Lenheart_Steal_Fun); |