using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using Games.GlobeDefine; using GCGame; using Module.Log; using GCGame.Table; using System; public class TeamInvateWindow : UIControllerBase { public UISubScollMenu _SubMenu; public UIContainerBase _TeamContainer; public static List Menus; public void Start() { InitSubMenu(); } void OnEnable() { GUIData.delNearbyPlayerUpdate += UpdateNearbyPlayer; SelectMenu(); SetInstance(this); } void OnDisable() { GUIData.delNearbyPlayerUpdate -= UpdateNearbyPlayer; SetInstance(null); } #region menu private int _SelectedMenu = -1; public void UpdateTeamInfo() { if (GameManager.gameManager.PlayerDataPool.TeamInfo.TeamID != GlobeVar.INVALID_ID) { BtnClose(); UIManager.ShowUI(UIInfo.TeamInfoRoot); return; } } private void InitSubMenu() { if (Menus == null) { Menus = new List(); Menus.Add(StrDictionary.GetClientDictionaryString("#{5122}")); //Menus.Add(StrDictionary.GetClientDictionaryString("#{5123}")); Menus.Add(StrDictionary.GetClientDictionaryString("#{5124}")); } foreach (var menu in Menus) { _SubMenu.PushMenu(menu); } } public void BtnMenu(object menuObj) { string menuStr = menuObj as string; _SelectedMenu = Menus.IndexOf(menuStr); SelectMenu(); } private void SelectMenu() { switch (_SelectedMenu) { case 0: ReqFriend(); break; //case 1: // UpdateGuild(); // break; case 1: ReqNearbyTeam(); break; } } public void BtnClose() { UIManager.CloseUI(UIInfo.TeamInvateRoot); } public void BtnRefresh() { ReqNearbyTeam(); } public void BtnAuto() { } #endregion #region TeamInfo //请求附近队伍 void ReqNearbyTeam() { //发送给服务器请求 CG_REQ_NEAR_LIST packet = (CG_REQ_NEAR_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_NEAR_LIST); packet.IsNearPlayerList = 1; packet.SendPacket(); } //更新附近玩家 public void UpdateNearbyPlayer(GC_NEAR_PLAYERLIST packet) { if (null == packet) { return; } List teamList = new List(); int idCount = packet.GuidCount; for (int i = 0; i < idCount; i++) { TeamInfo team = new TeamInfo(); team.Guid = packet.GetGuid(i); team.Name = packet.GetName(i); team.Level = packet.GetLevel(i); team.Profession = packet.GetProf(i); team.CombatNum = packet.GetCombatNum(i); teamList.Add(team); } _TeamContainer.InitContentItem(teamList); } static int _ReqFriendIdx = 0; private List _FriendTeamInfo = new List(); public void ReqFriend() { //发送给服务器请求 ++_ReqFriendIdx; CG_REQ_FRIEND_INFO_WHO_IS_NOT_IN_TEAM packet = (CG_REQ_FRIEND_INFO_WHO_IS_NOT_IN_TEAM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_FRIEND_INFO_WHO_IS_NOT_IN_TEAM); packet.Ophandle = _ReqFriendIdx; packet.HandleType = (int)CG_REQ_FRIEND_INFO_WHO_IS_NOT_IN_TEAM.HANDLE_TYPE.TeamInfo; packet.SendPacket(); _FriendTeamInfo.Clear(); _TeamContainer.InitContentItem(null); } public void UpdateFriend(GC_ACK_FRIEND_INFO_WHO_IS_NOT_IN_TEAM packet) { if (packet.Ophandle != _ReqFriendIdx) return; TeamInfo team = new TeamInfo(); team.Guid = packet.Guid; team.Name = packet.Name; team.Level = packet.Level; team.Profession = packet.Prof; team.CombatNum = packet.CombatNum; _FriendTeamInfo.Add(team); _TeamContainer.InitContentItem(_FriendTeamInfo); } public void UpdateGuild() { _TeamContainer.InitContentItem(new List()); } #endregion }