234 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			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);
 | |
|     }
 | |
| }
 |