2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								文件名:AncientheroLuckyBox.nut
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								路径:Project/AncientheroLuckyBox/AncientheroLuckyBox.nut
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								创建日期:2025-07-08	18:44
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								文件用途:圣者遗物箱
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class AncientheroLuckyBoxC extends LenheartNewUI_Windows {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //调试模式
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // DeBugMode = true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //不是窗口
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // NoWindow = true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //是否可见
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Visible = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Img = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //遗物箱ID
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BoxId = 15;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //盒子数量
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BoxCount = 0;
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    //能量
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Energy = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励查询网站
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    RewardUrl = "https://www.baidu.com";
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //打开状态 0未打开 1单抽 10十连抽
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    OpenFlag = 1;
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //抽奖模式按钮集合
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OpenBtns = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //动画队列
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    AniQueue = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    //奖励动画盒子
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SmallBoxList = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BigBox = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Childrens = [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AniQueue = QuestQueue();;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //注册控件
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        RegisterWidget();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Img = {};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Img["main"] <- Rindro_Image("interface2/event/chn_event_2020/201029_ancientheroluckybox/ancientbox.img");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Img["yosin"] <- Rindro_Image("yosin/db_newani.img");
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Img["yosin_bd"] <- Rindro_Image("yosin/db_newani_bd.img");
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        SmallBoxList = [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for (local i = 0; i< 20; i++) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Buffer = AncientheroLuckyBoxC_Box(this, i);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            SmallBoxList.append(Buffer);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        BigBox = AncientheroLuckyBoxC_BigBox(this, 99);
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //配置回包
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        RegisterPack(20074004, function(Chunk) {
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            local Jso = Json.Decode(Chunk);
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            this.Visible = true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //重置
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenFlag = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            foreach(Obj in SmallBoxList) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Obj.Reset();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                BigBox.Reset();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.BoxId = Jso["BoxId"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.BoxCount = Jso["BoxCount"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.RewardUrl = Jso["ProbabilityTab"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Energy = Jso["nl"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this));
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //配置回包
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        RegisterPack(20094008, function(Chunk) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Jso = Json.Decode(Chunk);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.BoxCount = Jso["BoxCount"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Energy = Jso["nl"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.OpenFlag = Jso["itemBuffers"].len();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (this.OpenFlag == 10) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                foreach(Pos, obj in Jso["itemBuffers"]) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    //因为曾服务端这里发的数组 估计是土罐抄过来的龙盒只有一个道具 只取0号位
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    local Info = obj;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    local RandomScript = GetRewardAniScript(Info.typ);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    SmallBoxList[Pos].SetInfo(Info.itemid, Info.num, RandomScript, Info.typ);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } else if (this.OpenFlag == 1) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                local Info = Jso["itemBuffers"][0];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                BigBox.SetInfo(Info.itemid, Info.num, GetRewardAniScript(Info.typ), Info.typ);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // local monipack = "{\"uid\":1,\"op\":20094008,\"itemBuffers\":[[{\"typ\":1,\"itemid\":3037,\"num\":3}],[{\"typ\":1,\"itemid\":3037,\"num\":2}],[{\"typ\":1,\"itemid\":3037,\"num\":1}],[{\"typ\":1,\"itemid\":3037,\"num\":1}],[{\"typ\":1,\"itemid\":3037,\"num\":1}],[{\"typ\":1,\"itemid\":3037,\"num\":3}],[{\"typ\":1,\"itemid\":3037,\"num\":3}],[{\"typ\":1,\"itemid\":3037,\"num\":3}],[{\"typ\":1,\"itemid\":3037,\"num\":3}],[{\"typ\":2,\"itemid\":3037,\"num\":1}]],\"nl\":80,\"cid\":1,\"BoxCount\":67}";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // local monipack = "{\"BoxCount\":76,\"cid\":1,\"itemBuffers\":[{\"itemid\":3038,\"num\":1,\"typ\":3}],\"nl\":0,\"op\":20094008,\"uid\":1}";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // Pack_Control[20094008](monipack);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function GetRewardAniScript(Grade) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local Middle = "";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        switch (Grade) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case 0: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Middle = "box_b";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case 1: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                switch (sq_getRandom(0, 1)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 0:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_b_a";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 1:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_a";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case 2: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                switch (sq_getRandom(0, 2)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 0:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_b_s";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 1:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_a_s";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 2:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_s";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case 3: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                switch (sq_getRandom(0, 3)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 0:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_b_ss";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 1:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_a_ss";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 2:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_s_ss";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    case 3:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Middle = "box_ss";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                break;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return Middle;
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function RegisterWidget() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //关闭按钮
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local CloseButton = LenheartNewUI_BaseButton(763, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        CloseButton.OnClick = function() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Visible = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Childrens.append(CloseButton);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OpenBtns = [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //单抽复选框
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local OneOpenBtn = LenheartNewUI_SwitchButtonText(196, 425, "      开启1个");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OneOpenBtn.ImgIndex = 358;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OneOpenBtn.SetTextPos(12, 2);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OneOpenBtn.Width = 130;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OneOpenBtn.Height = 16;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OneOpenBtn.OnClickEx = function(Btn) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            CallOpenAnimation(OpenFlag == 0);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenFlag = 1;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenBtns[1].State = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Btn.State = 1;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AddChild(OneOpenBtn);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OpenBtns.append(OneOpenBtn);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //单抽复选框
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local TenOpenBtn = LenheartNewUI_SwitchButtonText(458, 425, "      开启10个");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TenOpenBtn.ImgIndex = 358;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TenOpenBtn.SetTextPos(12, 2);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TenOpenBtn.Width = 130;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TenOpenBtn.Height = 16;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TenOpenBtn.OnClickEx = function(Btn) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            CallOpenAnimation(OpenFlag == 0);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenFlag = 10;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenBtns[0].State = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Btn.State = 1;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AddChild(TenOpenBtn);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OpenBtns.append(TenOpenBtn);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        //抽奖按钮
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local UseButton = LenheartNewUI_ButtonText(356, 500, 15, "开   启");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // UseButton.SetFrame(null, 323);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        UseButton.SetTextOffset(-3, 1);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        UseButton.OnClickEx = function(Btn) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (OpenFlag == 0 || AniQueue.Queue.len() != 0) return;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            foreach(Obj in SmallBoxList) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Obj.Reset();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                BigBox.Reset();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            SendPackEx({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                op = 20094005,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Num = OpenFlag
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AddChild(UseButton);
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //调用打开界面动画
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function CallOpenAnimation(Flag) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        R_Utils.PlaySound("ANCIENTBOX_WHEEL");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //Flag 为true时是第一次进入 盖着盖子的状态  false 需要先盖上再打开
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AniQueue.AddQuest("打开界面动画", function(Name, Time, Flag) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (Flag) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                local Ani = DrawAniEx(X + 5, Y + 25, "common/ancientheroluckybox/animation/intro.ani");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if (sq_IsEnd(Ani)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    sq_Rewind(Ani);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    AniQueue.RemoveQuest(Name);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                local Ani = DrawAniEx(X + 5, Y + 25, "common/ancientheroluckybox/animation/outro.ani");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if (sq_IsEnd(Ani)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    sq_Rewind(Ani);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    AniQueue.RemoveQuest(Name);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    CallOpenAnimation(true);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this), Flag);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //绘制主界面
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function DrawMain(obj) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //绘制背景
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Img["yosin"].DrawPng(0, X, Y);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //未打开状态
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (OpenFlag == 0) Img["main"].DrawPng(1, X + 5, Y + 25);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //绘制圣者遗物箱图标
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        DrawItemBase(X + 377, Y + 394, BoxId, BoxCount);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //绘制圣者遗物箱能量
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Energy< 100) Img["yosin_bd"].DrawPng(Energy, X + 350, Y + 368);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Img["yosin"].DrawPng(2, X, Y);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local T = Clock() % 2000;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Alpha = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (T< 1000) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Alpha = 150 + 105 * (T.tofloat() / 1000.0);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Alpha = 255 - 105 * ((T - 1000).tofloat() / 1000.0);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Img["yosin_bd"].DrawExPng(100, X + 350, Y + 368, 0, sq_RGBA(255, 255, 255, Alpha.tointeger()), 1.0, 1.0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        L_sq_DrawCode(Energy.tostring() + "%", X + 426 - (LenheartTextClass.GetStringLength(Energy.tostring() + "%") / 2), Y + 437, sq_RGBA(179, 169, 135, 255), 0, 1);
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if (OpenFlag == 10) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //绘制奖励动画
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for (local i = 0; i< SmallBoxList.len(); i++) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                SmallBoxList[i].Draw(obj, X - 12 + (150 * (i % 5)), Y + 70 + (128 * (i / 5)));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } else if (OpenFlag == 1) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            BigBox.Draw(obj, X + 226, Y + 80);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Show(obj) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        DrawMain(obj);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        AniQueue.Run();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LenheartNewUI_Windows.Show(obj);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //逻辑入口
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Proc(obj) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LenheartNewUI_Windows.SyncPos(X, Y);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //重置
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function ResetData() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (OpenBtns) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenBtns[0].State = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OpenBtns[1].State = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OpenFlag = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function Lenheart_AncientheroLuckyBox_Fun(obj) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    local RootTab = getroottable();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if (!RootTab.rawin("AncientheroLuckyBox_Obj")) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        RootTab.rawset("AncientheroLuckyBox_Obj", true);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LenheartNewUI_CreateWindow(AncientheroLuckyBoxC, "圣者遗物箱窗口", ((getroottable().Rindro_Scr_Width - 782) / 2).tointeger(), 30, 782, 600, 28);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								getroottable()["LenheartFuncTab"].rawset("AncientheroLuckyBoxFuncN", Lenheart_AncientheroLuckyBox_Fun);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								L_Windows_List <- [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								getroottable().rawdelete("LenheartPluginsInitFlag");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								getroottable().rawdelete("EventList_Obj")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								getroottable().rawdelete("AncientheroLuckyBox_Obj");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//任务队列
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class QuestQueue {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //队列
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Queue = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    constructor() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Queue = {};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //添加任务
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function AddQuest(QuestName, QuestLogic, ...) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        local args = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (vargc > 0) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            args = [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for (local i = 0; i< vargc; i++) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                args.append(vargv[i]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Queue[QuestName] <- {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Logic = QuestLogic,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            InseartTime = Clock(),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            arg = args
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        };
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //移除任务
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function RemoveQuest(QuestName) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Queue) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Queue.rawdelete(QuestName);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //执行任务
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Run() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Queue) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local NowTime = Clock();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            foreach(QuestName, QuestInfo in Queue) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if (QuestInfo.arg && QuestInfo.arg.len() > 0) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    local Arr = [];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Arr.append(getroottable());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Arr.append(QuestName);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Arr.append(NowTime);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    foreach(value in QuestInfo.arg) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Arr.append(value);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    QuestInfo.Logic.acall(Arr);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // QuestInfo.Logic(QuestName, NowTime - QuestInfo.InseartTime, QuestInfo.arg);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } else QuestInfo.Logic(QuestName, NowTime - QuestInfo.InseartTime);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //示例
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Obj.AddQuest("测试任务",function (Name,Time)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            print(Time);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if(Time >= 2000)Obj.RemoveQuest(Name);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }.bindenv(this));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */
							 
						 
					
						
							
								
									
										
										
										
											2025-07-22 23:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class AncientheroLuckyBoxC_Box extends Rindro_BaseToolClass {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //父对象
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Parent = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //标识ID
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Idx = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //状态  0未设置 1已设置 2播放动画 3播放动画结束
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Status = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //道具是否显示
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemVisFlag = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemId = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具名字
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemName = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具名字颜色
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemNameColor = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具数量
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Count = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励动画
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Ani = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //音效
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sound = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //品级
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Grade = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GradeList = ["b", "a", "s", "ss"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GradeCorlorList = [sq_RGBA(255, 255, 255, 255), sq_RGBA(104, 213, 237, 255), sq_RGBA(179, 107, 255, 255), sq_RGBA(255, 0, 240, 255), sq_RGBA(255, 177, 0, 255), sq_RGBA(255, 102, 102, 255)];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //标识Flag
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Flag = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    constructor(P, Idx) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this.Parent = P;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this.Idx = Idx;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Draw(obj, X, Y) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //如果已设置 可以开始播放
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 1) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Status = 2;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Flag = this.Idx + Ani + Clock();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 2) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Ani = DrawAniEx(X, Y, Ani, Flag);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //当Ani播放时间大于百分之90时
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (sq_GetCurrentTime(Ani) > (Ani.getDelaySum(false) * 0.9).tointeger()) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ItemVisFlag = true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (sq_IsEnd(Ani)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                sq_Rewind(Ani);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Status = 3;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //如果需要显示道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (ItemVisFlag) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            X += 10;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            DrawAniEx(X + 24, Y + 80, "common/ancientheroluckybox/animation/item_mini_" + this.Grade + "_loop.ani", Flag + "Item");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //绘制道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Parent.DrawItemBase(X + 27, Y + 83, ItemId, Count);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //绘制道具名字
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            L_sq_DrawCode(this.ItemName, X + 107 - (LenheartTextClass.GetStringLength(this.ItemName) / 2), Y + 91, ItemNameColor, 0, 1);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            DrawAniEx(X + 24 + 25, Y + 80 + 5, "common/ancientheroluckybox/animation/item_mini_" + this.Grade + "_start.ani", Flag + "ItemStart");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //设置信息
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function SetInfo(ItemId, Count, RandomScript, Grade) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 0) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemId = ItemId;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local ItemObject = L_sq_GetItem(ItemId);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local NamePointer = L_sq_RA(ItemObject + 0x20);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemName = NativePointer(L_sq_I2P(NamePointer)).readUnicodeString();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Rarity = L_sq_RA(ItemObject + 0xF4);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemNameColor = GradeCorlorList[Rarity];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Count = Count;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Ani = "common/ancientheroluckybox/animation/mini_" + RandomScript + ".ani";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Sound = "ANCIENTBOX_OPEN_" + RandomScript.slice(4);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Grade = GradeList[Grade];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            R_Utils.PlaySound(this.Sound);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Status = 1;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //重置
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Reset() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Status = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemId = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemName = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemNameColor = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Ani = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Sound = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemVisFlag = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class AncientheroLuckyBoxC_BigBox extends Rindro_BaseToolClass {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //父对象
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Parent = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //标识ID
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Idx = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //状态  0未设置 1已设置 2播放动画 3播放动画结束
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Status = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //道具是否显示
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemVisFlag = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemId = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具名字
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemName = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具名字颜色
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ItemNameColor = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励道具数量
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Count = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //奖励动画
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Ani = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //音效
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sound = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //品级
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Grade = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GradeList = ["b", "a", "s", "ss"];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GradeCorlorList = [sq_RGBA(255, 255, 255, 255), sq_RGBA(104, 213, 237, 255), sq_RGBA(179, 107, 255, 255), sq_RGBA(255, 0, 240, 255), sq_RGBA(255, 177, 0, 255), sq_RGBA(255, 102, 102, 255)];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //标识Flag
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Flag = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    constructor(P, Idx) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this.Parent = P;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this.Idx = Idx;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Draw(obj, X, Y) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //如果已设置 可以开始播放
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 1) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Status = 2;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Flag = this.Idx + Ani + Clock();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 2) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Ani = DrawAniEx(X, Y, Ani, Flag);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //当Ani播放时间大于百分之90时
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (sq_GetCurrentTime(Ani) > (Ani.getDelaySum(false) * 0.9).tointeger()) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ItemVisFlag = true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (sq_IsEnd(Ani)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                sq_Rewind(Ani);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Status = 3;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //如果需要显示道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (ItemVisFlag) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            X += 74;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Y += 60;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            DrawAniEx(X + 24, Y + 80, "common/ancientheroluckybox/animation/item_mini_" + this.Grade + "_loop.ani", Flag + "Item");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //绘制道具
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Parent.DrawItemBase(X + 27, Y + 83, ItemId, Count);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //绘制道具名字
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            L_sq_DrawCode(this.ItemName, X + 107 - (LenheartTextClass.GetStringLength(this.ItemName) / 2), Y + 91, ItemNameColor, 0, 1);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            DrawAniEx(X + 24 + 25, Y + 80 + 5, "common/ancientheroluckybox/animation/item_mini_" + this.Grade + "_start.ani", Flag + "ItemStart");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //设置信息
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function SetInfo(ItemId, Count, RandomScript, Grade) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (Status == 0) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemId = ItemId;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local ItemObject = L_sq_GetItem(ItemId);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local NamePointer = L_sq_RA(ItemObject + 0x20);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemName = NativePointer(L_sq_I2P(NamePointer)).readUnicodeString();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            local Rarity = L_sq_RA(ItemObject + 0xF4);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.ItemNameColor = GradeCorlorList[Rarity];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Count = Count;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Ani = "common/ancientheroluckybox/animation/" + RandomScript + ".ani";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Sound = "ANCIENTBOX_OPEN_" + RandomScript.slice(4);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this.Grade = GradeList[Grade];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            R_Utils.PlaySound(this.Sound);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Status = 1;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //重置
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function Reset() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Status = 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemId = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemName = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemNameColor = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Ani = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Sound = null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ItemVisFlag = false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2025-07-16 15:22:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}