997 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			997 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:Rindro_LukeFightSituation.nut
 | |
| 路径:Plugins/Rindro_Luke/Rindro_LukeFightSituation.nut
 | |
| 创建日期:2024-04-10	21:28
 | |
| 文件用途:卢克攻坚战况
 | |
| */
 | |
| //复选框
 | |
| class RinDro_Luke_LenheartNewUI_SwitchButton extends LenheartNewUI_CommonUi {
 | |
|     //透明度
 | |
|     AlphaValue = 1.0;
 | |
|     State = 0;
 | |
|     ImgIndex = null;
 | |
| 
 | |
|     constructor(X, Y) {
 | |
|         LenheartNewUI_CommonUi.constructor(X, Y, 14, 15);
 | |
|     }
 | |
| 
 | |
|     function SyncAlpha(Value) {
 | |
|         AlphaValue = Value;
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         //不可用
 | |
|         if (State == 8) {
 | |
|             L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 3 : 141, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|         } else {
 | |
|             //悬停
 | |
|             if (isLBDown) {
 | |
|                 L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|             }
 | |
|             //按下
 | |
|             else if (isInRect) {
 | |
|                 if (State == 0)
 | |
|                     L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 1 : 139, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|                 if (State == 1)
 | |
|                     L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|             }
 | |
|             //普通
 | |
|             else {
 | |
|                 if (State == 0)
 | |
|                     L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex : 138, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|                 if (State == 1)
 | |
|                     L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
| 
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| class Rindro_LukeFightSituationC extends LenheartNewUI_Windows {
 | |
| 
 | |
|     luke_game_navigation = Rindro_Image("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img");
 | |
|     luke_state_full = Rindro_Image("interface2/raid/luke/luke_game_navigation/luke_state_full/luke_state_full.img");
 | |
|     newantondungeoninfo = Rindro_Image("hud/newantondungeoninfo.img");
 | |
|     newantondungeoninfo2 = Rindro_Image("hud/newantondungeoninfo2.img");
 | |
| 
 | |
|     Visible = false;
 | |
|     //调试模式
 | |
|     // DeBugMode = true;
 | |
|     //透明度
 | |
|     AlphaValue = 1.0;
 | |
| 
 | |
|     //攻坚战况信息
 | |
|     Info = null;
 | |
|     //战况消息外部窗口
 | |
|     ExternalWindow = null;
 | |
| 
 | |
|     //选择进入地下城指针状态
 | |
|     SelectDgnMarkFlag = 0;
 | |
| 
 | |
|     //X Y 裁切开始X Y 裁切结束X  Y
 | |
|     OffsetArr = [
 | |
|         //男鬼剑士
 | |
|         [56, 112, 220, 222],
 | |
|         //女格斗家
 | |
|         [54, 103, 240, 278],
 | |
|         //男神枪手
 | |
|         [55, 130, 236, 246],
 | |
|         //女魔法师
 | |
|         [57, 88, 234, 291],
 | |
|         //男圣职者
 | |
|         [57, 124, 208, 190],
 | |
|         //女神枪手
 | |
|         [56, 119, 226, 209],
 | |
|         //暗夜使者
 | |
|         [56, 117, 225, 212],
 | |
|         //男格斗家
 | |
|         [56, 118, 233, 212],
 | |
|         //男魔法师
 | |
|         [54, 103, 236, 276],
 | |
|         //黑暗武士
 | |
|         [56, 112, 220, 222],
 | |
|         //缔造者
 | |
|         [57, 88, 234, 291],
 | |
|     ]
 | |
| 
 | |
|     MapIndexTable = null; //判断孵化进入的操作表
 | |
|     MapMoveMark = false; //副本中移动的标志
 | |
|     HuoShanMonserTable = null; //火山怪物投放表
 | |
| 
 | |
|     //获取攻坚信息
 | |
|     function GetInfo() {
 | |
|         local T = {
 | |
|             op = 20084053,
 | |
|         }
 | |
|         SendPackEx(T);
 | |
|     }
 | |
| 
 | |
|     //火山怪物投放包
 | |
|     function HuoShanMonsterEvent(Chunk) {
 | |
|         local Info = Json.Decode(Chunk);
 | |
|         if (sq_GetCurrentModuleType() == 3) {
 | |
|             local obj = sq_GetMyMasterCharacter();
 | |
|             obj = sq_ObjectToSQRCharacter(obj);
 | |
|             obj.sq_SendCreatePassiveObjectPacket(HuoShanMonserTable[Info.FuHuaId], 0, 120, 1, 0);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置伤害值回调
 | |
|     function SetCharacterDamageRate(Chunk) {
 | |
|         local Jso = Json.Decode(Chunk);
 | |
|         local Rate = Jso.damageMarkup.tofloat() / 100.0;
 | |
|         //伤害设置
 | |
|         if (getroottable().rawin("LenheartRaidModuleDamageRate")) {
 | |
|             getroottable()["LenheartRaidModuleDamageRate"] = Rate;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function setLukeRaidBoss_DamageHp(Chunk) {
 | |
|         local Jso = Json.Decode(Chunk);
 | |
|         local obj = sq_GetMyMasterCharacter();
 | |
|         obj = sq_ObjectToSQRCharacter(obj);
 | |
|         local mob = LukeRaid_getMonsterObject(obj, 664670);
 | |
|         if (mob) {
 | |
|             mob = sq_GetCNRDObjectToActiveObject(mob);
 | |
|             local mobMaxhp = mob.getHpMax();
 | |
|             local mobhp = mob.getHp();
 | |
|             local newhp = mobhp - (mobMaxhp.tofloat() * (Jso.ReduceHp.tofloat() / 100.0)).tointeger();
 | |
|             mob.setHp(newhp, null, true);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
 | |
|         Childrens = [];
 | |
|         Pack_Control.rawset(20084042, setLukeRaidBoss_DamageHp.bindenv(this));
 | |
|         //初始化判断孵化进入操作表
 | |
|         MapIndexTable = {};
 | |
|         MapIndexTable.rawset(33100, 7);
 | |
|         MapIndexTable.rawset(33103, 8);
 | |
|         MapIndexTable.rawset(33119, 9);
 | |
|         MapIndexTable.rawset(33116, 10);
 | |
|         //火山怪物投放表
 | |
|         HuoShanMonserTable = {};
 | |
|         HuoShanMonserTable.rawset(1, 202210052);
 | |
|         HuoShanMonserTable.rawset(2, 202210053);
 | |
|         HuoShanMonserTable.rawset(3, 202210054);
 | |
|         HuoShanMonserTable.rawset(4, 202210055);
 | |
| 
 | |
|         Pack_Control.rawset(20084040, HuoShanMonsterEvent.bindenv(this));
 | |
|         Pack_Control.rawset(20084030, SetCharacterDamageRate.bindenv(this));
 | |
| 
 | |
|         //注册控件
 | |
|         RegisterWidget();
 | |
| 
 | |
|         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
 | |
| 
 | |
|         ExternalWindow = Rindro_Luke_FightSituatioExternalC("卢克攻坚战况表外部窗口", getroottable().Rindro_Scr_Width.tointeger() - 103, 8, 103, 22, 0);
 | |
|         ExternalWindow.AddParentWin(this);
 | |
| 
 | |
|         GetInfo();
 | |
| 
 | |
|     }
 | |
| 
 | |
|     //副本List
 | |
|     DgnList = null;
 | |
|     //初始化信息
 | |
|     function InitInfo(InfoObj) {
 | |
|         Info = InfoObj;
 | |
|         //取出副本信息
 | |
|         InfoObj = InfoObj.dunList;
 | |
| 
 | |
|         if ("DanSheng_Buff" in Info) DanShengBuffObject = Info.DanSheng_Buff; //诞生圣所BUFF对象
 | |
|         if ("ManYan_Buff" in Info) ManYanBuffObject = Info.ManYan_Buff; //蔓延圣所BUFF对象
 | |
|         if ("YanMie_Buff" in Info) YanMieBuffObject = Info.YanMie_Buff; //湮灭圣所BUFF对象
 | |
| 
 | |
|         DgnList = [];
 | |
|         //当前构造时间
 | |
|         local Time_C = Clock();
 | |
| 
 | |
|         foreach(DgnObj in InfoObj) {
 | |
|             //诞生
 | |
|             if (DgnObj.id == 1) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 100;
 | |
|                 DgnObj.Y <- 226;
 | |
|                 DgnObj.BloodType <- 3;
 | |
|                 DgnObj.BloodImg <- 2;
 | |
|                 DgnObj.NameIdx <- 0;
 | |
|             }
 | |
|             //湮灭
 | |
|             else if (DgnObj.id == 2) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.X <- 448;
 | |
|                 DgnObj.Y <- 95;
 | |
|                 DgnObj.BloodType <- 3;
 | |
|                 DgnObj.BloodImg <- 2;
 | |
|                 DgnObj.NameIdx <- 1;
 | |
|             }
 | |
|             //蔓延
 | |
|             else if (DgnObj.id == 3) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 448;
 | |
|                 DgnObj.Y <- 376;
 | |
|                 DgnObj.BloodType <- 3;
 | |
|                 DgnObj.BloodImg <- 2;
 | |
|                 DgnObj.NameIdx <- 2;
 | |
|             }
 | |
|             //光之入口
 | |
|             else if (DgnObj.id == 4) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 170;
 | |
|                 DgnObj.Y <- 144;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 9;
 | |
|             }
 | |
|             //暗之入口
 | |
|             else if (DgnObj.id == 5) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 170;
 | |
|                 DgnObj.Y <- 314;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 10;
 | |
|             }
 | |
|             //光祭坛
 | |
|             else if (DgnObj.id == 6) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 310;
 | |
|                 DgnObj.Y <- 170;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 3;
 | |
|             }
 | |
|             //暗祭坛
 | |
|             else if (DgnObj.id == 7) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 310;
 | |
|                 DgnObj.Y <- 288;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 4;
 | |
|             }
 | |
|             //力量
 | |
|             else if (DgnObj.id == 8) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 460;
 | |
|                 DgnObj.Y <- 170;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 5;
 | |
|             }
 | |
|             //智慧
 | |
|             else if (DgnObj.id == 9) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 460;
 | |
|                 DgnObj.Y <- 288;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 6;
 | |
|             }
 | |
|             //能源控制
 | |
|             else if (DgnObj.id == 10) {
 | |
|                 DgnObj.BackGroundIdx <- 6;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 385;
 | |
|                 DgnObj.Y <- 229;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.NameIdx <- 18;
 | |
|                 DgnObj.type <- 1;
 | |
|             }
 | |
|             //光圣殿
 | |
|             else if (DgnObj.id == 11) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 520;
 | |
|                 DgnObj.Y <- 84;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 12;
 | |
|             }
 | |
|             //暗圣殿
 | |
|             else if (DgnObj.id == 12) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 520;
 | |
|                 DgnObj.Y <- 378;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 14;
 | |
|             }
 | |
|             //光王座
 | |
|             else if (DgnObj.id == 13) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 520;
 | |
|                 DgnObj.Y <- 200;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 16;
 | |
|             }
 | |
