252 lines
8.8 KiB
Plaintext
252 lines
8.8 KiB
Plaintext
/*
|
|
文件名:FiendwarPartyInfo.nut
|
|
路径:Plugins/Fiendwar/FiendwarPartyInfo.nut
|
|
创建日期:2024-03-27 19:18
|
|
文件用途:超时空攻坚队队伍信息窗口
|
|
*/
|
|
class FiendwarPartyInfoC extends LenheartNewUI_Windows {
|
|
//调试模式
|
|
// DeBugMode = true;
|
|
|
|
//队员列表
|
|
MembersList = null;
|
|
|
|
//队伍名称
|
|
TeamName = "";
|
|
//队伍ID
|
|
TeamID = 99999999;
|
|
|
|
//是否是我的攻坚队
|
|
IsMyTeam = false;
|
|
//是否是队长
|
|
IsCaptain = false;
|
|
|
|
|
|
|
|
//收到请求加入攻坚队包
|
|
function JoinTeamCallBack(Chunk) {
|
|
// Sout("收到请求加入包 : \n\n\n %L", Chunk);
|
|
local Jso = Json.Decode(Chunk);
|
|
local win = LenheartNewUI_CreateWindow(FiendwarHallApplyJoinC, "超时空申请加入队伍窗口", 542, 348, 257, 240, 18);
|
|
win.Visible = true;
|
|
win.ResetFocus();
|
|
local T = {
|
|
Charc = Jso.charac, //角色对象
|
|
Level = Jso.charac.PlayerLevel,
|
|
Name = Jso.charac.PlayerName,
|
|
Job = Jso.charac.PlayerJob,
|
|
PvpLevel = Jso.charac.pvp,
|
|
JobName = Jso.charac.PlayerGrowTypeJob,
|
|
Coin = Jso.charac.PlayCoin,
|
|
Fatigue = Jso.charac.PlayFatigue,
|
|
Combat = Jso.charac.ZL,
|
|
ClearanceCount = Jso.charac.ClearanceCount,
|
|
AvatarArr = Jso.charac.equVos,
|
|
PlayerSession = Jso.charac.PlayerSession
|
|
}
|
|
//没人
|
|
if (win.RequestJoinTeamArr.len() == 0) {
|
|
win.RequestJoinTeamArr.append(T);
|
|
win.InitInfo();
|
|
} else win.RequestJoinTeamArr.append(T);
|
|
}
|
|
|
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
|
Childrens = [];
|
|
//注册控件
|
|
// RegisterWidget();
|
|
|
|
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
|
|
|
|
|
Pack_Control.rawset(20063006, JoinTeamCallBack.bindenv(this));
|
|
|
|
}
|
|
|
|
function RegisterWidget() {
|
|
//清除老的按钮在刷新
|
|
RemoveChilds(FiendwarPartyInfoMemberC, false);
|
|
//关闭按钮
|
|
local CloseButton = LenheartNewUI_BaseButton(336, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
|
|
CloseButton.OnClick = function() {
|
|
CloseWindow();
|
|
}.bindenv(this);
|
|
AddChild(CloseButton);
|
|
|
|
|
|
//队伍按钮
|
|
local ModelButton = LenheartNewUI_ButtonText(9, 60, -18, "队伍");
|
|
ModelButton.Idx = 163;
|
|
ModelButton.DWidth = -8;
|
|
ModelButton.SetTextOffset(-9, 1);
|
|
AddChild(ModelButton);
|
|
|
|
//等级按钮
|
|
local StateButton = LenheartNewUI_ButtonText(51, 60, -18, "等级");
|
|
StateButton.Idx = 163;
|
|
StateButton.DWidth = -8;
|
|
StateButton.SetTextOffset(-9, 1);
|
|
AddChild(StateButton);
|
|
|
|
//角色名按钮
|
|
local ChannelButton = LenheartNewUI_ButtonText(93, 60, 44, "角色名");
|
|
ChannelButton.Idx = 163;
|
|
ChannelButton.DWidth = 120;
|
|
ChannelButton.FillWidth = 1;
|
|
ChannelButton.FirstWidth = 21;
|
|
ChannelButton.SetTextOffset(17, 1);
|
|
AddChild(ChannelButton);
|
|
|
|
//攻坚队名称按钮
|
|
local PartyNameButton = LenheartNewUI_ButtonText(196, 60, 36, "职业名");
|
|
PartyNameButton.Idx = 163;
|
|
PartyNameButton.DWidth = 100;
|
|
PartyNameButton.FillWidth = 1;
|
|
PartyNameButton.FirstWidth = 21;
|
|
PartyNameButton.SetTextOffset(11, 1);
|
|
AddChild(PartyNameButton);
|
|
|
|
//入场材料按钮
|
|
local Striiu = "入场材料";
|
|
if (FiendwarTotal.GetInstance().EndTime) Striiu = "通关次数";
|
|
local StageButton = LenheartNewUI_ButtonText(289, 60, 0, Striiu);
|
|
StageButton.Idx = 163;
|
|
StageButton.DWidth = 26;
|
|
StageButton.FillWidth = 1;
|
|
StageButton.FirstWidth = 21;
|
|
StageButton.SetTextOffset(-14, 1);
|
|
AddChild(StageButton);
|
|
|
|
//如果不是我的队伍 并且我没有攻坚队
|
|
if (!IsMyTeam && !FiendwarTotal.GetInstance().MyPartyId) {
|
|
local JoinPartyButton = LenheartNewUI_ButtonText(10, 268, 10, "参加攻坚队");
|
|
JoinPartyButton.SetTextOffset(-15, 1);
|
|
JoinPartyButton.OnClick = function() {
|
|
local T = {
|
|
op = 20063005,
|
|
teamsId = TeamID,
|
|
items = [L_sq_GetCharacterAttribute(0x1c, 21), L_sq_GetCharacterAttribute(0x1c, 15), L_sq_GetCharacterAttribute(0x1c, 14), L_sq_GetCharacterAttribute(0x1c, 13)],
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
}.bindenv(this);
|
|
AddChild(JoinPartyButton);
|
|
}
|
|
|
|
//如果是我的队伍
|
|
if (IsMyTeam) {
|
|
//退出按钮
|
|
local ExitButton = LenheartNewUI_ButtonText(220, 268, 5, "退出");
|
|
ExitButton.SetTextOffset(-1, 1);
|
|
ExitButton.OnClick = function() {
|
|
local T = {
|
|
op = 20063009,
|
|
teamsId = TeamID
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
FiendwarTotal.GetInstance().MyCid = null;
|
|
FiendwarTotal.GetInstance().MyPartyId = null;
|
|
FiendwarTotal.GetInstance().IsCaptain = null;
|
|
}.bindenv(this);
|
|
AddChild(ExitButton);
|
|
|
|
if (IsCaptain) {
|
|
//队伍编制按钮
|
|
local PartyEditButton = LenheartNewUI_ButtonText(10, 268, 5, "队伍编制");
|
|
PartyEditButton.SetTextOffset(-12, 1);
|
|
PartyEditButton.OnClick = function() {
|
|
local win = LenheartNewUI_CreateWindow(FiendwarPartyFormation, "超时空我的队伍编队窗口", 105, 40, 294, 192, 18);
|
|
win.Visible = true;
|
|
}.bindenv(this);
|
|
AddChild(PartyEditButton);
|
|
|
|
//修改信息按钮
|
|
local FqButton = LenheartNewUI_ButtonText(100, 267, 5, "修改信息");
|
|
FqButton.State = 8;
|
|
FqButton.SetTextOffset(-12, 1);
|
|
AddChild(FqButton);
|
|
|
|
//队伍招募按钮
|
|
local FqButton1 = LenheartNewUI_ButtonText(160, 267, 5, "队伍招募");
|
|
FqButton1.State = 8;
|
|
FqButton1.SetTextOffset(-12, 1);
|
|
AddChild(FqButton1);
|
|
|
|
if (!FiendwarTotal.GetInstance().EndTime) {
|
|
//队伍招募按钮
|
|
local FightOpenButton = LenheartNewUI_ButtonText(290, 268, 5, "开始攻坚");
|
|
FightOpenButton.SetTextOffset(-12, 1);
|
|
FightOpenButton.OnClick = function() {
|
|
local T = {
|
|
op = 20063051,
|
|
teamsId = TeamID
|
|
}
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
|
}.bindenv(this);
|
|
AddChild(FightOpenButton);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//绘制主界面
|
|
function DrawMain(obj) {
|
|
//标题栏
|
|
L_sq_DrawButton(X, Y, 344, "interface/lenheartwindowcommon.img", 609, 2, 7);
|
|
//绘制队伍名字
|
|
L_sq_DrawCode(TeamName, X + 178 - LenheartTextClass.GetStringLength(TeamName) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
|
|
|
|
//Item信息框一般为211的宽度
|
|
L_sq_DrawWindow(X, Y + 17, 340, 250, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|
//绘制头图
|
|
L_sq_DrawImg("interface2/gcontents/180621_fiendwar/raid/memberwindow.img", 0, X + 10, Y + 24);
|
|
//绘制阶段图 //TODO 根据阶段绘制img
|
|
L_sq_DrawImg("hud/fiendwarl.img", 7, X + 296, Y + 34);
|
|
|
|
//绘制队伍List
|
|
DrawMembersList(obj);
|
|
}
|
|
|
|
//绘制队伍信息
|
|
function DrawMembersList(obj) {
|
|
if (MembersList.len() <= 0) return;
|
|
//遍历需要显示的同步坐标
|
|
foreach(Index, TeamObj in MembersList) {
|
|
TeamObj.SyncPos(X, Y + 2 + Index * 23);
|
|
}
|
|
}
|
|
|
|
function Show(obj) {
|
|
DrawMain(obj);
|
|
LenheartNewUI_Windows.Show(obj);
|
|
|
|
}
|
|
|
|
//逻辑入口
|
|
function Proc(obj) {
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
# override # "
|
|
* @函数作用:
|
|
* @参数 name
|
|
* @返回值
|
|
*/
|
|
//鼠标左键弹起回调
|
|
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
|
foreach(Window in Childrens) {
|
|
Window.OnMouseLbUp(MousePos_X, MousePos_Y);
|
|
}
|
|
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
|
|
//判断没有点到具体角色就隐藏
|
|
if (!sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X, Y + 80, Width, MembersList.len() * 21)) {
|
|
//交互窗口需要隐藏
|
|
local Each = LenheartNewUI_CreateWindow(FiendwarHallPlayerInteractiveC, "超时空玩家交互", X, Y, 100, 21, 0);
|
|
Each.Visible = false;
|
|
}
|
|
|
|
}
|
|
} |