| 
									
										
										
										
											2024-09-16 17:09:36 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:Rindro_Anton_PartyMemberInfo.nut | 
					
						
							|  |  |  | 路径:Plugins/New_Anton/Rindro_Anton_PartyMemberInfo.nut | 
					
						
							|  |  |  | 创建日期:2024-07-15	22:52 | 
					
						
							|  |  |  | 文件用途:安图恩队伍横条 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | //队员显示类 | 
					
						
							|  |  |  | class Rindro_AntonPartyInfoMemberC 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 = [ | 
					
						
							|  |  |  |         //男鬼剑士 | 
					
						
							|  |  |  |         [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], | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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(Rindro_AntonPartyFormation, "安图恩我的队伍编队窗口", 105, 40, 294, 192, 18); | 
					
						
							|  |  |  |             //编队状态 | 
					
						
							|  |  |  |             if (win.PartyMarkFlag != -1) { | 
					
						
							|  |  |  |                 //并且是属于我的攻坚队的成员 | 
					
						
							|  |  |  |                 if (RinDro_Anton_Obj.MyRaidTeamId == InfoObj.PartyId) { | 
					
						
							|  |  |  |                     local gnum = win.PartyMarkFlag + 1; | 
					
						
							|  |  |  |                     if (gnum == 100) gnum = 0; | 
					
						
							|  |  |  |                     local T = { | 
					
						
							|  |  |  |                         op = 20064015, | 
					
						
							|  |  |  |                         teamsId = InfoObj.PartyId, | 
					
						
							|  |  |  |                         cidNew = InfoObj.Cid, | 
					
						
							|  |  |  |                         num = gnum | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     SendPackEx(T); | 
					
						
							|  |  |  |                     win.PartyMarkFlag = -1; | 
					
						
							| 
									
										
										
										
											2024-09-27 14:04:23 +08:00
										 |  |  |                     R_Mouse.SetType(0); | 
					
						
							| 
									
										
										
										
											2024-09-16 17:09:36 +08:00
										 |  |  |                     win.ResetFocus(); | 
					
						
							|  |  |  |                     return; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 //点了其他队伍成员要还原编队状态 | 
					
						
							|  |  |  |                 else { | 
					
						
							|  |  |  |                     win.PartyMarkFlag = -1; | 
					
						
							| 
									
										
										
										
											2024-09-27 14:04:23 +08:00
										 |  |  |                     R_Mouse.SetType(0); | 
					
						
							| 
									
										
										
										
											2024-09-16 17:09:36 +08:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             local Interactive = LenheartNewUI_CreateWindow(Rindro_AntonPlayerInteractiveC, "安图恩玩家交互", 0, 0, 100, 21, 0); | 
					
						
							|  |  |  |             //改变鼠标坐标 | 
					
						
							|  |  |  |             Interactive.X = MousePos_X; | 
					
						
							|  |  |  |             Interactive.Y = MousePos_Y; | 
					
						
							|  |  |  |             //赋值对象参数 | 
					
						
							|  |  |  |             Interactive.InfoObj = InfoObj; | 
					
						
							|  |  |  |             //对象不是我 | 
					
						
							|  |  |  |             if (InfoObj.Cid == RinDro_Anton_Obj.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) { | 
					
						
							|  |  |  |         // print(this); | 
					
						
							|  |  |  |         //绘制底槽 | 
					
						
							|  |  |  |         L_sq_DrawImg("hud/rindroanton.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]); | 
					
						
							|  |  |  |         //绘制队长头像 | 
					
						
							| 
									
										
										
										
											2025-05-27 21:24:22 +08:00
										 |  |  |         local AXpos = X + 42; | 
					
						
							|  |  |  |         local AYpos = Y + 1; | 
					
						
							|  |  |  |         InfoObj.EquVos.DrawFace(AXpos, AYpos); | 
					
						
							| 
									
										
										
										
											2024-09-16 17:09:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if (InfoObj.Captain) L_sq_DrawImg("hud/rindroanton.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/rindroantonstk.img", 0, X + 280, Y + 3); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             L_sq_DrawImg("hud/rindroantonstk.img", 1, X + 280, Y + 3); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (SelectState) { | 
					
						
							|  |  |  |             L_sq_DrawImg("hud/rindroanton.img", 13, X, Y); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (isInRect) { | 
					
						
							|  |  |  |             L_sq_DrawImg("hud/rindroanton.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); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |