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);
 | |
|     }
 | |
| } |