Sqr/Plugins/Anton/antontownmainparty_req.nut

234 lines
10 KiB
Plaintext

/*
文件名:antontownmainparty_req.nut
路径:Plugins/Anton/antontownmainparty_req.nut
创建日期:2022-09-04 20:11
文件用途:城镇中打开安图恩攻坚队面板攻坚队申请部分
*/
class AntonTownMainControl_PartyReq_C extends BasicsDrawTool {
X = 57;
Y = 385;
ReqList = null;
Page = 1;
NowSelect = 0;
LeftButtonObject = null; //左按钮
RightButtonObject = null; //右按钮
ClossButtonObj = null;
AllowJoinButtonObj = null;
RejectJoinButtonObj = null;
function AntonPartyReqPack(chunk) {
//print(chunk);
local RootTab = getroottable();
BasicsDrawTool.InitClass("AntonPartyReqJson"); //自动判断清空
local JsonObj = Json_STL("AntonPartyReqJson");
RootTab.rawset("AntonPartyReqJson", JsonObj);
RootTab["AntonPartyReqJson"].Parse(chunk, 0, false);
local TabBuffer = {
UID = RootTab["AntonPartyReqJson"].Get("Charac->UID"),
CID = RootTab["AntonPartyReqJson"].Get("Charac->CID"),
CaptainBool = RootTab["AntonPartyReqJson"].Get("Charac->CaptainBool"),
PartyCaptain = RootTab["AntonPartyReqJson"].Get("Charac->PartyCaptain"),
PlayerSession = RootTab["AntonPartyReqJson"].Get("Charac->PlayerSession"),
PartyID = RootTab["AntonPartyReqJson"].Get("Charac->PartyID"),
PlayerLevel = RootTab["AntonPartyReqJson"].Get("Charac->PlayerLevel"),
PlayerName = RootTab["AntonPartyReqJson"].Get("Charac->PlayerName"),
PlayerJob = RootTab["AntonPartyReqJson"].Get("Charac->PlayerJob"),
PlayerJobEx = RootTab["AntonPartyReqJson"].Get("Charac->PlayerJobEx"),
PlayerGrowTypeJob = RootTab["AntonPartyReqJson"].Get("Charac->PlayerGrowTypeJob"),
isPrepare = RootTab["AntonPartyReqJson"].Get("Charac->isPrepare"),
UiButton = null,
}
RootTab["ANTONTOWNMAINCONTROLREQ"].ReqList.append(TabBuffer);
}
constructor() {
ReqList = [];
Pack_Control.rawset(1004, AntonPartyReqPack);
}
//获取汉字偏移
function GetOffserFromLen(char, offset) {
return (char.len() * offset)
}
//绘制申请人具体信息
function DrawReqPlayerInfo(obj) {
//材料准备情况
T_DrawStayAni(obj, "common/anton/material.ani", X + 157, Y - 1, ReqList[NowSelect].isPrepare.tointeger(), "安图恩队伍申请材料准备情况" + ReqList[NowSelect].isPrepare);
//头像
T_DrawStayAni(obj, "common/anton/face/" + ReqList[NowSelect].PlayerJob + "/" + (ReqList[NowSelect].PlayerJobEx % 16) + ".ani", X, Y, 0, "安图恩队伍申请头像编号" + ReqList[NowSelect].PlayerName);
//绘制等级
L_Code_STL("Lv." + ReqList[NowSelect].PlayerLevel, X + 40, Y + 17, 0xFF29708a, 1);
//绘制名字
L_Code_STL(ReqList[NowSelect].PlayerName, X + 40, Y - 1, 0xFF29708a, 1);
//绘制职业名
L_Code_STL(ReqList[NowSelect].PlayerGrowTypeJob, X + 65 + GetOffserFromLen(ReqList[NowSelect].PlayerGrowTypeJob.tostring(), 3), Y + 17, 0xFF29708a, 1);
//绘制信息
L_Code_STL("", X + 200, Y + 75, 0xFF29708a, 1);
}
//绘制申请人列表
function DrawReqPlayerList(obj) {
local Min = 0 + (5 * (Page - 1));
local Max = 5 * Page;
for (local i = Min; i < ReqList.len() % Max; ++i) {
T_DrawStayAni(obj, "common/anton/new/newbaseui.ani", X - 5, Y + 53 + (19 * i), 1, "安图恩队伍申请列表底框" + i);
//绘制等级
L_Code_STL("Lv." + ReqList[i].PlayerLevel, X + 3, Y + 56 + (19 * i), 0xFF29708a, 1);
//绘制名字
L_Code_STL(ReqList[i].PlayerName, X + 57, Y + 56 + (19 * i), 0xFF29708a, 1);
//材料准备情况
T_DrawStayAni(obj, "common/anton/material.ani", X + 160, Y + 56 + (19 * i), ReqList[i].isPrepare.tointeger(), "安图恩队伍申请材料准备情况" + ReqList[NowSelect].isPrepare);
ReqList[i].UiButton = AntonButtonPro(obj, "AntonPartyReqListSwitchButton" + ReqList[i].PlayerName, X - 5, Y + 53 + (19 * i), "common/anton/new/newnull.ani", 255, 15, 0);
ReqList[i].UiButton.SetRectEnble(true, "AntonPartyReqListSwitchButtonr" + ReqList[i].PlayerName, X - 5, Y + 53 + (19 * i), "common/anton/new/newbaseui.ani", 3);
ReqList[i].UiButton.Show();
if (ReqList[i].UiButton.isLBActive()) {
obj.sq_PlaySound("CLICK_BUTTON1");
NowSelect = i;
}
}
T_DrawStayAni(obj, "common/anton/new/newbaseui.ani", X - 5, Y + 53 + (19 * NowSelect), 2, "安图恩队伍申请列表界面当前选中");
}
//绘制申请人页面控制
function DrawReqPlayerListPageConctrl(obj) {
//绘制申请人页面数量
local ListMaxPage = (ReqList.len() / 5).tointeger() + 1;
L_Code_STL(Page.tostring() + " / " + ListMaxPage.tostring(), X + 21, Y + 155, 0xFFFFFFFF, 1);
//如果申请人列表不止1页
if (ListMaxPage > 1) {
//左按钮
{
if (LeftButtonObject == null) {
LeftButtonObject = AntonButtonPro(obj, "AntonPartyReqListLeftButton", X - 3, Y + 154, "common/anton/new/newbasebutton.ani", 15, 13, 0);
LeftButtonObject.SetRectEnble(true, "AntonPartyReqListLeftButtonr", X - 3, Y + 154, "common/anton/new/newbasebutton.ani", 1);
LeftButtonObject.SetCustomClickEnble(true, "AntonPartyReqListLeftButtonc", X - 3, Y + 155, "common/anton/new/newbasebutton.ani", 2);
}
LeftButtonObject.Show();
if (LeftButtonObject.isLBActive()) {
obj.sq_PlaySound("CLICK_BUTTON2");
if (Page > 1) --Page;
}
}
//右按钮
{
if (RightButtonObject == null) {
RightButtonObject = AntonButtonPro(obj, "AntonPartyReqListRightButton", X + 55, Y + 154, "common/anton/new/newbasebutton.ani", 15, 13, 3);
RightButtonObject.SetRectEnble(true, "AntonPartyReqListRightButtonr", X + 55, Y + 154, "common/anton/new/newbasebutton.ani", 4);
RightButtonObject.SetCustomClickEnble(true, "AntonPartyReqListRightButtonc", X + 55, Y + 155, "common/anton/new/newbasebutton.ani", 5);
}
RightButtonObject.Show();
if (RightButtonObject.isLBActive()) {
obj.sq_PlaySound("CLICK_BUTTON2");
if (Page < ListMaxPage) ++Page;
}
}
}
}
//绘制申请人控制按钮
function DrawReqPlayerConctrlButton(obj, Type) {
if (Type == 0) {
T_DrawStayAni(obj, "common/anton/new/newbasebutton.ani", X + 138, Y + 153, 20, "安图恩队伍申请同意不可用");
T_DrawStayAni(obj, "common/anton/new/newbasebutton.ani", X + 138 + 43, Y + 153, 24, "安图恩队伍申请拒绝不可用");
} else {
//同意按钮
{
if (AllowJoinButtonObj == null) {
AllowJoinButtonObj = AntonButtonPro(obj, "AntonAllowJoinButton", X + 138, Y + 153, "common/anton/new/newbasebutton.ani", 40, 17, 21);
AllowJoinButtonObj.SetRectEnble(true, "AntonAllowJoinButtonr", X + 138, Y + 153, "common/anton/new/newbasebutton.ani", 22);
AllowJoinButtonObj.SetCustomClickEnble(true, "AntonAllowJoinButtonc", X + 138, Y + 153, "common/anton/new/newbasebutton.ani", 23);
}
AllowJoinButtonObj.Show();
if (AllowJoinButtonObj.isLBActive()) {
obj.sq_PlaySound("CLICK_BUTTON2");
local TabBuffer = {
UID = ReqList[NowSelect].UID,
CID = ReqList[NowSelect].CID,
CaptainBool = ReqList[NowSelect].CaptainBool,
PartyCaptain = ReqList[NowSelect].PartyCaptain,
PlayerSession = ReqList[NowSelect].PlayerSession,
PartyID = ReqList[NowSelect].PartyID,
PlayerLevel = ReqList[NowSelect].PlayerLevel,
PlayerJob = ReqList[NowSelect].PlayerJob,
PlayerJobEx = ReqList[NowSelect].PlayerJobEx,
IsPrepare = ReqList[NowSelect].isPrepare,
}
local TabBufferB = {
Charac = TabBuffer,
op = 1013,
}
local ReqStr = Json.Encode(TabBufferB);
L_sq_SendPackType(130);
L_sq_SendPackWChar(ReqStr);
L_sq_SendPack();
ReqList.remove(NowSelect);
}
}
//拒绝按钮
{
if (RejectJoinButtonObj == null) {
RejectJoinButtonObj = AntonButtonPro(obj, "AntonRejectJoinButton", X + 138 + 43, Y + 153, "common/anton/new/newbasebutton.ani", 40, 17, 25);
RejectJoinButtonObj.SetRectEnble(true, "AntonRejectJoinButtonr", X + 138 + 43, Y + 153, "common/anton/new/newbasebutton.ani", 26);
RejectJoinButtonObj.SetCustomClickEnble(true, "AntonRejectJoinButtonc", X + 138 + 43, Y + 153, "common/anton/new/newbasebutton.ani", 27);
}
RejectJoinButtonObj.Show();
if (RejectJoinButtonObj.isLBActive()) {
obj.sq_PlaySound("CLICK_BUTTON2");
ReqList.remove(NowSelect);
}
}
}
}
function Show(obj) {
//绘制申请人具体信息
DrawReqPlayerInfo(obj);
//绘制申请人列表
DrawReqPlayerList(obj);
//绘制申请人页面控制
DrawReqPlayerListPageConctrl(obj);
//绘制申请人控制按钮
DrawReqPlayerConctrlButton(obj, 1);
}
function Run(obj) {
//如果不是自己的界面打开
local RootTab = getroottable();
if(RootTab["ANTONTEAMMAINBUTTON"].State == 0)return;
local ArrSize = ReqList.len();
if (ArrSize > 0) {
Show(obj);
} else DrawReqPlayerConctrlButton(obj, 0);
}
}
local RootTab = getroottable();
RootTab.rawdelete("ANTONTOWNMAINCONTROLREQ");
function AntonTownMainControl_PartyReq(obj) {
local RootTab = getroottable();
if (RootTab.rawin("ANTONTOWNMAINCONTROLREQ") == false) {
local ANTONTOWNMAINCONTROLREQOBJ = AntonTownMainControl_PartyReq_C();
RootTab.rawset("ANTONTOWNMAINCONTROLREQ", ANTONTOWNMAINCONTROLREQOBJ);
}
}