From 920015e323a3b535d488ddf3da0b1e508eab2d35 Mon Sep 17 00:00:00 2001 From: Lenheart <947330670@qq.com> Date: Thu, 29 May 2025 00:10:15 +0800 Subject: [PATCH] =?UTF-8?q?UI=E6=96=B0=E5=A2=9E=E6=BB=9A=E5=8A=A8=E6=9D=A1?= =?UTF-8?q?=20=E6=88=90=E5=B0=B1=E7=B3=BB=E7=BB=9F=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Base/UI/Lenheart_UI_Class.nut | 214 +++++++++++++++ Project/Achievement/Achievement.nut | 408 ++++++++-------------------- 2 files changed, 324 insertions(+), 298 deletions(-) diff --git a/Base/UI/Lenheart_UI_Class.nut b/Base/UI/Lenheart_UI_Class.nut index 19af3b7..21ec454 100644 --- a/Base/UI/Lenheart_UI_Class.nut +++ b/Base/UI/Lenheart_UI_Class.nut @@ -736,6 +736,7 @@ class LenheartNewUI_CommonUi extends LenheartNewUI_BaseWindow { TopCallBackFunc = null; Data = null; + DeBugMode = false; constructor(x, y, width, height) { this.Localtion_X = x; @@ -792,7 +793,13 @@ class LenheartNewUI_CommonUi extends LenheartNewUI_BaseWindow { function TopShow(obj) { if (TopCallBackFunc) TopCallBackFunc(obj, this); + if (DeBugMode) DeBug(obj); } + + function DeBug(obj) { + sq_DrawBox(X, Y, Width, Height, 0xffffffff); + } + } class LenheartNewUI_BaseButton extends LenheartNewUI_CommonUi { @@ -1195,4 +1202,211 @@ class LenheartNewUI_TabbarsText extends LenheartNewUI_Tabbars { if (State == 0 || State == 8) L_sq_DrawCode(TextStr, X + TextXoffset, SY + 2, Color, 0, 1); } +} + + +class Yosin_DragButton extends LenheartNewUI_CommonUi { + State = 0; + DHeight = null; // 改为高度 + Path = "interface/lenheartwindowcommon.img"; + Idx = 172; + FillHeight = 2; // 改为填充高度 + FirstHeight = 7; // 改为首节高度 + Width = 9; // 固定宽度,垂直按钮宽度通常是固定的 + Visible = true; + DeBugMode = false; + + BasePos = null; + MoveFlag = false; + //鼠标相对位置 + M_Xpos = null; + M_Ypos = null; + B_X = null; + B_Y = null; + Move_Value = 0; + Max_Move_Value = 0; + + CurrentMovePosY = 0; + + //当前滚动值 + CurrentScrollValue = 0.0; + + OnChange = null; + + constructor(X, Y, H) { + this.DHeight = H; + LenheartNewUI_CommonUi.constructor(X, Y, Width, H + 7 * 2); // 宽度固定,高度动态 + + BasePos = { + x = X, + y = Y + } + + } + + function SetFrame(gPath, gIdx) { + if (gPath) Path = gPath; + Idx = gIdx; + } + + function Show(obj) { + //不可用 + if (State == 8) { + L_sq_Draw3Image_Vertical(X + 1, Y, this.DHeight, Path, Idx + 9, FillHeight, FirstHeight); + } else { + //按下 + if (isLBDown) { + L_sq_Draw3Image_Vertical(X, Y + 1, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight); + } + //悬停 + else if (isInRect) { + L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight); + } + //普通 + else { + L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx, FillHeight, FirstHeight); + } + } + } + + + //鼠标左键按下回调 + function OnMouseLbDown(MousePos_X, MousePos_Y) { + LenheartNewUI_CommonUi.OnMouseLbDown(MousePos_X, MousePos_Y); + + if (isInRect) { + MoveFlag = true; + M_Xpos = MousePos_X; //原始鼠标位置数据 + M_Ypos = MousePos_Y; + B_X = X; //原始窗口位置 + B_Y = Y; + } + } + + //鼠标事件回调 + function OnMouseProc(Flag, MousePos_X, MousePos_Y) { + LenheartNewUI_CommonUi.OnMouseProc(Flag, MousePos_X, MousePos_Y); + + //移动 + if (MoveFlag) { + Move_Value = MousePos_Y - M_Ypos + CurrentMovePosY; + if (Move_Value > 0 && Move_Value <= Max_Move_Value) { + Y = (Move_Value); + Localtion_Y = (BasePos.y + Move_Value); + if (OnChange) { + local Rate = Move_Value.tofloat() / Max_Move_Value.tofloat(); + CurrentScrollValue = format("%.2f", Rate).tofloat(); + OnChange(CurrentScrollValue); + } + } + } + } + + //鼠标左键弹起回调 + function OnMouseLbUp(MousePos_X, MousePos_Y) { + LenheartNewUI_CommonUi.OnMouseLbUp(MousePos_X, MousePos_Y); + MoveFlag = false; + if (Move_Value< 0) Move_Value = 0; + if (Move_Value > Max_Move_Value) Move_Value = Max_Move_Value; + CurrentMovePosY = Move_Value; //记录当前移动位置 + } + + //设置最大移动值 + function SetMaxMoveValue(Value) { + Max_Move_Value = Value; + } + + //设置滚动回调函数 + function SetOnChange(OnChange) { + this.OnChange = OnChange; + } + + //设置滚动步进 + function SetStep(Step) { + // 计算新的移动值 + local newValue = CurrentMovePosY + (Step * Max_Move_Value).tointeger(); + + // 边界检查 + if (newValue< 0) newValue = 0; + if (newValue > Max_Move_Value) newValue = Max_Move_Value; + + // 更新位置 + Move_Value = newValue; + CurrentMovePosY = newValue; + Localtion_Y = BasePos.y + newValue; + // 更新并回调滚动值 + if (OnChange) { + local Rate = Move_Value.tofloat() / Max_Move_Value.tofloat(); + CurrentScrollValue = format("%.2f", Rate).tofloat(); + OnChange(CurrentScrollValue); + } + } +} + +class Yosin_ScrollBar { + + //上按钮 + UpButton = null; + //下按钮 + DownButton = null; + //滑动按钮 + ScrollButton = null; + //点击时步进的Y轴值 + Step = 0.0; + + Parent = null; + + constructor(X, Y, H, Sbtn_H) { + + + ScrollButton = Yosin_DragButton(X, Y + 13, Sbtn_H); + ScrollButton.SetFrame("interface/lenheartwindowcommon.img", 184); + //减去按钮高度 加滚动条长度加滚动条上下拼接长度15 加滚动条最大高度 + ScrollButton.SetMaxMoveValue(H - 26 - ScrollButton.Height); + + UpButton = LenheartNewUI_BaseButton(X, Y, 9, 13, "interface/lenheartwindowcommon.img", 16); + UpButton.OnClick = function() { + DoStep(-1); + }.bindenv(this); + + DownButton = LenheartNewUI_BaseButton(X, Y + H - 13, 9, 13, "interface/lenheartwindowcommon.img", 22); + DownButton.OnClick = function() { + DoStep(1); + }.bindenv(this); + } + + function DoStep(Flag) { + ScrollButton.SetStep(Step * Flag); + } + + function SetParent(Ui) { + Parent = Ui; + Ui.AddChild(UpButton); + Ui.AddChild(ScrollButton); + Ui.AddChild(DownButton); + } + + function RemoveSelf() { + for (local i = 0; i< Parent.Childrens.len(); i++) { + local obj = Parent.Childrens[i]; + if (obj == UpButton || obj == ScrollButton || obj == DownButton) { + Parent.Childrens.remove(i); + i--; + } + } + } + + function SetDebugModel(Flag) { + UpButton.DeBugMode = Flag; + ScrollButton.DeBugMode = Flag; + DownButton.DeBugMode = Flag; + } + + function SetOnChange(Func) { + ScrollButton.SetOnChange(Func); + } + + function SetStep(value) { + Step = value; + } } \ No newline at end of file diff --git a/Project/Achievement/Achievement.nut b/Project/Achievement/Achievement.nut index 923cb57..49deaac 100644 --- a/Project/Achievement/Achievement.nut +++ b/Project/Achievement/Achievement.nut @@ -5,276 +5,13 @@ 文件用途:成就系统 */ +class Achievement_TypeButton extends LenheartNewUI_BaseButton { -class Yosin_DragButton extends LenheartNewUI_CommonUi { - State = 0; - BaseIdx = 29; - DHeight = null; // 改为高度 - Path = "interface/lenheartwindowcommon.img"; - Idx = 172; - FillHeight = 2; // 改为填充高度 - FirstHeight = 7; // 改为首节高度 - Width = 9; // 固定宽度,垂直按钮宽度通常是固定的 - Visible = true; - DeBugMode = false; - - BasePos = null; - MoveFlag = false; - //鼠标相对位置 - M_Xpos = null; - M_Ypos = null; - B_X = null; - B_Y = null; - Move_Value = 0; - Max_Move_Value = 0; - - CurrentMovePosY = 0; - - constructor(X, Y, H) { - this.DHeight = H; - LenheartNewUI_CommonUi.constructor(X, Y, Width, H + 7 * 2); // 宽度固定,高度动态 - - BasePos = { - x = X, - y = Y - } + function _typeof() { + return "Achievement_TypeButton"; } - - function SetFrame(gPath, gIdx) { - if (gPath) Path = gPath; - Idx = gIdx; - } - - function Show(obj) { - //不可用 - if (State == 8) { - L_sq_Draw3Image_Vertical(X + 1, Y, this.DHeight, Path, Idx + 9, FillHeight, FirstHeight); - } else { - //按下 - if (isLBDown) { - L_sq_Draw3Image_Vertical(X, Y + 1, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight); - } - //悬停 - else if (isInRect) { - L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight); - } - //普通 - else { - L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx, FillHeight, FirstHeight); - } - } - } - - - //鼠标左键按下回调 - function OnMouseLbDown(MousePos_X, MousePos_Y) { - LenheartNewUI_CommonUi.OnMouseLbDown(MousePos_X, MousePos_Y); - - if (isInRect) { - MoveFlag = true; - M_Xpos = MousePos_X; //原始鼠标位置数据 - M_Ypos = MousePos_Y; - B_X = X; //原始窗口位置 - B_Y = Y; - } - } - - //鼠标事件回调 - function OnMouseProc(Flag, MousePos_X, MousePos_Y) { - LenheartNewUI_CommonUi.OnMouseProc(Flag, MousePos_X, MousePos_Y); - - //移动 - if (MoveFlag) { - Move_Value = MousePos_Y - M_Ypos + CurrentMovePosY; - print(Move_Value); - if ( Move_Value <= (Max_Move_Value - Height + BasePos.y)) { - Y = (Move_Value); - Localtion_Y = (BasePos.y + Move_Value); - } - } - } - - //鼠标左键弹起回调 - function OnMouseLbUp(MousePos_X, MousePos_Y) { - LenheartNewUI_CommonUi.OnMouseLbUp(MousePos_X, MousePos_Y); - MoveFlag = false; - CurrentMovePosY = Move_Value; //记录当前移动位置 - } - - //设置最大移动值 - function SetMaxMoveValue(Value) { - Max_Move_Value = Value; - } - } -// class Yosin_DragButton extends LenheartNewUI_CommonUi { -// //路径 -// Path = ""; -// //索引 -// Idx = 0; -// //方向 -// Direction = false; - -// //按钮 -// Button = null; - -// //变动位置回调函数 -// OnChange = null; - -// //鼠标相对位置 -// M_Xpos = null; -// M_Ypos = null; -// //未移动时的初始坐标 -// BasePos = null; -// //移动Flag -// MoveFlag = false; -// //最大移动值 -// Max_Move_Value = 0; -// //移动值 -// Move_Value = 0; -// //侦测值 -// Detect_Value = 0; - -// B_X = null; -// B_Y = null; - -// Visible = true; -// DeBugMode = false; - -// constructor(X, Y, S_H, H) { -// Childrens = []; -// this.Path = Path; -// this.Idx = Idx; -// LenheartNewUI_CommonUi.constructor(X, Y, 9, H); - -// Button = LenheartNewUI_VerticalButton(X, Y, S_H); -// Button.SetFrame("interface/lenheartwindowcommon.img", 184); -// AddChild(Button); - - -// BasePos = { -// x = X, -// y = Y -// } -// } - -// //生成DT -// function GenerateDt() { -// try { -// local CurT = L_Getmicroseconds(); -// Duration = (CurT - DurationFlag); -// DurationFlag = CurT; -// } catch (exception) { - -// } -// } - -// function DeBug(obj) { -// sq_DrawBox(X, Y, Width, Height, 0xffffffff); -// } - -// function Show(obj) { -// LenheartNewUI_Windows.Show(obj); -// } - -// //同步坐标 -// function SyncPos(X, Y) { -// this.X = X; -// this.Y = Y; -// foreach(Window in Childrens) { -// Window.SyncPos(X, Y); -// } -// } - - -// //鼠标事件回调 -// function OnMouseProc(Flag, MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseProc(Flag, MousePos_X, MousePos_Y); - -// if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Parent.X + Button.Localtion_X , Parent.Y + Button.Localtion_Y, Width, Height)){ -// isInRect = true; -// } -// else isInRect = false; - - -// foreach(Window in Childrens) { -// Window.OnMouseProc(Flag, MousePos_X, MousePos_Y); -// } -// //移动 -// if (MoveFlag) { -// //左键拖动 -// if (Direction) { -// Move_Value = B_X + (MousePos_X - M_Xpos); -// if (!(Move_Value >= (0 + BasePos.x) && Move_Value <= (Max_Move_Value - Width + BasePos.x))) { -// X = Move_Value; -// // DragLogic((Move_Value - Localtion_X).tofloat() / (Max_Move_Value - Width + BasePos.x - Localtion_X).tofloat()); -// } -// } else { -// Move_Value = B_Y + (MousePos_Y - M_Ypos); -// if (Move_Value >= (0 + BasePos.y) && Move_Value <= (Max_Move_Value - Height + BasePos.y)) { -// Y = (Move_Value); -// Button.Localtion_Y = (Move_Value); -// // DragLogic((Move_Value - Localtion_Y).tofloat() / (Max_Move_Value - Height + BasePos.y - Localtion_Y).tofloat()); -// } -// } - -// SyncPos(X, Y); -// } -// } -// //鼠标左键按下回调 -// function OnMouseLbDown(MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseLbDown(MousePos_X, MousePos_Y); -// foreach(Window in Childrens) { -// Window.OnMouseLbDown(MousePos_X, MousePos_Y); -// } - -// if (isInRect) { -// MoveFlag = true; -// M_Xpos = MousePos_X; //原始鼠标位置数据 -// M_Ypos = MousePos_Y; -// B_X = X; //原始窗口位置 -// B_Y = Y; -// } -// } -// //鼠标左键弹起回调 -// function OnMouseLbUp(MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseLbUp(MousePos_X, MousePos_Y); -// foreach(Window in Childrens) { -// Window.OnMouseLbUp(MousePos_X, MousePos_Y); -// } - -// MoveFlag = false; -// } -// //鼠标右键按下回调 -// function OnMouseRbDown(MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseRbDown(MousePos_X, MousePos_Y); -// foreach(Window in Childrens) { -// Window.OnMouseRbDown(MousePos_X, MousePos_Y); -// } -// } -// //鼠标右键弹起回调 -// function OnMouseRbUp(MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseRbUp(MousePos_X, MousePos_Y); -// foreach(Window in Childrens) { -// Window.OnMouseRbUp(MousePos_X, MousePos_Y); -// } -// } -// //鼠标滚轮时间回调 -// function OnMouseWheel(Flag, MousePos_X, MousePos_Y) { -// LenheartNewUI_CommonUi.OnMouseWheel(Flag, MousePos_X, MousePos_Y); -// foreach(Window in Childrens) { -// Window.OnMouseWheel(Flag, MousePos_X, MousePos_Y); -// } -// } - -// //设置最大移动值 -// function SetMaxMoveValue(Value) { -// Max_Move_Value = Value; -// } -// } - - class AchievementC extends LenheartNewUI_Windows { //调试模式 // DeBugMode = true; @@ -305,6 +42,18 @@ class AchievementC extends LenheartNewUI_Windows { EventWindow = null; + //左侧滚动条对象 + LeftScrollBar = null; + //左侧滚轮值 + LeftScrollRate = 0; + LeftScrollValue = 400; + + //右侧滚动条对象 + RightScrollBar = null; + //右侧滚轮值 + RightScrollRate = 0; + RightScrollValue = 400; + //查询成就回包 function OnQueryAchievementBack(Chunk) { local Jso = Json.Decode(Chunk); @@ -346,10 +95,35 @@ class AchievementC extends LenheartNewUI_Windows { } constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + EtcInfo = Rindro_Script.GetFileData("etc/th_plugin/etc.etc", function(DataTable, Data) { + while (!Data.Eof()) { + local Str = Data.Get(); + if (Str == "[window pos]") { + DataTable.window_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + } else if (Str == "[clicp pos]") { + DataTable.clicp_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + } else if (Str == "[clicp2 pos]") { + DataTable.clicp_pos2 <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + }else if (Str == "[closebutton pos]") { + DataTable.closebutton_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + } else if (Str == "[left scroll bar]") { + DataTable.left_scroll_bar_info <- [Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + } else if (Str == "[right scroll bar]") { + DataTable.right_scroll_bar_info <- []; + while (true) { + local buf = Data.Get(); + if (buf == "[/right scroll bar]") break; + local Arr = [buf,Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()]; + DataTable.right_scroll_bar_info.append(Arr); + } + } + } + }.bindenv(this)); + Childrens = []; InitButtonConfig(); //注册控件 - RegisterWidget(); + RegisterWidget(true); LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); Pack_Control.rawset(20091002, OnQueryAchievementBack.bindenv(this)); @@ -372,10 +146,17 @@ class AchievementC extends LenheartNewUI_Windows { } function InitAchievement() { - Childrens = []; - ScrollValueMax = 0; - RegisterWidget(); + for (local i = 0; i< Childrens.len(); i++) { + if (typeof Childrens[i] == "Achievement_TypeButton") { + Childrens.remove(i); + i--; + } + } + //这里要手动移除右边的滚动条 + if (RightScrollBar) RightScrollBar.RemoveSelf(); + ScrollValueMax = 0; + RegisterWidget(false); if (Info.len() > Page) { //绘制成就 @@ -383,6 +164,14 @@ class AchievementC extends LenheartNewUI_Windows { if (InfoObj.Pos.y - 320 > ScrollValueMax) ScrollValueMax = InfoObj.Pos.y - 320; DrawAItem(InfoObj); } + + RightScrollValue = EtcInfo.right_scroll_bar_info[Page][4]; + RightScrollBar = Yosin_ScrollBar(EtcInfo.right_scroll_bar_info[Page][0], EtcInfo.right_scroll_bar_info[Page][1], EtcInfo.right_scroll_bar_info[Page][2], EtcInfo.right_scroll_bar_info[Page][3]); + RightScrollBar.SetParent(this); + RightScrollBar.SetStep(EtcInfo.right_scroll_bar_info[Page][5].tofloat() / 100.0); + RightScrollBar.SetOnChange(function(Rate) { + ScrollValue = (Rate * RightScrollValue).tointeger(); + }.bindenv(this)); } } @@ -513,26 +302,40 @@ class AchievementC extends LenheartNewUI_Windows { } - function RegisterWidget() { - //类型按钮 - for (local i = 0; i< ButtonInfo.len(); i++) { - local Config = ButtonInfo[i]; - local TypeButton = LenheartNewUI_BaseButton(Config.Pos.x, Config.Pos.y, Config.Size.x, Config.Size.y, Config.Icon.Path, Config.Icon.Idx); - TypeButton.Data = i; - TypeButton.OnClickEx = function(Button) { - Page = Button.Data; - InitAchievement(); - QueryAchievement(); - }.bindenv(this); - Childrens.append(TypeButton); + function RegisterWidget(Flag) { + if (!Flag) { + //类型按钮 + for (local i = 0; i< ButtonInfo.len(); i++) { + local Config = ButtonInfo[i]; + local TypeButton = Achievement_TypeButton(Config.Pos.x, Config.Pos.y, Config.Size.x, Config.Size.y, Config.Icon.Path, Config.Icon.Idx); + TypeButton.Data = { + id = i, + BasePosY = Config.Pos.y, + }; + TypeButton.OnClickEx = function(Button) { + if (Button.Localtion_Y <= EtcInfo.clicp_pos[1]) return; + Page = Button.Data.id; + InitAchievement(); + QueryAchievement(); + }.bindenv(this); + TypeButton.SetCallBackFunc(function(Btn) { + Btn.Localtion_Y = (Btn.Data.BasePosY - LeftScrollRate * LeftScrollValue).tointeger(); + }.bindenv(this)); + Childrens.append(TypeButton); + } } - // local TestButton = Yosin_DragButton(50, 120, 10); - // TestButton.SetFrame("interface/lenheartwindowcommon.img", 184); - // TestButton.SetMaxMoveValue(400); - // AddChild(TestButton); - // Childrens.append(TestButton); + //只有第一次的时候注册进度条 + if (Flag) { + LeftScrollValue = EtcInfo.left_scroll_bar_info[4]; + LeftScrollBar = Yosin_ScrollBar(EtcInfo.left_scroll_bar_info[0], EtcInfo.left_scroll_bar_info[1], EtcInfo.left_scroll_bar_info[2], EtcInfo.left_scroll_bar_info[3]); + LeftScrollBar.SetParent(this); + LeftScrollBar.SetStep(EtcInfo.left_scroll_bar_info[5].tofloat() / 100.0); + LeftScrollBar.SetOnChange(function(Rate) { + LeftScrollRate = Rate; + }.bindenv(this)); + } } //绘制主界面 @@ -564,14 +367,21 @@ class AchievementC extends LenheartNewUI_Windows { function Show(obj) { DrawMain(obj); + // setClip(X + EtcInfo.clicp_pos[0], Y + EtcInfo.clicp_pos[1], X + EtcInfo.clicp_pos[2], Y + EtcInfo.clicp_pos[3]); + //左侧裁切 setClip(X + EtcInfo.clicp_pos[0], Y + EtcInfo.clicp_pos[1], X + EtcInfo.clicp_pos[2], Y + EtcInfo.clicp_pos[3]); LenheartNewUI_Windows.Show(obj); releaseClip(); //裁切结束 + + //右侧裁切 + setClip(X + EtcInfo.clicp_pos2[0], Y + EtcInfo.clicp_pos2[1], X + EtcInfo.clicp_pos2[2], Y + EtcInfo.clicp_pos2[3]); + LenheartNewUI_Windows.Show(obj); + releaseClip(); //裁切结束 DrawInfo(); } function DrawAItem(InfoObj) { - local Button = LenheartNewUI_BaseButton(InfoObj.Pos.x, InfoObj.Pos.y, InfoObj.Size.x, InfoObj.Size.y, InfoObj.Icon.Path, InfoObj.Icon.Idx); + local Button = Achievement_TypeButton(InfoObj.Pos.x, InfoObj.Pos.y, InfoObj.Size.x, InfoObj.Size.y, InfoObj.Icon.Path, InfoObj.Icon.Idx); Button.Data = InfoObj; Button.SetCallBackFunc(function(Button) { local InfoObj = Button.Data; @@ -627,12 +437,19 @@ class AchievementC extends LenheartNewUI_Windows { //鼠标滚轮事件回调 function OnMouseWheel(Flag, MousePos_X, MousePos_Y) { + if (MousePos_X > (X + 205)) { + // if (Flag) { + // if (ScrollValue > 0) ScrollValue -= 35; - if (Flag) { - if (ScrollValue > 0) ScrollValue -= 35; - } - if (!Flag) { - if (ScrollValue< ScrollValueMax) ScrollValue += 35; + // } + // if (!Flag) { + // if (ScrollValue< ScrollValueMax) ScrollValue += 35; + // } + if (Flag) RightScrollBar.DoStep(-1); + if (!Flag) RightScrollBar.DoStep(1); + } else { + if (Flag) LeftScrollBar.DoStep(-1); + if (!Flag) LeftScrollBar.DoStep(1); } //调用原生方法 @@ -673,17 +490,12 @@ function Lenheart_Achievement_Fun(obj) { local Str = Data.Get(); if (Str == "[window pos]") { DataTable.window_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()]; - } else if (Str == "[clicp pos]") { - DataTable.clicp_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()]; - } else if (Str == "[closebutton pos]") { - DataTable.closebutton_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()]; } } }.bindenv(this)); local window_Info = Info.window_pos; local Win = LenheartNewUI_CreateWindow(AchievementC, "成就系统窗口", window_Info[0], window_Info[1], window_Info[2], window_Info[3], window_Info[4]); - Win.EtcInfo = Info; EventList_Obj.AddEvent("成就系统", 118, Win); } }