969 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			969 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | |||
|  | 文件名:AradPass.nut | |||
|  | 路径:Plugins/AradPass/AradPass.nut | |||
|  | 创建日期:2023-10-18	08:38 | |||
|  | 文件用途: | |||
|  | */ | |||
|  | class AradPassC extends BasicsDrawTool { | |||
|  |     WindowObj = null; //窗口对象 | |||
|  |     MainState = false; //主状态 | |||
|  |     X = 124; | |||
|  |     Y = 34; | |||
|  | 
 | |||
|  |     Page = 0; | |||
|  | 
 | |||
|  |     Title = null; | |||
|  |     QuestTitle = null; | |||
|  |     QuestPage = 0; | |||
|  | 
 | |||
|  |     BaseInfo = null; | |||
|  | 
 | |||
|  |     Mobj = null; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     //每日任务数组 | |||
|  |     DailyTasks = null; | |||
|  |     //重复任务数组 | |||
|  |     RepeatingTasks = null; | |||
|  |     //赛季任务数组 | |||
|  |     SeasonTasks = null; | |||
|  | 
 | |||
|  |     //标签提示 | |||
|  |     TabSuccessTips = null; | |||
|  | 
 | |||
|  |     //等级按钮 | |||
|  |     LevelButton = null; | |||
|  |     LevelPage = 0; | |||
|  | 
 | |||
|  |     //战令等级 | |||
|  |     MyPassLevel = 2; | |||
|  | 
 | |||
|  |     //ItemInfo | |||
|  |     ItemInfoObject = null; | |||
|  |     ItemInfoDrawS = null; | |||
|  | 
 | |||
|  |     RewardInfoObject = null; | |||
|  |     RewardInfoEffTimer = null; | |||
|  |     RewardSuccessTips = null; | |||
|  | 
 | |||
|  |     function GetBaseInfo() { | |||
|  |         local T = { | |||
|  |             op = 20059001 | |||
|  |         } | |||
|  |         SendPack(T); | |||
|  |         local T2 = { | |||
|  |             op = 20059005 | |||
|  |         } | |||
|  |         SendPack(T2); | |||
|  |     } | |||
|  | 
 | |||
|  |     function GetBaseInfoCallBack(Chunk) { | |||
|  |         // Sout("收到包 : \n %L", Chunk); | |||
|  |         local Jso = Json.Decode(Chunk); | |||
|  |         foreach(Value in Jso.itemInfo) { | |||
|  |             if (Value.Name2.len() == 0) | |||
|  |                 Value.Name2 = "Yosin-Team"; | |||
|  |             ItemInfoObject[Value.Id] <- Value; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     function GetBaseInfoCallBack2(Chunk) { | |||
|  |         // Sout("收到包 : \n %L", Chunk); | |||
|  |         local Jso = Json.Decode(Chunk); | |||
|  |         BaseInfo = {}; | |||
|  |         BaseInfo = clone(Jso); | |||
|  | 
 | |||
|  |         LevelPage = ((BaseInfo.Exp / 1000) + 1) / 10; | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     QuestSuccessTips = null; | |||
|  | 
 | |||
|  |     function GetPlayerQuestCallBack(Chunk) { | |||
|  |         // Sout("收到包 : \n %L", Chunk); | |||
|  |         local Jso = Json.Decode(Chunk); | |||
|  |         DailyTasks = Jso.task[0]; | |||
|  |         RepeatingTasks = Jso.task[1]; | |||
|  |         SeasonTasks = Jso.task[2]; | |||
|  | 
 | |||
|  |         QuestSuccessTips = [0, 0, 0]; | |||
|  |         TabSuccessTips[1] = 0; | |||
|  | 
 | |||
|  |         foreach(Pos, Value in Jso.task) { | |||
|  |             foreach(QuestObject in Value) { | |||
|  |                 if (QuestObject.SuccessState == 0) { | |||
|  |                     if (QuestObject.NowSuccessCount >= QuestObject.MaxSuccessCount) { | |||
|  |                         QuestSuccessTips[Pos] = 1; | |||
|  |                         TabSuccessTips[1] = 1; | |||
|  |                         break; | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     function GetPlayerReward() { | |||
|  |         local T = { | |||
|  |             op = 20059003 | |||
|  |         } | |||
|  |         SendPack(T); | |||
|  |     } | |||
|  | 
 | |||
|  |     function GetPlayerQuest() { | |||
|  |         local T = { | |||
|  |             op = 20059031 | |||
|  |         } | |||
|  |         SendPack(T); | |||
|  |     } | |||
|  | 
 | |||
|  |     function GetPlayerRewardCallBack(Chunk) { | |||
|  |         // Sout("收到包 : \n %L", Chunk); | |||
|  |         //还原奖励领取提示数组 | |||
|  |         RewardSuccessTips = [0, 0, 0, 0, 0]; | |||
|  |         TabSuccessTips[0] = 0; | |||
|  | 
 | |||
|  |         RewardInfoObject = {}; | |||
|  |         local Jso = Json.Decode(Chunk); | |||
|  |         foreach(Pos, Value in Jso.reward) { | |||
|  |             RewardInfoObject.rawset(Pos, Value); | |||
|  |             if ((Pos)<(BaseInfo.Exp / 1000 + 1)) { | |||
|  |                 //判断是否有未领取的道具绘制感叹号要用 | |||
|  |                 local Page = (Pos / 10); | |||
|  |                 if (RewardSuccessTips[Page] == 0) { | |||
|  |                     if (Value.isOrdinary == 0) { | |||
|  |                         RewardSuccessTips[Page] = 1; | |||
|  |                         TabSuccessTips[0] = 1; | |||
|  |                     } | |||
|  |                     if (BaseInfo.isVip) { | |||
|  |                         if (Value.isadditional == 0) { | |||
|  |                             RewardSuccessTips[Page] = 1; | |||
|  |                             TabSuccessTips[0] = 1; | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     //发包成功 | |||
|  |     function SendSuccessAradPass(a2, a3, a4) { | |||
|  |         local T = { | |||
|  |             op = 20059023, | |||
|  |             id = a2, | |||
|  |             count = a4, | |||
|  |         } | |||
|  |         SendPack(T); | |||
|  |     } | |||
|  | 
 | |||
|  |     function RegisterQuestSu() { | |||
|  |         L_CompleteTaskTable.rawset("AradPass", SendSuccessAradPass.bindenv(this)); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     constructor() { | |||
|  |         if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; | |||
|  | 
 | |||
|  |         //注册完成任务回调 | |||
|  |         RegisterQuestSu(); | |||
|  | 
 | |||
|  |         ItemInfoObject = {}; | |||
|  | 
 | |||
|  |         //标签完成提示 | |||
|  |         TabSuccessTips = [0, 0, 0]; | |||
|  | 
 | |||
|  |         Pack_Control.rawset(20059002, GetBaseInfoCallBack.bindenv(this)); | |||
|  |         Pack_Control.rawset(20059006, GetBaseInfoCallBack2.bindenv(this)); | |||
|  |         Pack_Control.rawset(20059004, GetPlayerRewardCallBack.bindenv(this)); | |||
|  |         Pack_Control.rawset(20059032, GetPlayerQuestCallBack.bindenv(this)); | |||
|  | 
 | |||
|  |         GetBaseInfo(); | |||
|  |         GetPlayerReward(); | |||
|  |         GetPlayerQuest(); | |||
|  | 
 | |||
|  |         RewardInfoEffTimer = Clock(); | |||
|  |         RewardSuccessTips = [0, 0, 0, 0, 0]; | |||
|  |     } | |||
|  | 
 | |||
|  |     //绘制等级数字 | |||
|  |     function DrawNumber(num, ...) { | |||
|  |         num = num.tostring(); | |||
|  |         local x = X + 38; | |||
|  |         local y = Y + 110; | |||
|  |         if (num.len() == 2) x = X + 28; | |||
|  |         for (local i = 0; i< num.len(); i++) { | |||
|  |             local n = num.slice(i, i + 1); | |||
|  |             n = n.tointeger(); | |||
|  |             local Img = "interface2/ui/aradpass/chn/aradpassnum.img"; | |||
|  |             if (BaseInfo.isVip) Img = "interface2/ui/aradpass/chn/aradpassnumy.img"; | |||
|  |             L_sq_DrawImg(Img, n, x + (i * 18), y); | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  |     //绘制等级数字 | |||
|  |     function DrawSmallNumber(num, bx) { | |||
|  |         num = num.tostring(); | |||
|  |         local x = X + 38 + bx; | |||
|  |         local y = Y + 250; | |||
|  |         if (num.len() == 2) x = X + 33 + bx; | |||
|  |         for (local i = 0; i< num.len(); i++) { | |||
|  |             local n = num.slice(i, i + 1); | |||
|  |             n = n.tointeger(); | |||
|  |             local Img = "interface2/ui/aradpass/chn/aradpassnum.img"; | |||
|  |             if (BaseInfo.isVip) Img = "interface2/ui/aradpass/chn/aradpassnumy.img"; | |||
|  |             L_sq_DrawImg(Img, n, x + (i * 9), y, 0, sq_RGBA(255, 255, 255, 255), 0.5, 0.5); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     //绘制道具带道具信息 | |||
|  |     function DrawItemEx(X, Y, Id, Count) { | |||
|  |         L_Sq_DrawItem(X, Y, Id, Count, 0, 0, 0); | |||
|  |         if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X, Y, 24, 24)) { | |||
|  |             ItemInfoDrawS = {}; | |||
|  |             ItemInfoDrawS.X <- X; | |||
|  |             ItemInfoDrawS.Y <- Y; | |||
|  |             ItemInfoDrawS.ItemId <- Id; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     //绘制道具相信信息 | |||
|  |     ItemObject = null; | |||
|  | 
 | |||
|  |     function DrawItemInfo(obj) { | |||
|  |         if (ItemInfoDrawS) { | |||
|  |             if (!ItemObject) { | |||
|  |                 local ItemId = ItemInfoDrawS.ItemId; | |||
|  |                 if (ItemInfoObject.rawin(ItemId)) { | |||
|  |                     ItemObject = ItemInfoClass(ItemInfoObject[ItemId]); | |||
|  |                 } | |||
|  |             } | |||
|  |             ItemObject.Show(ItemInfoDrawS.X, ItemInfoDrawS.Y - ItemObject.PageLength); | |||
|  |         } else { | |||
|  |             ItemObject = null; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     function DrawRewardItem(obj) { | |||
|  |         local Idx = LevelPage * 10; | |||
|  |         for (local i = 0; i< 10; i++) { | |||
|  |             //奖励下标 | |||
|  |             local RealPos = Idx + i; | |||
|  | 
 | |||
|  |             if (RealPos in RewardInfoObject) { | |||
|  | 
 | |||
|  |                 local RewardObject = RewardInfoObject[RealPos]; | |||
|  | 
 | |||
|  |                 //普通道具 | |||
|  |                 if ("itemid" in RewardObject) { | |||
|  |                     //普通底 | |||
|  |                     L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 21, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61); | |||
|  | 
 | |||
|  |                     DrawItemEx(X + 64 + (i * 47), Y + 296, RewardObject.itemid, RewardObject.num); | |||
|  | 
 | |||
|  |                     //已领取 | |||
|  |                     if (RewardObject.isOrdinary) { | |||
|  |                         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 23, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61); | |||
|  |                     } | |||
|  |                     //未领取 | |||
|  |                     else if (!RewardObject.isOrdinary) { | |||
|  |                         //快达到等级 | |||
|  |                         if ((RealPos + 1) == MyPassLevel + 1) { | |||
|  | 
 | |||
|  |                         } | |||
|  |                         //已达到等级 | |||
|  |                         else if ((RealPos + 1) <= MyPassLevel) { | |||
|  |                             local A = 60; | |||
|  |                             if (RewardInfoEffTimer) { | |||
|  |                                 if (Clock() - RewardInfoEffTimer <= 1000) { | |||
|  |                                     A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000); | |||
|  |                                 } | |||
|  |                                 if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) { | |||
|  |                                     A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000); | |||
|  |                                 } | |||
|  |                                 if (Clock() - RewardInfoEffTimer > 2000) { | |||
|  |                                     RewardInfoEffTimer = Clock(); | |||
|  |                                 } | |||
|  |                             } | |||
|  |                             L_sq_SetDrawImgModel(2, 0); | |||
|  |                             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 29, X + 7 + 45 + (i * 47), Y + 50 + 162 + 58, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0); | |||
|  |                             L_sq_ReleaseDrawImgModel(); | |||
|  | 
 | |||
|  |                             if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 50 + 162 + 58, 44, 74)) { | |||
|  |                                 if (Mobj.LbEvent) { | |||
|  |                                     local T = { | |||
|  |                                         op = 20059007, | |||
|  |                                         Type = 0, | |||
|  |                                         lv = RealPos + 1, | |||
|  |                                     } | |||
|  |                                     SendPack(T); | |||
|  |                                 } | |||
|  |                             } | |||
|  |                         } | |||
|  |                         //未达到等级 | |||
|  |                         else { | |||
|  |                             //普通底Eff 未领取 | |||
|  |                             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61); | |||
|  |                         } | |||
|  | 
 | |||
|  |                     } | |||
|  |                 } | |||
|  | 
 | |||
|  |                 //是不是VIP | |||
|  |                 local IsVip = BaseInfo.isVip; | |||
|  | 
 | |||
|  |                 //进阶道具 | |||
|  |                 if ("additionalItemId" in RewardObject && "additionalItemId2" in RewardObject) { | |||
|  |                     //普通底 | |||
|  |                     L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 26, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  | 
 | |||
|  |                     DrawItemEx(X + 64 + (i * 47), Y + 356, RewardObject.additionalItemId, RewardObject.additionalNum); | |||
|  |                     DrawItemEx(X + 64 + (i * 47), Y + 390, RewardObject.additionalItemId2, RewardObject.additionalNum2); | |||
|  | 
 | |||
|  |                     if (RewardObject.isadditional) { | |||
|  |                         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 28, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                     } else { | |||
|  |                         if (!IsVip) { | |||
|  |                             //普通底 | |||
|  |                             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 32, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                         } else { | |||
|  |                             //快达到等级 | |||
|  |                             if ((RealPos + 1) == MyPassLevel + 1) { | |||
|  | 
 | |||
|  |                             } | |||
|  |                             //已达到等级 | |||
|  |                             else if ((RealPos + 1) <= MyPassLevel) { | |||
|  |                                 local A = 60; | |||
|  |                                 if (RewardInfoEffTimer) { | |||
|  |                                     if (Clock() - RewardInfoEffTimer <= 1000) { | |||
|  |                                         A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000); | |||
|  |                                     } | |||
|  |                                     if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) { | |||
|  |                                         A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000); | |||
|  |                                     } | |||
|  |                                     if (Clock() - RewardInfoEffTimer > 2000) { | |||
|  |                                         RewardInfoEffTimer = Clock(); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                                 L_sq_SetDrawImgModel(2, 0); | |||
|  |                                 L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0); | |||
|  |                                 L_sq_ReleaseDrawImgModel(); | |||
|  | 
 | |||
|  |                                 if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 44, 74)) { | |||
|  |                                     if (Mobj.LbEvent) { | |||
|  |                                         local T = { | |||
|  |                                             op = 20059007, | |||
|  |                                             Type = 1, | |||
|  |                                             lv = RealPos + 1, | |||
|  |                                         } | |||
|  |                                         SendPack(T); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             } | |||
|  |                             //未达到等级 | |||
|  |                             else { | |||
|  |                                 //普通底Eff 未领取 | |||
|  |                                 L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                             } | |||
|  |                         } | |||
|  |                     } | |||
|  | 
 | |||
|  |                 } else { | |||
|  |                     //普通底 | |||
|  |                     L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 25, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  | 
 | |||
|  |                     DrawItemEx(X + 64 + (i * 47), Y + 373, RewardObject.additionalItemId, RewardObject.additionalNum); | |||
|  | 
 | |||
|  | 
 | |||
|  |                     if (RewardObject.isadditional) { | |||
|  |                         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 27, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                     } else { | |||
|  |                         if (!IsVip) { | |||
|  |                             //普通底 | |||
|  |                             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 31, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                         } else { | |||
|  |                             //快达到等级 | |||
|  |                             if ((RealPos + 1) == MyPassLevel + 1) { | |||
|  | 
 | |||
|  |                             } | |||
|  |                             //已达到等级 | |||
|  |                             else if ((RealPos + 1) <= MyPassLevel) { | |||
|  |                                 local A = 60; | |||
|  |                                 if (RewardInfoEffTimer) { | |||
|  |                                     if (Clock() - RewardInfoEffTimer <= 1000) { | |||
|  |                                         A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000); | |||
|  |                                     } | |||
|  |                                     if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) { | |||
|  |                                         A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000); | |||
|  |                                     } | |||
|  |                                     if (Clock() - RewardInfoEffTimer > 2000) { | |||
|  |                                         RewardInfoEffTimer = Clock(); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                                 L_sq_SetDrawImgModel(2, 0); | |||
|  |                                 L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0); | |||
|  |                                 L_sq_ReleaseDrawImgModel(); | |||
|  | 
 | |||
|  |                                 if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 44, 74)) { | |||
|  |                                     if (Mobj.LbEvent) { | |||
|  |                                         local T = { | |||
|  |                                             op = 20059007, | |||
|  |                                             Type = 1, | |||
|  |                                             lv = RealPos + 1, | |||
|  |                                         } | |||
|  |                                         SendPack(T); | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             } | |||
|  |                             //未达到等级 | |||
|  |                             else { | |||
|  |                                 //普通底Eff 未领取 | |||
|  |                                 L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138); | |||
|  |                             } | |||
|  |                         } | |||
|  |                     } | |||
|  | 
 | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         if (MyPassLevel >= LevelPage * 10) { | |||
|  | 
 | |||
|  |             //是不是VIP | |||
|  |             local IsVip = BaseInfo.isVip; | |||
|  | 
 | |||
|  |             local MyExp; | |||
|  |             local Rate; | |||
|  |             if (MyPassLevel == LevelPage * 10) { | |||
|  |                 MyExp = (BaseInfo.Exp + 1000.0) % 10000.0; | |||
|  |                 Rate = MyExp.tofloat() / 10000.0; | |||
|  |             } else if (MyPassLevel<(LevelPage + 1) * 10) { | |||
|  |                 MyExp = BaseInfo.Exp % 10000.0 + 1000.0; | |||
|  |                 Rate = MyExp.tofloat() / 10000.0; | |||
|  |             } else { | |||
|  |                 Rate = 100.0; | |||
|  |             } | |||
|  |             local ImgIndex = 34; | |||
|  |             if (IsVip) ImgIndex = 35; | |||
|  | 
 | |||
|  |             if (Rate <= 0) Rate = 0.01; | |||
|  |             setClip(X + 11 + 45, Y, X + 11 + 45 + (470 * Rate).tointeger(), Y + 264 + 4); //开始裁切 | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex, X + 11 + 45, Y + 264); | |||
|  |             releaseClip(); //裁切结束 | |||
|  | 
 | |||
|  |             L_sq_SetDrawImgModel(2, 0); | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex + 2, X + 11 + 34 + (470 * Rate).tointeger(), Y + 255); | |||
|  |             L_sq_ReleaseDrawImgModel(); | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     //绘制主界面 | |||
|  |     function DrawMain(obj) { | |||
|  |         if (!BaseInfo) return; | |||
|  | 
 | |||
|  |         //Item信息框一般为211的宽度 | |||
|  |         L_sq_DrawWindow(X, Y + 10, 540, 420, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13); | |||
|  | 
 | |||
|  |         L_sq_DrawWindow(X + 6, Y + 45, 528, 384, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13); | |||
|  | 
 | |||
|  | 
 | |||
|  |         // L_sq_DrawWindow(X + 5, Y + 28, 530, 390, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13); | |||
|  | 
 | |||
|  |         //绘制背景框标题栏 | |||
|  |         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpassmain.img", 0, X + 1, Y); | |||
|  | 
 | |||
|  |         //构造标题栏 | |||
|  |         if (!Title) { | |||
|  |             Title = []; | |||
|  |             for (local i = 0; i< 3; i++) { | |||
|  |                 local Str = "奖励"; | |||
|  |                 if (i == 1) Str = "任务"; | |||
|  |                 if (i == 2) Str = "社交"; | |||
|  |                 local ButtonBuf = LenheartTabbarsText(X, Y, Str); | |||
|  |                 if (i == 0) ButtonBuf.State = 1; | |||
|  |                 Title.append(ButtonBuf); | |||
|  |             } | |||
|  |         } else { | |||
|  |             foreach(Pos, Value in Title) { | |||
|  |                 Value.SyncPos(X + 12 + (Pos * 62), Y + 27); | |||
|  |                 Value.Show(); | |||
|  |                 //如果有可领取实践 还要画上感叹号标记 | |||
|  |                 if (Value.isLBActive()) { | |||
|  |                     foreach(Pp, Vv in Title) { | |||
|  |                         if (Pp != Pos) Vv.State = 0; | |||
|  |                         Page = Pos; | |||
|  |                     } | |||
|  |                 } | |||
|  | 
 | |||
|  |                 //绘制完成事件的感叹号 | |||
|  |                 if (TabSuccessTips[Pos] == 1) { | |||
|  |                     L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 58 + (Pos * 62), Y + 31, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         //绘制主题栏 | |||
|  |         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 0, X + 11, Y + 50); | |||
|  |         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass_banner.img", 0, X + 11, Y + 50); | |||
|  |         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 3, X + 547 - 252, Y + 207 - 47); | |||
|  | 
 | |||
|  |         //绘制等级与经验值 | |||
|  |         MyPassLevel = BaseInfo.Exp / 1000 + 1; | |||
|  |         DrawNumber(MyPassLevel); | |||
|  |         local jystr = (BaseInfo.Exp % 1000) + " / " + 1000; | |||
|  |         L_sq_DrawCode(jystr, X + 11 + 50 - LenheartTextClass.GetStringLength(jystr) / 2, Y + 50 + 20 + 80, sq_RGBA(179, 169, 135, 255), 0, 1); | |||
|  |         if (BaseInfo.isVip) { | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 6, X + 11 + 22, Y + 50 + 24); | |||
|  |         } | |||
|  | 
 | |||
|  |         //绘制战令名 | |||
|  |         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpassl.img", 0, X + 11 + 91, Y + 50 + 20); | |||
|  | 
 | |||
|  |         //绘制时装套装名 | |||
|  |         local szstr = BaseInfo.Apn; | |||
|  |         L_sq_DrawCode(szstr, X + 500 - LenheartTextClass.GetStringLength(szstr) / 2, Y + 192, sq_RGBA(179, 169, 135, 255), 0, 1); | |||
|  | 
 | |||
|  |         //绘制结束时间 | |||
|  |         L_sq_DrawCode("距离结束还有" + BaseInfo.EndTime + "天", X + 11 + 91, Y + 50 + 20 + 31, sq_RGBA(134, 120, 79, 255), 0, 1); | |||
|  | 
 | |||
|  |         //绘制激活按钮 | |||
|  |         if (!(BaseInfo.isVip)) { | |||
|  |             local ActivationButton = LenheartButtonText(X + 11 + 91, Y + 50 + 20 + 31 + 20, 22, "激 活"); | |||
|  |             ActivationButton.SetFrame(null, 323); | |||
|  |             ActivationButton.SetTextOffset(6, 1); | |||
|  |             ActivationButton.Show(); | |||
|  |             if (ActivationButton.isLBActive()) { | |||
|  |                 local T = { | |||
|  |                     op = 20059013 | |||
|  |                 } | |||
|  |                 SendPack(T); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         //绘制主要奖励框 | |||
|  |         for (local i = 0; i< 5; i++) { | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 4, X + 11 + 91 + (36 * i), Y + 31 + 124); | |||
|  |             DrawItemEx(X + 11 + 95 + (36 * i), Y + 33 + 124, BaseInfo.showItemIds[i], 1); | |||
|  |         } | |||
|  | 
 | |||
|  |         //绘制奖励页 | |||
|  |         if (Page == 0) { | |||
|  | 
 | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 1, X + 11, Y + 50 + 162); | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 2, X + 11, Y + 50 + 162 + 214); | |||
|  | 
 | |||
|  |             L_sq_DrawCode("区", X + 11 + 14, Y + 50 + 162 + 14, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("间", X + 11 + 14, Y + 50 + 162 + 14 + 19, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  | 
 | |||
|  |             L_sq_DrawCode("免", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("费", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  | 
 | |||
|  | 
 | |||
|  |             L_sq_DrawCode("追", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19 + 54, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("加", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19 + 54 + 19, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 19, X + 11, Y + 240); | |||
|  | 
 | |||
|  | 
 | |||
|  |             // local SuccessButton = LenheartBaseButtonText(X + 60, Y + 215, 88, 25, "interface2/ui/aradpass/chn/aradpass.img", 15, "1 - 10"); | |||
|  |             // local SuccessButton = LenheartTabbarsText(X + 60, Y + 215, "1 - 10", 88, 25); | |||
|  |             // SuccessButton.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15); | |||
|  |             // SuccessButton.SetTextOffset(30, 5); | |||
|  |             // SuccessButton.Show(); | |||
|  | 
 | |||
|  | 
 | |||
|  |             //构造等级按钮 | |||
|  |             if (!LevelButton) { | |||
|  |                 LevelButton = []; | |||
|  |                 for (local i = 0; i< 5; i++) { | |||
|  |                     local Str = "1 - 10"; | |||
|  |                     if (i == 1) Str = "11 - 20"; | |||
|  |                     if (i == 2) Str = "21 - 30"; | |||
|  |                     if (i == 3) Str = "31 - 40"; | |||
|  |                     if (i == 4) Str = "41 - 50"; | |||
|  |                     local ButtonBuf = LenheartTabbarsText(X + 11 + 50 + (i * 93), Y + 215, Str, 88, 25); | |||
|  |                     ButtonBuf.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15); | |||
|  |                     ButtonBuf.SetTextOffset(50 - LenheartTextClass.GetStringLength(Str) / 2, 6); | |||
|  |                     if (i == 0) ButtonBuf.State = 1; | |||
|  |                     LevelButton.append(ButtonBuf); | |||
|  |                 } | |||
|  |             } else { | |||
|  |                 foreach(Pos, Value in LevelButton) { | |||
|  |                     Value.SyncPos(X + 11 + 50 + (Pos * 93), Y + 215); | |||
|  |                     Value.Show(); | |||
|  |                     if (Pos == LevelPage) Value.State = 1; | |||
|  |                     else Value.State = 0; | |||
|  |                     //如果有可领取实践 还要画上感叹号标记 | |||
|  |                     if (Value.isLBActive()) { | |||
|  |                         LevelPage = Pos; | |||
|  |                     } | |||
|  |                     if (Value.State == 1) { | |||
|  |                         L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 18, X + 11 + 50 + (Pos * 93), Y + 215); | |||
|  |                     } | |||
|  | 
 | |||
|  | 
 | |||
|  |                     //绘制是否可领取奖励的感叹号 | |||
|  |                     if (RewardSuccessTips[Pos] == 1) { | |||
|  |                         L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 125 + (Pos * 93), Y + 224, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             for (local i = 0; i< 10; i++) { | |||
|  |                 DrawSmallNumber(i + 1 + (LevelPage * 10), 124 - 91 + (i * 47)); | |||
|  |             } | |||
|  | 
 | |||
|  |             DrawRewardItem(obj); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y + 438, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8); | |||
|  |             L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y + 460, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8); | |||
|  |             L_sq_DrawCode("获得的物品将发放至物品栏。", X + 44, Y + 438, sq_RGBA(179, 169, 135, 150), 1, 1); | |||
|  |             L_sq_DrawCode("未使用的奖励道具将在本季通行券结束时删除。", X + 44, Y + 460, sq_RGBA(179, 169, 135, 150), 1, 1); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             //绘制领取全部奖励按钮 | |||
|  |             local ClaimAllButton = LenheartButtonText(X + 460, Y + 440, 22, "全部领取"); | |||
|  |             // ClaimAllButton.SetFrame(null, 323); | |||
|  |             ClaimAllButton.SetTextOffset(-3, 1); | |||
|  |             ClaimAllButton.Show(); | |||
|  |             if (ClaimAllButton.isLBActive()) { | |||
|  |                 local T = { | |||
|  |                     op = 20059009 | |||
|  |                 } | |||
|  |                 SendPack(T); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         //绘制任务页 | |||
|  |         if (Page == 1) { | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 43, X + 11, Y + 50 + 162); | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 38, X + 13, Y + 50 + 184); | |||
|  | 
 | |||
|  | 
 | |||
|  |             //构造标题栏 | |||
|  |             if (!QuestTitle) { | |||
|  |                 QuestTitle = []; | |||
|  |                 for (local i = 0; i< 3; i++) { | |||
|  |                     local Str = "每日任务"; | |||
|  |                     if (i == 1) Str = "重复任务"; | |||
|  |                     if (i == 2) Str = "赛季任务"; | |||
|  |                     local ButtonBuf = LenheartTabbarsText(X, Y, Str); | |||
|  |                     if (i == 0) ButtonBuf.State = 1; | |||
|  |                     ButtonBuf.SetTextOffset(8, 3); | |||
|  |                     QuestTitle.append(ButtonBuf); | |||
|  |                 } | |||
|  |             } else { | |||
|  |                 foreach(Pos, Value in QuestTitle) { | |||
|  |                     Value.SyncPos(X + 12 + (Pos * 62), Y + 213); | |||
|  |                     Value.Show(); | |||
|  |                     //如果有可领取实践 还要画上感叹号标记 | |||
|  |                     if (Value.isLBActive()) { | |||
|  |                         foreach(Pp, Vv in QuestTitle) { | |||
|  |                             if (Pp != Pos) Vv.State = 0; | |||
|  |                         } | |||
|  |                         QuestPage = Pos; | |||
|  |                     } | |||
|  | 
 | |||
|  | 
 | |||
|  |                     if (QuestSuccessTips && QuestSuccessTips.len() == 3) { | |||
|  |                         //绘制是否可领取奖励的感叹号 | |||
|  |                         if (QuestSuccessTips[Pos] == 1) { | |||
|  |                             L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 64 + (Pos * 62), Y + 216, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8); | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             L_sq_DrawCode("任务内容", X + 120, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("完成次数", X + 288, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("经验值", X + 388, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |             L_sq_DrawCode("状态", X + 492, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  | 
 | |||
|  |             local QuestTasks = null; | |||
|  |             //每日 | |||
|  |             if (QuestPage == 0) { | |||
|  |                 //每日任务数组 | |||
|  |                 QuestTasks = DailyTasks; | |||
|  |             } | |||
|  |             //重复 | |||
|  |             else if (QuestPage == 1) { | |||
|  |                 //重复任务数组 | |||
|  |                 QuestTasks = RepeatingTasks; | |||
|  |             } | |||
|  |             //赛季 | |||
|  |             else { | |||
|  |                 //赛季任务数组 | |||
|  |                 QuestTasks = SeasonTasks; | |||
|  |             } | |||
|  | 
 | |||
|  |             if (QuestTasks) { | |||
|  |                 QuestWheelMax = QuestTasks.len(); | |||
|  |                 local SuccessCount = 0; | |||
|  |                 local Incomplete = 0; | |||
|  |                 foreach(Pos, Value in QuestTasks) { | |||
|  |                     local OffsetPos = Pos - QuestWheelNow - SuccessCount; | |||
|  |                     if (Pos >= QuestWheelNow && Pos <= QuestWheelNow + 5) { | |||
|  |                         if (Value.SuccessState == 0) { | |||
|  |                             Incomplete++; | |||
|  |                             L_sq_DrawCode(Value.QuestExplain, X + 20, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |                             local SuccessStr = Value.NowSuccessCount + " / " + Value.MaxSuccessCount; | |||
|  |                             L_sq_DrawCode(SuccessStr, X + 320 - LenheartTextClass.GetStringLength(SuccessStr) / 2, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |                             L_sq_DrawCode(Value.Experience.tostring(), X + 404 - LenheartTextClass.GetStringLength(Value.Experience.tostring()) / 2, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  |                             //绘制完成按钮 | |||
|  |                             local SuccessButton = LenheartButtonText(X + 472, Y + 261 + (OffsetPos * 30) + (OffsetPos), 10, "完成"); | |||
|  |                             SuccessButton.SetTextOffset(3, 1); | |||
|  |                             if (Value.NowSuccessCount >= Value.MaxSuccessCount) { | |||
|  |                                 if (SuccessButton.isLBActive()) { | |||
|  |                                     Value.op <- 20059033; | |||
|  |                                     SendPack(Value); | |||
|  |                                 } | |||
|  |                             } else { | |||
|  |                                 SuccessButton.State = 8; | |||
|  |                             } | |||
|  |                             SuccessButton.Show(); | |||
|  |                         } else { | |||
|  |                             SuccessCount++; | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |                 local SuccessPos = 0; | |||
|  |                 foreach(Pos, Value in QuestTasks) { | |||
|  |                     local SuccessOffsetPos = SuccessPos - QuestWheelNow + Incomplete; | |||
|  |                     if (Value.SuccessState == 1) { | |||
|  |                         SuccessPos++; | |||
|  |                         L_sq_DrawCode(Value.QuestExplain, X + 20, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1); | |||
|  |                         local SuccessStr = Value.NowSuccessCount + " / " + Value.MaxSuccessCount; | |||
|  |                         L_sq_DrawCode(SuccessStr, X + 320 - LenheartTextClass.GetStringLength(SuccessStr) / 2, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1); | |||
|  |                         L_sq_DrawCode(Value.Experience.tostring(), X + 404 - LenheartTextClass.GetStringLength(Value.Experience.tostring()) / 2, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1); | |||
|  |                         //绘制完成按钮 | |||
|  |                         local SuccessButton = LenheartButtonText(X + 472, Y + 261 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), 10, "已完成"); | |||
|  |                         SuccessButton.SetTextOffset(-2, 1); | |||
|  |                         SuccessButton.State = 8; | |||
|  |                         SuccessButton.Show(); | |||
|  |                         // L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 41, X + 14, Y + 50 + 160 + 50 + (SuccessOffsetPos * 30) + (SuccessOffsetPos)); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 25, Y + 456, 16, 16)) { | |||
|  |                 L_sq_DrawImg("interface/lenheartwindowcommon.img", 240, X + 25, Y + 456); | |||
|  |                 QuestTips = true; | |||
|  |             } else { | |||
|  |                 L_sq_DrawImg("interface/lenheartwindowcommon.img", 239, X + 25, Y + 456); | |||
|  |                 QuestTips = false; | |||
|  |             } | |||
|  | 
 | |||
|  |             // 周获取的经验 | |||
|  |             local MaxExp = BaseInfo.ExpLimitMax; | |||
|  |             local NowExp = BaseInfo.ExpLimit; | |||
|  |             L_sq_DrawCode("每周重复任务经验获取上限 " + NowExp + "/" + MaxExp, X + 40 + 7, Y + 7 + 451, sq_RGBA(179, 169, 135, 255), 1, 1); | |||
|  | 
 | |||
|  | 
 | |||
|  |             local ReceiveExpButton = LenheartButtonText(X + 464, Y + 7 + 446, 22, "全部领取"); | |||
|  |             ReceiveExpButton.SetTextOffset(-2, 1); | |||
|  |             ReceiveExpButton.Show(); | |||
|  |             if (ReceiveExpButton.isLBActive()) { | |||
|  |                 local T = { | |||
|  |                     op = 20059035 | |||
|  |                 } | |||
|  |                 SendPack(T); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         //绘制助力页 | |||
|  |         if (Page == 2) { | |||
|  |             L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 42, X + 11, Y + 50 + 162); | |||
|  | 
 | |||
|  |             L_sq_DrawCode("助力奖励", X + 11 + 115, Y + 50 + 162 + 7, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |             L_sq_DrawCode("[发起助力]说明", X + 11 + 372, Y + 50 + 162 + 7, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |             L_sq_DrawCode("获得助力 :   " + BaseInfo.helpNum + "   次", X + 11 + 96, Y + 50 + 162 + 111, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             //助力按钮 | |||
|  |             local UpButton = LenheartButtonText(X + 11 + 115 + 20, Y + 50 + 162 + 7 + 48, 4, "发起助力"); | |||
|  |             if (BaseInfo.help == 1) { | |||
|  |                 UpButton.State = 8; | |||
|  |             } | |||
|  |             UpButton.SetTextOffset(-12, 1); | |||
|  |             UpButton.Show(); | |||
|  |             if (UpButton.isLBActive()) { | |||
|  |                 local T = { | |||
|  |                     op = 20059011, | |||
|  |                     Type = 0, | |||
|  |                 } | |||
|  |                 SendPack(T); | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |             { | |||
|  |                 L_sq_DrawCode("社交功能将于每日凌晨6点重置。", X + 11 + 322, Y + 50 + 162 + 77, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |                 L_sq_DrawCode("点击[发起助力]按钮时,立即获得通行", X + 11 + 308, Y + 50 + 162 + 77 + 20, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |                 L_sq_DrawCode("券经验值。", X + 11 + 380, Y + 50 + 162 + 77 + 40, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |                 L_sq_DrawCode("获得助力次数将根据服务器玩家的发起", X + 11 + 300, Y + 50 + 162 + 77 + 60, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |                 L_sq_DrawCode("助力次数而更新。", X + 11 + 364, Y + 50 + 162 + 77 + 80, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |                 L_sq_DrawCode("每10秒可以点击刷新按钮更新信息。", X + 11 + 310, Y + 50 + 162 + 77 + 100, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             L_sq_DrawCode("5次", X + 11 + 48, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |             L_sq_DrawCode("10次", X + 11 + 132, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  |             L_sq_DrawCode("20次", X + 11 + 216, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0); | |||
|  | 
 | |||
|  | 
 | |||
|  |             //刷新按钮 | |||
|  |             local RefreshButton = LenheartTabbars(X + 11 + 256, Y + 50 + 162 + 108, 19, 19); | |||
|  |             RefreshButton.SetFrame(null, 445); | |||
|  |             RefreshButton.Show(); | |||
|  |             if (RefreshButton.isLBActive()) {} | |||
|  | 
 | |||
|  |             local SuccBtnArr = [BaseInfo.help5, BaseInfo.help10, BaseInfo.help20]; | |||
|  |             //完成按钮 | |||
|  |             foreach(Pos, Kf in SuccBtnArr) { | |||
|  |                 local ButtonBuf = LenheartButtonText(X + 11 + 27 + (Pos * 85), Y + 50 + 162 + 206, 4, "完成"); | |||
|  |                 local RealP = Pos; | |||
|  |                 if (RealP == 0) RealP = 5; | |||
|  |                 if (RealP == 1) RealP = 10; | |||
|  |                 if (RealP == 2) RealP = 20; | |||
|  |                 if (Kf == 1 || RealP > BaseInfo.helpNum) ButtonBuf.State = 8; | |||
|  |                 // ButtonBuf.SetFrame(null, 323); | |||
|  |                 ButtonBuf.SetTextOffset(0, 1); | |||
|  |                 ButtonBuf.Show(); | |||
|  |                 if (ButtonBuf.isLBActive()) { | |||
|  |                     local T = { | |||
|  |                         op = 20059011, | |||
|  |                         Type = RealP, | |||
|  |                     } | |||
|  |                     SendPack(T); | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |             //TODO 临时绘制道具 2022110703 | |||
|  |             //绘制道具 | |||
|  |             L_Sq_DrawItem(X + 103, Y + 262, 1232, BaseInfo.helpExp, 0, 0, 0); | |||
|  | 
 | |||
|  | 
 | |||
|  |             L_Sq_DrawItem(X + 11 + 43, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp5, 0, 0, 0); | |||
|  |             L_Sq_DrawItem(X + 11 + 128, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp10, 0, 0, 0); | |||
|  |             L_Sq_DrawItem(X + 11 + 213, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp20, 0, 0, 0); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     QuestTips = false; | |||
|  |     QuestWheelNow = 0; | |||
|  |     QuestWheelMax = 0; | |||
|  | 
 | |||
|  |     //悬浮层 | |||
|  |     function DrawSuspensionLayer(obj) { | |||
|  |         //任务提示 | |||
|  |         if (QuestTips) { | |||
|  |             L_sq_DrawWindow(X + 40, Y + 350, 224, 100, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13); | |||
|  |             local QuestTipsStr = "每周可以通过完成重复任务获得的最大经验值。\n达到每周经验获取上限后,无法进行重复任务。\n通过每日任务以及赛季任务获得的经验值,不受每周经验获取上限的限制。\n每周星期四将初始化每周经验获取量。\n每周四凌晨6点初始化重复任务的进度,并删除未领取的重复任务经验值。"; | |||
|  |             local QuestTipsArray = L_sq_GetStringDrawArray(QuestTipsStr, 251); | |||
|  |             foreach(Pos, va in QuestTipsArray) { | |||
|  |                 // Sout("文本内容嗯: %L", va); | |||
|  |                 L_sq_DrawCode(va, X + 40 + 7, Y + 7 + 350 + (Pos * 16), 0xFFFFFFFF, 1, 1); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     //开启界面回调 | |||
|  |     function OpenClassCallBack() { | |||
|  |         L_NewWindows("Lenheart", 170, 0x65535); | |||
|  |         local W = sq_GetPopupWindowMainCotrol(170); | |||
|  |         W.SetVisible(false); | |||
|  |         W.SetEnable(false); | |||
|  | 
 | |||
|  |         GetBaseInfo(); | |||
|  |         GetPlayerReward(); | |||
|  |         GetPlayerQuest(); | |||
|  |     } | |||
|  | 
 | |||
|  |     //绘制入口 | |||
|  |     function Draw(obj) { | |||
|  |         if (MainState) { | |||
|  |             if (WindowObj) { | |||
|  |                 ItemInfoDrawS = null; | |||
|  |                 DrawMain(obj); | |||
|  |                 DrawSuspensionLayer(obj); | |||
|  |                 DrawItemInfo(obj); | |||
|  |                 WindowObj.Show(obj); | |||
|  |                 X = WindowObj.X; | |||
|  |                 Y = WindowObj.Y; | |||
|  |             } else { | |||
|  |                 WindowObj = LenheartWindow(X, Y, 558, 470, 15); //坐标 大小 标题栏高度 | |||
|  |                 // WindowObj.DeBugMode = true; | |||
|  |             } | |||
|  |         } else { | |||
|  |             if (WindowObj && WindowObj.YMouseSw == false) { | |||
|  |                 IMouse.ReleaseMouseClick(); | |||
|  |                 WindowObj.YMouseSw = true; | |||
|  |                 WindowObj = null; | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     //逻辑入口 | |||
|  |     function Proc(obj) { | |||
|  |         if (IMouse.IsWheelUp()) { | |||
|  |             if (QuestWheelNow > 0) QuestWheelNow--; | |||
|  |             if (LevelPage > 0) LevelPage--; | |||
|  |         } | |||
|  |         if (IMouse.IsWheelDown()) { | |||
|  |             if (QuestWheelNow< QuestWheelMax - 6) QuestWheelNow++; | |||
|  |             if (LevelPage< 4) LevelPage++; | |||
|  |         } | |||
|  | 
 | |||
|  |         if (KeyPressNB.isKeyPress(48, "AradPassCloseKey")) { | |||
|  |             MainState = false; | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | } | |||
|  | 
 | |||
|  | function AradPass(obj) { | |||
|  |     local RootTab = getroottable(); | |||
|  |     if (!RootTab.rawin("AradPassCObj")) { | |||
|  |         local Cobj = AradPassC(); | |||
|  |         RootTab.rawset("AradPassCObj", Cobj); | |||
|  |         EventIcon("阿拉德探险记", 43, 43, Cobj); | |||
|  |     } else { | |||
|  |         RootTab["AradPassCObj"].Proc(obj); | |||
|  |         RootTab["AradPassCObj"].Draw(obj); | |||
|  |     } | |||
|  | } | |||
|  | 
 | |||
|  | if (getroottable().rawin("LenheartFuncTab")) { | |||
|  |     getroottable()["LenheartFuncTab"].rawset("AradPassFunc", AradPass); | |||
|  | } else { | |||
|  |     local T = {}; | |||
|  |     T.rawset("AradPassFunc", AradPass); | |||
|  |     getroottable().rawset("LenheartFuncTab", T); | |||
|  | } |