|             //暗王座
 | |
|             else if (DgnObj.id == 14) {
 | |
|                 DgnObj.BackGroundIdx <- 3;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 520;
 | |
|                 DgnObj.Y <- 200;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.NameIdx <- 16;
 | |
|             }
 | |
|             //能源储藏
 | |
|             else if (DgnObj.id == 15) {
 | |
|                 DgnObj.BackGroundIdx <- 6;
 | |
|                 DgnObj.Timer <- Time_C;
 | |
|                 DgnObj.X <- 385 + 230;
 | |
|                 DgnObj.Y <- 229;
 | |
|                 DgnObj.BloodImg <- 3;
 | |
|                 DgnObj.BloodType <- 1;
 | |
|                 DgnObj.NameIdx <- 18;
 | |
|                 DgnObj.type <- 1;
 | |
|             }
 | |
|             DgnList.append(clone(DgnObj));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     BaseSituationBtn = null;
 | |
|     //简易战况表是否开启
 | |
|     BaseSituationFlag = 1;
 | |
| 
 | |
|     function RegisterWidget() {
 | |
|         //进入地下城
 | |
|         local GoDgnButton = LenheartNewUI_BaseButton(578, 519, 95, 29, "hud/newantondungeonbutton.img", 6);
 | |
|         GoDgnButton.OnClick = function() {
 | |
|             SelectDgnMarkFlag = 1;
 | |
|         }.bindenv(this);
 | |
|         Childrens.append(GoDgnButton);
 | |
| 
 | |
|         //返回城镇
 | |
|         local ReturnTownButton = LenheartNewUI_BaseButton(678, 519, 95, 29, "hud/newantondungeonbutton.img", 9);
 | |
|         ReturnTownButton.OnClick = function() {
 | |
|             local T = {
 | |
|                 op = 20084305,
 | |
|             }
 | |
|             SendPackEx(T);
 | |
|         }.bindenv(this);
 | |
|         Childrens.append(ReturnTownButton);
 | |
| 
 | |
|         //简易战况表复选框
 | |
|         BaseSituationBtn = RinDro_Luke_LenheartNewUI_SwitchButton(220, 20);
 | |
|         BaseSituationBtn.State = 1;
 | |
|         BaseSituationBtn.ImgIndex = 358;
 | |
|         BaseSituationBtn.Width = 19;
 | |
|         BaseSituationBtn.Height = 19;
 | |
|         BaseSituationBtn.OnClick = function() {
 | |
|             switch (BaseSituationFlag) {
 | |
|                 case 0:
 | |
|                     BaseSituationFlag = 1;
 | |
|                     break;
 | |
|                 case 1:
 | |
|                     BaseSituationFlag = 0;
 | |
|                     break;
 | |
|             }
 | |
|             BaseSituationBtn.State = BaseSituationFlag;
 | |
|         }.bindenv(this);
 | |
|         AddChild(BaseSituationBtn);
 | |
| 
 | |
|         // //关闭按钮
 | |
|         // local CloseButton = LenheartNewUI_BaseButton(696, 20, 103, 22, "hud/newantondungeonbutton.img", 3);
 | |
|         // CloseButton.OnClick = function() {
 | |
|         //     CloseWindow();
 | |
|         //     CloseFlag = Clock();
 | |
|         // }.bindenv(this);
 | |
|         // Childrens.append(CloseButton);
 | |
|     }
 | |
