144 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			144 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:FightSign.nut | ||
|  | 路径:Project/FightSign/FightSign.nut | ||
|  | 创建日期:2024-08-11	09:46 | ||
|  | 文件用途:刷图签到 | ||
|  | */ | ||
|  | class FightSignC extends LenheartNewUI_Windows { | ||
|  |     //调试模式 | ||
|  |     // DeBugMode = true; | ||
|  | 
 | ||
|  |     //不是窗口 | ||
|  |     // NoWindow = true; | ||
|  | 
 | ||
|  |     //是否可见 | ||
|  |     Visible = false; | ||
|  | 
 | ||
|  |     //普通奖励 | ||
|  |     CommonReward = null; | ||
|  |     //累计奖励 | ||
|  |     ExReward = null; | ||
|  |     //信息 | ||
|  |     Info = null; | ||
|  | 
 | ||
|  | 
 | ||
|  |     //获取信息回调 | ||
|  |     function GetConfigCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         CommonReward = Jso.re1; | ||
|  |         ExReward = Jso.re2; | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取配置回调 | ||
|  |     function GetMyInfoCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         Info = Jso.info; | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取信息 | ||
|  |     function GetInfo() { | ||
|  |         local T = { | ||
|  |             op = 20066001 | ||
|  |         } | ||
|  |         SendPackEx(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | ||
|  |         Childrens = []; | ||
|  |         //注册控件 | ||
|  |         RegisterWidget(); | ||
|  | 
 | ||
|  |         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20066002, GetMyInfoCallBack.bindenv(this)); | ||
|  |         Pack_Control.rawset(20066004, GetConfigCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         GetInfo(); | ||
|  |     } | ||
|  | 
 | ||
|  |     function RegisterWidget() { | ||
|  |         //关闭按钮 | ||
|  |         local CloseButton = LenheartNewUI_BaseButton(580, 2, 11, 12, "interface/lenheartwindowcommon.img", 276); | ||
|  |         CloseButton.OnClick = function() { | ||
|  |             this.Visible = false; | ||
|  |         }.bindenv(this); | ||
|  |         Childrens.append(CloseButton); | ||
|  | 
 | ||
|  |         //领取奖励按钮 | ||
|  |         local ReceiveButton = LenheartNewUI_BaseButton(426, 422, 140, 40, "interface2/event/chn_daily_attendance/main.img", 5); | ||
|  |         ReceiveButton.OnClick = function() { | ||
|  |             local T = { | ||
|  |                 op = 20066003 | ||
|  |             } | ||
|  |             SendPackEx(T); | ||
|  |         }.bindenv(this); | ||
|  |         ReceiveButton.SetCallBackFunc(function(Window) { | ||
|  |             if (!Info) return; | ||
|  |             if (Info.NowClearanceCount >= 2 && Info.TodayState == 0) { | ||
|  |                 Window.State = 0; | ||
|  |             } else { | ||
|  |                 Window.State = 8; | ||
|  |             } | ||
|  |         }.bindenv(this)) | ||
|  |         Childrens.append(ReceiveButton); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制主界面 | ||
|  |     function DrawMain(obj) { | ||
|  |         if (!CommonReward || !ExReward) return; | ||
|  |         //绘制窗口底 | ||
|  |         L_sq_DrawWindow(X + 2, Y + 6, 580, 440, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13); | ||
|  |         L_sq_DrawWindow(X + 16, Y + 20, 570, 462, "interface/windowcommon.img", 204, 4, 14, 4, 14); | ||
|  |         //绘制标题栏 | ||
|  |         L_sq_DrawImg("onlineevent/main.img", 0, X - 1, Y); | ||
|  |         //绘制地图背景 | ||
|  |         L_sq_DrawImg("interface2/event/chn_daily_attendance/main.img", 0, X + 24, Y + 28); | ||
|  | 
 | ||
|  |         //绘制通关次数 | ||
|  |         L_sq_DrawImg("interface2/event/chn_daily_attendance/main.img", 2 + Info.NowClearanceCount, X + 188, Y + 129); | ||
|  |         L_sq_DrawImg("interface2/event/chn_daily_attendance/main.img", 4, X + 220, Y + 129); | ||
|  | 
 | ||
|  |         //普通签到 | ||
|  |         foreach(Pos, ItemObj in CommonReward) { | ||
|  |             // if (OnlineTime <= ItemObj.time) NextRewardTime = ItemObj.time; | ||
|  |             //绘制物品 | ||
|  |             DrawItemBase(X + 42 + ((Pos % 7) * 55) + 4, Y + 182 + ((Pos / 7) * 65), ItemObj.itemid, ItemObj.itemnum); | ||
|  |             if (Pos< Info.RewardDayCount) L_sq_DrawImg("interface2/event/chn_daily_attendance/main.img", 1, X + 33 + ((Pos % 7) * 55) + 4, Y + 175 + ((Pos / 7) * 65)); | ||
|  |         } | ||
|  | 
 | ||
|  |         //累计签到 | ||
|  |         foreach(Pos, ItemObj in ExReward) { | ||
|  |             DrawItemBase(X + 481, Y + 194 + (Pos * 72), ItemObj.itemid, ItemObj.itemnum); | ||
|  |             //绘制已在线时间 | ||
|  |             L_sq_DrawCode(ItemObj.Day.tostring(), X + 512 - LenheartTextClass.GetStringLength(ItemObj.Day.tostring()) / 2, Y + 171 + (Pos * 72), sq_RGBA(255, 177, 0, 250), 1, 1); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Show(obj) { | ||
|  |         DrawMain(obj); | ||
|  |         LenheartNewUI_Windows.Show(obj); | ||
|  |     } | ||
|  | 
 | ||
|  |     //逻辑入口 | ||
|  |     function Proc(obj) { | ||
|  |         LenheartNewUI_Windows.SyncPos(X, Y); | ||
|  |     } | ||
|  | 
 | ||
|  |     function OpenCallBack() { | ||
|  |         Visible = true; | ||
|  |         ResetFocus(); | ||
|  |         GetInfo(); | ||
|  |     } | ||
|  | } | ||
|  | getroottable().rawdelete("FightSign_Obj"); | ||
|  | 
 | ||
|  | function Lenheart_FightSign_Fun(obj) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     if (!RootTab.rawin("FightSign_Obj")) { | ||
|  |         RootTab.rawset("FightSign_Obj", true); | ||
|  |         local Win = LenheartNewUI_CreateWindow(FightSignC, "每日签到窗口", ((getroottable().Rindro_Scr_Width - 600) / 2).tointeger(), 40, 600, 494, 20); | ||
|  |         EventList_Obj.AddEvent("每日签到", 91, Win); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | getroottable()["LenheartFuncTab"].rawset("FightSignFuncN", Lenheart_FightSign_Fun); |