696 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			696 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:FiendwarFightSituation.nut
 | |
| 路径:Plugins/Fiendwar/FiendwarFightSituation.nut
 | |
| 创建日期:2024-04-10	21:28
 | |
| 文件用途:超时空攻坚战况
 | |
| */
 | |
| 
 | |
| //复选框
 | |
| class Fiendwar_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 Fiendwar_LenheartNewUI_ProgressIndicator extends LenheartNewUI_CommonUi {
 | |
|     //透明度
 | |
|     AlphaValue = 1.0;
 | |
|     //宽
 | |
|     DWidth = null;
 | |
|     //控制者
 | |
|     Controller = 0;
 | |
|     //回调函数
 | |
|     OnChangeControl = null;
 | |
|     //球的偏移  因为除不尽 所以这个最好单独写
 | |
|     BXposOffset = 0;
 | |
| 
 | |
|     constructor(X, Y, W, H) {
 | |
|         this.DWidth = W;
 | |
|         LenheartNewUI_CommonUi.constructor(X, Y, W, H);
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         //绘制左
 | |
|         L_sq_DrawImg("hud/fiendwarl.img", 19, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
| 
 | |
|         local OffserIndex = 0;
 | |
|         //绘制中
 | |
|         for (local i = 0; i< this.DWidth; i++) {
 | |
|             if (i > (Controller * this.DWidth).tointeger())
 | |
|                 OffserIndex = 0;
 | |
|             else OffserIndex = 1;
 | |
|             L_sq_DrawImg("hud/fiendwarl.img", 21 + OffserIndex, X + 8 + i, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|         }
 | |
|         //绘制右
 | |
|         L_sq_DrawImg("hud/fiendwarl.img", 20, X + 8 + this.DWidth, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
| 
 | |
|         // local BXposOffset = 0;
 | |
|         // if (BaseX && EndX) BXposOffset = EndX - BaseX;
 | |
|         //绘制球
 | |
|         L_sq_DrawImg("hud/fiendwarl.img", 23, X + BXposOffset + 1, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
 | |
|     }
 | |
| 
 | |
|     //按下时的基准X
 | |
|     BaseX = null;
 | |
|     EndX = null;
 | |
|     //鼠标左键按下回调
 | |
|     function OnMouseLbDown(MousePos_X, MousePos_Y) {
 | |
|         if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + BXposOffset + 1, Y + 1, 15, 14)) {
 | |
|             isLBDown = true;
 | |
|             if (!BaseX) BaseX = MousePos_X;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //鼠标事件回调
 | |
|     function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
 | |
|         if (isLBDown && Flag == 1) {
 | |
|             if (MousePos_X > (X + DWidth + 8))
 | |
|                 MousePos_X = (X + DWidth + 8);
 | |
|             else if (MousePos_X<(X + 8))
 | |
|                 MousePos_X = (X + 8);
 | |
|             EndX = MousePos_X;
 | |
|             if (BaseX && EndX) {
 | |
|                 BXposOffset = EndX - BaseX;
 | |
|                 Controller = BXposOffset.tofloat() / DWidth.tofloat();
 | |
|                 AlphaValue = Controller;
 | |
|                 if (AlphaValue< 0.4) AlphaValue = 0.4;
 | |
|                 if (OnChangeControl) OnChangeControl(Controller);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //鼠标左键弹起回调
 | |
|     function OnMouseLbUp(MousePos_X, MousePos_Y) {
 | |
|         isLBDown = false;
 | |
|     }
 | |
| }
 | |
| 
 | |
| class FiendwarFightSituationC extends LenheartNewUI_Windows {
 | |
| 
 | |
|     Visible = false;
 | |
|     //调试模式
 | |
|     // DeBugMode = true;
 | |
|     //透明度
 | |
|     AlphaValue = 1.0;
 | |
|     //简易战况表复选框
 | |
|     BaseSituationBtn = null;
 | |
|     //简易战况表是否开启
 | |
|     BaseSituationFlag = 0;
 | |
| 
 | |
|     //雷达是否存在
 | |
|     RadarFlag = true;
 | |
|     //turret2
 | |
|     turret2 = true;
 | |
| 
 | |
|     MonsterFace = {
 | |
|         m20413 = 1,
 | |
|         m20412 = 3,
 | |
|         m20411 = 4,
 | |
|         m20415 = 15,
 | |
|         m20408 = 9,
 | |
|         m20409 = 8,
 | |
|         m20405 = 5,
 | |
|         m20404 = 6,
 | |
|         m20406 = 12,
 | |
|         m20401 = 13,
 | |
|         m20402 = 10,
 | |
|         m20403 = 11,
 | |
|     };
 | |
| 
 | |
|     SlotPos = [
 | |
|         [50, 479],
 | |
|         [50, 374],
 | |
|         [50, 270],
 | |
|         [140, 167],
 | |
|         [186, 89],
 | |
|         [275, 36],
 | |
|         [275, 141],
 | |
|         [411, 11],
 | |
|         [365, 88],
 | |
|         [455, 141],
 | |
|         [545, 36],
 | |
| 
 | |
|         [141, 427],
 | |
|         [185, 348],
 | |
|         [185, 245],
 | |
|         [321, 271],
 | |
|         [411, 219],
 | |
|         [546, 245],
 | |
|         [591, 166],
 | |
| 
 | |
|         [141, 530],
 | |
|         [276, 505],
 | |
|         [320, 375],
 | |
|         [410, 478],
 | |
|         [546, 504],
 | |
|         [456, 401],
 | |
|         [681, 478],
 | |
|         [545, 348],
 | |
|         [680, 374],
 | |
|         [725, 244],
 | |
| 
 | |
|         [690, 53],
 | |
|         [727, 129],
 | |
|     ]
 | |
| 
 | |
| 
 | |
|     Info = null;
 | |
|     PackCurT = null;
 | |
|     EndTime = null;
 | |
| 
 | |
|     function InfoCallBack(Chunk) {
 | |
|         // print(Chunk);
 | |
|         local Jso = Json.Decode(Chunk);
 | |
|         Info = Jso.fightInfo.platVos;
 | |
|         EndTime = Jso.fightInfo.endTime;
 | |
|         RadarFlag = Jso.fightInfo.radar;
 | |
|         turret2 = Jso.fightInfo.turret2;
 | |
|         FiendwarTotal.GetInstance().EndTime = Jso.fightInfo.endTime;
 | |
|         local Pt = Clock();
 | |
|         PackCurT = Pt;
 | |
|         FiendwarTotal.GetInstance().PackCurT = Pt;
 | |
| 
 | |
|         local Win = LenheartNewUI_CreateWindow(FiendwarPartyInfoC, "超时空我的队伍窗口", 430, 15, 354, 290, 18);
 | |
|         Win.CloseWindow();
 | |
|         local Win = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
 | |
|         Win.CloseWindow();
 | |
|     }
 | |
| 
 | |
|     //收到进入BOSS请求包
 | |
|     function GoBossCallBack(Chunk) {
 | |
|         local Jso = Json.Decode(Chunk);
 | |
|         local Win = LenheartNewUI_CreateWindow(FiendwarHallGoBossDgnC, "超时空攻坚进入罗什", 273, 225, 270, 120, 19);
 | |
|         Win.Visible = true;
 | |
|         Win.Dark = Jso.boss1;
 | |
|         Win.Light = Jso.boss2;
 | |
|         Win.RegisterWidget();
 | |
|     }
 | |
| 
 | |
|     PlayerGiveUpTime = null;
 | |
|     PlayerGiveUpFlagTime = null;
 | |
|     //放弃副本包
 | |
|     function PlayerGiveUpCallBack(Chunk) {
 | |
|         local Jso = Json.Decode(Chunk);
 | |
|         PlayerGiveUpTime = Jso.endTime;
 | |
|         PlayerGiveUpFlagTime = Clock();
 | |
|     }
 | |
| 
 | |
|     function GetInfo() {
 | |
|         local T = {
 | |
|             op = 20063053,
 | |
|             // teamsId = FiendwarTotal.GetInstance().MyPartyId
 | |
|         }
 | |
|         Rindro_BaseToolClass.SendPackEx(T);
 | |
|     }
 | |
| 
 | |
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
 | |
|         Childrens = [];
 | |
|         //注册控件
 | |
|         RegisterWidget();
 | |
| 
 | |
|         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
 | |
| 
 | |
|         Pack_Control.rawset(20063016, InfoCallBack.bindenv(this));
 | |
|         Pack_Control.rawset(20063022, GoBossCallBack.bindenv(this));
 | |
|         Pack_Control.rawset(20063024, PlayerGiveUpCallBack.bindenv(this));
 | |
| 
 | |
|         GetInfo();
 | |
|     }
 | |
| 
 | |
|     function RegisterWidget() {
 | |
|         //关闭按钮
 | |
|         local CloseButton = LenheartNewUI_BaseButton(770, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
 | |
|         CloseButton.OnClick = function() {
 | |
|             local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
 | |
|             Win.ResetFocus();
 | |
|             this.Visible = false;
 | |
|         }.bindenv(this);
 | |
|         Childrens.append(CloseButton);
 | |
| 
 | |
|         local PIButton = Fiendwar_LenheartNewUI_ProgressIndicator(264, 11, 80, 10);
 | |
|         PIButton.Controller = 1.0;
 | |
|         PIButton.BaseX = 273;
 | |
|         PIButton.EndX = 352;
 | |
|         PIButton.BXposOffset = 79;
 | |
|         PIButton.OnChangeControl = function(Controller) {
 | |
|             AlphaValue = Controller;
 | |
|             if (AlphaValue< 0.4) AlphaValue = 0.4;
 | |
|         }.bindenv(this);
 | |
|         Childrens.append(PIButton);
 | |
| 
 | |
| 
 | |
|         //简易战况表复选框
 | |
|         BaseSituationBtn = Fiendwar_LenheartNewUI_SwitchButton(198, 9);
 | |
|         BaseSituationBtn.State = 0;
 | |
|         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);
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
|     //绘制简易动态Ani					// obj --  ani路径  --  X   --  Y  --  ani名字
 | |
|     function T_DrawDynamicAni(obj, aniFileName, x, y, aniname, Alpha) {
 | |
|         local ani = obj.getVar().GetAnimationMap(aniname, aniFileName);
 | |
|         ani.setRGBA(255, 255, 255, Alpha);
 | |
|         sq_AnimationProc(ani);
 | |
|         sq_drawCurrentFrame(ani, x, y, true);
 | |
|         return ani;
 | |
|     }
 | |
| 
 | |
|     function DrawParty() {
 | |
|         //绘制我的队伍
 | |
|         if (FiendwarTotal.GetInstance().MyTeam) {
 | |
|             local Mt = FiendwarTotal.GetInstance().MyTeam;
 | |
|             if (!Mt) return;
 | |
|             local PartyMaster;
 | |
|             foreach(index, PartyMasterIcon in Mt.MembersList) {
 | |
|                 local XOffset = 0;
 | |
|                 local YOffset = 9 + (index * 22);
 | |
| 
 | |
|                 DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", 0, X + XOffset + 10, Y + YOffset);
 | |
|                 DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", PartyMasterIcon.InfoObj.TeamId, X + XOffset + 10, Y + YOffset + 1);
 | |
| 
 | |
|                 sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
 | |
| 
 | |
|                 //绘制队长头像
 | |
|                 foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
 | |
|                     local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
 | |
|                     local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
 | |
|                     setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
 | |
|                     DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
 | |
|                     releaseClip(); //裁切结束
 | |
|                 }
 | |
|                 local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger());
 | |
|                 if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger());
 | |
|                 if (PartyMasterIcon.InfoObj.Captain) DrawImg("hud/fiendwarl.img", 18, X + 42 + XOffset, Y + 1 + YOffset);
 | |
| 
 | |
|                 local DrawName = PartyMasterIcon.InfoObj.Name;
 | |
|                 if (PlayerGiveUpTime && PlayerGiveUpTime[index]) {
 | |
|                     local STime = ((PlayerGiveUpTime[index] - (Clock() - PlayerGiveUpFlagTime)) / 1000);
 | |
|                     DrawName = "复活时间: " + STime.tostring() + "秒";
 | |
|                     if (STime <= 0) DrawName = PartyMasterIcon.InfoObj.Name;
 | |
|                 }
 | |
|                 //绘制名字
 | |
|                 L_sq_DrawCode(DrawName, X + XOffset + 58, Y + YOffset + 4, RgbaValue, 0, 1);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     //绘制主界面
 | |
|     function DrawMain(obj) {
 | |
|         //绘制背景框
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 0, X + 7, Y);
 | |
|         //绘制建议进度表文字
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 71, X + 130, Y + 10);
 | |
| 
 | |
|         //绘制透明度文字
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 72, X + 220, Y + 10);
 | |
| 
 | |
| 
 | |
| 
 | |
|         DrawParty();
 | |
| 
 | |
| 
 | |
| 
 | |
|         //Boss底层特效
 | |
|         T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/boss_effect.ani", X + 720, Y + 110, "超时空战况表背景图BOSS区域", (250 * AlphaValue).tointeger());
 | |
| 
 | |
|         //下路特效
 | |
|         Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linebottom.ani", X + 7, Y, "超时空战况表背景图下路特效B");
 | |
|         //中路特效
 | |
|         Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linemiddle.ani", X + 7, Y, "超时空战况表背景图中路特效B");
 | |
|         //上路特效
 | |
|         Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linetop.ani", X + 7, Y, "超时空战况表背景图上路特效B");
 | |
| 
 | |
|         //绘制地图
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 64, X + 7, Y + 1);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         if (Info) {
 | |
|             foreach(Index, Value in Info) {
 | |
|                 if (Value.id != -1) {
 | |
|                     //裁切比例
 | |
|                     local SliceRate = 0;
 | |
|                     if (Value.e && Value.s) {
 | |
|                         SliceRate = (Value.e.tofloat() - (Clock().tofloat() - PackCurT.tofloat())) / Value.s.tofloat();
 | |
|                     }
 | |
|                     //BOSS暗
 | |
|                     if (Value.id == 28) {
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 60, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
 | |
|                     }
 | |
|                     //BOSS光
 | |
|                     else if (Value.id == 29) {
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 61, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
 | |
|                     }
 | |
|                     //兵营
 | |
|                     else if (Value.id == 10 || Value.id == 17 || Value.id == 27) {
 | |
|                         local Offset = 0;
 | |
|                         if (!Value.m) Offset = 7;
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 5 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
 | |
|                         //复活
 | |
|                         if (!Value.m) {
 | |
|                             if (SliceRate != 0) {
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 55, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
 | |
|                                 DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
 | |
|                             }
 | |
|                         }
 | |
|                         //生成小怪
 | |
|                         else {
 | |
|                             if (SliceRate != 0) {
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
 | |
|                                 DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                     //前哨
 | |
|                     else if (Value.id == 7 || Value.id == 15 || Value.id == 24) {
 | |
|                         local Offset = 0;
 | |
|                         if (!Value.m) Offset = 7;
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 4 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
 | |
| 
 | |
|                         if (SliceRate != 0) {
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
 | |
|                             DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
| 
 | |
|                     } else if (Value.id == 6 || Value.id == 23) {
 | |
|                         //雷达
 | |
|                         if (Value.id == 6) {
 | |
|                             local Offset = 0;
 | |
|                             if (!Value.m) Offset = 7;
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 2 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
|                         //炮塔
 | |
|                         else if (Value.id == 23) {
 | |
|                             local Offset = 0;
 | |
|                             if (!Value.m) Offset = 7;
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 3 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
| 
 | |
|                     }
 | |
| 
 | |
| 
 | |
|                     //基地和出发点一定有框
 | |
|                     if (Value.id == 0 || Value.id == 1 || Value.id == 11 || Value.id == 18) {
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                         //基地两边都画
 | |
|                         if (Value.id == 0) {
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X + 33 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
|                     } else {
 | |
|                         //有怪物
 | |
|                         if (Value.m || Value.n) {
 | |
|                             if (Value.m) {
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 27, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
 | |
|                                 //如果不是这些 那就是移动怪 并且活着
 | |
|                                 if (Value.id != 10 && Value.id != 17 && Value.id != 27 && Value.id != 28 && Value.id != 29 && Value.id != 7 && Value.id != 15 && Value.id != 24 && Value.id != 6 && Value.id != 23 && !Value.n) {
 | |
|                                     //没人打
 | |
|                                     if (Value.u.len()< 1) {
 | |
|                                         if (SliceRate != 0) {
 | |
|                                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 56, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
 | |
|                                             DrawProgress(52, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
 | |
|                                         }
 | |
|                                     }
 | |
|                                     //战斗中
 | |
|                                     else {
 | |
|                                         if (SliceRate != 0) {
 | |
|                                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 53, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
 | |
|                                             DrawProgress(49, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
 | |
|                                         }
 | |
|                                     }
 | |
|                                 }
 | |
|                             } else if (Value.n) {
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                                 DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 59, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
 | |
|                             }
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", 14, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 98, X + 38 + SlotPos[Value.id][0], Y + 37 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
|                     }
 | |
| 
 | |
|                     //如果有玩家
 | |
|                     if (Value.u.len() >= 1) {
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
 | |
| 
 | |
|                         //说明有战斗
 | |
|                         if (Value.m) {
 | |
|                             //战斗特效
 | |
|                             T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_red.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表战斗方格", (250 * AlphaValue).tointeger());
 | |
|                         } else {
 | |
|                             //TODO 这里判断有没有商人 没有商人画绿色 有画黄色
 | |
|                             T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_green.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表安全方格", (250 * AlphaValue).tointeger());
 | |
|                         }
 | |
|                         //绘制队伍编号
 | |
|                         foreach(index, pos in Value.u) {
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 28 + pos, X - 24 + SlotPos[Value.id][0], Y + (index * 11) + 2 + SlotPos[Value.id][1]);
 | |
|                         }
 | |
| 
 | |
| 
 | |
|                     }
 | |
| 
 | |
|                     //雷达死完要绘制怪物头像
 | |
|                     if (!RadarFlag) {
 | |
|                         if (Value.m || Value.n) {
 | |
|                             local ImgIndex = 0;
 | |
|                             if (Value.m && MonsterFace.rawin("m" + Value.m)) ImgIndex = MonsterFace["m" + Value.m];
 | |
|                             DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", ImgIndex, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         DrawFightTime(obj);
 | |
|     }
 | |
| 
 | |
|     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 DrawProgress(Index, SliceRate, X, Y) {
 | |
|         if (!turret2) return;
 | |
|         if (RadarFlag) SliceRate = 1.0;
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 48, X, Y);
 | |
|         setClip(X, Y, X + (SliceRate * 61.0).tointeger(), Y + 3); //开始裁切
 | |
|         DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", Index, X, Y);
 | |
|         releaseClip(); //裁切结束
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         DrawMain(obj);
 | |
|         LenheartNewUI_Windows.Show(obj);
 | |
|     }
 | |
| 
 | |
|     //攻坚时间
 | |
|     function DrawFightTime(obj) {
 | |
|         L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
 | |
|         if (EndTime) {
 | |
|             local RealTime = EndTime - (Clock() - 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 Offset = 0;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|             Offset += 38;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|             Offset += 38;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
|     MainButton = null;
 | |
|     //逻辑入口
 | |
|     function Proc(obj) {
 | |
|         //在基地
 | |
|         if (L_sq_GetRegionIndex() == 2) DrawParty();
 | |
| 
 | |
|         if (getroottable().rawin("FiendwarTotal") && FiendwarTotal.GetInstance().EndTime) {
 | |
|             DrawFightTime(obj);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 13, X + 770, Y);
 | |
|         }
 | |
| 
 | |
|         // //界面未打开
 | |
|         // if (!this.Visible) {
 | |
|         //     //在甲板
 | |
|         //     if (FiendwarTotal.GetInstance().BaseConfig && FiendwarTotal.GetInstance().BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == FiendwarTotal.GetInstance().BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) {
 | |
|         //         if (!MainButton) {
 | |
|         //             MainButton = LenheartBaseButton(X + 770, Y, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
 | |
|         //         } else {
 | |
|         //             MainButton.Show();
 | |
|         //             if (MainButton.isLBActive()) {
 | |
|         //                 this.Visible = true;
 | |
|         //                 GetInfo();
 | |
|         //             }
 | |
|         //         }
 | |
|         //     }
 | |
|         // }
 | |
|         LenheartNewUI_Windows.SyncPos(X, Y);
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| 文件名:FiendwarHallCreateParty.nut
 | |
| 路径:Plugins/Fiendwar/FiendwarHallCreateParty.nut
 | |
| 创建日期:2024-03-18	13:20
 | |
| 文件用途:
 | |
| */
 | |
| 
 | |
| 
 | |
| class FiendwarFightSituationSwitchC extends LenheartNewUI_Windows {
 | |
|     //调试模式
 | |
|     // DeBugMode = true;
 | |
| 
 | |
|     //不要窗口模式
 | |
|     NoWindow = true;
 | |
| 
 | |
|     function GetInfo() {
 | |
|         local T = {
 | |
|             op = 20063053,
 | |
|             // teamsId = FiendwarTotal.GetInstance().MyPartyId
 | |
|         }
 | |
|         Rindro_BaseToolClass.SendPackEx(T);
 | |
|     }
 | |
| 
 | |
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
 | |
|         Childrens = [];
 | |
| 
 | |
|         //关闭按钮
 | |
|         local CloseButton = LenheartNewUI_BaseButton(0, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
 | |
|         CloseButton.OnClick = function() {
 | |
|             local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0);
 | |
|             Win.Visible = true;
 | |
|             Win.ResetFocus();
 | |
|             GetInfo();
 | |
|         }.bindenv(this);
 | |
|         AddChild(CloseButton);
 | |
| 
 | |
| 
 | |
|         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
 | |
|     }
 | |
| 
 | |
|     //绘制主界面
 | |
|     function DrawMain(obj) {
 | |
|         if (FiendwarTotal.GetInstance().EndTime)
 | |
|             DrawFightTime(obj);
 | |
|     }
 | |
| 
 | |
|     //攻坚时间
 | |
|     function DrawFightTime(obj) {
 | |
|         L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
 | |
|         if (FiendwarTotal.GetInstance().EndTime) {
 | |
|             local RealTime = FiendwarTotal.GetInstance().EndTime - (Clock() - FiendwarTotal.GetInstance().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 Offset = 0;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|             Offset += 38;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|             Offset += 38;
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
 | |
|             L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function CloseWindow() {
 | |
|         // print(1233);
 | |
|         // local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
 | |
|         // Win.Visible = true;
 | |
|         // Win.ResetFocus();
 | |
|         // LenheartNewUI_Windows.CloseWindow();
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         DrawMain(obj);
 | |
|         LenheartNewUI_Windows.Show(obj);
 | |
|     }
 | |
| 
 | |
|     //逻辑入口
 | |
|     function Proc(obj) {
 | |
|         if (!FiendwarTotal.GetInstance().EndTime) {
 | |
|             Visible = false;
 | |
|         } else {
 | |
|             Visible = true;
 | |
|         }
 | |
|         LenheartNewUI_Windows.SyncPos(X, Y);
 | |
|     }
 | |
| 
 | |
| }
 | |
| LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0); |