1480 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1480 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:antondungeoninfo.nut
 | |
| 路径:Plugins/Anton/antondungeoninfo.nut
 | |
| 创建日期:2022-09-13	15:21
 | |
| 文件用途:安图恩攻坚中 信息
 | |
| */
 | |
| class AntonDungeonInfoControl_C extends BasicsDrawTool {
 | |
|     X = 0;
 | |
|     Y = 0;
 | |
|     State = -1; //安图恩攻坚状态
 | |
|     PageState = 0; //攻坚信息面板展开状态
 | |
|     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
 | |
| 
 | |
|     //1阶段对象
 | |
|     HeiWuObject = null; //黑雾之源对象
 | |
|     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阶段对象
 | |
|     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 ReadAntonDungeonInfoPack(chunk) {
 | |
|         Sout("\n\n收到安图恩攻坚信息包  :\n  %L", chunk)
 | |
|         local RootTab = getroottable();
 | |
|         BasicsDrawTool.InitClass("AntonDungeonInfoJson"); //自动判断清空
 | |
|         local JsonObj = Json_STL("AntonDungeonInfoJson");
 | |
|         RootTab.rawset("AntonDungeonInfoJson", JsonObj);
 | |
|         RootTab["AntonDungeonInfoJson"].Parse(chunk, 0, false);
 | |
| 
 | |
| 
 | |
|         //告诉副本类开始计时
 | |
|         if (RootTab.rawin("ANTONDUNGEONINFOCONTROL")) {
 | |
|             local Cobj = RootTab["ANTONDUNGEONINFOCONTROL"];
 | |
|             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;
 | |
| 
 | |
|             //一阶段收包机制
 | |
|             if (Cobj.State == 0) {
 | |
|                 //黑雾之源收包
 | |
|                 {
 | |
|                     Cobj.HeiWuObject = null;
 | |
|                     if (JsonObj.Get("HeiWu_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 4 - JsonObj.Get("HeiWu_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("HeiWu_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("HeiWu_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HeiWu_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HeiWu_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HeiWu_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             Cobj.HeiWuObject = {
 | |
|                                 Name = "heiwu",
 | |
|                                 NameImg = 0,
 | |
|                                 X = 78,
 | |
|                                 Y = 330,
 | |
|                                 BloodType = 4,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Party = gParty,
 | |
|                                 DungeonUID = 0,
 | |
|                             };
 | |
|                         } else {
 | |
|                             Cobj.HeiWuObject = {
 | |
|                                 Name = "heiwu",
 | |
|                                 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.HeiWuObject = null; //黑雾之源对象
 | |
|                     Cobj.JianPaoObject = null; //舰炮防御战对象
 | |
|                     if (Cobj.JianPaoTimer) {
 | |
|                         Cobj.JianPaoTimer.Delete();
 | |
|                         Cobj.JianPaoTimer = null; //舰炮时间容器对象
 | |
|                     }
 | |
|                     Cobj.ZhenChan_A_Object = null; //震颤A对象
 | |
|                     if (Cobj.ZhenChan_A_Timer) {
 | |
|                         Cobj.ZhenChan_A_Timer.Delete();
 | |
|                         Cobj.ZhenChan_A_Timer = null; //震颤A时间容器对象
 | |
|                     }
 | |
|                     Cobj.ZhenChan_B_Object = null; //震颤B对象
 | |
|                     if (Cobj.ZhenChan_B_Timer) {
 | |
|                         Cobj.ZhenChan_B_Timer.Delete();
 | |
|                         Cobj.ZhenChan_B_Timer = null; //震颤B时间容器对象
 | |
|                     }
 | |
|                     Cobj.QingTian_A_Object = null; //擎天A对象
 | |
|                     Cobj.QingTian_B_Object = null; //擎天B对象
 | |
|                 }
 | |
| 
 | |
|                 //能源阻截站收包
 | |
|                 {
 | |
|                     Cobj.NengLiangObject = null;
 | |
|                     if (JsonObj.Get("NengLiang_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("NengLiang_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("NengLiang_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("NengLiang_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("NengLiang_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("NengLiang_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("NengLiang_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             Cobj.NengLiangObject = {
 | |
|                                 Name = "nengliang",
 | |
|                                 NameImg = 7,
 | |
|                                 X = 340,
 | |
|                                 Y = 230,
 | |
|                                 BloodType = 1,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Party = gParty,
 | |
|                                 DungeonUID = 4,
 | |
|                                 Ani = 17,
 | |
|                             };
 | |
|                         } else {
 | |
|                             Cobj.NengLiangObject = {
 | |
|                                 Name = "nengliang",
 | |
|                                 X = 340,
 | |
|                                 Y = 230,
 | |
|                                 ClearNumber = 0,
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //黑色火山收包
 | |
|                 {
 | |
|                     Cobj.HuoShanObject = null;
 | |
|                     if (JsonObj.Get("HuoShan_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("HuoShan_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("HuoShan_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("HuoShan_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HuoShan_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HuoShan_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("HuoShan_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             Cobj.HuoShanObject = {
 | |
|                                 Name = "huoshan",
 | |
|                                 NameImg = 6,
 | |
|                                 X = 336,
 | |
|                                 Y = 145,
 | |
|                                 BloodType = 99,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Party = gParty,
 | |
|                                 DungeonUID = 5,
 | |
|                                 Zhangai = 0,
 | |
|                                 Ani = 16,
 | |
|                                 NengLiang = JsonObj.Get("HuoShan_NengLiang"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             Cobj.HuoShanObject = {
 | |
|                                 Name = "huoshan",
 | |
|                                 X = 336,
 | |
|                                 Y = 145,
 | |
|                                 ClearNumber = 0,
 | |
|                                 Zhangai = 0,
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //孵化1收包
 | |
|                 {
 | |
|                     Cobj.FuHua1_Object = null;
 | |
|                     if (JsonObj.Get("FuHua1_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("FuHua1_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("FuHua1_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua1_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua1_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua1_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua1_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             //如果孵化1时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua1_Timer) Cobj.FuHua1_Timer.Delete();
 | |
|                             Cobj.FuHua1_Timer = null;
 | |
|                             Cobj.FuHua1_Timer = TimeSTL("FuHua1_Timer", JsonObj.Get("JiShiQi->FuHua1_TouSonShiJian"));
 | |
|                             Cobj.FuHua1_Timer.Start();
 | |
|                             Cobj.FuHua1_Object = {
 | |
|                                 Name = "FuHua1",
 | |
|                                 NameImg = 9,
 | |
|                                 X = 110,
 | |
|                                 Y = 340,
 | |
|                                 BloodType = 1,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Reload = 1,
 | |
|                                 Party = gParty,
 | |
|                                 Timer = Cobj.FuHua1_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaTouSong_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua1_TouSonShiJian"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             //如果孵化1时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua1_Timer) Cobj.FuHua1_Timer.Delete();
 | |
|                             Cobj.FuHua1_Timer = null;
 | |
|                             Cobj.FuHua1_Timer = TimeSTL("FuHua1_Timer", JsonObj.Get("JiShiQi->FuHua1_FuHuoShiJian"));
 | |
|                             Cobj.FuHua1_Timer.Start();
 | |
|                             Cobj.FuHua1_Object = {
 | |
|                                 Name = "FuHua1",
 | |
|                                 X = 110,
 | |
|                                 Y = 340,
 | |
|                                 ClearNumber = 0,
 | |
|                                 Reload = 1,
 | |
|                                 Timer = Cobj.FuHua1_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaFuHuo_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua1_FuHuoShiJian"),
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //孵化2收包
 | |
|                 {
 | |
|                     Cobj.FuHua2_Object = null;
 | |
|                     if (JsonObj.Get("FuHua2_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("FuHua2_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("FuHua2_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua2_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua2_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua2_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua2_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             //如果孵化2时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua2_Timer) Cobj.FuHua2_Timer.Delete();
 | |
|                             Cobj.FuHua2_Timer = null;
 | |
|                             Cobj.FuHua2_Timer = TimeSTL("FuHua2_Timer", JsonObj.Get("JiShiQi->FuHua2_TouSonShiJian"));
 | |
|                             Cobj.FuHua2_Timer.Start();
 | |
|                             Cobj.FuHua2_Object = {
 | |
|                                 Name = "FuHua2",
 | |
|                                 NameImg = 10,
 | |
|                                 X = 240,
 | |
|                                 Y = 340,
 | |
|                                 BloodType = 1,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Reload = 1,
 | |
|                                 Party = gParty,
 | |
|                                 Timer = Cobj.FuHua2_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaTouSong_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua2_TouSonShiJian"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             //如果孵化2时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua2_Timer) Cobj.FuHua2_Timer.Delete();
 | |
|                             Cobj.FuHua2_Timer = null;
 | |
|                             Cobj.FuHua2_Timer = TimeSTL("FuHua2_Timer", JsonObj.Get("JiShiQi->FuHua2_FuHuoShiJian"));
 | |
|                             Cobj.FuHua2_Timer.Start();
 | |
|                             Cobj.FuHua2_Object = {
 | |
|                                 Name = "FuHua2",
 | |
|                                 X = 240,
 | |
|                                 Y = 340,
 | |
|                                 ClearNumber = 0,
 | |
|                                 Reload = 1,
 | |
|                                 Timer = Cobj.FuHua2_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaFuHuo_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua2_FuHuoShiJian"),
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //孵化3收包
 | |
|                 {
 | |
|                     Cobj.FuHua3_Object = null;
 | |
|                     if (JsonObj.Get("FuHua3_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("FuHua3_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("FuHua3_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua3_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua3_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua3_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua3_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             //如果孵化3时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua3_Timer) Cobj.FuHua3_Timer.Delete();
 | |
|                             Cobj.FuHua3_Timer = null;
 | |
|                             Cobj.FuHua3_Timer = TimeSTL("FuHua3_Timer", JsonObj.Get("JiShiQi->FuHua3_TouSonShiJian"));
 | |
|                             Cobj.FuHua3_Timer.Start();
 | |
|                             Cobj.FuHua3_Object = {
 | |
|                                 Name = "FuHua3",
 | |
|                                 NameImg = 11,
 | |
|                                 X = 470,
 | |
|                                 Y = 340,
 | |
|                                 BloodType = 1,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Reload = 1,
 | |
|                                 Party = gParty,
 | |
|                                 Timer = Cobj.FuHua3_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaTouSong_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua3_TouSonShiJian"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             //如果孵化3时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua3_Timer) Cobj.FuHua3_Timer.Delete();
 | |
|                             Cobj.FuHua3_Timer = null;
 | |
|                             Cobj.FuHua3_Timer = TimeSTL("FuHua3_Timer", JsonObj.Get("JiShiQi->FuHua3_FuHuoShiJian"));
 | |
|                             Cobj.FuHua3_Timer.Start();
 | |
|                             Cobj.FuHua3_Object = {
 | |
|                                 Name = "FuHua3",
 | |
|                                 X = 470,
 | |
|                                 Y = 340,
 | |
|                                 ClearNumber = 0,
 | |
|                                 Reload = 1,
 | |
|                                 Timer = Cobj.FuHua3_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaFuHuo_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua3_FuHuoShiJian"),
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //孵化4收包
 | |
|                 {
 | |
|                     Cobj.FuHua4_Object = null;
 | |
|                     if (JsonObj.Get("FuHua4_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 1 - JsonObj.Get("FuHua4_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("FuHua4_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua4_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua4_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua4_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("FuHua4_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             //如果孵化4时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua4_Timer) Cobj.FuHua4_Timer.Delete();
 | |
|                             Cobj.FuHua4_Timer = null;
 | |
|                             Cobj.FuHua4_Timer = TimeSTL("FuHua4_Timer", JsonObj.Get("JiShiQi->FuHua4_TouSonShiJian"));
 | |
|                             Cobj.FuHua4_Timer.Start();
 | |
|                             Cobj.FuHua4_Object = {
 | |
|                                 Name = "FuHua4",
 | |
|                                 NameImg = 12,
 | |
|                                 X = 600,
 | |
|                                 Y = 340,
 | |
|                                 BloodType = 1,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Reload = 1,
 | |
|                                 Party = gParty,
 | |
|                                 Timer = Cobj.FuHua4_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaTouSong_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua4_TouSonShiJian"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             //如果孵化4时间容器存在则先删除他
 | |
|                             if (Cobj.FuHua4_Timer) Cobj.FuHua4_Timer.Delete();
 | |
|                             Cobj.FuHua4_Timer = null;
 | |
|                             Cobj.FuHua4_Timer = TimeSTL("FuHua4_Timer", JsonObj.Get("JiShiQi->FuHua4_FuHuoShiJian"));
 | |
|                             Cobj.FuHua4_Timer.Start();
 | |
|                             Cobj.FuHua4_Object = {
 | |
|                                 Name = "FuHua4",
 | |
|                                 X = 600,
 | |
|                                 Y = 340,
 | |
|                                 ClearNumber = 0,
 | |
|                                 Reload = 1,
 | |
|                                 Timer = Cobj.FuHua4_Timer,
 | |
|                                 TimeMax = JsonObj.Get("JiShiQi->FuHuaFuHuo_Zong"),
 | |
|                                 TimeOffset = JsonObj.Get("JiShiQi->FuHua4_FuHuoShiJian"),
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //心脏收包
 | |
|                 {
 | |
|                     Cobj.XinZang_Object = null;
 | |
|                     if (JsonObj.Get("XinZang_State") != false) {
 | |
|                         //得到副本剩余生命
 | |
|                         local gClearNumber = 5 - JsonObj.Get("XinZang_State");
 | |
|                         //如果副本还没有死亡
 | |
|                         if (gClearNumber != 0) {
 | |
|                             local gParty = [];
 | |
|                             local Size = JsonObj.Get("XinZang_Party->size");
 | |
|                             for (local i = 0; i < Size; i++) {
 | |
|                                 local PartyInfo = [];
 | |
|                                 PartyInfo.append(JsonObj.Get("XinZang_Party->TeamInfoVos->" + i + "->PartyID"));
 | |
|                                 PartyInfo.append(JsonObj.Get("XinZang_Party->TeamInfoVos->" + i + "->PlayerJob"));
 | |
|                                 PartyInfo.append(JsonObj.Get("XinZang_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
 | |
|                                 PartyInfo.append(JsonObj.Get("XinZang_Party->TeamInfoVos->" + i + "->size"));
 | |
|                                 gParty.append(PartyInfo);
 | |
|                             }
 | |
|                             Cobj.XinZang_Object = {
 | |
|                                 Name = "xinzang",
 | |
|                                 NameImg = 8,
 | |
|                                 X = 336,
 | |
|                                 Y = 300,
 | |
|                                 BloodType = 5,
 | |
|                                 ClearNumber = gClearNumber,
 | |
|                                 Party = gParty,
 | |
|                                 DungeonUID = 12010,
 | |
|                                 //Ani = 16,
 | |
|                                 NengLiang = JsonObj.Get("XinZang_NengLiang"),
 | |
|                             };
 | |
|                         } else {
 | |
|                             Cobj.XinZang_Object = {
 | |
|                                 Name = "xinzang",
 | |
|                                 X = 336,
 | |
|                                 Y = 145,
 | |
|                                 ClearNumber = 0,
 | |
|                             };
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 //感染收包
 | |
|                 local Ganran = JsonObj.Get("GanRanId");
 | |
|                 if (Ganran) {
 | |
|                     switch (Ganran) {
 | |
|                         case 1:
 | |
|                             Cobj.FuHua1_Object.rawset("GanRan", 1);
 | |
|                             break;
 | |
|                         case 2:
 | |
|                             Cobj.FuHua2_Object.rawset("GanRan", 1);
 | |
|                             break;
 | |
|                         case 3:
 | |
|                             Cobj.FuHua3_Object.rawset("GanRan", 1);
 | |
|                             break;
 | |
|                         case 4:
 | |
|                             Cobj.FuHua4_Object.rawset("GanRan", 1);
 | |
|                             break;
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //收取奖励包
 | |
|     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("ANTONDUNGEONINFOCONTROL")) {
 | |
|             local Cobj = RootTab["ANTONDUNGEONINFOCONTROL"];
 | |
|             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("Anton_Reward_Timer_Object", 10000);
 | |
|             Cobj.Reward_Timer_Object.Delete();
 | |
|             Cobj.Reward_Timer_Object = null;
 | |
|             Cobj.Reward_Timer_Object = TimeSTL("Anton_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("ANTONDUNGEONINFOCONTROL")) {
 | |
|             RootTab["ANTONDUNGEONINFOCONTROL"].State = 0;
 | |
|             RootTab["ANTONDUNGEONINFOCONTROL"].DrawStartAniMark = true;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //攻坚二阶段开始事件
 | |
|     function StartTwoR(chunk) {
 | |
|         Sout("\n\n收到攻坚2阶段开始包  :\n  %L", chunk)
 | |
|         local RootTab = getroottable();
 | |
|         if (RootTab.rawin("ANTONDUNGEONINFOCONTROL")) {
 | |
|             RootTab["ANTONDUNGEONINFOCONTROL"].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("ANTONDUNGEONINFOCONTROL")) {
 | |
|             local Cobj = RootTab["ANTONDUNGEONINFOCONTROL"];
 | |
|             if (sq_GetCurrentModuleType() == 3) {
 | |
|                 local AntonBackTown = Json_STL("AntonBackTown");
 | |
|                 AntonBackTown.Put("op", 1059);
 | |
|                 local str = AntonBackTown.GetString();
 | |
|                 L_sq_SendPackType(130);
 | |
|                 L_sq_SendPackWChar(str);
 | |
|                 L_sq_SendPack();
 | |
|                 AntonBackTown.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["ANTONDUNGEONINFOCONTROL"];
 | |
|         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);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     constructor() {
 | |
|         //读取安图恩攻坚信息包
 | |
|         Pack_Control.rawset(1052, ReadAntonDungeonInfoPack);
 | |
|         //攻坚开始传送玩家事件
 | |
|         Pack_Control.rawset(1044, StartMovePlayer);
 | |
|         //攻坚二阶段开始事件
 | |
|         Pack_Control.rawset(1046, StartTwoR);
 | |
|         //退出攻坚队传送玩家事件
 | |
|         Pack_Control.rawset(1038, ExitMovePlayer);
 | |
|         //队长进入副本事件
 | |
|         Pack_Control.rawset(1054, PartyMSelectDungeon);
 | |
|         //队长返回城镇事件
 | |
|         Pack_Control.rawset(1056, PartyMReturnTown);
 | |
|         //收取奖励包
 | |
|         Pack_Control.rawset(1072, ReadReward);
 | |
|         //收取火山怪物投放包
 | |
|         Pack_Control.rawset(1082, HuoShanMonsterEvent);
 | |
|         //初始化判断孵化进入操作表
 | |
|         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 = AntonButtonPro(obj, "AntonDungeonOpenMainButtonObject", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 103, 22, 0);
 | |
|             OpenMainButtonObject.SetRectEnble(true, "AntonDungeonOpenMainButtonObjectr", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 1);
 | |
|             OpenMainButtonObject.SetCustomClickEnble(true, "AntonDungeonOpenMainButtonObjectc", 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["ANTONTOWNMAINCONTROLLIST"].NowSelectTeamFunc = null; //把功能选择页关掉
 | |
|                 RootTab["ANTONTOWNMAINCONTROLLIST"].NowSelectTeam = null; //把功能选择页关掉
 | |
|                 RootTab["ANTONTEAMMAINBUTTON"].State = 0;
 | |
|                 RootTab["ANTONTEAMMAINBUTTON"].WindowSwitch = false;
 | |
| 
 | |
|             }
 | |
|         }
 | |
|         if (PageState == 1 && !sq_GetPopupWindowMainCotrol(267)) {
 | |
|             PageState = 0;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     //绘制副本对象
 | |
|     function DrawDungeonObjInfo(obj, DgnObj) {
 | |
|         //如果副本已经死亡
 | |
|         if (DgnObj.ClearNumber == 0) {
 | |
|             //绘制副本血槽背景
 | |
|             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/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 {
 | |
|             //绘制副本血槽背景
 | |
|             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/anton/new/newopendungeonname.ani", DgnObj.X + 42, DgnObj.Y - 16, DgnObj.NameImg, "安图恩攻坚战况副本血槽名称" + DgnObj.Name);
 | |
|             //绘制副本血量
 | |
|             //火山单独绘制
 | |
|             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, "安图恩攻坚战况副本爆炸时间进度条" + 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 AntonSelectDungeon = Json_STL("AntonSelectDungeon");
 | |
|             AntonSelectDungeon.Put("op", 1051);
 | |
|             AntonSelectDungeon.Put("DungeonUID", DgnObj.DungeonUID);
 | |
|             local str = AntonSelectDungeon.GetString();
 | |
|             L_sq_SendPackType(130);
 | |
|             L_sq_SendPackWChar(str);
 | |
|             L_sq_SendPack();
 | |
|             AntonSelectDungeon.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 = AntonButtonPro(obj, "AntonPartyMove_SelectDungeon_Button", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 6);
 | |
|             PartyMove_SelectDungeon_Button.SetRectEnble(true, "AntonPartyMove_SelectDungeon_Buttonr", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 7);
 | |
|             PartyMove_SelectDungeon_Button.SetCustomClickEnble(true, "AntonPartyMove_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 = AntonButtonPro(obj, "AntonPartyMove_ReturnTown_Button", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 9);
 | |
|             PartyMove_ReturnTown_Button.SetRectEnble(true, "AntonPartyPartyMove_ReturnTown_Buttonr", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 10);
 | |
|             PartyMove_ReturnTown_Button.SetCustomClickEnble(true, "AntonPartyPartyMove_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 TryAntonBackTown = Json_STL("TryAntonBackTown");
 | |
|                 TryAntonBackTown.Put("op", 1053);
 | |
|                 local str = TryAntonBackTown.GetString();
 | |
|                 L_sq_SendPackType(130);
 | |
|                 L_sq_SendPackWChar(str);
 | |
|                 L_sq_SendPack();
 | |
|                 TryAntonBackTown.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/anton/new/starteff.ani", 250, 210, "开始攻坚标题背景eff");
 | |
|             local ani1 = BasicsDrawTool.T_DrawDynamicAni(obj, "common/anton/new/start" + Type + ".ani", 250, 210 + 26, "开始攻坚标题背景1");
 | |
|             if (sq_GetAnimationFrameIndex(ani1) >= 28) {
 | |
|                 sq_Rewind(anieff);
 | |
|                 sq_Rewind(ani1);
 | |
|                 DrawStartAniMark = false;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制攻坚队攻坚信息
 | |
|     function DrawAntonPartyInfo(obj) {
 | |
|         //绘制主界面背景
 | |
|         T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X, Y + 20, 0, "安图恩攻坚战况主界面背景");
 | |
|         //绘制主界面背景乌龟
 | |
|         T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X + 25, Y + 70, 3, "安图恩攻坚战况主界面背景乌龟");
 | |
|         //绘制主界面小队移动类
 | |
|         DrawPartyMoveClss(obj);
 | |
| 
 | |
|         //1阶段
 | |
|         if (State == 0) {
 | |
|             //黑雾之源对象绘制
 | |
|             if (HeiWuObject) DrawDungeonObjInfo(obj, HeiWuObject);
 | |
|             //震颤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 (NengLiangObject) DrawDungeonObjInfo(obj, NengLiangObject);
 | |
|             //黑色火山对象绘制
 | |
|             if (HuoShanObject) DrawDungeonObjInfo(obj, HuoShanObject);
 | |
|             //孵化1对象绘制
 | |
|             if (FuHua1_Object) DrawDungeonObjInfo(obj, FuHua1_Object);
 | |
|             //孵化2对象绘制
 | |
|             if (FuHua2_Object) DrawDungeonObjInfo(obj, FuHua2_Object);
 | |
|             //孵化3对象绘制
 | |
|             if (FuHua3_Object) DrawDungeonObjInfo(obj, FuHua3_Object);
 | |
|             //孵化4对象绘制
 | |
|             if (FuHua4_Object) DrawDungeonObjInfo(obj, FuHua4_Object);
 | |
|             //心脏对象绘制
 | |
|             if (XinZang_Object) DrawDungeonObjInfo(obj, XinZang_Object);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置鼠标事件类型
 | |
|     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 AntonFHMoveDungeon = Json_STL("AntonFHMoveDungeon");
 | |
|                 AntonFHMoveDungeon.Put("op", 1057);
 | |
|                 AntonFHMoveDungeon.Put("DungeonUID", MapIndexTable[MapIndex]);
 | |
|                 local str = AntonFHMoveDungeon.GetString();
 | |
|                 L_sq_SendPackType(130);
 | |
|                 L_sq_SendPackWChar(str);
 | |
|                 L_sq_SendPack();
 | |
|                 AntonFHMoveDungeon.Delete();
 | |
|                 MapMoveMark = true;
 | |
|             } else if (Mark == false) MapMoveMark = false;
 | |
|         } else {
 | |
|             MapMoveMark = false;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制透明度静态图片
 | |
|     function Anton_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 DrawReward(obj, Time, Reward_Object, AllReward_Object, Reward_Info) {
 | |
|         local PassTime = Reward_Info[0];
 | |
|         local Coin = Reward_Info[1];
 | |
| 
 | |
|         //绘制背景图
 | |
|         Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X, Y, 0, "安图恩翻牌主界面背景", 230);
 | |
|         //绘制阶段状态
 | |
|         local Reani = 1;
 | |
|         if(State == 4)Reani = 24;
 | |
|         Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 300, Y + 40, Reani, "安图恩翻牌阶段状态", 250);
 | |
|         //绘制成功标志
 | |
|         local Rate = sq_GetAccel(400, 100, Time, 500, false);
 | |
|         T_DrawStayAniRate(obj, "common/anton/new/newreward.ani", X + 323, Y + 110, 2, "安图恩翻牌成功标志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);
 | |
|             Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 115 + Xpos, Y + 200, 3, "安图恩翻牌阶段状态", 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/anton/new/newtime.ani", X + Xpos + 538 - 300 + (i * 18), Y + 51 + 164, Hours.slice(0 + i, 1 + i).tointeger(), "安图恩奖励部分时间时" + i);
 | |
|                 T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + Xpos + 600 - 300 + (i * 18), Y + 51 + 164, minutes.slice(0 + i, 1 + i).tointeger(), "安图恩奖励部分时间分" + i);
 | |
|                 T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + Xpos + 660 - 300 + (i * 18), Y + 51 + 164, seconds.slice(0 + i, 1 + i).tointeger(), "安图恩奖励部分时间分" + i);
 | |
|             }
 | |
|             T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + Xpos + 284, Y + 51 + 164, 10, "安图恩奖励部分时间时点");
 | |
|             T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + Xpos + 348, Y + 51 + 164, 10, "安图恩奖励部分时间时点");
 | |
| 
 | |
|             for (local z = 0; z < Coin.tostring().len(); z++) {
 | |
|                 T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + Xpos + 520 + (z * 18), Y + 51 + 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 = 11;
 | |
|                 if (i >= CradTab.len()) {
 | |
|                     //绘制卡牌背景图
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 94 + (153 * i), Y + 380, BackGroundAniIndex, "安图恩翻牌卡片界面背景", Alpha);
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 160 + (153 * i), Y + 416, 19, "安图恩翻牌无卡片背景", Alpha);
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 160 + (153 * i), Y + 416, 20, "安图恩翻牌无卡片背景Eff", Alpha);
 | |
|                     continue;
 | |
|                 }
 | |
|                 if (CradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 21;
 | |
|                 //绘制卡牌背景图
 | |
|                 Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 94 + (153 * i), Y + 380, BackGroundAniIndex, "安图恩翻牌卡片界面背景", Alpha);
 | |
|                 //绘制角色标记
 | |
|                 local SetFlagAniIndex = 9;
 | |
|                 SetFlagAniIndex += CradTab[i].SetFlagAniIndex;
 | |
|                 Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + 97 + (153 * i), Y + 330, SetFlagAniIndex, "安图恩翻牌卡片界面人物框" + SetFlagAniIndex, Alpha);
 | |
|                 //绘制角色头像
 | |
|                 Anton_DrawStayAniAlpha(obj, "common/anton/face/" + CradTab[i].PlayerJob + "/" + (CradTab[i].PlayerJobEx % 16) + ".ani", X + 102 + (153 * i), Y + 334, 0, "翻牌安图恩头像编号" + CradTab[i].PlayerJob + CradTab[i].PlayerJobEx, Alpha);
 | |
|                 if (Time >= 2000) {
 | |
|                     //绘制角色名字
 | |
|                     if (Time < 3000) L_Code_STL(CradTab[i].Name, X + 145 + (153 * i), Y + 342, 0xFFffffff, 1);
 | |
|                     //绘制道具边框
 | |
|                     if (Time < 3000) T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + 153 + (153 * i), Y + 412, CradTab[i].ItemGrade + 12, "安图恩翻牌卡片道具边框" + CradTab[i].ItemGrade);
 | |
|                     //绘制道具
 | |
|                     if (Time < 3000) L_Sq_DrawItem(X + 156 + (153 * i), Y + 415, CradTab[i].ItemId, CradTab[i].ItemCount, 0, 0, 0);
 | |
|                     //绘制道具名字
 | |
|                     if (Time < 3000) L_Code_STL(CradTab[i].ItemName, X + 167 + (153 * i) - BasicsDrawTool.GetOffserFromLen(CradTab[i].ItemName, 1.5), Y + 450, 0xffffffff, 1);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         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 < 20; i++) {
 | |
|                 local BackGroundAniIndex = 11;
 | |
|                 if (i >= AllCradTab.len()) {
 | |
|                     //绘制卡牌背景图
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + Xoffset + 94 + (155 * (i % 5)), Y + Yoffset + 380 + (100 * (i / 5)), BackGroundAniIndex, "安图恩翻牌卡片界面背景", Alpha);
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + Xoffset + 160 + (155 * (i % 5)), Y + Yoffset + 416 + (100 * (i / 5)), 19, "安图恩翻牌无卡片背景", Alpha);
 | |
|                     Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + Xoffset + 160 + (155 * (i % 5)), Y + Yoffset + 416 + (100 * (i / 5)), 20, "安图恩翻牌无卡片背景Eff", Alpha);
 | |
|                     continue;
 | |
|                 }
 | |
|                 if (AllCradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 21;
 | |
|                 //绘制卡牌背景图
 | |
|                 Anton_DrawStayAniAlpha(obj, "common/anton/new/newreward.ani", X + Xoffset + 94 + (155 * (i % 5)), Y + Yoffset + 380 + (100 * (i / 5)), BackGroundAniIndex, "安图恩翻牌卡片界面背景", Alpha);
 | |
|                 //绘制角色头像
 | |
|                 Anton_DrawStayAniAlpha(obj, "common/anton/face/" + AllCradTab[i].PlayerJob + "/" + (AllCradTab[i].PlayerJobEx % 16) + ".ani", X + Xoffset + 102 + (155 * (i % 5)), Y + Yoffset + 388 + (100 * (i / 5)), 0, "翻牌安图恩头像编号" + AllCradTab[i].PlayerJob + AllCradTab[i].PlayerJobEx, Alpha);
 | |
|                 if (Time >= 4400) {
 | |
|                     //绘制角色名字
 | |
|                     L_Code_STL(AllCradTab[i].Name, X + Xoffset + 137 + (155 * (i % 5)), Y + Yoffset + 394 + (100 * (i / 5)), 0xFF9bc8e6, 1);
 | |
|                     //绘制道具边框
 | |
|                     T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + Xoffset + 153 + (155 * (i % 5)), Y + Yoffset + 417 + (100 * (i / 5)), AllCradTab[i].ItemGrade + 12, "安图恩翻牌卡片道具边框" + AllCradTab[i].ItemGrade);
 | |
|                     //绘制道具
 | |
|                     L_Sq_DrawItem(X + Xoffset + 156 + (155 * (i % 5)), Y + Yoffset + 420 + (100 * (i / 5)), AllCradTab[i].ItemId, AllCradTab[i].ItemCount, 0, 0, 0);
 | |
|                     //绘制道具名字
 | |
|                     L_Code_STL(AllCradTab[i].ItemName, X + Xoffset + 167 + (155 * (i % 5)) - BasicsDrawTool.GetOffserFromLen(AllCradTab[i].ItemName, 1.5), Y + Yoffset + 455 + (100 * (i / 5)), 0xffffffff, 1);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function Run(obj) {
 | |
|         if (State < 0) return;
 | |
| 
 | |
|         DrawStartAni(obj, State);
 | |
| 
 | |
|         //如果被人已经通关了那么寻找时间返回城镇
 | |
|         if (ReturnTwonFlag == 1 && sq_GetCurrentModuleType() == 3 && obj.getState() != 0) {
 | |
|             local AntonFlagBackTown = Json_STL("AntonFlagBackTownJson");
 | |
|             AntonFlagBackTown.Put("op", 1067);
 | |
|             local str = AntonFlagBackTown.GetString();
 | |
|             L_sq_SendPackType(130);
 | |
|             L_sq_SendPackWChar(str);
 | |
|             L_sq_SendPack();
 | |
|             AntonFlagBackTown.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;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function Draw(obj) {
 | |
|         //如果页面被打开 绘制攻坚队攻坚信息
 | |
|         if (PageState == 1 && (State == 0 || State == 3)) DrawAntonPartyInfo(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);
 | |
|     }
 | |
| }
 | |
| 
 | |
| local RootTab = getroottable();
 | |
| RootTab.rawdelete("ANTONDUNGEONINFOCONTROL");
 | |
| 
 | |
| function AntonDungeonInfoControlFunc(obj) {
 | |
|     local RootTab = getroottable();
 | |
|     if (RootTab.rawin("ANTONDUNGEONINFOCONTROL") == false) {
 | |
|         local ANTONDUNGEONINFOCONTROLOBJ = AntonDungeonInfoControl_C();
 | |
|         RootTab.rawset("ANTONDUNGEONINFOCONTROL", ANTONDUNGEONINFOCONTROLOBJ);
 | |
|     }
 | |
|     RootTab["ANTONDUNGEONINFOCONTROL"].Run(obj);
 | |
| } |