303 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			303 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:antontownmainparty_user.nut | ||
|  | 路径:Plugins/Anton/antontownmainparty_user.nut | ||
|  | 创建日期:2022-09-04	20:12 | ||
|  | 文件用途:城镇中打开安图恩攻坚队面板攻坚队玩家部分 | ||
|  | */ | ||
|  | 
 | ||
|  | class AntonUserControl_C extends BasicsDrawTool | ||
|  | { | ||
|  |     CaptainControl = null; //攻坚队长主控 | ||
|  | 
 | ||
|  |     PartyID = null; //队伍ID | ||
|  |     PlayerLevel = null; //玩家等级 | ||
|  |     PlayerName = null; //玩家名字 | ||
|  |     PlayerJob = null; //玩家基础职业 | ||
|  |     PlayerJobEx = null; //玩家转职职业 | ||
|  |     PlayerGrowTypeJob = null; //玩家转职职业 | ||
|  |     PlayerSession = null; //玩家世界编号 | ||
|  |     PartyCaptain = null; //玩家是否小队队长 | ||
|  |     CaptainBool = null; //是否攻坚队队长 | ||
|  |     Material = null; //是否拥有材料 | ||
|  |     CID = null; //玩家CID | ||
|  | 
 | ||
|  |     CheakPlayerInfoFunc = null; | ||
|  | 
 | ||
|  |     FuncButtonSwitch = false; //功能界面是否打开 | ||
|  |     MyName = null; | ||
|  |     ButtonObj = null; | ||
|  |     X = 0; | ||
|  |     Y = 0; | ||
|  | 
 | ||
|  |     KickoutPlayerButtonObj = null; //踢出玩家按钮 | ||
|  |     CheckPlayerInfoButtonObj = null; //查看信息按钮 | ||
|  |     PartyFuncButtonObj = null; //组队按钮 | ||
|  |     TradingPlayerButtonObj = null; //交易按钮 | ||
|  | 
 | ||
|  |     //获取汉字偏移 | ||
|  |     function GetOffserFromLen(char, offset) | ||
|  |     { | ||
|  |         return (char.len() * offset) | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor(gName, gX, gY, gCaptainControl) | ||
|  |     { | ||
|  |         MyName = gName; | ||
|  |         X = gX; | ||
|  |         Y = gY; | ||
|  |         print("AntonUserControl_C ClassObject Succes"); | ||
|  |         CaptainControl = gCaptainControl; | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置Player信息 | ||
|  |     function SetPlayerInfo(InfoTable) | ||
|  |     { | ||
|  |         PartyID = InfoTable.PartyID; //队伍ID | ||
|  |         PlayerLevel = InfoTable.PlayerLevel; //玩家等级 | ||
|  |         PlayerName = InfoTable.PlayerName; //玩家名字 | ||
|  |         PlayerJob = InfoTable.PlayerJob; //玩家基础职业 | ||
|  |         PlayerJobEx = InfoTable.PlayerJobEx; //玩家转职职业 | ||
|  |         PlayerGrowTypeJob = InfoTable.PlayerGrowTypeJob; //玩家转职职业 | ||
|  |         PlayerSession = InfoTable.PlayerSession; //玩家世界编号 | ||
|  |         PartyCaptain = InfoTable.PartyCaptain; //玩家是否小队队长 | ||
|  |         CaptainBool = InfoTable.CaptainBool; //是否攻坚队队长 | ||
|  |         Material = InfoTable.Material; //是否拥有材料 | ||
|  |         CID = InfoTable.CID; //玩家CID | ||
|  |     } | ||
|  | 
 | ||
|  |     function FuncButtonC(obj, YposOffset, AniIndex) | ||
|  |     { | ||
|  |         local FuncThis = null; | ||
|  |         if(FuncThis == null) | ||
|  |         { | ||
|  |             FuncThis = AntonButtonPro(obj, MyName + FuncThis + "Func", AntonTownControl_C.X + X - 110, AntonTownControl_C.Y + Y - 1 + YposOffset, "common/anton/funcbutton.ani", 100, 21, AniIndex); | ||
|  |             FuncThis.SetRectEnble(true, MyName + FuncThis + "Func", AntonTownControl_C.X + X - 110, AntonTownControl_C.Y + Y - 1 + YposOffset, "common/anton/funcbutton.ani", AniIndex + 1); | ||
|  |             FuncThis.SetCustomClickEnble(true, FuncThis + "FuncSwitchButtonc", AntonTownControl_C.X + X - 110, AntonTownControl_C.Y + Y - 1 + YposOffset, "common/anton/funcbutton.ani", AniIndex + 2); | ||
|  |         } | ||
|  |         FuncThis.Show(); | ||
|  |         return FuncThis; | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制功能按键 | ||
|  |     function DrawFucButton(obj) | ||
|  |     { | ||
|  |         if(FuncButtonSwitch) //功能函数开关 | ||
|  |         { | ||
|  |             local Ypos = 0; //初始偏移 | ||
|  | 
 | ||
|  |             { //邀请组队 | ||
|  |                 if(PartyID == 0) | ||
|  |                 { | ||
|  |                     local CheakPlayer = FuncButtonC(obj, Ypos, 12); | ||
|  |                     if(CheakPlayer.isLBActive()) | ||
|  |                     { | ||
|  |                         L_sq_SendPackType(10); | ||
|  |                         L_sq_SendPackWord(PlayerSession); | ||
|  |                         L_sq_SendPackByte(0); | ||
|  |                         L_sq_SendPackDWord(1); | ||
|  |                         L_sq_SendPackWord(0); | ||
|  |                         L_sq_SendPack(); | ||
|  |                     } | ||
|  |                     Ypos += 21; | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  | 
 | ||
|  |             { //查看信息 | ||
|  |                 local CheakPlayer = FuncButtonC(obj, Ypos, 0); | ||
|  |                 if(CheakPlayer.isLBActive()) | ||
|  |                 { | ||
|  |                     L_sq_SendPackType(8); | ||
|  |                     L_sq_SendPackWord(PlayerSession); | ||
|  |                     L_sq_SendPackByte(3); | ||
|  |                     L_sq_SendPack(); | ||
|  |                 } | ||
|  |                 Ypos += 21; | ||
|  |             } | ||
|  | 
 | ||
|  |             { //交易 | ||
|  |                 local TradingPlayer = FuncButtonC(obj, Ypos, 6); | ||
|  |                 if(TradingPlayer.isLBActive()) | ||
|  |                 { | ||
|  |                     L_sq_SendPackType(10); | ||
|  |                     L_sq_SendPackWord(PlayerSession); | ||
|  |                     L_sq_SendPackByte(1); | ||
|  |                     L_sq_SendPackDWord(22053); | ||
|  |                     L_sq_SendPack(); | ||
|  |                 } | ||
|  |                 Ypos += 21; | ||
|  |             } | ||
|  | 
 | ||
|  | 
 | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制主Ani | ||
|  |     function DrawMainAni(obj) | ||
|  |     { | ||
|  |         if(ButtonObj == null) | ||
|  |         { | ||
|  |             ButtonObj = AntonButtonPro(obj, MyName, AntonTownControl_C.X + X, AntonTownControl_C.Y + Y, "common/anton/user.ani", 329, 17, 0); | ||
|  |             ButtonObj.SetRectEnble(true, MyName + "SwitchButtonr", AntonTownControl_C.X + X - 8, AntonTownControl_C.Y + Y - 8, "common/anton/user.ani", 2); | ||
|  |         } | ||
|  |         ButtonObj.Show(); | ||
|  | 
 | ||
|  |         //绘制队伍 | ||
|  |         T_DrawStayAni(obj, "common/anton/partytype.ani", AntonTownControl_C.X + X + 6, AntonTownControl_C.Y + Y + 2, PartyID + 1, "安图恩队伍编号" + PartyID, 1.0); | ||
|  |         //绘制材料准备情况 | ||
|  |         T_DrawStayAni(obj, "common/anton/material.ani", AntonTownControl_C.X + X + 272, AntonTownControl_C.Y + Y + 2, Material.tointeger(), "安图恩材料准备情况" + Material, 1.0); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制头像 | ||
|  |     function DrawFaceAni(obj) | ||
|  |     { | ||
|  |         T_DrawStayAni(obj, "common/anton/face/" + PlayerJob + "/" + (PlayerJobEx % 16) + ".ani", X, Y, 0, "安图恩头像编号" + PlayerName); | ||
|  |         //如果是攻坚队长主控 | ||
|  |         if(CaptainControl && !CaptainBool) | ||
|  |         { | ||
|  |             KickoutPlayerButtonObj = AntonButtonPro(obj, "AntonPartyKickoutButton" + PlayerName.tostring(), X - 9, Y - 10, "common/anton/new/newnull.ani", 38, 39, 0); | ||
|  |             KickoutPlayerButtonObj.SetRectEnble(true, "AntonPartyKickoutButtonr" + PlayerName.tostring(), X - 9, Y - 10, "common/anton/new/newfunc.ani", 0); | ||
|  |             KickoutPlayerButtonObj.Show(); | ||
|  | 
 | ||
|  |             if(KickoutPlayerButtonObj.isLBActive()) | ||
|  |             { | ||
|  |                 obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |                 local AntonKickoutPartyPlayer = Json_STL("AntonKickoutPartyPlayer"); | ||
|  |                 AntonKickoutPartyPlayer.Put("op", 1015); | ||
|  |                 AntonKickoutPartyPlayer.Put("TCID", CID); | ||
|  |                 local str = AntonKickoutPartyPlayer.GetString(); | ||
|  |                 L_sq_SendPackType(130); | ||
|  |                 L_sq_SendPackWChar(str); | ||
|  |                 L_sq_SendPack(); | ||
|  |                 AntonKickoutPartyPlayer.Delete(); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制名字 | ||
|  |     function DrawPlayerName(obj) | ||
|  |     { | ||
|  |         L_Code_STL(PlayerName.tostring(), X + 40, Y - 1, 0xFF4990aa, 1); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制等级 | ||
|  |     function DrawPlayerLevel(obj) | ||
|  |     { | ||
|  |         L_Code_STL("Lv." + PlayerLevel, X + 40, Y + 17, 0xFF29708a, 1); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制职业名字 | ||
|  |     function DrawPlayerGrowTypeName(obj) | ||
|  |     { | ||
|  |         L_Code_STL(PlayerGrowTypeJob, X + 65 + GetOffserFromLen(PlayerLevel.tostring(), 3), Y + 17, 0xFF29708a, 1); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制队伍图标 | ||
|  |     function DrawPlayerPartyType(obj) | ||
|  |     { | ||
|  |         if(CaptainBool == true) | ||
|  |         { | ||
|  |             T_DrawStayAni(obj, "common/anton/partytype.ani", X + 133, Y - 1, 0, "安图恩队伍编号队长"); | ||
|  |         } | ||
|  |         else T_DrawStayAni(obj, "common/anton/partytype.ani", X + 133, Y - 1, PartyID + 1, "安图恩队伍编号" + PartyID); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制材料准备情况 | ||
|  |     function DrawPlayerMaterial(obj) | ||
|  |     { | ||
|  |         T_DrawStayAni(obj, "common/anton/material.ani", X + 157, Y - 1, Material.tointeger(), "安图恩材料准备情况" + Material.tostring()); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制交互功能按钮 | ||
|  |     function DrawPlayerFunc(obj) | ||
|  |     { | ||
|  |         //绘制查看信息按钮 | ||
|  |         { | ||
|  |             if(!CheckPlayerInfoButtonObj) | ||
|  |             { | ||
|  |                 CheckPlayerInfoButtonObj = AntonButtonPro(obj, "AntonCheckPlayerInfoButton", X + 153, Y + 12, "common/anton/new/newfunc.ani", 16, 16, 1); | ||
|  |                 CheckPlayerInfoButtonObj.SetRectEnble(true, "AntonCheckPlayerInfoButtonr", X + 153, Y + 12, "common/anton/new/newfunc.ani", 2); | ||
|  |                 CheckPlayerInfoButtonObj.SetCustomClickEnble(true, "AntonCheckPlayerInfoButtonr", X + 153, Y + 13, "common/anton/new/newfunc.ani", 2); | ||
|  |             } | ||
|  |             CheckPlayerInfoButtonObj.Show(); | ||
|  |             if(CheckPlayerInfoButtonObj.isLBActive()) | ||
|  |             { | ||
|  |                 obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |                 L_sq_SendPackType(8); | ||
|  |                 L_sq_SendPackWord(PlayerSession); | ||
|  |                 L_sq_SendPackByte(3); | ||
|  |                 L_sq_SendPack(); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //绘制交易按钮 | ||
|  |         { | ||
|  |             if(!TradingPlayerButtonObj) | ||
|  |             { | ||
|  |                 TradingPlayerButtonObj = AntonButtonPro(obj, "AntonTradingPlayerButton", X + 171, Y + 12, "common/anton/new/newfunc.ani", 16, 16, 3); | ||
|  |                 TradingPlayerButtonObj.SetRectEnble(true, "AntonTradingPlayerButtonr", X + 171, Y + 12, "common/anton/new/newfunc.ani", 4); | ||
|  |                 TradingPlayerButtonObj.SetCustomClickEnble(true, "AntonTradingPlayerButtonr", X + 171, Y + 13, "common/anton/new/newfunc.ani", 4); | ||
|  |             } | ||
|  |             TradingPlayerButtonObj.Show(); | ||
|  |             if(TradingPlayerButtonObj.isLBActive()) | ||
|  |             { | ||
|  |                 obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |                 L_sq_SendPackType(10); | ||
|  |                 L_sq_SendPackWord(PlayerSession); | ||
|  |                 L_sq_SendPackByte(1); | ||
|  |                 L_sq_SendPackDWord(22053); | ||
|  |                 L_sq_SendPack(); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //绘制组队按钮 | ||
|  |         { | ||
|  |             if(!PartyFuncButtonObj) | ||
|  |             { | ||
|  |                 PartyFuncButtonObj = AntonButtonPro(obj, "AntonPartyFuncButton", X + 189, Y + 12, "common/anton/new/newfunc.ani", 16, 16, 5); | ||
|  |                 PartyFuncButtonObj.SetRectEnble(true, "AntonPartyFuncButtonr", X + 189, Y + 12, "common/anton/new/newfunc.ani", 6); | ||
|  |                 PartyFuncButtonObj.SetCustomClickEnble(true, "AntonPartyFuncButtonr", X + 189, Y + 13, "common/anton/new/newfunc.ani", 6); | ||
|  |             } | ||
|  |             PartyFuncButtonObj.Show(); | ||
|  |             if(PartyFuncButtonObj.isLBActive()) | ||
|  |             { | ||
|  |                 obj.sq_PlaySound("CLICK_BUTTON1"); | ||
|  |                 L_sq_SendPackType(10); | ||
|  |                 L_sq_SendPackWord(PlayerSession); | ||
|  |                 L_sq_SendPackByte(0); | ||
|  |                 L_sq_SendPackDWord(1); | ||
|  |                 L_sq_SendPackWord(0); | ||
|  |                 L_sq_SendPack(); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Show(obj) | ||
|  |     { | ||
|  |         //绘制头像 | ||
|  |         DrawFaceAni(obj); | ||
|  | 
 | ||
|  |         //绘制名字 | ||
|  |         DrawPlayerName(obj); | ||
|  | 
 | ||
|  |         //绘制等级 | ||
|  |         DrawPlayerLevel(obj); | ||
|  | 
 | ||
|  |         //绘制职业名字 | ||
|  |         DrawPlayerGrowTypeName(obj); | ||
|  | 
 | ||
|  |         //绘制队伍图标 | ||
|  |         DrawPlayerPartyType(obj); | ||
|  | 
 | ||
|  |         //绘制材料准备情况 | ||
|  |         DrawPlayerMaterial(obj); | ||
|  | 
 | ||
|  |         //绘制交互功能按钮 | ||
|  |         DrawPlayerFunc(obj); | ||
|  |     } | ||
|  | 
 | ||
|  |     function Run(obj) | ||
|  |     { | ||
|  |         Show(obj); | ||
|  |     } | ||
|  | } |