From 4e92ff8140c0d18b6645c46b4e98b634f00add12 Mon Sep 17 00:00:00 2001 From: Lenheart <947330670@qq.com> Date: Tue, 20 Jan 2026 02:55:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=98=E7=A3=A8=E4=B9=8B=E7=A4=BC=E7=A4=BC?= =?UTF-8?q?=E7=9B=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/Torturegift/Torturegift.nut | 174 ++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 Project/Torturegift/Torturegift.nut diff --git a/Project/Torturegift/Torturegift.nut b/Project/Torturegift/Torturegift.nut new file mode 100644 index 0000000..8c92245 --- /dev/null +++ b/Project/Torturegift/Torturegift.nut @@ -0,0 +1,174 @@ +class TorturegiftC extends LenheartNewUI_Windows { + //调试模式 + // DeBugMode = true; + + //状态 0展示状态 1滚动状态 + MacState = 0; + + ItemNameColor = [ + 0xffffffff, //白装 + 0xffedd568, //蓝装 + 0xffff6bb3, //紫装 + 0xfff000ff, //粉装 + 0xff0082ff, //传说 + 0xff00b1ff //史诗 + ] + + //红眼闪光动画 + EyesAnimotion = null; + + + //当前道具组 + ItemShowArr = null; + //轮播时间 + PlayT = 0; + //轮播速度 + PlayRate = 2; + + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + Childrens = []; + ItemShowArr = []; + //注册控件 + RegisterWidget(); + + LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); + + local FrameArr = []; + for (local i = 0; i< 23; i++) { + local T = { + ImgIndex = 3 + i, + Delay = 60, + Pos = [0, 0] + } + FrameArr.append(T); + } + EyesAnimotion = Lenheart_Ani("null", FrameArr, [100, 100]); + EyesAnimotion.ImgPath = "contents/2022/bakalraid/ui/bakal_reward/title.img"; + + + for (local i = 0; i< 50; i++) { + local T = { + XOffset = (i * 170), + YOffset = 213, + ItemId = 3037, + ItemCount = 100, + Grade = 5, + Name = "无色小晶体" + } + ItemShowArr.append(T); + } + } + + function RegisterWidget() { + //关闭按钮 + local CloseButton = LenheartNewUI_BaseButton(432, 0, 11, 12, "interface/lenheartwindowcommon.img", 276); + CloseButton.OnClick = function() { + this.Visible = false; + }.bindenv(this); + Childrens.append(CloseButton); + + } + + + //绘制卡牌 + function DrawRewardCard(CardInfo) { + //绘制卡牌底 + L_sq_DrawImg("rindro_ui/torturegift.img", 4, X + CardInfo.XOffset, Y + CardInfo.YOffset); + //绘制品级框底槽 + L_sq_DrawImg("rindro_ui/torturegift_grade.img", CardInfo.Grade, X + CardInfo.XOffset + 64, Y + CardInfo.YOffset + 26); + //绘制名称 + L_sq_DrawCode(CardInfo.Name, X + CardInfo.XOffset + 82 - LenheartTextClass.GetStringLength(CardInfo.Name) / 2, Y + CardInfo.YOffset + 70, ItemNameColor[CardInfo.Grade], 0, 1); + + //绘制物品 + DrawItemBase(X + CardInfo.XOffset + 67, Y + CardInfo.YOffset + 29, CardInfo.ItemId, CardInfo.ItemCount); + + } + + + + //绘制主界面 + function DrawMain(obj) { + //绘制背景框标题栏 + L_sq_DrawImg("rindro_ui/torturegift.img", 0, X, Y); + //轨道底层 + L_sq_DrawImg("rindro_ui/torturegift.img", 1, X + 6, Y + 198); + //上牛头 + L_sq_DrawImg("rindro_ui/torturegift.img", 2, X + 114, Y + 175); + //下 + L_sq_DrawImg("rindro_ui/torturegift.img", 3, X + 114, Y + 336); + //指针 + L_sq_DrawImg("rindro_ui/torturegift.img", 5, X + 215, Y + 320); + } + + + function Show(obj) { + + DrawMain(obj); + + + setClip(X + 30, Y, X + 422, Y + 454); //开始裁切 + local AddOffset = 0; + PlayT += Duration; + if (PlayT >= 30) { + AddOffset = (1 * PlayRate); + PlayT = 0; + } + foreach(_index, infoobj in ItemShowArr) { + if (AddOffset) { + infoobj.XOffset -= AddOffset; + // if (_index == 0) print(infoobj.XOffset); + if (infoobj.XOffset <= -200) infoobj.XOffset += (ItemShowArr.len()) * 170; + } + DrawRewardCard(infoobj); + } + releaseClip(); //裁切结束 + + if (ItemInfoDrawS && MacState == 0) { + PlayRate = 0; + } else if (MacState == 0) { + PlayRate = 1; + } + + LenheartNewUI_Windows.Show(obj); + + + + // L_sq_SetDrawImgModel(2, 0); + // EyesAnimotion.X = X - 122; + // EyesAnimotion.Y = Y + 110; + // EyesAnimotion.Show(Duration); + // L_sq_ReleaseDrawImgModel(); + + } + + //逻辑入口 + function Proc(obj) { + LenheartNewUI_Windows.SyncPos(X, Y); + + } + +} + +L_Windows_List <- []; +getroottable().rawdelete("LenheartPluginsInitFlag"); +getroottable().rawdelete("EventList_Obj") +getroottable().rawdelete("TorturegiftC_Obj"); +getroottable().rawdelete("L_Each_Obj"); + + + +function Lenheart_Torturegift_New(obj) { + local RootTab = getroottable(); + if (!RootTab.rawin("TorturegiftC_Obj")) { + RootTab.rawset("TorturegiftC_Obj", true); + LenheartNewUI_CreateWindow(TorturegiftC, "折磨之礼窗口", 210, 64, 452, 454, 22); + } +} + +if (getroottable().rawin("LenheartFuncTab")) { + getroottable()["LenheartFuncTab"].rawset("Lenheart_Torturegift_NewFunc", Lenheart_Torturegift_New); +} else { + local T = {}; + T.rawset("Lenheart_Torturegift_NewFunc", Lenheart_Torturegift_New); + getroottable().rawset("LenheartFuncTab", T); +} \ No newline at end of file