188 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			188 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:FiendwarPartyMemberInfo.nut | ||
|  | 路径:Plugins/Fiendwar/FiendwarPartyMemberInfo.nut | ||
|  | 创建日期:2024-04-02	10:49 | ||
|  | 文件用途:攻坚队详细信息中的队员显示类 | ||
|  | */ | ||
|  | //队员显示类 | ||
|  | class FiendwarPartyInfoMemberC extends LenheartNewUI_CommonUi { | ||
|  |     X = 0; | ||
|  |     Y = 0; | ||
|  |     Width = null; | ||
|  |     Height = null; | ||
|  |     InfoObj = null; | ||
|  | 
 | ||
|  |     //构造时间 | ||
|  |     ConstructorTime = null; | ||
|  |     //选中状态 | ||
|  |     SelectState = false; | ||
|  |     //攻坚状态 | ||
|  |     OffensiveState = 0; | ||
|  |     //头像框的颜色 | ||
|  |     HandBoxColor = [ | ||
|  |         0xff717272, | ||
|  |         0xff7b2a29, | ||
|  |         0xff874e0d, | ||
|  |         0xff8b8108, | ||
|  |         0xff658e2d, | ||
|  |         0xff0f5c8a, | ||
|  |         0xff27238f, | ||
|  |         0xff4e2491, | ||
|  |         0xff932586, | ||
|  |     ] | ||
|  | 
 | ||
|  |     //X Y 裁切开始X Y 裁切结束X  Y | ||
|  |     OffsetArr = [ | ||
|  |         //男鬼剑士 | ||
|  |         [45, 103, 230, 231], | ||
|  |         //女格斗家 | ||
|  |         [56, 102, 235, 279], | ||
|  |         //男神枪手 | ||
|  |         [52, 130, 238, 246], | ||
|  |         //女魔法师 | ||
|  |         [55, 87, 234, 293], | ||
|  |         //男圣职者 | ||
|  |         [42, 115, 223, 200], | ||
|  |         //女神枪手 | ||
|  |         [52, 119, 226, 209], | ||
|  |         //暗夜使者 | ||
|  |         [56, 102, 225, 226], | ||
|  |         //男格斗家 | ||
|  |         [50, 114, 239, 216], | ||
|  |         //男魔法师 | ||
|  |         [54, 103, 236, 276], | ||
|  |         //黑暗武士 | ||
|  |         [46, 102, 229, 232], | ||
|  |         //缔造者 | ||
|  |         [56, 86, 235, 293], | ||
|  |     ] | ||
|  | 
 | ||
|  |     constructor(gInfoObj) { | ||
|  |         ConstructorTime = Clock(); | ||
|  | 
 | ||
|  |         InfoObj = gInfoObj; | ||
|  |         this.Width = 458; | ||
|  |         this.Height = 21; | ||
|  | 
 | ||
|  |         this.OnClick = function() { | ||
|  |             //还原其他 选中自己 | ||
|  |             foreach(Obj in Parent.MembersList) { | ||
|  |                 Obj.SelectState = false; | ||
|  |             } | ||
|  |             SelectState = !SelectState; | ||
|  | 
 | ||
|  |             local win = LenheartNewUI_CreateWindow(FiendwarPartyFormation, "超时空我的队伍编队窗口", 105, 40, 294, 192, 18); | ||
|  |             //编队状态 | ||
|  |             if (win.PartyMarkFlag != -1) { | ||
|  |                 //并且是属于我的攻坚队的成员 | ||
|  |                 if (FiendwarTotal.GetInstance().MyPartyId == InfoObj.PartyId) { | ||
|  |                     local T = { | ||
|  |                         op = 20063015, | ||
|  |                         teamsId = InfoObj.PartyId, | ||
|  |                         cidNew = InfoObj.Cid, | ||
|  |                         num = win.PartyMarkFlag | ||
|  |                     } | ||
|  |                     Rindro_BaseToolClass.SendPackEx(T); | ||
|  |                     win.PartyMarkFlag = -1; | ||
|  |                     L_sq_WA(0x1b46898, 0); | ||
|  |                     return; | ||
|  |                 } | ||
|  |                 //点了其他队伍成员要还原编队状态 | ||
|  |                 else { | ||
|  |                     win.PartyMarkFlag = -1; | ||
|  |                     L_sq_WA(0x1b46898, 0); | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |             local Interactive = LenheartNewUI_CreateWindow(FiendwarHallPlayerInteractiveC, "超时空玩家交互", 0, 0, 100, 21, 0); | ||
|  |             //改变鼠标坐标 | ||
|  |             Interactive.X = MousePos_X; | ||
|  |             Interactive.Y = MousePos_Y; | ||
|  |             //赋值对象参数 | ||
|  |             Interactive.InfoObj = InfoObj; | ||
|  |             //对象不是我 | ||
|  |             if (InfoObj.Cid == FiendwarTotal.GetInstance().MyCid) { | ||
|  |                 Interactive.InfoObj.IsMyself <- true; | ||
|  |             } | ||
|  |             //刷新UI | ||
|  |             Interactive.InitInfo(); | ||
|  |         } | ||
|  |         LenheartNewUI_CommonUi.constructor(10, 82, this.Width, this.Height); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //如果没有材料要建立一个购买材料的Button  并且要判断是否是自己 //TODO 这里还不行 要拓展一个函数来比对名字 | ||
|  |         /* | ||
|  |         local Name = L_Sq_GetObjectName(sq_GetMyMasterCharacter()); | ||
|  |         local Name2 = "夜刃"; | ||
|  |         Name == Name2 失败了 | ||
|  |         */ | ||
|  |         // if (!InfoObj.StkHasFlag && InfoObj.Name == L_Sq_GetObjectName(sq_GetMyMasterCharacter())) { | ||
|  | 
 | ||
|  |         // } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Show(obj) { | ||
|  |         //绘制底槽 | ||
|  |         L_sq_DrawImg("hud/fiendwarl.img", 12, X, Y); | ||
|  | 
 | ||
|  |         //绘制队伍编号 | ||
|  |         L_sq_DrawImg("interface/newstyle/windows/party/party_icon.img", InfoObj.TeamId * 3, X, Y + 1); | ||
|  | 
 | ||
|  |         sq_DrawBox(X + 42, Y + 1, 22, 18, HandBoxColor[InfoObj.TeamId]); | ||
|  |         //绘制队长头像 | ||
|  |         foreach(AvatarObj in InfoObj.EquVos) { | ||
|  |             local AXpos = AvatarObj.D[0] + X + OffsetArr[InfoObj.Job][0]; | ||
|  |             local AYpos = AvatarObj.D[1] + Y + OffsetArr[InfoObj.Job][1]; | ||
|  |             setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切 | ||
|  |             L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos); | ||
|  |             releaseClip(); //裁切结束 | ||
|  |             // } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (InfoObj.Captain) L_sq_DrawImg("hud/fiendwarl.img", 18, X + 42, Y + 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制等级 | ||
|  |         L_sq_DrawCode(InfoObj.Level, X + 76 - LenheartTextClass.GetStringLength(InfoObj.Level) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1); | ||
|  |         //绘制角色名 | ||
|  |         L_sq_DrawCode(InfoObj.Name, X + 138 - LenheartTextClass.GetStringLength(InfoObj.Name) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1); | ||
|  |         //绘制职业名 | ||
|  |         L_sq_DrawCode(InfoObj.JobName, X + 234 - LenheartTextClass.GetStringLength(InfoObj.JobName) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //离线了 | ||
|  |         if (InfoObj.ExitTime > 0) { | ||
|  |             local DrawTime = InfoObj.ExitTime - (Clock() - ConstructorTime); | ||
|  |             local seconds = (DrawTime / 1000) % 60; // 计算秒数 | ||
|  |             local minutes = (DrawTime / (1000 * 60)) % 60; // 计算分钟数 | ||
|  |             local DrawTimeStr = format("%02d分%02d秒", minutes, seconds); | ||
|  | 
 | ||
|  |             L_sq_DrawCode(DrawTimeStr, X + 306 - LenheartTextClass.GetStringLength(DrawTimeStr) / 2, Y + 5, sq_RGBA(255, 50, 50, 255), 0, 1); | ||
|  |         } | ||
|  |         //通关次数 | ||
|  |         else if (InfoObj.ClearanceCount > 0) { | ||
|  |             L_sq_DrawCode((InfoObj.ClearanceCount - 1) + "/" + (InfoObj.ClearanceCountMax), X + 306 - LenheartTextClass.GetStringLength((InfoObj.ClearanceCount - 1) + "/" + (InfoObj.ClearanceCountMax)) / 2, Y + 5, sq_RGBA(250, 250, 181, 255), 0, 1); | ||
|  |         } else if (InfoObj.StkHasFlag) { | ||
|  |             L_sq_DrawImg("hud/fiendwarlstk.img", 0, X + 280, Y + 3); | ||
|  |         } else { | ||
|  |             L_sq_DrawImg("hud/fiendwarlstk.img", 1, X + 280, Y + 3); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (SelectState) { | ||
|  |             L_sq_DrawImg("hud/fiendwarl.img", 13, X, Y); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (isInRect) { | ||
|  |             L_sq_DrawImg("hud/fiendwarl.img", 13, X, Y); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     MousePos_X = 0; | ||
|  |     MousePos_Y = 0; | ||
|  |     //鼠标事件回调 | ||
|  |     function OnMouseProc(Flag, gMousePos_X, gMousePos_Y) { | ||
|  |         this.MousePos_X = gMousePos_X; | ||
|  |         this.MousePos_Y = gMousePos_Y; | ||
|  |         LenheartNewUI_CommonUi.OnMouseProc(Flag, gMousePos_X, gMousePos_Y); | ||
|  |     } | ||
|  | } |