| 
 | |
|     function DrawParty() {
 | |
|         //绘制待命房间
 | |
|         luke_game_navigation.DrawPng(33, X + 20, Y + 488);
 | |
|         //绘制我的队伍
 | |
|         if (RinDro_Luke_Obj.MyRaidTeam) {
 | |
|             local Mt = RinDro_Luke_Obj.MyRaidTeam;
 | |
|             if (!Mt) return;
 | |
|             local PartyMaster;
 | |
|             local PosI = 0;
 | |
|             foreach(index, PartyMasterIcon in Mt.MembersList) {
 | |
|                 if (!("Standby" in PartyMasterIcon.InfoObj) || !PartyMasterIcon.InfoObj.Standby) continue;
 | |
|                 local XOffset = 0;
 | |
|                 local YOffset = 9 + (index * 22);
 | |
| 
 | |
|                 //绘制队长头像
 | |
|                 local AXpos = X + 26 + ((PosI % 10) * 24);
 | |
|                 local AYpos = Y + 513 + ((PosI / 10) * 20);
 | |
|                 PartyMasterIcon.InfoObj.EquVos.DrawFace(AXpos, AYpos);
 | |
|                 PosI++;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     PartyBackground = [
 | |
|         [10, -65, 24, -60, 25, 25],
 | |
|         [9, -65, 0, -60, 1, 1],
 | |
|         [11, -65, 42, -60, 48, 49],
 | |
|         [8, -65, -24, -60, -24, -23],
 | |
|         [12, -65, 64, -60, 71, 72],
 | |
|     ]
 | |
|     //绘制副本
 | |
|     function DrawDungeon(DgnObj) {
 | |
| 
 | |
|         //普通类型副本
 | |
|         if (DgnObj.type == 0) {
 | |
|             //绘制血条
 | |
|             if ("hp" in DgnObj && "BloodType" in DgnObj) {
 | |
|                 //已经死亡
 | |
|                 if (DgnObj.hp == DgnObj.BloodType) {
 | |
|                     //绘制副本血槽背景
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", DgnObj.BackGroundIdx, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 6, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|                 } else {
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 10, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|                     //绘制副本血槽背景
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", DgnObj.BackGroundIdx, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 4, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|                     //得出血条类型需要的img
 | |
|                     local ImgIdx = DgnObj.BloodImg;
 | |
|                     //绘制血条
 | |
|                     DrawImg("hud/newlukedungeonblood.img", ImgIdx - DgnObj.hp, X + DgnObj.X, Y + DgnObj.Y);
 | |
|                     //绘制副本名称
 | |
|                     DrawImg("interface2/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.img", DgnObj.NameIdx, X + DgnObj.X - 16, Y + DgnObj.Y + 70);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         //进度条类型副本
 | |
|         else if (DgnObj.type == 1) {
 | |
|             //绘制副本血槽背景
 | |
|             if ("gr" in DgnObj && DgnObj.gr == 1) {
 | |
|                 DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 18, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|             } else {
 | |
|                 DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", DgnObj.BackGroundIdx, X + DgnObj.X - 10, Y + DgnObj.Y - 11);
 | |
|             }
 | |
|             //如果存活
 | |
|             if (DgnObj.state == 0) {
 | |
|                 local Remainder = DgnObj.time - (Clock() - DgnObj.Timer);
 | |
|                 local Rate = Remainder.tofloat() / DgnObj.maxTime;
 | |
|                 local Idx = (Rate * 100.0).tointeger();
 | |
|                 if (Idx< 0) Idx = 0;
 | |
|                 if (DgnObj.maxTime == 0) Idx = 99;
 | |
|                 //绘制时间进度条
 | |
|                 DrawImg("hud/newantondungeonloading3.img", 99 - Idx, X + DgnObj.X - 4, Y + DgnObj.Y - 4);
 | |
|                 //绘制时间
 | |
|                 local ttt = (Remainder / 1000.0).tointeger();
 | |
|                 local TimeStr = ttt.tostring();
 | |
|                 if (ttt <= 0) TimeStr = "∞";
 | |
|                 L_sq_DrawCode(TimeStr, X + DgnObj.X + 35 - LenheartTextClass.GetStringLength(TimeStr) / 2, Y + DgnObj.Y + 36, sq_RGBA(255, 255, 255, 255), 0, 1);
 | |
|             } else {
 | |
|                 local Remainder = DgnObj.time - (Clock() - DgnObj.Timer);
 | |
|                 local Rate = Remainder.tofloat() / DgnObj.maxTime;
 | |
|                 local Idx = (Rate * 100.0).tointeger();
 | |
| 
 | |
|                 //绘制时间进度条
 | |
|                 L_sq_DrawImg("hud/newantondungeonloading3.img", 99 - Idx, X + DgnObj.X - 4, Y + DgnObj.Y - 4, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
| 
 | |
|                 //绘制时间
 | |
|                 local TimeStr = (Remainder / 1000.0).tointeger().tostring();
 | |
|                 L_sq_DrawCode(TimeStr, X + DgnObj.X + 35 - LenheartTextClass.GetStringLength(TimeStr) / 2, Y + DgnObj.Y + 36, sq_RGBA(255, 85, 0, 255), 0, 1);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         if (DgnObj.id == 4) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 101, X + DgnObj.X + 60, Y + DgnObj.Y + 23);
 | |
|         } else if (DgnObj.id == 5) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 102, X + DgnObj.X + 60, Y + DgnObj.Y + 18);
 | |
|         } else if (DgnObj.id == 6) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 103, X + DgnObj.X + 60, Y + DgnObj.Y + 24);
 | |
|         } else if (DgnObj.id == 7) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/luke_game_navigation.img", 104, X + DgnObj.X + 60, Y + DgnObj.Y + 24);
 | |
|         } else if (DgnObj.id == 13) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.img", 13, X + DgnObj.X - 15, Y + DgnObj.Y + 94);
 | |
|         } else if (DgnObj.id == 14) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.img", 15, X + DgnObj.X - 15, Y + DgnObj.Y + 94);
 | |
|         } else if (DgnObj.id == 15) {
 | |
|             DrawImg("interface2/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.img", 17, X + DgnObj.X - 15, Y + DgnObj.Y + 76);
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         //绘制队伍信息
 | |
|         local PartyCount = DgnObj.Party.len();
 | |
|         for (local i = 0; i< PartyCount; i++) {
 | |
|             local ImgInfo = PartyBackground[i];
 | |
|             DrawImg("hud/newantondungeoninfo.img", ImgInfo[0], X + DgnObj.X + ImgInfo[1], Y + DgnObj.Y + ImgInfo[2]);
 | |
|             local cid = DgnObj.Party[i][0];
 | |
|             local count = DgnObj.Party[i][1] - 1;
 | |
|             local CharacV = RinDro_Luke_Obj.Portrait[cid];
 | |
| 
 | |
|             local XOffset = 0;
 | |
|             local YOffset = 9;
 | |
| 
 | |
|             //绘制队长头像
 | |
|             local AXpos = X + DgnObj.X + ImgInfo[3] + 16;
 | |
|             local AYpos = Y + DgnObj.Y + ImgInfo[4] + 2;
 | |
|             CharacV.EquVos.DrawFace(AXpos, AYpos);
 | |
| 
 | |
|             //绘制队伍人数
 | |
|             for (local z = 0; z< count; z++) {
 | |
|                 DrawImg("hud/newantondungeoninfo.img", 13, X + DgnObj.X + ImgInfo[3] + 40, Y + DgnObj.Y + 4 + ImgInfo[5] + (z * 6));
 | |
|             }
 | |
| 
 | |
|             //绘制队伍编号
 | |
|             DrawImg("hud/newantondungeonpartymark.img", CharacV.TeamId, X + DgnObj.X + ImgInfo[3] - 3, Y + DgnObj.Y + 3 + ImgInfo[4]);
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| 
 | |
|     DgnIdTName = {
 | |
|         d1 = "诞生之圣所",
 | |
|         d2 = "湮灭之圣所",
 | |
|         d3 = "蔓延之圣所",
 | |
|         d4 = "光明祭坛入口",
 | |
|         d5 = "黑暗祭坛入口",
 | |
|         d6 = "光明祭坛",
 | |
|         d7 = "黑暗祭坛",
 | |
|         d8 = "力量祭坛",
 | |
|         d9 = "智慧祭坛",
 | |
|         d10 = "能源控制室",
 | |
|         d11 = "光之圣殿",
 | |
|         d12 = "暗之圣殿",
 | |
|         d13 = "机械王座: 光",
 | |
|         d14 = "机械王座: 暗",
 | |
|         d15 = "能源储藏室",
 | |
|     }
 | |
| 
 | |
|     //高级绘制文字(带换行)
 | |
|     function L_sq_DrawCode_Ex(str, x, y, rgba, mb, jc) {
 | |
|         local strarr = [];
 | |
|         if (str.find("\n") == null) L_sq_DrawCode(str, x, y, rgba, mb, jc);
 | |
|         else {
 | |
|             local Bpos = 0;
 | |
|             while (true) {
 | |
|                 local Npos = str.find("\n", Bpos);
 | |
|                 if (!Npos) {
 | |
|                     local strbuff = str.slice(Bpos, str.len());
 | |
|                     strarr.append(strbuff);
 | |
|                     break;
 | |
|                 }
 | |
|                 local strbuff = str.slice(Bpos, Npos);
 | |
|                 strarr.append(strbuff);
 | |
|                 Bpos = Npos + 1;
 | |
|             }
 | |
|             for (local z = 0; z< strarr.len(); z++) {
 | |
|                 L_sq_DrawCode(strarr[z], x, y + (z * 14), rgba, mb, jc);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制简易战况表
 | |
|     function DrawSimpleSituation() {
 | |
|         if (!BaseSituationFlag || !DgnList) return;
 | |
|         local X = 0;
 | |
| 
 | |
|         //绘制背景
 | |
|         foreach(Index, d_obj in DgnList) {
 | |
|             local Obj_X = 0;
 | |
|             local Obj_Y = 0 + (Index * 35);
 | |
| 
 | |
|             local ImgIdX = 80;
 | |
|             //TODO 长文字到时候用81
 | |
|             DrawImg("hud/newantondungeoninfo2.img", ImgIdX, X + Obj_X, Y + 300 + Obj_Y);
 | |
|         }
 | |
|         //绘制上层
 | |
|         foreach(Index, d_obj in DgnList) {
 | |
|             local Obj_X = 0;
 | |
|             local Obj_Y = 0 + (Index * 35);
 | |
| 
 | |
|             //绘制队伍底槽
 | |
|             for (local i = 0; i< 4; i++) {
 | |
|                 DrawImg("hud/partytype.img", 22, X + 2 + Obj_X + (i * 24), Y + 300 + Obj_Y + 20);
 | |
|             }
 | |
|             foreach(pos, pobj in d_obj.Party) {
 | |
|                 local cid = pobj[0];
 | |
|                 local CharacV = RinDro_Luke_Obj.Portrait[cid];
 | |
|                 //绘制队伍编号
 | |
|                 DrawImg("hud/partytype.img", 1 + CharacV.TeamId, X + 2 + Obj_X + (pos * 24), Y + 300 + Obj_Y + 20);
 | |
|             }
 | |
| 
 | |
|             local DgnName = DgnIdTName["d" + d_obj.id];
 | |
|             local Yoffset = 16;
 | |
|             //TODO 长文字到时候改偏移
 | |
|             local RGBA = sq_RGBA(255, 177, 0, 250);
 | |
|             if (d_obj.id != 5) RGBA = sq_RGBA(255, 255, 255, 255);
 | |
|             //绘制名字
 | |
|             L_sq_DrawCode_Ex(DgnName, X + 102, Y + 305 + Obj_Y + Yoffset, RGBA, 0, 1);
 | |
| 
 | |
|             //绘制血槽背景
 | |
|             DrawImg("hud/newantondungeoninfo2.img", 82, X + Obj_X + 2, Y + 300 + Obj_Y + 2);
 | |
|             local BloodIdx = 83;
 | |
|             //TODO 不一样的血条到时候改血条
 | |
| 
 | |
|             local Rate = (88.0 - 88.0 * (d_obj.hp.tofloat() / d_obj.BloodType.tofloat())).tointeger();
 | |
|             if (d_obj.type == 1) {
 | |
|                 local Remainder = d_obj.time - (Clock() - d_obj.Timer);
 | |
|                 local RateBuf = Remainder.tofloat() / d_obj.maxTime;
 | |
|                 Rate = (RateBuf * 88.0).tointeger();
 | |
|             } else if (d_obj.type == 2) {
 | |
|                 Rate = 88;
 | |
|             } else if (d_obj.type == 3) {
 | |
|                 Rate = 88;
 | |
|             }
 | |
|             //绘制生命值
 | |
|             setClip(X + Obj_X + 6, Y + 300 + Obj_Y + 6, X + Obj_X + 6 + Rate, Y + 300 + Obj_Y + 6 + 9); //开始裁切
 | |
|             DrawImg("hud/newantondungeoninfo2.img", BloodIdx, X + Obj_X + 6, Y + 300 + Obj_Y + 6);
 | |
|             releaseClip(); //裁切结束
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制主界面
 | |
|     function DrawMain(obj) {
 | |
|         //绘制背景框
 | |
|         luke_game_navigation.DrawPng(2, X, Y - 18);
 | |
|         //绘制背景图
 | |
|         luke_state_full.DrawPng(RinDro_Luke_Obj.MyRaidState == 3 ? 1 : 0, X, Y - 18);
 | |
|         //绘制简易战况表
 | |
|         newantondungeoninfo2.DrawPng(62, X + 220, Y + 19);
 | |
| 
 | |
|         //绘制待命房间
 | |
|         DrawParty();
 | |
|         //绘制小队移动
 | |
|         newantondungeoninfo.DrawPng(14, X + 570, Y + 488);
 | |
| 
 | |
|         if (DgnList) {
 | |
|             foreach(d_obj in DgnList) {
 | |
|                 DrawDungeon(d_obj);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         //绘制主界面复活币剩余
 | |
|         newantondungeoninfo2.DrawPng(85, X + 45 + 350, Y + 488);
 | |
| 
 | |
| 
 | |
|         //绘制主界面复活币剩余
 | |
|         local CoinCount = (RinDro_Luke_Obj.FightConfig.rebornNum - Info.ResurrectionNum).tostring();
 | |
|         for (local i = 0; i< 2; i++) {
 | |
|             if (CoinCount.len() >= (i + 1))
 | |
|                 DrawImg("hud/newantonrewardtime.img", CoinCount.slice(0 + i, 1 + i).tointeger(), X + 45 + 75 + (i * 18) + 350, Y + 515);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function DrawImg(Path, Index, XPos, YPos) {
 | |
|         L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function Show(obj) {
 | |
|         DrawMain(obj);
 | |
|         LenheartNewUI_Windows.Show(obj);
 | |
| 
 | |
|         //结束时间
 | |
|         if (RinDro_Luke_Obj.EndTime) {
 | |
|             DrawFightTime(obj);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     //攻坚时间
 | |
|     function DrawFightTime(obj) {
 | |
|         local X = ((getroottable().Rindro_Scr_Width - 146 - 103 - 550)).tointeger()
 | |
|         L_sq_DrawImg("hud/newantondungeoninfo.img", 1, X + 542, Y);
 | |
|         L_sq_DrawImg("hud/newantondungeoninfo.img", 2, X + 542 + 38, Y + 2);
 | |
|         if (RinDro_Luke_Obj.EndTime != null) {
 | |
|             if (RinDro_Luke_Obj.EndTime< 0) RinDro_Luke_Obj.EndTime = 0;
 | |
|             local RealTime = RinDro_Luke_Obj.EndTime - (Clock() - RinDro_Luke_Obj.PackCurT);
 | |
| 
 | |
|             local seconds = RealTime / 1000;
 | |
|             local hours = seconds / 3600;
 | |
|             local minutes = seconds / 60;
 | |
| 
 | |
|             seconds %= 60;
 | |
|             hours = format("%02d", hours);
 | |
|             seconds = format("%02d", seconds).slice(-2);
 | |
|             minutes = format("%02d", minutes).slice(-2);
 | |
| 
 | |
|             local X1 = 551;
 | |
|             local X2 = X1 + 18;
 | |
| 
 | |
|             local Offset = 0;
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", hours.slice(0, 1).tointeger(), X + X1 + Offset, Y + 28);
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", hours.slice(1).tointeger(), X + X2 + Offset, Y + 28);
 | |
|             Offset += 46;
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", minutes.slice(0, 1).tointeger(), X + X1 + Offset, Y + 28);
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", minutes.slice(1).tointeger(), X + X2 + Offset, Y + 28);
 | |
|             Offset += 46;
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", seconds.slice(0, 1).tointeger(), X + X1 + Offset, Y + 28);
 | |
|             L_sq_DrawImg("hud/newantondungeonnum.img", seconds.slice(1).tointeger(), X + X2 + Offset, Y + 28);
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
|     //判断是否可重合
 | |
|     function PosEvent(Pos, MPos) {
 | |
|         local Offset = abs(Pos - MPos);
 | |
|         if (Offset< 10) return true;
 | |
|         else return false;
 | |
|     }
 | |
|     //判断自身地图相关事件
 | |
|     function MapEventTest(obj) {
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
|     FightLogicTimer = Clock();
 | |
|     MapVar = null; //地图暂存器
 | |
| 
 | |
|     DanShengBuffObject = null; //诞生圣所BUFF对象
 | |
|     ManYanBuffObject = null; //蔓延圣所BUFF对象
 | |
|     YanMieBuffObject = null; //湮灭圣所BUFF对象
 | |
| 
 | |
|     //获取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;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     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);
 | |
|     }
 | |
| 
 | |
|     //卢克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);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         local T = Clock() - FightLogicTimer;
 | |
|         if (T >= 500) {
 | |
|             FightLogicTimer = Clock();
 | |
|             getLukeRaid_QuattuorManusMK2ChangeLayer(obj);
 | |
| 
 | |
|             //遍历对象管理器并执行操作
 | |
|             local objectManager = obj.getObjectManager();
 | |
|             if (!objectManager) {
 | |
|                 _20084401_Flag = false;
 | |
|                 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) {
 | |
|                     if (!_20084401_Flag) {
 | |
|                         _20084401_Flag = true;
 | |
|                         local T = {
 | |
|                             op = 20084401
 | |
|                         }
 | |
|                         SendPackEx(T);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     _20084401_Flag = false;
 | |
| 
 | |
|     //逻辑入口
 | |
|     function Proc(obj) {
 | |
|         LenheartNewUI_Windows.SyncPos(X, Y);
 | |
|         MapEventTest(obj);
 | |
|         if (SelectDgnMarkFlag) {
 | |
|             R_Mouse.SetType(151);
 | |
|         }
 | |
| 
 | |
|         //卢克BUFFObj  机制
 | |
|         MachineLukeBuffPassObject(obj);
 | |
|     }
 | |
| 
 | |
|     //鼠标左键弹起回调
 | |
|     function OnMouseLbUp(MousePos_X, MousePos_Y) {
 | |
|         if (SelectDgnMarkFlag != 0) {
 | |
|             SelectDgnMarkFlag = 0;
 | |
|             R_Mouse.SetType(0);
 | |
|             foreach(d_obj in DgnList) {
 | |
|                 if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + d_obj.X, Y + d_obj.Y, 71, 71)) {
 | |
|                     local T = {
 | |
|                         op = 20084301,
 | |
|                         DunId = d_obj.id
 | |
|                     }
 | |
|                     SendPackEx(T);
 | |
|                     //关闭攻坚战况表窗口
 | |
|                     CloseWindow();
 | |
|                     //关闭攻坚队窗口
 | |
|                     RinDro_Luke_Obj.PartyWindow_Object.CloseWindow();
 | |
|                     //关闭攻坚队大厅窗口
 | |
|                     RinDro_Luke_Obj.PartyHallWindow_Object.CloseWindow();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     MainButton = null;
 | |
|     CloseMainButton = null;
 | |
|     CloseFlag = false;
 | |
|     //顶层绘制
 | |
|     function TopDraw(obj) {
 | |
|         //界面未打开
 | |
|         if (!this.Visible) {
 | |
|             //在甲板
 | |
|             if (RinDro_Luke_Obj.BaseConfig && "channel_index" in RinDro_Luke_Obj.BaseConfig && RinDro_Luke_Obj.BaseConfig.channel_index.find("19") && "town_index" in RinDro_Luke_Obj.BaseConfig && L_sq_GetTownIndex() == RinDro_Luke_Obj.BaseConfig.town_index && (RinDro_Luke_Obj.MyRaidState == 1 || RinDro_Luke_Obj.MyRaidState == 3) && !CloseFlag) {
 | |
| 
 | |
|             }
 | |
| 
 | |
|             if (CloseFlag) {
 | |
|                 if (Clock() - CloseFlag >= 10)
 | |
|                     CloseFlag = false;
 | |
|             }
 | |
|         } else {
 | |
| 
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| class Rindro_Luke_FightSituatioExternalC extends LenheartNewUI_Windows {
 | |
|     //调试模式
 | |
|     // DeBugMode = true;
 | |
| 
 | |
|     //不是窗口
 | |
|     NoWindow = true;
 | |
| 
 | |
|     //操作窗口
 | |
|     Window = null;
 | |
| 
 | |
|     //是否可见
 | |
|     // Visible = false;
 | |
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
 | |
|         Childrens = [];
 | |
|         //注册控件
 | |
|         RegisterWidget();
 | |
| 
 | |
|         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
 | |
|     }
 | |
| 
 | |
|     function RegisterWidget() {
 | |
|         //开启按钮
 | |
|         local CloseButton = LenheartNewUI_BaseButton(0, 0, 103, 22, "hud/newantondungeonbutton.img", 0);
 | |
|         CloseButton.OnClick = function() {
 | |
|             if (!Window.Visible) {
 | |
|                 Window.Visible = true;
 | |
|                 Window.ResetFocus();
 | |
|                 Window.GetInfo();
 | |
|             } else {
 | |
|                 Window.CloseWindow();
 | |
|             }
 | |
|         }.bindenv(this);
 | |
|         CloseButton.SetCallBackFunc(function(button) {
 | |
|             if (!Window.Visible) {
 | |
|                 button.Idx = 0;
 | |
|             } else {
 | |
|                 button.Idx = 3;
 | |
|             }
 | |
|         }.bindenv(this));
 | |
|         Childrens.append(CloseButton);
 | |
|     }
 | |
| 
 | |
|     function AddParentWin(Win) {
 | |
|         Window = Win;
 | |
|     }
 | |
| 
 | |
|     //绘制主界面
 | |
|     function DrawMain(obj) {}
 | |
| 
 | |
|     function Show(obj) {
 | |
|         DrawMain(obj);
 | |
|         LenheartNewUI_Windows.Show(obj);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function TopShow(obj) {
 | |
|         //结束时间
 | |
|         if (RinDro_Luke_Obj.EndTime) {
 | |
|             Window.DrawFightTime(obj);
 | |
| 
 | |
|         }
 | |
|         Window.DrawSimpleSituation();
 | |
|     }
 | |
| 
 | |
|     //逻辑入口
 | |
|     function Proc(obj) {
 | |
|         LenheartNewUI_Windows.SyncPos(X, Y);
 | |
| 
 | |
|         //在甲板
 | |
|         if (RinDro_Luke_Obj.BaseConfig && "channel_index" in RinDro_Luke_Obj.BaseConfig && RinDro_Luke_Obj.BaseConfig.channel_index.find("19") && "town_index" in RinDro_Luke_Obj.BaseConfig && L_sq_GetTownIndex() == RinDro_Luke_Obj.BaseConfig.town_index && (RinDro_Luke_Obj.MyRaidState == 1 || RinDro_Luke_Obj.MyRaidState == 3)) {
 | |
|             Visible = true;
 | |
|         } else {
 | |
|             Visible = false;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| getroottable().rawdelete("RinDro_Luke_Obj"); |