192 lines
6.7 KiB
Plaintext
192 lines
6.7 KiB
Plaintext
|
|
/*
|
||
|
|
文件名: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);
|
||
|
|
}
|
||
|
|
}
|