2138 lines
		
	
	
		
			108 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			2138 lines
		
	
	
		
			108 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:antondungeoninfo.nut | ||
|  | 路径:Plugins/Luke/antondungeoninfo.nut | ||
|  | 创建日期:2022-09-13	15:21 | ||
|  | 文件用途:卢克攻坚中 信息 | ||
|  | */ | ||
|  | class LukeDungeonInfoControl_C extends BasicsDrawTool { | ||
|  |     X = 0; | ||
|  |     Y = 0; | ||
|  |     State = -1; //卢克攻坚状态 | ||
|  | 
 | ||
|  |     FHMAX = null; //最大复活币 | ||
|  |     FHNOW = null; //当前复活币 | ||
|  | 
 | ||
|  |     PageState = 0; //攻坚信息面板展开状态 | ||
|  |     PageCardState = false; //攻坚信息面板查看卡牌状态 | ||
|  |     MouseTask = 0; //鼠标类型事件 | ||
|  | 
 | ||
|  |     OpenMainButtonObject = null; //展开攻坚信息按钮 | ||
|  |     FightMaxTime = null; //剩余时间最大值 | ||
|  |     FightTimer = null; //剩余时间计时器 | ||
|  | 
 | ||
|  |     PartyMove_SelectDungeon_Button = null; //小队移动选择地下城按钮 | ||
|  |     PartyMove_ReturnTown_Button = null; //PartyMove_ReturnTown_Button | ||
|  | 
 | ||
|  |     ReturnTwonFlag = 0; //返回城镇的flag | ||
|  | 
 | ||
|  |     DrawStartAniMark = false; //开始攻坚动画Mark | ||
|  | 
 | ||
|  |     MapTimer = null; //地图时间容器 | ||
|  |     MapVar = null; //地图暂存器 | ||
|  | 
 | ||
|  |     //1阶段对象 | ||
|  |     DanShengObject = null; //诞生圣所对象 | ||
|  |     DanShengBuffObject = null; //诞生圣所BUFF对象 | ||
|  |     ManYanObject = null; //蔓延圣所对象 | ||
|  |     ManYanBuffObject = null; //蔓延圣所BUFF对象 | ||
|  |     YanMieObject = null; //湮灭圣所对象 | ||
|  |     YanMieBuffObject = null; //湮灭圣所BUFF对象 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     JianPaoObject = null; //舰炮防御战对象 | ||
|  |     JianPaoTimer = null; //舰炮时间容器对象 | ||
|  |     ZhenChan_A_Object = null; //震颤A对象 | ||
|  |     ZhenChan_A_Timer = null; //震颤A时间容器对象 | ||
|  |     ZhenChan_B_Object = null; //震颤B对象 | ||
|  |     ZhenChan_B_Timer = null; //震颤B时间容器对象 | ||
|  |     QingTian_A_Object = null; //擎天A对象 | ||
|  |     QingTian_B_Object = null; //擎天B对象 | ||
|  | 
 | ||
|  | 
 | ||
|  |     //2阶段对象 | ||
|  | 
 | ||
|  |     GuangJitanRuKouObject = null; //光祭坛入口对象 | ||
|  |     AnJitanRuKouObject = null; //光祭坛入口对象 | ||
|  | 
 | ||
|  |     GuangJitanObject = null; //光祭坛对象 | ||
|  |     AnJitanObject = null; //暗祭坛对象 | ||
|  | 
 | ||
|  |     LiLiangObject = null; //力量祭坛对象 | ||
|  |     ZhiHuiObject = null; //智慧祭坛对象 | ||
|  | 
 | ||
|  | 
 | ||
|  |     NengYuanKongZhiObject = null; //能源控制对象 | ||
|  |     NengYuanKongZhiTimerObject = null; //能源控制时间对象 | ||
|  | 
 | ||
|  |     GuangShengDianObject = null; //光圣殿对象 | ||
|  |     AnShengDianObject = null; //暗圣殿对象 | ||
|  | 
 | ||
|  |     JiXieWangZuoGuangObject = null; //光卢克 | ||
|  |     JiXieWangZuoAnObject = null; //暗卢克 | ||
|  | 
 | ||
|  |     NengYuanChuCangObject = null; //能源储藏对象 | ||
|  |     NengYuanChuCangTimerObject = null; //能源储藏时间对象 | ||
|  | 
 | ||
|  | 
 | ||
|  |     NengLiangObject = null; //能源阻截站对象 | ||
|  |     HuoShanObject = null; //黑色火山对象 | ||
|  |     FuHua1_Object = null; //孵化1对象 | ||
|  |     FuHua1_Timer = null; //孵化1时间容器对象 | ||
|  |     FuHua2_Object = null; //孵化2对象 | ||
|  |     FuHua2_Timer = null; //孵化2时间容器对象 | ||
|  |     FuHua3_Object = null; //孵化3对象 | ||
|  |     FuHua3_Timer = null; //孵化3时间容器对象 | ||
|  |     FuHua4_Object = null; //孵化4对象 | ||
|  |     FuHua4_Timer = null; //孵化4时间容器对象 | ||
|  |     XinZang_Object = null; //心脏对象 | ||
|  | 
 | ||
|  |     MapIndexTable = null; //判断孵化进入的操作表 | ||
|  |     MapMoveMark = false; //副本中移动的标志 | ||
|  |     HuoShanMonserTable = null; //火山怪物投放表 | ||
|  | 
 | ||
|  |     Reward_Object = null; //奖励包 | ||
|  |     AllReward_Object = null; //全体奖励包 | ||
|  |     Reward_Timer_Object = null; //奖励包时间对象 | ||
|  |     Reward_Info = null; //通过时间和复活币使用量 | ||
|  | 
 | ||
|  |     //卢克攻坚信息包 | ||
|  |     function ReadLukeDungeonInfoPack(chunk) { | ||
|  |         //Sout("\n\n收到卢克攻坚信息包  :\n  %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("LukeDungeonInfoJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("LukeDungeonInfoJson"); | ||
|  |         RootTab.rawset("LukeDungeonInfoJson", JsonObj); | ||
|  |         RootTab["LukeDungeonInfoJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //告诉副本类开始计时 | ||
|  |         if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) { | ||
|  |             local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"]; | ||
|  |             Cobj.FightMaxTime = JsonObj.Get("JiShiQi->GongJian_End_ShiJian"); | ||
|  |             if (Cobj.FightTimer) { | ||
|  |                 Cobj.FightTimer.Delete(); | ||
|  |             } | ||
|  | 
 | ||
|  |             //时间倒计时开始 | ||
|  |             Cobj.FightTimer = TimeSTL("FightTimer", Cobj.FightMaxTime); | ||
|  |             Cobj.FightTimer.Reset(); | ||
|  |             Cobj.FightTimer.Start(); | ||
|  | 
 | ||
|  |             //同步攻坚状态 | ||
|  |             Cobj.State = JsonObj.Get("Party_State") - 1; | ||
|  | 
 | ||
|  |             Cobj.FHMAX = JsonObj.Get("ZuiDaFuFuoBi"); //最大复活币 | ||
|  |             Cobj.FHNOW = JsonObj.Get("DangQianFuFuoBi"); //当前复活币 | ||
|  | 
 | ||
|  |             //一阶段收包机制 | ||
|  |             if (Cobj.State == 0) { | ||
|  | 
 | ||
|  |                 //诞生圣所收包 | ||
|  |                 { | ||
|  |                     Cobj.DanShengObject = null; | ||
|  |                     Cobj.DanShengBuffObject = null; | ||
|  |                     Cobj.DanShengBuffObject = []; | ||
|  |                     if (JsonObj.Get("DanSheng_State") != false) { | ||
|  |                         for (local e = 0; e < 2; e++) { | ||
|  |                             Cobj.DanShengBuffObject.append(JsonObj.Get("DanSheng_Buff->" + e)); | ||
|  |                         } | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 3 - JsonObj.Get("DanSheng_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("DanSheng_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.DanShengObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 0, | ||
|  |                                 X = 100, | ||
|  |                                 Y = 250, | ||
|  |                                 BloodType = 3, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 1, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.DanShengObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 0, | ||
|  |                                 X = 100, | ||
|  |                                 Y = 250, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //蔓延圣所收包 | ||
|  |                 { | ||
|  |                     Cobj.ManYanObject = null; | ||
|  |                     Cobj.ManYanBuffObject = null; | ||
|  |                     Cobj.ManYanBuffObject = []; | ||
|  |                     if (JsonObj.Get("ManYan_State") != false) { | ||
|  |                         for (local e = 0; e < 2; e++) { | ||
|  |                             Cobj.ManYanBuffObject.append(JsonObj.Get("ManYan_Buff->" + e)); | ||
|  |                         } | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 3 - JsonObj.Get("ManYan_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("ManYan_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.ManYanObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 2, | ||
|  |                                 X = 490, | ||
|  |                                 Y = 120, | ||
|  |                                 BloodType = 3, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 3, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.ManYanObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 2, | ||
|  |                                 X = 490, | ||
|  |                                 Y = 120, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //湮灭圣所收包 | ||
|  |                 { | ||
|  |                     Cobj.YanMieObject = null; | ||
|  |                     Cobj.YanMieBuffObject = null; | ||
|  |                     Cobj.YanMieBuffObject = []; | ||
|  |                     if (JsonObj.Get("YanMie_State") != false) { | ||
|  |                         for (local e = 0; e < 2; e++) { | ||
|  |                             Cobj.YanMieBuffObject.append(JsonObj.Get("YanMie_Buff->" + e)); | ||
|  |                         } | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 3 - JsonObj.Get("YanMie_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("YanMie_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.YanMieObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 1, | ||
|  |                                 X = 490, | ||
|  |                                 Y = 380, | ||
|  |                                 BloodType = 3, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 2, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.YanMieObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 1, | ||
|  |                                 X = 490, | ||
|  |                                 Y = 380, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  |                 /* | ||
|  |                 //诞生圣所收包 | ||
|  |                 { | ||
|  |                     Cobj.DanShengObject = null; | ||
|  |                     if (JsonObj.Get("DanSheng_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 4 - JsonObj.Get("DanSheng_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("DanSheng_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.DanShengObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 NameImg = 0, | ||
|  |                                 X = 78, | ||
|  |                                 Y = 330, | ||
|  |                                 BloodType = 4, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 0, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.DanShengObject = { | ||
|  |                                 Name = "dansheng", | ||
|  |                                 X = 78, | ||
|  |                                 Y = 330, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //舰炮防御战收包 | ||
|  |                 { | ||
|  |                     Cobj.JianPaoObject = null; | ||
|  |                     if (JsonObj.Get("JianPao_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("JianPao_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("JianPao_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             //如果舰炮时间容器存在则先删除他 | ||
|  |                             if (Cobj.JianPaoTimer) Cobj.JianPaoTimer.Delete(); | ||
|  |                             Cobj.JianPaoTimer = null; | ||
|  |                             Cobj.JianPaoTimer = TimeSTL("JianPaoTimer", JsonObj.Get("JiShiQi->JianPao_BaoZhaShiJian")); | ||
|  |                             Cobj.JianPaoTimer.Start(); | ||
|  |                             Cobj.JianPaoObject = { | ||
|  |                                 Name = "jianpao", | ||
|  |                                 NameImg = 1, | ||
|  |                                 X = 334, | ||
|  |                                 Y = 200, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 3, | ||
|  |                                 Reload = 1, | ||
|  |                                 Timer = Cobj.JianPaoTimer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->JianPaoBaoZha_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->JianPao_BaoZhaShiJian"), | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             //如果舰炮时间容器存在则先删除他 | ||
|  |                             if (Cobj.JianPaoTimer) Cobj.JianPaoTimer.Delete(); | ||
|  |                             Cobj.JianPaoTimer = null; | ||
|  |                             Cobj.JianPaoTimer = TimeSTL("JianPaoTimer", JsonObj.Get("JiShiQi->JianPao_FuHuoShiJian")); | ||
|  |                             Cobj.JianPaoTimer.Start(); | ||
|  |                             Cobj.JianPaoObject = { | ||
|  |                                 Name = "jianpao", | ||
|  |                                 X = 334, | ||
|  |                                 Y = 200, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Reload = 1, | ||
|  |                                 Timer = Cobj.JianPaoTimer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->JianPaoFuHuo_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->JianPao_FuHuoShiJian"), | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //震颤A收包 | ||
|  |                 { | ||
|  |                     Cobj.ZhenChan_A_Object = null; | ||
|  |                     if (JsonObj.Get("ZhenChan_A_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("ZhenChan_A_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("ZhenChan_A_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             //如果震颤A时间容器存在则先删除他 | ||
|  |                             if (Cobj.ZhenChan_A_Timer) Cobj.ZhenChan_A_Timer.Delete(); | ||
|  |                             Cobj.ZhenChan_A_Timer = null; | ||
|  |                             Cobj.ZhenChan_A_Timer = TimeSTL("ZhenChan_A_Timer", JsonObj.Get("JiShiQi->ZhenChan_A_BaoZhaShiJian")); | ||
|  |                             Cobj.ZhenChan_A_Timer.Start(); | ||
|  |                             Cobj.ZhenChan_A_Object = { | ||
|  |                                 Name = "zhenchan_A", | ||
|  |                                 NameImg = 4, | ||
|  |                                 X = 234, | ||
|  |                                 Y = 330, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Reload = 1, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 1, | ||
|  |                                 Timer = Cobj.ZhenChan_A_Timer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->ZhenChanBaoZha_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_A_BaoZhaShiJian"), | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             //如果震颤A时间容器存在则先删除他 | ||
|  |                             if (Cobj.ZhenChan_A_Timer) Cobj.ZhenChan_A_Timer.Delete(); | ||
|  |                             Cobj.ZhenChan_A_Timer = null; | ||
|  |                             Cobj.ZhenChan_A_Timer = TimeSTL("ZhenChan_A_Timer", JsonObj.Get("JiShiQi->ZhenChan_A_FuHuoShiJian")); | ||
|  |                             Cobj.ZhenChan_A_Timer.Start(); | ||
|  |                             Cobj.ZhenChan_A_Object = { | ||
|  |                                 Name = "zhenchan_a", | ||
|  |                                 X = 234, | ||
|  |                                 Y = 330, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Reload = 1, | ||
|  |                                 Timer = Cobj.ZhenChan_A_Timer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->ZhenChanFuHuo_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_A_FuHuoShiJian"), | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //震颤B收包 | ||
|  |                 { | ||
|  |                     Cobj.ZhenChan_B_Object = null; | ||
|  |                     if (JsonObj.Get("ZhenChan_B_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("ZhenChan_B_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("ZhenChan_B_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             //如果震颤B时间容器存在则先删除他 | ||
|  |                             if (Cobj.ZhenChan_B_Timer) Cobj.ZhenChan_B_Timer.Delete(); | ||
|  |                             Cobj.ZhenChan_B_Timer = null; | ||
|  |                             Cobj.ZhenChan_B_Timer = TimeSTL("ZhenChan_B_Timer", JsonObj.Get("JiShiQi->ZhenChan_B_BaoZhaShiJian")); | ||
|  |                             Cobj.ZhenChan_B_Timer.Start(); | ||
|  |                             Cobj.ZhenChan_B_Object = { | ||
|  |                                 Name = "zhenchan_B", | ||
|  |                                 NameImg = 5, | ||
|  |                                 X = 450, | ||
|  |                                 Y = 330, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Reload = 1, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 11, | ||
|  |                                 Timer = Cobj.ZhenChan_B_Timer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->ZhenChanBaoZha_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_B_BaoZhaShiJian"), | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             //如果震颤B时间容器存在则先删除他 | ||
|  |                             if (Cobj.ZhenChan_B_Timer) Cobj.ZhenChan_B_Timer.Delete(); | ||
|  |                             Cobj.ZhenChan_B_Timer = null; | ||
|  |                             Cobj.ZhenChan_B_Timer = TimeSTL("ZhenChan_B_Timer", JsonObj.Get("JiShiQi->ZhenChan_B_FuHuoShiJian")); | ||
|  |                             Cobj.ZhenChan_B_Timer.Start(); | ||
|  |                             Cobj.ZhenChan_B_Object = { | ||
|  |                                 Name = "zhenchan_B", | ||
|  |                                 X = 450, | ||
|  |                                 Y = 330, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Reload = 1, | ||
|  |                                 Timer = Cobj.ZhenChan_B_Timer, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->ZhenChanFuHuo_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_B_FuHuoShiJian"), | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //擎天A收包 | ||
|  |                 { | ||
|  |                     Cobj.QingTian_A_Object = null; | ||
|  |                     if (JsonObj.Get("QingTian_A_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 2 - JsonObj.Get("QingTian_A_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("QingTian_A_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.QingTian_A_Object = { | ||
|  |                                 Name = "qingtian_A", | ||
|  |                                 NameImg = 2, | ||
|  |                                 X = 224, | ||
|  |                                 Y = 430, | ||
|  |                                 BloodType = 2, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 2, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.QingTian_A_Object = { | ||
|  |                                 Name = "qingtian_a", | ||
|  |                                 X = 224, | ||
|  |                                 Y = 430, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //擎天B收包 | ||
|  |                 { | ||
|  |                     Cobj.QingTian_B_Object = null; | ||
|  |                     if (JsonObj.Get("QingTian_B_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 2 - JsonObj.Get("QingTian_B_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("QingTian_B_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.QingTian_B_Object = { | ||
|  |                                 Name = "qingtian_B", | ||
|  |                                 NameImg = 3, | ||
|  |                                 X = 470, | ||
|  |                                 Y = 430, | ||
|  |                                 BloodType = 2, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 21, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.QingTian_B_Object = { | ||
|  |                                 Name = "qingtian_b", | ||
|  |                                 X = 470, | ||
|  |                                 Y = 430, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  |                 */ | ||
|  |             } | ||
|  | 
 | ||
|  |             //二阶段收包机制 | ||
|  |             if (Cobj.State == 3) { | ||
|  |                 { | ||
|  |                     Cobj.DanShengObject = null; //诞生圣所对象 | ||
|  |                     Cobj.DanShengBuffObject = null; //诞生圣所BUFF对象 | ||
|  |                     Cobj.ManYanObject = null; //蔓延圣所对象 | ||
|  |                     Cobj.ManYanBuffObject = null; //蔓延圣所BUFF对象 | ||
|  |                     Cobj.YanMieObject = null; //湮灭圣所对象 | ||
|  |                     Cobj.YanMieBuffObject = null; //湮灭圣所BUFF对象 | ||
|  | 
 | ||
|  |                     Cobj.GuangJitanRuKouObject = null; //光祭坛入口对象 | ||
|  |                     Cobj.AnJitanRuKouObject = null; //光祭坛入口对象 | ||
|  | 
 | ||
|  |                     Cobj.GuangJitanObject = null; //光祭坛对象 | ||
|  |                     Cobj.AnJitanObject = null; //暗祭坛对象 | ||
|  | 
 | ||
|  |                     Cobj.LiLiangObject = null; //力量祭坛对象 | ||
|  |                     Cobj.ZhiHuiObject = null; //智慧祭坛对象 | ||
|  | 
 | ||
|  | 
 | ||
|  |                     Cobj.NengYuanKongZhiObject = null; //能源控制对象 | ||
|  | 
 | ||
|  |                     Cobj.GuangShengDianObject = null; //光圣殿对象 | ||
|  |                     Cobj.AnShengDianObject = null; //暗圣殿对象 | ||
|  | 
 | ||
|  |                     Cobj.JiXieWangZuoGuangObject = null; //光卢克 | ||
|  |                     Cobj.JiXieWangZuoAnObject = null; //暗卢克 | ||
|  | 
 | ||
|  |                     Cobj.NengYuanChuCangObject = null; //能源储藏对象 | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //光祭坛入口收包 | ||
|  |                 { | ||
|  |                     Cobj.GuangJitanRuKouObject = null; | ||
|  |                     if (JsonObj.Get("GuangJitanRuKou_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("GuangJitanRuKou_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("GuangJitanRuKou_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.GuangJitanRuKouObject = { | ||
|  |                                 Name = "GuangJitanRuKou", | ||
|  |                                 NameImg = 9, | ||
|  |                                 X = 170, | ||
|  |                                 Y = 160, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 4, | ||
|  |                                 Xian = 101, | ||
|  |                                 XianX = 230, | ||
|  |                                 XianY = 180, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.GuangJitanRuKouObject = { | ||
|  |                                 Name = "GuangJitanRuKou", | ||
|  |                                 NameImg = 9, | ||
|  |                                 X = 170, | ||
|  |                                 Y = 160, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //暗祭坛入口收包 | ||
|  |                 { | ||
|  |                     Cobj.AnJitanRuKouObject = null; | ||
|  |                     if (JsonObj.Get("AnJitanRuKou_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("AnJitanRuKou_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("AnJitanRuKou_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.AnJitanRuKouObject = { | ||
|  |                                 Name = "AnJitanRuKou", | ||
|  |                                 NameImg = 10, | ||
|  |                                 X = 170, | ||
|  |                                 Y = 340, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 9, | ||
|  |                                 Xian = 102, | ||
|  |                                 XianX = 230, | ||
|  |                                 XianY = 355, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.AnJitanRuKouObject = { | ||
|  |                                 Name = "AnJitanRuKou", | ||
|  |                                 NameImg = 10, | ||
|  |                                 X = 170, | ||
|  |                                 Y = 340, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //光祭坛收包 | ||
|  |                 { | ||
|  |                     Cobj.GuangJitanObject = null; | ||
|  |                     if (JsonObj.Get("GuangJitan_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("GuangJitan_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("GuangJitan_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.GuangJitanObject = { | ||
|  |                                 Name = "GuangJitan", | ||
|  |                                 NameImg = 3, | ||
|  |                                 X = 310, | ||
|  |                                 Y = 190, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 5, | ||
|  |                                 Xian = 103, | ||
|  |                                 XianX = 370, | ||
|  |                                 XianY = 210, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.GuangJitanObject = { | ||
|  |                                 Name = "GuangJitan", | ||
|  |                                 NameImg = 3, | ||
|  |                                 X = 310, | ||
|  |                                 Y = 190, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Xian = 103, | ||
|  |                                 XianX = 370, | ||
|  |                                 XianY = 210, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //暗祭坛收包 | ||
|  |                 { | ||
|  |                     Cobj.AnJitanObject = null; | ||
|  |                     if (JsonObj.Get("AnJitan_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("AnJitan_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("AnJitan_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.AnJitanObject = { | ||
|  |                                 Name = "AnJitan", | ||
|  |                                 NameImg = 4, | ||
|  |                                 X = 310, | ||
|  |                                 Y = 310, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 10, | ||
|  |                                 Xian = 104, | ||
|  |                                 XianX = 370, | ||
|  |                                 XianY = 340, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.AnJitanObject = { | ||
|  |                                 Name = "AnJitan", | ||
|  |                                 NameImg = 4, | ||
|  |                                 X = 310, | ||
|  |                                 Y = 310, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Xian = 104, | ||
|  |                                 XianX = 370, | ||
|  |                                 XianY = 340, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //力量祭坛收包 | ||
|  |                 { | ||
|  |                     Cobj.LiLiangObject = null; | ||
|  |                     if (JsonObj.Get("LiLiang_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("LiLiang_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("LiLiang_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.LiLiangObject = { | ||
|  |                                 Name = "LiLiang", | ||
|  |                                 NameImg = 5, | ||
|  |                                 X = 460, | ||
|  |                                 Y = 190, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 6, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.LiLiangObject = { | ||
|  |                                 Name = "LiLiang", | ||
|  |                                 NameImg = 5, | ||
|  |                                 X = 460, | ||
|  |                                 Y = 190, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //智慧祭坛收包 | ||
|  |                 { | ||
|  |                     Cobj.ZhiHuiObject = null; | ||
|  |                     if (JsonObj.Get("ZhiHui_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("ZhiHui_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("ZhiHui_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.ZhiHuiObject = { | ||
|  |                                 Name = "ZhiHui", | ||
|  |                                 NameImg = 6, | ||
|  |                                 X = 460, | ||
|  |                                 Y = 310, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 11, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.ZhiHuiObject = { | ||
|  |                                 Name = "ZhiHui", | ||
|  |                                 NameImg = 6, | ||
|  |                                 X = 460, | ||
|  |                                 Y = 310, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //能源控制室收包 | ||
|  |                 { | ||
|  |                     Cobj.NengYuanKongZhiObject = null; | ||
|  |                     if (JsonObj.Get("NengYuanKongZhi_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("NengYuanKongZhi_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("NengYuanKongZhi_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.NengYuanKongZhiObject = { | ||
|  |                                 Name = "NengYuanKongZhi", | ||
|  |                                 NameImg = 18, | ||
|  |                                 X = 385, | ||
|  |                                 Y = 250, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 14, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             if (Cobj.NengYuanKongZhiTimerObject) Cobj.NengYuanKongZhiTimerObject.Delete(); | ||
|  |                             Cobj.NengYuanKongZhiTimerObject = null; | ||
|  |                             Cobj.NengYuanKongZhiTimerObject = TimeSTL("NengYuanKongZhiTimerObject", JsonObj.Get("JiShiQi->NengYuanKongZhi_FuHuoShiJian")); | ||
|  |                             Cobj.NengYuanKongZhiTimerObject.Start(); | ||
|  |                             Cobj.NengYuanKongZhiObject = { | ||
|  |                                 Name = "NengYuanKongZhi", | ||
|  |                                 NameImg = 19, | ||
|  |                                 X = 385, | ||
|  |                                 Y = 250, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Timer = Cobj.NengYuanKongZhiTimerObject, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->NengYuanKongZhi_Zong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->NengYuanKongZhi_FuHuoShiJian"), | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //光圣殿收包 | ||
|  |                 { | ||
|  |                     Cobj.GuangShengDianObject = null; | ||
|  |                     if (JsonObj.Get("GuangShengDian_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("GuangShengDian_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("GuangShengDian_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.GuangShengDianObject = { | ||
|  |                                 Name = "GuangShengDian", | ||
|  |                                 NameImg = 12, | ||
|  |                                 X = 510, | ||
|  |                                 Y = 100, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 7, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.GuangShengDianObject = { | ||
|  |                                 Name = "GuangShengDian", | ||
|  |                                 NameImg = 12, | ||
|  |                                 X = 510, | ||
|  |                                 Y = 100, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //暗圣殿收包 | ||
|  |                 { | ||
|  |                     Cobj.AnShengDianObject = null; | ||
|  |                     if (JsonObj.Get("AnShengDian_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("AnShengDian_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("AnShengDian_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.AnShengDianObject = { | ||
|  |                                 Name = "AnShengDian", | ||
|  |                                 NameImg = 14, | ||
|  |                                 X = 510, | ||
|  |                                 Y = 395, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 12, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.AnShengDianObject = { | ||
|  |                                 Name = "AnShengDian", | ||
|  |                                 NameImg = 14, | ||
|  |                                 X = 510, | ||
|  |                                 Y = 395, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //光卢克收包 | ||
|  |                 { | ||
|  |                     Cobj.JiXieWangZuoGuangObject = null; | ||
|  |                     if (JsonObj.Get("JiXieWangZuoGuang_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("JiXieWangZuoGuang_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("JiXieWangZuoGuang_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.JiXieWangZuoGuangObject = { | ||
|  |                                 Name = "JiXieWangZuoGuang", | ||
|  |                                 NameImg = 16, | ||
|  |                                 NameImg2 = 13, | ||
|  |                                 X = 530, | ||
|  |                                 Y = 210, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 8, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.JiXieWangZuoGuangObject = { | ||
|  |                                 Name = "JiXieWangZuoGuang", | ||
|  |                                 NameImg = 16, | ||
|  |                                 NameImg2 = 13, | ||
|  |                                 X = 530, | ||
|  |                                 Y = 210, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 //暗卢克收包 | ||
|  |                 { | ||
|  |                     Cobj.JiXieWangZuoAnObject = null; | ||
|  |                     if (JsonObj.Get("JiXieWangZuoAn_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("JiXieWangZuoAn_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("JiXieWangZuoAn_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             Cobj.JiXieWangZuoAnObject = { | ||
|  |                                 Name = "JiXieWangZuoAn", | ||
|  |                                 NameImg = 16, | ||
|  |                                 NameImg2 = 15, | ||
|  |                                 X = 530, | ||
|  |                                 Y = 280, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 13, | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             Cobj.JiXieWangZuoAnObject = { | ||
|  |                                 Name = "JiXieWangZuoAn", | ||
|  |                                 NameImg = 16, | ||
|  |                                 NameImg2 = 15, | ||
|  |                                 X = 530, | ||
|  |                                 Y = 280, | ||
|  |                                 ClearNumber = 0, | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //能源储藏收包 | ||
|  |                 { | ||
|  |                     Cobj.NengYuanChuCangObject = null; | ||
|  |                     if (JsonObj.Get("NengYuanChuCang_State") != false) { | ||
|  |                         //得到副本剩余生命 | ||
|  |                         local gClearNumber = 1 - JsonObj.Get("NengYuanChuCang_State"); | ||
|  |                         //如果副本还没有死亡 | ||
|  |                         if (gClearNumber != 0) { | ||
|  |                             local gParty = []; | ||
|  |                             local Size = JsonObj.Get("NengYuanChuCang_Party->size"); | ||
|  |                             for (local i = 0; i < Size; i++) { | ||
|  |                                 local PartyInfo = []; | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PartyID")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PlayerJob")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PlayerJobEx")); | ||
|  |                                 PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->size")); | ||
|  |                                 gParty.append(PartyInfo); | ||
|  |                             } | ||
|  |                             if (Cobj.NengYuanChuCangTimerObject) Cobj.NengYuanChuCangTimerObject.Delete(); | ||
|  |                             Cobj.NengYuanChuCangTimerObject = null; | ||
|  |                             Cobj.NengYuanChuCangTimerObject = TimeSTL("NengYuanChuCangTimerObject", JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaShiJian")); | ||
|  |                             Cobj.NengYuanChuCangTimerObject.Start(); | ||
|  |                             Cobj.NengYuanChuCangObject = { | ||
|  |                                 Name = "NengYuanChuCang", | ||
|  |                                 NameImg = 17, | ||
|  |                                 X = 630, | ||
|  |                                 Y = 260, | ||
|  |                                 BloodType = 1, | ||
|  |                                 ClearNumber = gClearNumber, | ||
|  |                                 Party = gParty, | ||
|  |                                 DungeonUID = 15, | ||
|  |                                 Timer = Cobj.NengYuanChuCangTimerObject, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaZong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaShiJian"), | ||
|  |                             }; | ||
|  |                         } else { | ||
|  |                             if (Cobj.NengYuanChuCangTimerObject) Cobj.NengYuanChuCangTimerObject.Delete(); | ||
|  |                             Cobj.NengYuanChuCangTimerObject = null; | ||
|  |                             Cobj.NengYuanChuCangTimerObject = TimeSTL("NengYuanChuCangTimerObject", JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoShiJian")); | ||
|  |                             Cobj.NengYuanChuCangTimerObject.Start(); | ||
|  |                             Cobj.NengYuanChuCangObject = { | ||
|  |                                 Name = "NengYuanChuCang", | ||
|  |                                 NameImg = 19, | ||
|  |                                 X = 630, | ||
|  |                                 Y = 260, | ||
|  |                                 ClearNumber = 0, | ||
|  |                                 Timer = Cobj.NengYuanChuCangTimerObject, | ||
|  |                                 TimeMax = JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoZong"), | ||
|  |                                 TimeOffset = JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoShiJian"), | ||
|  |                             }; | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //收取奖励包 | ||
|  |     function ReadReward(chunk) { | ||
|  |         //Sout("\n\n收到奖励包  :\n  %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("ReadRewardJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("ReadRewardJsonBuffer"); | ||
|  |         RootTab.rawset("ReadRewardJson", JsonObj); | ||
|  |         RootTab["ReadRewardJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  |         if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) { | ||
|  |             local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"]; | ||
|  |             Cobj.Reward_Object = null; | ||
|  |             local ArrBuffer = []; | ||
|  |             for (local i = 0; i < 4; i++) { | ||
|  |                 if (JsonObj.Get("Items->" + i + "->IsGolden") == false) continue; | ||
|  |                 local TabBuffer = { | ||
|  |                     SetFlagAniIndex = JsonObj.Get("Items->" + i + "->IsGolden"), | ||
|  |                     PlayerJob = JsonObj.Get("Items->" + i + "->PlayerJob"), | ||
|  |                     PlayerJobEx = JsonObj.Get("Items->" + i + "->PlayerJobEx"), | ||
|  |                     Name = JsonObj.Get("Items->" + i + "->Name"), | ||
|  |                     ItemGrade = JsonObj.Get("Items->" + i + "->Grade"), | ||
|  |                     ItemId = JsonObj.Get("Items->" + i + "->Item"), | ||
|  |                     ItemCount = JsonObj.Get("Items->" + i + "->Num"), | ||
|  |                     ItemName = JsonObj.Get("Items->" + i + "->ItemName"), | ||
|  |                     ItemColor = JsonObj.Get("Items->" + i + "->ItemColour"), | ||
|  |                 } | ||
|  |                 ArrBuffer.append(TabBuffer); | ||
|  |             } | ||
|  |             Cobj.Reward_Object = ArrBuffer; | ||
|  |             Cobj.State = JsonObj.Get("State"); | ||
|  | 
 | ||
|  |             local AllArrBuffer = []; | ||
|  |             for (local i = 0; i < 20; i++) { | ||
|  |                 if (JsonObj.Get("Items2->" + i + "->IsGolden") == false) continue; | ||
|  |                 local TabBuffer = { | ||
|  |                     SetFlagAniIndex = JsonObj.Get("Items2->" + i + "->IsGolden"), | ||
|  |                     PlayerJob = JsonObj.Get("Items2->" + i + "->PlayerJob"), | ||
|  |                     PlayerJobEx = JsonObj.Get("Items2->" + i + "->PlayerJobEx"), | ||
|  |                     Name = JsonObj.Get("Items2->" + i + "->Name"), | ||
|  |                     ItemGrade = JsonObj.Get("Items2->" + i + "->Grade"), | ||
|  |                     ItemId = JsonObj.Get("Items2->" + i + "->Item"), | ||
|  |                     ItemCount = JsonObj.Get("Items2->" + i + "->Num"), | ||
|  |                     ItemName = JsonObj.Get("Items2->" + i + "->ItemName"), | ||
|  |                     ItemColor = JsonObj.Get("Items2->" + i + "->ItemColour"), | ||
|  |                 } | ||
|  |                 AllArrBuffer.append(TabBuffer); | ||
|  |             } | ||
|  |             Cobj.AllReward_Object = AllArrBuffer; | ||
|  | 
 | ||
|  |             Cobj.Reward_Timer_Object = TimeSTL("Luke_Reward_Timer_Object", 10000); | ||
|  |             Cobj.Reward_Timer_Object.Delete(); | ||
|  |             Cobj.Reward_Timer_Object = null; | ||
|  |             Cobj.Reward_Timer_Object = TimeSTL("Luke_Reward_Timer_Object", 10000); | ||
|  |             Cobj.Reward_Timer_Object.Start(); | ||
|  |             Cobj.Reward_Info = [ | ||
|  |                 JsonObj.Get("SuccessTime"), | ||
|  |                 JsonObj.Get("DeathNum"), | ||
|  |             ]; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //攻坚开始传送玩家进区域  1阶段开始 | ||
|  |     function StartMovePlayer(chunk) { | ||
|  |         //Sout("\n\n收到攻坚开始传送玩家进区域包  :\n  %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("MovePlayerJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("MovePlayerJsonBuffer"); | ||
|  |         RootTab.rawset("MovePlayerJson", JsonObj); | ||
|  |         RootTab["MovePlayerJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  | 
 | ||
|  |         local TownIndex = RootTab["MovePlayerJson"].Get("TownIndex"); | ||
|  |         local ReIndex = RootTab["MovePlayerJson"].Get("ReIndex"); | ||
|  | 
 | ||
|  |         L_sq_MoveTown(TownIndex, ReIndex, 200, 200); | ||
|  | 
 | ||
|  |         //告诉副本类开始攻坚一阶段了 | ||
|  |         if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) { | ||
|  |             RootTab["LUKEDUNGEONINFOCONTROL"].State = 0; | ||
|  |             RootTab["LUKEDUNGEONINFOCONTROL"].DrawStartAniMark = true; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //攻坚二阶段开始事件 | ||
|  |     function StartTwoR(chunk) { | ||
|  |         //Sout("\n\n收到攻坚2阶段开始包  :\n  %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) { | ||
|  |             RootTab["LUKEDUNGEONINFOCONTROL"].DrawStartAniMark = true; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //退出攻坚队传送玩家进区域 | ||
|  |     function ExitMovePlayer(chunk) { | ||
|  |         //Sout("\n\n收到退出攻坚队传送玩家进区域包  :\n %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("MovePlayerJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("MovePlayerJsonBuffer"); | ||
|  |         RootTab.rawset("MovePlayerJson", JsonObj); | ||
|  |         RootTab["MovePlayerJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  | 
 | ||
|  |         local TownIndex = RootTab["MovePlayerJson"].Get("TownIndex"); | ||
|  |         local ReIndex = RootTab["MovePlayerJson"].Get("ReIndex"); | ||
|  | 
 | ||
|  |         L_sq_MoveTown(TownIndex, ReIndex, 1036, 335); | ||
|  |     } | ||
|  | 
 | ||
|  |     //队长进入副本事件 | ||
|  |     function PartyMSelectDungeon(chunk) { | ||
|  |         //Sout("\n\n收到队长进入副本事件包  :\n %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("PartyMSelectDungeonJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("PartyMSelectDungeonJsonBuffer"); | ||
|  |         RootTab.rawset("PartyMSelectDungeonJson", JsonObj); | ||
|  |         RootTab["PartyMSelectDungeonJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  |         local DungeonTID = RootTab["PartyMSelectDungeonJson"].Get("DungeonTID"); | ||
|  |         L_sq_GoDungeon(DungeonTID); | ||
|  |     } | ||
|  | 
 | ||
|  |     //队长返回城镇事件 | ||
|  |     function PartyMReturnTown(chunk) { | ||
|  |         //Sout("\n\n收到队长返回城镇事件包  :\n %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("PartyMReturnTownJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("PartyMReturnTownJsonBuffer"); | ||
|  |         RootTab.rawset("PartyMReturnTownJson", JsonObj); | ||
|  |         RootTab["PartyMReturnTownJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  |         if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) { | ||
|  |             local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"]; | ||
|  |             if (sq_GetCurrentModuleType() == 3) { | ||
|  |                 local LukeBackTown = Json_STL("LukeBackTown"); | ||
|  |                 LukeBackTown.Put("op", 25600159); | ||
|  |                 local str = LukeBackTown.GetString(); | ||
|  |                 L_sq_SendPackType(130); | ||
|  |                 L_sq_SendPackWChar(str); | ||
|  |                 L_sq_SendPack(); | ||
|  |                 LukeBackTown.Delete(); | ||
|  |             } else { | ||
|  |                 Cobj.ReturnTwonFlag = 1; | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //火山怪物投放包 | ||
|  |     function HuoShanMonsterEvent(chunk) { | ||
|  |         //Sout("\n\n收到火山投放怪物事件包  :\n %L", chunk) | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("PartyMReturnTownJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("PartyMReturnTownJsonBuffer"); | ||
|  |         RootTab.rawset("PartyMReturnTownJson", JsonObj); | ||
|  |         RootTab["PartyMReturnTownJson"].Parse(chunk, 0, false); | ||
|  |         local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"]; | ||
|  |         if (sq_GetCurrentModuleType() == 3) { | ||
|  |             local obj = sq_GetMyMasterCharacter(); | ||
|  |             obj = sq_ObjectToSQRCharacter(obj); | ||
|  |             //print(Cobj.HuoShanMonserTable[JsonObj.Get("FuHuaId")]); | ||
|  |             obj.sq_SendCreatePassiveObjectPacket(Cobj.HuoShanMonserTable[JsonObj.Get("FuHuaId")], 0, 120, 1, 0); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //查询是否回城包 | ||
|  |     function CheckPlayerGoTwonEvent(chunk) { | ||
|  |         if (sq_GetCurrentModuleType() == 1) { | ||
|  |             local LukePlayerGoTwonPack = Json_STL("LukePlayerGoTwonPack"); | ||
|  |             LukePlayerGoTwonPack.Put("op", 25600185); | ||
|  |             local str = LukePlayerGoTwonPack.GetString(); | ||
|  |             L_sq_SendPackType(130); | ||
|  |             L_sq_SendPackWChar(str); | ||
|  |             L_sq_SendPack(); | ||
|  |             LukePlayerGoTwonPack.Delete(); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置死亡包 | ||
|  |     function SetPlayerDeadPack(chunk) { | ||
|  |         local obj = sq_GetMyMasterCharacter(); | ||
|  |         obj = sq_ObjectToSQRCharacter(obj); | ||
|  |         obj.setHp(0, null, true); | ||
|  |     } | ||
|  | 
 | ||
|  |     function LukeRaid_getMonsterObject(obj, idNeed) { | ||
|  | 
 | ||
|  |         if (!obj) | ||
|  |             return null; | ||
|  | 
 | ||
|  |         local objectManager = obj.getObjectManager(); | ||
|  | 
 | ||
|  |         if (objectManager == null) | ||
|  |             return null; | ||
|  | 
 | ||
|  |         for (local i = 0; i < objectManager.getCollisionObjectNumber(); i += 1) { | ||
|  |             local object = objectManager.getCollisionObject(i); | ||
|  | 
 | ||
|  |             if (object && object.isObjectType(OBJECTTYPE_MONSTER)) { | ||
|  |                 local object2 = sq_GetCNRDObjectToCollisionObject(object); | ||
|  |                 local id = object2.getCollisionObjectIndex(object2); | ||
|  |                 if (id == idNeed) { | ||
|  |                     return object2; | ||
|  |                 } | ||
|  | 
 | ||
|  | 
 | ||
|  |             } | ||
|  | 
 | ||
|  |         } | ||
|  | 
 | ||
|  |         return null; | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function getLukeRaid_QuattuorManusMK2ChangeLayer(obj) { | ||
|  |         local mob = LukeRaid_getMonsterObject(obj, 560650); | ||
|  |         if (mob) | ||
|  |             sq_ChangeDrawLayer(mob, ENUM_DRAWLAYER_MIDDLEBACK); | ||
|  |         // | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor() { | ||
|  |         //读取卢克攻坚信息包 | ||
|  |         Pack_Control.rawset(25600152, ReadLukeDungeonInfoPack); | ||
|  |         //攻坚开始传送玩家事件 | ||
|  |         Pack_Control.rawset(25600144, StartMovePlayer); | ||
|  |         //攻坚二阶段开始事件 | ||
|  |         Pack_Control.rawset(25600146, StartTwoR); | ||
|  |         //退出攻坚队传送玩家事件 | ||
|  |         Pack_Control.rawset(25600138, ExitMovePlayer); | ||
|  |         //队长进入副本事件 | ||
|  |         Pack_Control.rawset(25600154, PartyMSelectDungeon); | ||
|  |         //队长返回城镇事件 | ||
|  |         Pack_Control.rawset(25600156, PartyMReturnTown); | ||
|  |         //收取奖励包 | ||
|  |         Pack_Control.rawset(25600172, ReadReward); | ||
|  |         //收取火山怪物投放包 | ||
|  |         Pack_Control.rawset(25600182, HuoShanMonsterEvent); | ||
|  |         //查询是否回城包 | ||
|  |         Pack_Control.rawset(25600184, CheckPlayerGoTwonEvent); | ||
|  |         //设置玩家死亡包 | ||
|  |         Pack_Control.rawset(25600164, SetPlayerDeadPack); | ||
|  |         //初始化判断孵化进入操作表 | ||
|  |         MapIndexTable = {}; | ||
|  |         MapIndexTable.rawset(33100, 1); | ||
|  |         MapIndexTable.rawset(33103, 2); | ||
|  |         MapIndexTable.rawset(33119, 3); | ||
|  |         MapIndexTable.rawset(33116, 4); | ||
|  |         //火山怪物投放表 | ||
|  |         HuoShanMonserTable = {}; | ||
|  |         HuoShanMonserTable.rawset(1, 202210052); | ||
|  |         HuoShanMonserTable.rawset(2, 202210053); | ||
|  |         HuoShanMonserTable.rawset(3, 202210054); | ||
|  |         HuoShanMonserTable.rawset(4, 202210055); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制攻坚剩余时间 | ||
|  |     function DrawTime(obj) { | ||
|  | 
 | ||
|  |         //如果还没收到配置包的时候直接返回 | ||
|  |         if (!FightMaxTime) return; | ||
|  | 
 | ||
|  |         T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X + 528, Y + 23, 1, "卢克剩余攻坚时间主界面"); | ||
|  |         T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X + 566, Y + 25, 2, "卢克剩余攻坚时间文字"); | ||
|  | 
 | ||
|  |         //计算剩余时间并绘制 | ||
|  |         local Time = (FightMaxTime - FightTimer.Get()); | ||
|  |         local Hours = (Time / 3600000).tostring(); | ||
|  |         if (Hours.len() < 2) Hours = "0" + Hours; | ||
|  |         if (Hours.len() > 2) Hours = Hours.slice(Hours.len() - 2, Hours.len()); | ||
|  |         local minutes = (Time / 60000).tostring(); | ||
|  |         if (minutes.len() < 2) minutes = "0" + minutes; | ||
|  |         if (minutes.len() > 2) minutes = minutes.slice(minutes.len() - 2, minutes.len()); | ||
|  |         local seconds = (Time / 1000 % 60).tostring(); | ||
|  |         if (seconds.len() < 2) seconds = "0" + seconds; | ||
|  |         if (seconds.len() > 2) seconds = seconds.slice(seconds.len() - 2, seconds.len()); | ||
|  | 
 | ||
|  |         for (local i = 0; i < 2; i++) { | ||
|  |             T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 538 + (i * 18), Y + 51, Hours.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间时" + i); | ||
|  |             T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 584 + (i * 18), Y + 51, minutes.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间分" + i); | ||
|  |             T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 628 + (i * 18), Y + 51, seconds.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间分" + i); | ||
|  |         } | ||
|  | 
 | ||
|  |         //Sout("时: %L  分: %L  秒:  %L",Hours,minutes,seconds); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //绘制展开攻坚信息按钮 | ||
|  |     function DrawMainButton(obj) { | ||
|  |         //如果展开按钮不存在 | ||
|  |         if (!OpenMainButtonObject) { | ||
|  |             OpenMainButtonObject = LukeButtonPro(obj, "LukeDungeonOpenMainButtonObject", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 103, 22, 0); | ||
|  |             OpenMainButtonObject.SetRectEnble(true, "LukeDungeonOpenMainButtonObjectr", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 1); | ||
|  |             OpenMainButtonObject.SetCustomClickEnble(true, "LukeDungeonOpenMainButtonObjectc", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 2); | ||
|  |         } | ||
|  |         //未点击  窗口也未打开 | ||
|  |         if (!sq_GetPopupWindowMainCotrol(267)) { | ||
|  |             OpenMainButtonObject.Show(); | ||
|  |             if (OpenMainButtonObject.isLBActive()) { | ||
|  |                 PageState = 1; | ||
|  |                 L_NewWindows("Lenheart", 267, 0x65535); | ||
|  | 
 | ||
|  | 
 | ||
|  |                 //local RootTab = getroottable(); | ||
|  |                 //RootTab["LUKETOWNMAINCONTROLLIST"].NowSelectTeamFunc = null; //把功能选择页关掉 | ||
|  |                 //RootTab["LUKETOWNMAINCONTROLLIST"].NowSelectTeam = null; //把功能选择页关掉 | ||
|  |                 //RootTab["LUKETEAMMAINBUTTON"].State = 0; | ||
|  |                 //RootTab["LUKETEAMMAINBUTTON"].WindowSwitch = false; | ||
|  | 
 | ||
|  |             } | ||
|  |         } | ||
|  |         if (PageState == 1 && !sq_GetPopupWindowMainCotrol(267)) { | ||
|  |             PageState = 0; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //绘制副本对象 | ||
|  |     function DrawDungeonObjInfo(obj, DgnObj) { | ||
|  |         //如果副本已经死亡 | ||
|  |         if (DgnObj.ClearNumber == 0) { | ||
|  |             //2阶段副本绘制线 | ||
|  |             if (DgnObj.rawin("Xian")) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", DgnObj.XianX, DgnObj.XianY, DgnObj.Xian, "卢克攻坚战况副本血槽线a" + DgnObj.Name + DgnObj.Xian); | ||
|  |             } | ||
|  |             //绘制副本血槽背景 | ||
|  |             local Bkani = 6; | ||
|  |             if (DgnObj.rawin("Reload")) Bkani = 15; | ||
|  |             if (DgnObj.rawin("Ani")) Bkani = DgnObj.Ani; | ||
|  |             /* | ||
|  |             if (DgnObj.rawin("GanRan")) { | ||
|  |                 Bkani = 18; | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 1, DgnObj.Y + 1, 19, "卢克攻坚战况副本血槽背景感染外框"); | ||
|  |             } | ||
|  |             */ | ||
|  |             T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X, DgnObj.Y, Bkani, "D卢克攻坚战况副本血槽背景" + DgnObj.Name); | ||
|  |             //绘制复活副本血槽名称背景 | ||
|  |             //T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 5, "D卢克攻坚战况副本血槽名称背景" + DgnObj.Name); | ||
|  |             //绘制副本血槽名称 | ||
|  |             T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 72, DgnObj.NameImg, "卢克攻坚战况副本血槽名称a" + DgnObj.Name); | ||
|  |             if (DgnObj.rawin("NameImg2")) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 95, DgnObj.NameImg2, "卢克攻坚战况副本血槽名称c" + DgnObj.NameImg2); | ||
|  |             } | ||
|  |             //绘制复活副本血槽名称 | ||
|  |             //T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 7, "D卢克攻坚战况副本血槽名称" + DgnObj.Name); | ||
|  |             //判断是否需要绘制复活时间 | ||
|  |             if (DgnObj.rawin("Timer")) { | ||
|  |                 local TimeMax = (DgnObj.TimeMax / 1000); | ||
|  |                 local Time = ((DgnObj.Timer.Get() + (DgnObj.TimeMax - DgnObj.TimeOffset)) / 1000); | ||
|  |                 local TimeStr = (TimeMax - Time).tostring(); | ||
|  |                 L_Code_STL(TimeStr, DgnObj.X + 34 - (TimeStr.len() * 2), DgnObj.Y + 28, 0xffffffff, 1); | ||
|  |                 //绘制复活时间进度条 | ||
|  |                 local TimeHun = ((Time.tofloat() / TimeMax.tofloat()) * 100.0).tointeger(); | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newantonloading2.ani", DgnObj.X, DgnObj.Y, TimeHun, "卢克攻坚战况副本复活时间进度条" + TimeHun); | ||
|  |             } | ||
|  |         } | ||
|  |         //如果还没死亡 | ||
|  |         else { | ||
|  |             //2阶段副本绘制线 | ||
|  |             if (DgnObj.rawin("Xian")) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", DgnObj.XianX, DgnObj.XianY, DgnObj.Xian, "卢克攻坚战况副本血槽线a" + DgnObj.Name + DgnObj.Xian); | ||
|  |             } | ||
|  |             //绘制副本血槽背景 | ||
|  |             local Bkani = 4; | ||
|  |             if (DgnObj.rawin("Reload")) Bkani = 15; | ||
|  |             if (DgnObj.rawin("Ani")) Bkani = DgnObj.Ani; | ||
|  |             //绘制感染 | ||
|  |             if (DgnObj.rawin("GanRan")) { | ||
|  |                 Bkani = 18; | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 1, DgnObj.Y + 1, 19, "卢克攻坚战况副本血槽背景感染外框"); | ||
|  |             } | ||
|  |             T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X, DgnObj.Y, Bkani, "卢克攻坚战况副本血槽背景" + DgnObj.Name); | ||
|  |             //绘制副本血槽名称背景 | ||
|  |             //T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 5, "卢克攻坚战况副本血槽名称背景" + DgnObj.Name); | ||
|  |             //绘制副本血槽名称 | ||
|  |             T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 72, DgnObj.NameImg, "卢克攻坚战况副本血槽名称a" + DgnObj.Name); | ||
|  |             if (DgnObj.rawin("NameImg2")) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 95, DgnObj.NameImg2, "卢克攻坚战况副本血槽名称c" + DgnObj.NameImg2); | ||
|  |             } | ||
|  |             //绘制副本血量 | ||
|  |             //火山单独绘制 | ||
|  |             if (DgnObj.BloodType == 99) { | ||
|  |                 local NengLiangstr = DgnObj.NengLiang.tostring(); | ||
|  |                 if (NengLiangstr.len() == 1) NengLiangstr = "00" + NengLiangstr; | ||
|  |                 if (NengLiangstr.len() == 2) NengLiangstr = "0" + NengLiangstr; | ||
|  |                 for (local i = 0; i < 3; i++) { | ||
|  |                     local index = NengLiangstr.slice(0 + i, 1 + i).tointeger(); | ||
|  |                     T_DrawStayAni(obj, "common/anton/new/newnum.ani", DgnObj.X + 23 + (i * 8), DgnObj.Y + 40, index "卢克剩余火山能量" + i + index); | ||
|  |                 } | ||
|  |                 local NengLiang = abs(DgnObj.NengLiang - 100) | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newantonloading3.ani", DgnObj.X, DgnObj.Y, NengLiang, "卢克攻坚战况副本火山血" + NengLiang); | ||
|  |             } | ||
|  |             //别的副本绘制  马勒戈壁写烦起来了 瞎比乱写了 架构去他妈 | ||
|  |             else { | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newopendungeonblood/" + DgnObj.BloodType + "_" + DgnObj.ClearNumber + ".ani", DgnObj.X, DgnObj.Y, 0, "卢克攻坚战况副本血" + DgnObj.BloodType + "_" + DgnObj.ClearNumber); | ||
|  |             } | ||
|  |             //判断是否需要绘制爆炸时间 | ||
|  |             if (DgnObj.rawin("Timer")) { | ||
|  |                 local TimeMax = (DgnObj.TimeMax / 1000); | ||
|  |                 local Time = ((DgnObj.Timer.Get() + (DgnObj.TimeMax - DgnObj.TimeOffset)) / 1000); | ||
|  |                 local TimeStr = (TimeMax - Time).tostring(); | ||
|  |                 L_Code_STL(TimeStr, DgnObj.X + 34 - (TimeStr.len() * 2), DgnObj.Y + 28, 0xffffffff, 1); | ||
|  |                 //绘制爆炸时间进度条 | ||
|  |                 local TimeHun = ((Time.tofloat() / TimeMax.tofloat()) * 100.0).tointeger(); | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newantonloading2.ani", DgnObj.X, DgnObj.Y, TimeHun, "卢克攻坚战况副本爆炸时间进度条c" + TimeHun); | ||
|  |             } | ||
|  | 
 | ||
|  | 
 | ||
|  |             //绘制队伍 | ||
|  |             for (local i = 0; i < DgnObj.Party.len(); i++) { | ||
|  |                 //绘制底框 | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X - 66, DgnObj.Y - 20 + (i * 22), 8 + i, "卢克攻坚战况队伍底框" + i); | ||
|  |                 //绘制队伍编号  注意:因为这个傻逼图TM的不对称 要单独 判断位置 | ||
|  |                 local Offset = 0; | ||
|  |                 if (i == 1 || i == 2) Offset = 1; | ||
|  |                 if (i == 3) Offset = 6; | ||
|  |                 if (i == 4) Offset = 7; | ||
|  |                 T_DrawStayAni(obj, "common/anton/new/newopendungeonpartymark.ani", DgnObj.X - 63, DgnObj.Y - 17 + (i * 22) + Offset, DgnObj.Party[i][0], "卢克攻坚战况队伍编号" + DgnObj.Party[0]); | ||
|  |                 //绘制队伍人数 | ||
|  |                 for (local z = 0; z < DgnObj.Party[i][3] - 1; z++) { | ||
|  |                     T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X - 27 + (z * 7), DgnObj.Y - 14 + (i * 22) + Offset, 13, "卢克攻坚战况队伍人数"); | ||
|  |                 } | ||
|  |                 //绘制队长头像TM的这个傻逼东西又偏了 在+1 | ||
|  |                 if (Offset == 6 || Offset == 7) ++Offset; | ||
|  |                 T_DrawStayAniRate(obj, "common/anton/face/" + DgnObj.Party[i][1] + "/" + (DgnObj.Party[i][2] % 16) + ".ani", DgnObj.X - 44, DgnObj.Y - 16 + (i * 22) + Offset, 0, "缩小卢克头像编号" + DgnObj.Party[i][1] + DgnObj.Party[i][2], 0.50); | ||
|  |             } | ||
|  |         } | ||
|  |         if (MouseTask == 1 && sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, DgnObj.X, DgnObj.Y, 71, 71) && IMouse.isButtonUpEvent()) { | ||
|  |             if (!DgnObj.rawin("DungeonUID")) return; | ||
|  |             obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |             local LukeSelectDungeon = Json_STL("LukeSelectDungeon"); | ||
|  |             LukeSelectDungeon.Put("op", 25600151); | ||
|  |             LukeSelectDungeon.Put("DungeonUID", DgnObj.DungeonUID); | ||
|  |             local str = LukeSelectDungeon.GetString(); | ||
|  |             L_sq_SendPackType(130); | ||
|  |             L_sq_SendPackWChar(str); | ||
|  |             L_sq_SendPack(); | ||
|  |             LukeSelectDungeon.Delete(); | ||
|  |             MouseTask = 2; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制小队移动类 | ||
|  |     function DrawPartyMoveClss(obj) { | ||
|  |         local ThisX = X + 540; | ||
|  |         local ThisY = Y + 508; | ||
|  |         T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", ThisX, ThisY, 14, "卢克攻坚战况主界面小队移动背景"); | ||
|  | 
 | ||
|  |         //如果 小队移动选择地下城按钮 未初始化时 初始化 | ||
|  |         if (PartyMove_SelectDungeon_Button == null) { | ||
|  |             PartyMove_SelectDungeon_Button = LukeButtonPro(obj, "LukePartyMove_SelectDungeon_Button", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 6); | ||
|  |             PartyMove_SelectDungeon_Button.SetRectEnble(true, "LukePartyMove_SelectDungeon_Buttonr", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 7); | ||
|  |             PartyMove_SelectDungeon_Button.SetCustomClickEnble(true, "LukePartyMove_SelectDungeon_Buttonc", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 8); | ||
|  |         } | ||
|  |         PartyMove_SelectDungeon_Button.Show(); | ||
|  |         if (PartyMove_SelectDungeon_Button.isLBActive()) { | ||
|  |             obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |             MouseTask = 1; | ||
|  |         } | ||
|  |         //如果 小队移动返回城镇按钮 未初始化时 初始化 | ||
|  |         if (PartyMove_ReturnTown_Button == null) { | ||
|  |             PartyMove_ReturnTown_Button = LukeButtonPro(obj, "LukePartyMove_ReturnTown_Button", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 9); | ||
|  |             PartyMove_ReturnTown_Button.SetRectEnble(true, "LukePartyPartyMove_ReturnTown_Buttonr", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 10); | ||
|  |             PartyMove_ReturnTown_Button.SetCustomClickEnble(true, "LukePartyPartyMove_ReturnTown_Buttonc", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 11); | ||
|  |         } | ||
|  |         PartyMove_ReturnTown_Button.Show(); | ||
|  |         if (PartyMove_ReturnTown_Button.isLBActive()) { | ||
|  |             obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |             //不在城镇里点击返回城镇按钮才会发包 | ||
|  |             if (sq_GetCurrentModuleType() != 1) { | ||
|  |                 local TryLukeBackTown = Json_STL("TryLukeBackTown"); | ||
|  |                 TryLukeBackTown.Put("op", 25600153); | ||
|  |                 local str = TryLukeBackTown.GetString(); | ||
|  |                 L_sq_SendPackType(130); | ||
|  |                 L_sq_SendPackWChar(str); | ||
|  |                 L_sq_SendPack(); | ||
|  |                 TryLukeBackTown.Delete(); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制开始攻坚动画 | ||
|  |     function DrawStartAni(obj, Type) { | ||
|  |         if (Type == 0) Type = 1; | ||
|  |         else if (Type == 3) Type = 2; | ||
|  |         if (DrawStartAniMark == true) { | ||
|  |             local anieff = BasicsDrawTool.T_DrawDynamicAni(obj, "common/luke/new/starteff.ani", 250, 210, "l开始攻坚标题背景eff"); | ||
|  |             local ani1 = BasicsDrawTool.T_DrawDynamicAni(obj, "common/luke/new/start" + Type + ".ani", 250, 210 + 26, "l开始攻坚标题背景1"); | ||
|  |             if (sq_GetAnimationFrameIndex(ani1) >= 28) { | ||
|  |                 sq_Rewind(anieff); | ||
|  |                 sq_Rewind(ani1); | ||
|  |                 DrawStartAniMark = false; | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制卢克信息卡牌 | ||
|  |     function DrawLukeInfoCard(obj) { | ||
|  |         //绘制卡牌信息背景 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 0, "卢克攻坚战况主界面卡牌信息背景"); | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 1, "卢克攻坚战况主界面卡牌信息背景a"); | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 2, "卢克攻坚战况主界面卡牌信息背景b"); | ||
|  | 
 | ||
|  | 
 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 80, Y + 150, 3, "卢克攻坚战况主界面卡牌信息背景c"); | ||
|  |         for (local i = 0; i < 2; i++) { | ||
|  |             T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 90 + (i * 25), Y + 186, DanShengBuffObject[i], "卢克攻坚战况主界面卡牌信息背景cb" + i); | ||
|  |         } | ||
|  | 
 | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 86, Y + 240, 2, "卢克攻坚战况主界面卡牌信息背景c1", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 110, Y + 240, 3, "卢克攻坚战况主界面卡牌信息背景c2", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 134, Y + 240, 10, "卢克攻坚战况主界面卡牌信息背景c3", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 158, Y + 240, 16, "卢克攻坚战况主界面卡牌信息背景c4", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 182, Y + 240, 21, "卢克攻坚战况主界面卡牌信息背景c5", 0.5); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 370, Y + 80, 4, "卢克攻坚战况主界面卡牌信息背景d"); | ||
|  |         for (local e = 0; e < 2; e++) { | ||
|  |             T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 380 + (e * 25), Y + 116, YanMieBuffObject[e], "卢克攻坚战况主界面卡牌信息背景db" + e); | ||
|  |         } | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 480, Y + 80 + 40, 4, "卢克攻坚战况主界面卡牌信息背景d1", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 504, Y + 80 + 40, 7, "卢克攻坚战况主界面卡牌信息背景d2", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 528, Y + 80 + 40, 8, "卢克攻坚战况主界面卡牌信息背景d3", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 552, Y + 80 + 40, 14, "卢克攻坚战况主界面卡牌信息背景d4", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 576, Y + 80 + 40, 17, "卢克攻坚战况主界面卡牌信息背景d5", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 600, Y + 80 + 40, 21, "卢克攻坚战况主界面卡牌信息背景d6", 0.5); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 370, Y + 340, 5, "卢克攻坚战况主界面卡牌信息背景e"); | ||
|  |         for (local r = 0; r < 2; r++) { | ||
|  |             T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 380 + (r * 25), Y + 120 + 260, ManYanBuffObject[r], "卢克攻坚战况主界面卡牌信息背景db" + r); | ||
|  |         } | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 480, Y + 340 + 40, 0, "卢克攻坚战况主界面卡牌信息背景e1", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 504, Y + 340 + 40, 4, "卢克攻坚战况主界面卡牌信息背景e2", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 528, Y + 340 + 40, 12, "卢克攻坚战况主界面卡牌信息背景e3", 0.5); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 552, Y + 340 + 40, 17, "卢克攻坚战况主界面卡牌信息背景e4", 0.5); | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //绘制攻坚队攻坚信息 | ||
|  |     function DrawLukePartyInfo(obj) { | ||
|  |         local backgroundType = 0; | ||
|  |         if (State >= 3) backgroundType = 1; | ||
|  |         //绘制主界面背景 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", X, Y, 2, "卢克攻坚战况主界面背景a"); | ||
|  |         //绘制主界面背景乌龟 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_state_full/luke_state_full.ani", X, Y, backgroundType, "卢克攻坚战况主界面背景乌龟e" + State); | ||
|  |         //绘制主界面小队移动类 | ||
|  |         DrawPartyMoveClss(obj); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         //1阶段 | ||
|  |         if (State == 0) { | ||
|  |             //诞生圣所对象绘制 | ||
|  |             if (DanShengObject) DrawDungeonObjInfo(obj, DanShengObject); | ||
|  |             //蔓延圣所对象绘制 | ||
|  |             if (ManYanObject) DrawDungeonObjInfo(obj, ManYanObject); | ||
|  |             //湮灭圣所对象绘制 | ||
|  |             if (YanMieObject) DrawDungeonObjInfo(obj, YanMieObject); | ||
|  | 
 | ||
|  |             //震颤A对象绘制 | ||
|  |             if (ZhenChan_A_Object) DrawDungeonObjInfo(obj, ZhenChan_A_Object); | ||
|  |             //震颤B对象绘制 | ||
|  |             if (ZhenChan_B_Object) DrawDungeonObjInfo(obj, ZhenChan_B_Object); | ||
|  |             //擎天A对象绘制 | ||
|  |             if (QingTian_A_Object) DrawDungeonObjInfo(obj, QingTian_A_Object); | ||
|  |             //擎天B对象绘制 | ||
|  |             if (QingTian_B_Object) DrawDungeonObjInfo(obj, QingTian_B_Object); | ||
|  |             //舰炮防御战对象绘制 | ||
|  |             if (JianPaoObject) DrawDungeonObjInfo(obj, JianPaoObject); | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         //2阶段 | ||
|  |         if (State == 3) { | ||
|  |             if (GuangJitanRuKouObject) DrawDungeonObjInfo(obj, GuangJitanRuKouObject); //光祭坛入口对象 | ||
|  |             if (AnJitanRuKouObject) DrawDungeonObjInfo(obj, AnJitanRuKouObject); //光祭坛入口对象 | ||
|  | 
 | ||
|  |             if (GuangJitanObject) DrawDungeonObjInfo(obj, GuangJitanObject); //光祭坛对象 | ||
|  |             if (AnJitanObject) DrawDungeonObjInfo(obj, AnJitanObject); //暗祭坛对象 | ||
|  | 
 | ||
|  |             if (LiLiangObject) DrawDungeonObjInfo(obj, LiLiangObject); //力量祭坛对象 | ||
|  |             if (ZhiHuiObject) DrawDungeonObjInfo(obj, ZhiHuiObject); //智慧祭坛对象 | ||
|  | 
 | ||
|  | 
 | ||
|  |             if (NengYuanKongZhiObject) DrawDungeonObjInfo(obj, NengYuanKongZhiObject); //能源控制对象 | ||
|  | 
 | ||
|  |             if (GuangShengDianObject) DrawDungeonObjInfo(obj, GuangShengDianObject); //光圣殿对象 | ||
|  |             if (AnShengDianObject) DrawDungeonObjInfo(obj, AnShengDianObject); //暗圣殿对象 | ||
|  | 
 | ||
|  |             if (JiXieWangZuoGuangObject) DrawDungeonObjInfo(obj, JiXieWangZuoGuangObject); //光卢克 | ||
|  |             if (JiXieWangZuoAnObject) DrawDungeonObjInfo(obj, JiXieWangZuoAnObject); //暗卢克 | ||
|  | 
 | ||
|  |             if (NengYuanChuCangObject) DrawDungeonObjInfo(obj, NengYuanChuCangObject); //能源储藏对象 | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制主界面复活币剩余 | ||
|  |         T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", X + 45, Y + 510, 93, "卢克攻坚战况主界面复活币剩余"); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制主界面复活币剩余 | ||
|  |         local CoinCount = (FHMAX - FHNOW).tostring(); | ||
|  |         for (local i = 0; i < 2; i++) { | ||
|  |             if (CoinCount.len() >= (i + 1)) T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + 45 + 75 + (i * 18), Y + 537, CoinCount.slice(0 + i, 1 + i).tointeger(), "卢克剩余复活币" + i); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置鼠标事件类型 | ||
|  |     function SetMouseTesk() { | ||
|  |         //有活动设置 | ||
|  |         if (MouseTask == 1) IMouse.SetMouseTask(47); | ||
|  |         //点击就还原 | ||
|  |         if (IMouse.GetRButton() == 2 && MouseTask == 1) MouseTask = 2; | ||
|  |         //还原以后在解锁 | ||
|  |         if (MouseTask == 2) { | ||
|  |             IMouse.SetMouseTask(0); | ||
|  |             MouseTask = 0; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //判断是否可重合 | ||
|  |     function PosEvent(Pos, MPos) { | ||
|  |         local Offset = abs(Pos - MPos); | ||
|  |         if (Offset < 10) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  |     //判断自身地图相关事件 | ||
|  |     function MapEventTest(obj) { | ||
|  |         if (sq_GetCurrentModuleType() != 3) return; | ||
|  |         local stage = sq_GetGlobaludpModuleStage(); | ||
|  |         local MapIndex = sq_GetMapIndex(stage); | ||
|  |         if (MapIndexTable.rawin(MapIndex)) { | ||
|  |             local X = obj.getXPos(); | ||
|  |             local Y = obj.getYPos(); | ||
|  |             local Mark = false; | ||
|  |             if (MapIndex == 33103 && PosEvent(X, 737) && PosEvent(Y, 354)) Mark = true; | ||
|  |             if (MapIndex == 33100 && PosEvent(X, 369) && PosEvent(Y, 387)) Mark = true; | ||
|  |             if (MapIndex == 33116 && PosEvent(X, 365) && PosEvent(Y, 374)) Mark = true; | ||
|  |             if (MapIndex == 33119 && PosEvent(X, 838) && PosEvent(Y, 424)) Mark = true; | ||
|  | 
 | ||
|  |             if (Mark == true && MapMoveMark == false) { | ||
|  |                 local LukeFHMoveDungeon = Json_STL("LukeFHMoveDungeon"); | ||
|  |                 LukeFHMoveDungeon.Put("op", 25600157); | ||
|  |                 LukeFHMoveDungeon.Put("DungeonUID", MapIndexTable[MapIndex]); | ||
|  |                 local str = LukeFHMoveDungeon.GetString(); | ||
|  |                 L_sq_SendPackType(130); | ||
|  |                 L_sq_SendPackWChar(str); | ||
|  |                 L_sq_SendPack(); | ||
|  |                 LukeFHMoveDungeon.Delete(); | ||
|  |                 MapMoveMark = true; | ||
|  |             } else if (Mark == false) MapMoveMark = false; | ||
|  |         } else { | ||
|  |             MapMoveMark = false; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制透明度静态图片 | ||
|  |     function Luke_DrawStayAniAlpha(obj, aniFileName, x, y, index, aniname, Alpha) { | ||
|  |         local SelectAni = obj.getVar().GetAnimationMap(aniname, aniFileName); | ||
|  |         sq_DrawSpecificFrameEffect_SIMPLE(SelectAni, x, y, index, sq_RGB(255, 255, 255), sq_ALPHA(Alpha), false); | ||
|  |         return SelectAni; | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制透明度静态图片 | ||
|  |     function Luke_DrawStayAniAlphaRate(obj, aniFileName, x, y, index, aniname, Alpha, rate) { | ||
|  |         local SelectAni = obj.getVar().GetAnimationMap(aniname, aniFileName); | ||
|  |         SelectAni.setImageRateFromOriginal(rate, rate); | ||
|  |         sq_DrawSpecificFrameEffect_SIMPLE(SelectAni, x, y, index, sq_RGB(255, 255, 255), sq_ALPHA(Alpha), false); | ||
|  |         return SelectAni; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //绘制翻牌奖励 | ||
|  |     function DrawReward(obj, Time, Reward_Object, AllReward_Object, Reward_Info) { | ||
|  |         local PassTime = Reward_Info[0]; | ||
|  |         local Coin = Reward_Info[1]; | ||
|  | 
 | ||
|  |         //绘制背景图 | ||
|  |         Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X, Y, 10, "卢克翻牌主界面背景", 230); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制阶段状态 | ||
|  |         local Reani = 1; | ||
|  |         if (State == 4) Reani = 7; | ||
|  |         Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 300, Y + 40, 0, "a卢克翻牌阶段状态", 250); | ||
|  |         //绘制成功标志 | ||
|  |         local Rate = sq_GetAccel(400, 100, Time, 500, false); | ||
|  |         T_DrawStayAniRate(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 300, Y + 40, Reani, "a卢克翻牌成功标志1", Rate.tofloat() / 100.0); | ||
|  | 
 | ||
|  |         //绘制通关信息条划出 | ||
|  |         if (Time >= 500) { | ||
|  |             local Xpos; | ||
|  |             if (Time < 3000) Xpos = sq_GetAccel(675, 0, Time - 500, 300, false); | ||
|  |             if (Time >= 3000) Xpos = sq_GetAccel(0, -675, Time - 3000, 300, false); | ||
|  |             Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 115 + Xpos, Y + 200, 11, "a卢克翻牌阶段状态", 250); | ||
|  |             Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 115 + Xpos, Y + 200, 12, "a卢克翻牌阶段状态1", 250); | ||
|  |         } | ||
|  | 
 | ||
|  |         //绘制时间 | ||
|  |         if (Time >= 800) { | ||
|  |             local Xpos; | ||
|  |             if (Time < 3000) Xpos = sq_GetAccel(675, 0, Time - 800, 300, false); | ||
|  |             if (Time >= 3000) Xpos = sq_GetAccel(0, -675, Time - 3000, 300, false); | ||
|  |             //计算剩余时间并绘制 | ||
|  |             local Hours = (PassTime / 3600000).tostring(); | ||
|  |             if (Hours.len() < 2) Hours = "0" + Hours; | ||
|  |             if (Hours.len() > 2) Hours = Hours.slice(Hours.len() - 2, Hours.len()); | ||
|  |             local minutes = (PassTime / 60000).tostring(); | ||
|  |             if (minutes.len() < 2) minutes = "0" + minutes; | ||
|  |             if (minutes.len() > 2) minutes = minutes.slice(minutes.len() - 2, minutes.len()); | ||
|  |             local seconds = (PassTime / 1000 % 60).tostring(); | ||
|  |             if (seconds.len() < 2) seconds = "0" + seconds; | ||
|  |             if (seconds.len() > 2) seconds = seconds.slice(seconds.len() - 2, seconds.len()); | ||
|  | 
 | ||
|  |             for (local i = 0; i < 2; i++) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 538 - 300 + (i * 15), Y + 59 + 164, Hours.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间时" + i); | ||
|  |                 T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 588 - 300 + (i * 15), Y + 59 + 164, minutes.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间分" + i); | ||
|  |                 T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 638 - 300 + (i * 15), Y + 59 + 164, seconds.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间分" + i); | ||
|  |             } | ||
|  |             T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 270, Y + 57 + 164, 10, "卢克奖励部分时间时分"); | ||
|  |             T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 320, Y + 57 + 164, 11, "卢克奖励部分时间时秒"); | ||
|  | 
 | ||
|  |             for (local z = 0; z < Coin.tostring().len(); z++) { | ||
|  |                 T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 520 + (z * 15), Y + 59 + 164, Coin.tostring().slice(0 + z, 1 + z).tointeger(), "卢克奖励部分时间复活币" + z); | ||
|  |             } | ||
|  |             //T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + 348 , Y + 51 + 164, 10, "卢克奖励部分时间时点"); | ||
|  |         } | ||
|  | 
 | ||
|  |         local CradTab = Reward_Object; | ||
|  | 
 | ||
|  |         //绘制卡牌 | ||
|  |         if (Time >= 1300) { | ||
|  |             local Alpha; | ||
|  |             if (Time < 3000) Alpha = sq_GetAccel(0, 250, Time - 1300, 700, false); | ||
|  |             if (Time >= 3000) Alpha = sq_GetAccel(250, 0, Time - 3000, 700, false); | ||
|  |             for (local i = 0; i < 4; i++) { | ||
|  |                 local BackGroundAniIndex = 20; | ||
|  |                 if (i >= CradTab.len()) { | ||
|  |                     //绘制卡牌背景图 | ||
|  |                     Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i), Y + 300, BackGroundAniIndex, "a卢克翻牌卡片界面背景", Alpha); | ||
|  |                     //Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 160 + (153 * i), Y + 416, 19, "卢克翻牌无卡片背景", Alpha); | ||
|  |                     //Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 160 + (153 * i), Y + 416, 20, "卢克翻牌无卡片背景Eff", Alpha); | ||
|  |                     continue; | ||
|  |                 } | ||
|  |                 if (CradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 22; | ||
|  |                 //绘制卡牌背景图 | ||
|  |                 Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i), Y + 300, BackGroundAniIndex, "a卢克翻牌卡片界面背景1", Alpha); | ||
|  |                 //绘制自己的卡牌选择光效 | ||
|  |                 Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i) - 19, Y + 300 - 18, 21, "a卢克翻牌卡片界面背景", Alpha); | ||
|  |                 //绘制角色标记 | ||
|  |                 local SetFlagAniIndex = 9; | ||
|  |                 SetFlagAniIndex += CradTab[i].SetFlagAniIndex; | ||
|  |                 //Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 97 + (153 * i), Y + 330, SetFlagAniIndex, "a卢克翻牌卡片界面人物框" + SetFlagAniIndex, Alpha); | ||
|  | 
 | ||
|  |                 if (Time >= 2000) { | ||
|  |                     local mat = 3000; | ||
|  |                     //绘制角色头像 | ||
|  |                     Luke_DrawStayAniAlphaRate(obj, "common/anton/face/" + CradTab[i].PlayerJob + "/" + (CradTab[i].PlayerJobEx % 16) + ".ani", X + 102 + (153 * i) + 22, Y + 334 - 14, 0, "翻牌卢克头像编号" + CradTab[i].PlayerJob + CradTab[i].PlayerJobEx, Alpha, 0.70); | ||
|  |                     //绘制角色名字 | ||
|  |                     if (Time < mat) L_Code_STL(CradTab[i].Name, X + 145 + (153 * i) + 8, Y + 324, 0xFFffffff, 1); | ||
|  | 
 | ||
|  |                     local sssq = 8; | ||
|  |                     local sssw = 50; | ||
|  |                     //绘制道具边框 | ||
|  |                     if (Time < mat) T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + 153 + (153 * i) + sssq, Y + 412 - sssw, CradTab[i].ItemGrade + 12, "卢克翻牌卡片道具边框" + CradTab[i].ItemGrade); | ||
|  |                     //绘制道具 | ||
|  |                     if (Time < mat) L_Sq_DrawItem(X + 156 + (153 * i) + sssq, Y + 415 - sssw, CradTab[i].ItemId, CradTab[i].ItemCount, 0, 0, 0); | ||
|  |                     //绘制道具名字 | ||
|  |                     if (Time < mat) L_Code_STL(CradTab[i].ItemName, X + 167 + (153 * i) - BasicsDrawTool.GetOffserFromLen(CradTab[i].ItemName, 1.5) + sssq, Y + 450 - sssw, 0xffffffff, 1); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |         //直接跳过一阶段的全体翻牌 | ||
|  |         if (State == 1 && Time >= 3100) State = 2; | ||
|  | 
 | ||
|  |         if (State == 4) { | ||
|  |             local AllCradTab = AllReward_Object; | ||
|  |             //绘制所有人卡牌 | ||
|  |             if (Time >= 3700) { | ||
|  |                 local Xoffset = -80; | ||
|  |                 local Yoffset = -200; | ||
|  |                 local Alpha; | ||
|  |                 Alpha = sq_GetAccel(0, 250, Time - 3700, 700, false); | ||
|  |                  | ||
|  |                 for (local i = 0; i < 8; i++) { | ||
|  |                      | ||
|  |                     local BackGroundAniIndex = 20; | ||
|  |                     if (i >= AllCradTab.len()) { | ||
|  |                          | ||
|  |                         //绘制卡牌背景图 | ||
|  |                         Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 118 + (180 * (i % 4)), Y + Yoffset - 30 + 392 + (190 * (i / 4)), 15, "卢克翻牌卡片界面背景acaww", Alpha); | ||
|  |                         Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 130 + (180 * (i % 4)), Y + Yoffset - 30 + 420 + (190 * (i / 4)), BackGroundAniIndex, "卢克翻牌卡片界面背景aca", Alpha); | ||
|  |                         continue; | ||
|  |                     } | ||
|  |                      | ||
|  |                     if (AllCradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 22; | ||
|  |                     //绘制卡牌背景图 | ||
|  |                     Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 118 + (180 * (i % 4)), Y + Yoffset - 30 + 392 + (190 * (i / 4)), 15, "卢克翻牌卡片界面背景acaww" + 15, Alpha); | ||
|  |                     Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 130 + (180 * (i % 4)), Y + Yoffset - 30 + 420 + (190 * (i / 4)), BackGroundAniIndex, "卢克翻牌卡片界面背景aca" + BackGroundAniIndex, Alpha); | ||
|  | 
 | ||
|  | 
 | ||
|  |                     //绘制角色头像 | ||
|  |                     Luke_DrawStayAniAlphaRate(obj, "common/anton/face/" + AllCradTab[i].PlayerJob + "/" + (AllCradTab[i].PlayerJobEx % 16) + ".ani", X + Xoffset + 102 + (180 * (i % 4)) + 22 + 37, Y + Yoffset - 30 + 388 + (190 * (i / 4)) - 14 + 67, 0, "翻牌卢克头像编号" + AllCradTab[i].PlayerJob + AllCradTab[i].PlayerJobEx, Alpha, 0.70); | ||
|  | 
 | ||
|  | 
 | ||
|  |                     if (Time >= 4400) { | ||
|  |                         //绘制角色名字 | ||
|  |                         L_Code_STL(AllCradTab[i].Name, X + Xoffset + 137 + (180 * (i % 4)) + 50, Y + Yoffset - 30 + 394 + (190 * (i / 4)) + 50, 0xFF9bc8e6, 1); | ||
|  |                         //绘制道具边框 | ||
|  |                         T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + Xoffset + 153 + (180 * (i % 4)) + 43, Y + Yoffset - 30 + 417 + (190 * (i / 4)) + 68, AllCradTab[i].ItemGrade + 12, "卢克翻牌卡片道具边框" + AllCradTab[i].ItemGrade); | ||
|  |                         //绘制道具 | ||
|  |                         L_Sq_DrawItem(X + Xoffset + 156 + (180 * (i % 4)) + 43, Y + Yoffset - 30 + 420 + (190 * (i / 4)) + 68, AllCradTab[i].ItemId, AllCradTab[i].ItemCount, 0, 0, 0); | ||
|  |                         //绘制道具名字 | ||
|  |                         L_Code_STL(AllCradTab[i].ItemName, X + Xoffset + 167 + (180 * (i % 4)) - BasicsDrawTool.GetOffserFromLen(AllCradTab[i].ItemName, 1.5) + 43, Y + Yoffset - 30 + 455 + (190 * (i / 4)) + 68, 0xffffffff, 1); | ||
|  |                           | ||
|  |                     } | ||
|  | 
 | ||
|  | 
 | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取BUFF对应的OBJ编号 | ||
|  |     function GETBUFFOBJINDEX(num) { | ||
|  |         switch (num) { | ||
|  |             case 0: | ||
|  |                 return 537170; | ||
|  |             case 1: | ||
|  |                 return 537190; | ||
|  |             case 2: | ||
|  |                 return 537210; | ||
|  |             case 4: | ||
|  |                 return 537270; | ||
|  |             case 6: | ||
|  |                 return 537300; | ||
|  |             case 8: | ||
|  |                 return 537240; | ||
|  |             case 10: | ||
|  |                 return 537330; | ||
|  |             case 11: | ||
|  |                 return 537360; | ||
|  |             case 12: | ||
|  |                 return 537370; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //卢克BUFF  obj  机制 | ||
|  |     function MachineLukeBuffPassObject(obj) { | ||
|  |         obj = sq_GetCNRDObjectToSQRCharacter(obj); | ||
|  |         local stage = sq_GetGlobaludpModuleStage(); | ||
|  |         local dungeon = sq_GetDungeonByStage(stage); | ||
|  |         local dungeonIndex = sq_GetDuegonIndex(dungeon); | ||
|  |         local MapIndex = sq_GetMapIndex(stage); | ||
|  |         if (MapIndex != -1) { | ||
|  |             if (!MapVar || MapVar != MapIndex) { | ||
|  |                 //同步地图暂存器 | ||
|  |                 MapVar = MapIndex; | ||
|  |                 //诞生之圣所 | ||
|  |                 if (dungeonIndex == 15154 || dungeonIndex == 15155 || dungeonIndex == 15156) { | ||
|  |                     local objindex = GETBUFFOBJINDEX(DanShengBuffObject[0]); | ||
|  |                     obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0); | ||
|  |                 } | ||
|  |                 //湮灭之圣所 | ||
|  |                 if (dungeonIndex == 15157 || dungeonIndex == 15158 || dungeonIndex == 15159) { | ||
|  |                     local objindex = GETBUFFOBJINDEX(YanMieBuffObject[0]); | ||
|  |                     obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0); | ||
|  |                 } | ||
|  |                 //蔓延之圣所 | ||
|  |                 if (dungeonIndex == 15160 || dungeonIndex == 15161 || dungeonIndex == 15162) { | ||
|  |                     local objindex = GETBUFFOBJINDEX(ManYanBuffObject[0]); | ||
|  |                     obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //如果时间容器不存在就启动时间容器 | ||
|  |         if (MapTimer == null) { | ||
|  |             MapTimer = TimeSTL("LukeMapTimer", 500); | ||
|  |             MapTimer.Reset(); | ||
|  |             MapTimer.Start(); | ||
|  |         } else { | ||
|  | 
 | ||
|  | 
 | ||
|  |             local T = MapTimer.Get(); | ||
|  |             if (T >= 500) { | ||
|  |                 MapTimer.Reset(); | ||
|  |                 MapTimer.Start(); | ||
|  | 
 | ||
|  |                 //如果在四个祭坛中 | ||
|  |                 if (dungeonIndex == 15057 || dungeonIndex == 15058 || dungeonIndex == 15059 || dungeonIndex == 15060) { | ||
|  |                     if (NengYuanKongZhiObject && NengYuanKongZhiObject.rawin("ClearNumber") && NengYuanKongZhiObject.ClearNumber != 0) { | ||
|  |                         obj.sq_SendCreatePassiveObjectPacket(202303008, 0, 120, 1, 0); | ||
|  |                     } | ||
|  |                 } | ||
|  |                 //如果是在光暗卢克中 | ||
|  |                 if (dungeonIndex == 15057 || dungeonIndex == 15058) { | ||
|  |                     if (NengYuanChuCangObject && NengYuanChuCangObject.rawin("ClearNumber") && NengYuanChuCangObject.ClearNumber != 0) { | ||
|  |                         obj.sq_SendCreatePassiveObjectPacket(202303008, 0, 120, 1, 0); | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |                 getLukeRaid_QuattuorManusMK2ChangeLayer(obj); | ||
|  | 
 | ||
|  |                 //遍历对象管理器并执行操作 | ||
|  |                 local objectManager = obj.getObjectManager(); | ||
|  |                 if (!objectManager) return; | ||
|  |                 local CollisionObjectNumber = objectManager.getCollisionObjectNumber(); | ||
|  |                 for (local i = 0; i < CollisionObjectNumber; i += 1) { | ||
|  |                     local object = objectManager.getCollisionObject(i); | ||
|  |                     local ObjectIndex = object.getCollisionObjectIndex(); | ||
|  |                     if (ObjectIndex == 202303004) { | ||
|  |                         local LukeBrokePwoerPack = Json_STL("LukeBrokePwoerPack"); | ||
|  |                         LukeBrokePwoerPack.Put("op", 25600181); | ||
|  |                         local str = LukeBrokePwoerPack.GetString(); | ||
|  |                         L_sq_SendPackType(130); | ||
|  |                         L_sq_SendPackWChar(str); | ||
|  |                         L_sq_SendPack(); | ||
|  |                         LukeBrokePwoerPack.Delete(); | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Run(obj) { | ||
|  |         if (State < 0) return; | ||
|  | 
 | ||
|  |         //卢克BUFFObj  机制 | ||
|  |         MachineLukeBuffPassObject(obj); | ||
|  | 
 | ||
|  |         DrawStartAni(obj, State); | ||
|  | 
 | ||
|  |         //如果被人已经通关了那么寻找时间返回城镇 | ||
|  |         if (ReturnTwonFlag == 1 && sq_GetCurrentModuleType() == 3 && obj.getState() != 0) { | ||
|  |             local LukeFlagBackTown = Json_STL("LukeFlagBackTownJson"); | ||
|  |             LukeFlagBackTown.Put("op", 25600167); | ||
|  |             local str = LukeFlagBackTown.GetString(); | ||
|  |             L_sq_SendPackType(130); | ||
|  |             L_sq_SendPackWChar(str); | ||
|  |             L_sq_SendPack(); | ||
|  |             LukeFlagBackTown.Delete(); | ||
|  |             ReturnTwonFlag = 0; | ||
|  |         } | ||
|  | 
 | ||
|  |         //设置鼠标类型事件 | ||
|  |         SetMouseTesk(); | ||
|  |         //判断自身地图相关事件 | ||
|  |         MapEventTest(obj); | ||
|  | 
 | ||
|  |         //绘制展开攻坚信息按钮 | ||
|  |         DrawMainButton(obj); | ||
|  |         //绘制攻坚剩余时间 | ||
|  |         if (PageState == 0 && (State == 0 || State == 3)) { | ||
|  |             DrawStartAni(obj, State); | ||
|  |             DrawTime(obj); | ||
|  |         } | ||
|  | 
 | ||
|  |         //如果是翻牌奖励阶段 没有打开主窗口 | ||
|  |         if (State == 1 || State == 4) { | ||
|  |             if (!sq_GetPopupWindowMainCotrol(267)) { | ||
|  |                 L_NewWindows("Lenheart", 267, 0x65535); | ||
|  |                 PageState = 1; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (State == 0) { | ||
|  |             local CheckLukeCardPower_Button = LukeButtonPro(obj, "aLukeCheckLukeCardPower_Button", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 103, 22, 86); | ||
|  |             CheckLukeCardPower_Button.SetRectEnble(true, "aLukeCheckLukeCardPower_Buttonr", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 87); | ||
|  |             CheckLukeCardPower_Button.SetCustomClickEnble(true, "aLukeCheckLukeCardPower_Buttonc", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 88); | ||
|  |             CheckLukeCardPower_Button.Show(); | ||
|  |             if (CheckLukeCardPower_Button.isLBActive()) { | ||
|  |                 obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |                 L_NewWindows("Lenheart", 267, 0x65535); | ||
|  |                 PageCardState = true; | ||
|  |             } | ||
|  |             if (!sq_GetPopupWindowMainCotrol(267)) PageCardState = false; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function Draw(obj) { | ||
|  | 
 | ||
|  |         //如果页面被打开 绘制攻坚队攻坚信息 | ||
|  |         if (PageState == 1 && (State == 0 || State == 3)) DrawLukePartyInfo(obj); | ||
|  | 
 | ||
|  |         //绘制攻坚剩余时间 | ||
|  |         if (State == 0 || State == 3) DrawTime(obj); | ||
|  | 
 | ||
|  |         if (State == 1 || State == 4) DrawReward(obj, Reward_Timer_Object.Get(), Reward_Object, AllReward_Object, Reward_Info); | ||
|  | 
 | ||
|  |         DrawStartAni(obj, State); | ||
|  | 
 | ||
|  |         //查看卡牌 | ||
|  |         if (PageCardState) { | ||
|  |             DrawLukeInfoCard(obj); | ||
|  |             return; | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function LukeDungeonInfoControlFunc(obj) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     if (RootTab.rawin("LUKEDUNGEONINFOCONTROL") == false) { | ||
|  |         local LUKEDUNGEONINFOCONTROLOBJ = LukeDungeonInfoControl_C(); | ||
|  |         RootTab.rawset("LUKEDUNGEONINFOCONTROL", LUKEDUNGEONINFOCONTROLOBJ); | ||
|  |     } | ||
|  |     RootTab["LUKEDUNGEONINFOCONTROL"].Run(obj); | ||
|  | } |