188 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名: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;
 | |
|                     R_Mouse.SetType(0);
 | |
|                     win.ResetFocus();
 | |
|                     return;
 | |
|                 }
 | |
|                 //点了其他队伍成员要还原编队状态
 | |
|                 else {
 | |
|                     win.PartyMarkFlag = -1;
 | |
|                     R_Mouse.SetType(0);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             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]);
 | |
|         //绘制队长头像
 | |
|         local AXpos = X + 42;
 | |
|         local AYpos = Y + 1;
 | |
|         InfoObj.EquVos.DrawFace(AXpos, AYpos);
 | |
| 
 | |
|         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);
 | |
|     }
 | |
| } |