120 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:antontownmainparty_info.nut | ||
|  | 路径:Plugins/Anton/antontownmainparty_info.nut | ||
|  | 创建日期:2022-09-04	20:09 | ||
|  | 文件用途:城镇中打开安图恩攻坚队面板攻坚队信息部分 | ||
|  | */ | ||
|  | 
 | ||
|  | class AntonTownControlInfo_C extends BasicsDrawTool { | ||
|  |     X = 424; | ||
|  |     Y = 28; | ||
|  |     UserUiMap = null; //小队成员UI Map | ||
|  |     UserInfoMap = null; //小队成员Info Map | ||
|  |     MySelfMap = null; //自己 | ||
|  | 
 | ||
|  |     CaptainControl = false; //攻坚队长主控 | ||
|  | 
 | ||
|  |     function RedAntonPlayerInfo(chunk) { | ||
|  |         //Sout("收到包: %L", chunk); | ||
|  |         local RootTab = getroottable(); | ||
|  |         BasicsDrawTool.InitClass("AntonTownUserJson"); //自动判断清空 | ||
|  |         local JsonObj = Json_STL("AntonTownUserJsonBuffer"); | ||
|  |         RootTab.rawset("AntonTownUserJson", JsonObj); | ||
|  |         RootTab["AntonTownUserJson"].Parse(chunk, 0, false); | ||
|  | 
 | ||
|  |         //判断是否是攻坚队长主控 | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].CaptainControl = RootTab["AntonTownUserJson"].Get("CaptainBool"); | ||
|  |         //清空自己的信息 | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap = {}; | ||
|  |         //写入自己的信息 | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PartyID", RootTab["AntonTownUserJson"].Get("myself->PartyID")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PartyCaptain", RootTab["AntonTownUserJson"].Get("myself->PartyCaptain")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PlayerGrowTypeJob", RootTab["AntonTownUserJson"].Get("myself->PlayerGrowTypeJob")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PlayerSession", RootTab["AntonTownUserJson"].Get("myself->PlayerSession")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PlayerLevel", RootTab["AntonTownUserJson"].Get("myself->PlayerLevel")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PlayerJob", RootTab["AntonTownUserJson"].Get("myself->PlayerJob")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("PlayerName", RootTab["AntonTownUserJson"].Get("myself->PlayerName")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("CaptainBool", RootTab["AntonTownUserJson"].Get("myself->CaptainBool")); | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].MySelfMap.rawset("isPrepare", RootTab["AntonTownUserJson"].Get("myself->isPrepare")); | ||
|  | 
 | ||
|  |         //清空小队成员数组 | ||
|  |         RootTab["ANTONTOWNCONTROLINFO"].UserInfoMap = []; | ||
|  |         //写入小队成员信息 | ||
|  |         for (local i = 0; i < 20; i++) { | ||
|  |             local gPartyID = RootTab["AntonTownUserJson"].Get("result->" + i + "->PartyID"); //得到队伍ID | ||
|  |             if (gPartyID == true || gPartyID == false) break; //如果读不到说明读完了 直接走 | ||
|  |             local gPartyCaptain = RootTab["AntonTownUserJson"].Get("result->" + i + "->PartyCaptain"); //得到是否为小队队长 | ||
|  |             local gPlayerGrowTypeJob = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerGrowTypeJob"); //得到转职职业(String) | ||
|  |             local gPlayerSession = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerSession"); //得到世界编号 | ||
|  |             local gPlayerLevel = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerLevel"); //得到等级 | ||
|  |             local gPlayerJob = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerJob"); //得到基础职业 | ||
|  |             local gPlayerJobEx = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerJobEx"); //得到基础职业 | ||
|  |             local gPlayerName = RootTab["AntonTownUserJson"].Get("result->" + i + "->PlayerName"); //得到玩家名字 | ||
|  |             local gCaptainBool = RootTab["AntonTownUserJson"].Get("result->" + i + "->CaptainBool"); //得到是否为攻坚队队长 | ||
|  |             local gMaterial = RootTab["AntonTownUserJson"].Get("result->" + i + "->isPrepare"); //得到是否拥有材料 | ||
|  |             local gCID = RootTab["AntonTownUserJson"].Get("result->" + i + "->CID"); //得到是否拥有材料 | ||
|  | 
 | ||
|  |             local PlayerTab = { | ||
|  |                 PartyID = gPartyID, | ||
|  |                 PartyCaptain = gPartyCaptain, | ||
|  |                 PlayerGrowTypeJob = gPlayerGrowTypeJob, | ||
|  |                 PlayerSession = gPlayerSession, | ||
|  |                 PlayerLevel = gPlayerLevel, | ||
|  |                 PlayerJob = gPlayerJob, | ||
|  |                 PlayerJobEx = gPlayerJobEx, | ||
|  |                 PlayerName = gPlayerName, | ||
|  |                 CaptainBool = gCaptainBool, | ||
|  |                 Material = gMaterial, | ||
|  |                 CID = gCID, | ||
|  |             } | ||
|  |             RootTab["ANTONTOWNCONTROLINFO"].UserInfoMap.append(PlayerTab); //PlayerInfoTable丢进数组 | ||
|  |         } | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor() { | ||
|  |         UserUiMap = []; //小队成员UI Map | ||
|  |         UserInfoMap = []; //小队成员Info Map | ||
|  |         MySelfMap = {}; //自己 | ||
|  | 
 | ||
|  |         print("AntonTownControl_C ClassObject Succes"); | ||
|  |         Pack_Control.rawset(1002, RedAntonPlayerInfo); | ||
|  |         Pack_Control.rawset(1012, RedAntonPlayerInfo); | ||
|  |         UserUiMap.resize(20); | ||
|  |     } | ||
|  | 
 | ||
|  |     function DrawPartyInfo(obj) { | ||
|  |         for (local i = 0; i < UserInfoMap.len(); ++i) { | ||
|  |             if (!UserUiMap[i]) UserUiMap[i] = AntonUserControl_C("AntonUserPlayer" + i, 308 + ((i % 2) * 223), 97 + ((i / 2) * 42), CaptainControl); //如果用户Map没有被实例化则实例化他 | ||
|  | 
 | ||
|  |             UserUiMap[i].SetPlayerInfo(UserInfoMap[i]); | ||
|  | 
 | ||
|  |             UserUiMap[i].Run(obj); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     function Show(obj) { | ||
|  |         //如果有攻坚队的具体信息才绘制 | ||
|  |         if (UserInfoMap.len() > 0) { | ||
|  |             DrawPartyInfo(obj); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Run(obj) { | ||
|  |         Show(obj); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | local RootTab = getroottable(); | ||
|  | RootTab.rawdelete("ANTONTOWNCONTROLINFO"); | ||
|  | 
 | ||
|  | function AntonTownMainControl_PartyInfo(obj) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     if (RootTab.rawin("ANTONTOWNCONTROLINFO") == false) { | ||
|  |         local ANTONTOWNCONTROLINFOOBJ = AntonTownControlInfo_C(); | ||
|  |         RootTab.rawset("ANTONTOWNCONTROLINFO", ANTONTOWNCONTROLINFOOBJ); | ||
|  |     } | ||
|  | 
 | ||
|  | } |