/* 文件名:Rindro_Luke_PartyMemberInfo.nut 路径:Plugins/New_Luke/Rindro_Luke_PartyMemberInfo.nut 创建日期:2024-07-15 22:52 文件用途:卢克队伍横条 */ //队员显示类 class Rindro_LukePartyInfoMemberC 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_LukePartyFormation, "卢克我的队伍编队窗口", 105, 40, 294, 192, 18); //编队状态 if (win.PartyMarkFlag != -1) { //并且是属于我的攻坚队的成员 if (RinDro_Luke_Obj.MyRaidTeamId == InfoObj.PartyId) { local gnum = win.PartyMarkFlag + 1; if (gnum == 100) gnum = 0; local T = { op = 20084015, 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_LukePlayerInteractiveC, "卢克玩家交互", 0, 0, 100, 21, 0); //改变鼠标坐标 Interactive.X = MousePos_X; Interactive.Y = MousePos_Y; //赋值对象参数 Interactive.InfoObj = InfoObj; //对象不是我 if (InfoObj.Cid == RinDro_Luke_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]); //绘制队长头像 foreach(AvatarObj in InfoObj.EquVos) { local AXpos = AvatarObj.F[0][2] + X + OffsetArr[InfoObj.Job][0]; local AYpos = AvatarObj.F[0][3] + 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.F[0][0], AXpos, AYpos); releaseClip(); //裁切结束 } 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); } }