Files
JJBB/Assets/Project/Script/GUI/Team/TeamInvateWindow.cs

182 lines
4.3 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
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<TeamInvateWindow>
{
public UISubScollMenu _SubMenu;
public UIContainerBase _TeamContainer;
public static List<string> 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<string>();
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<TeamInfo> teamList = new List<TeamInfo>();
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<TeamInfo> _FriendTeamInfo = new List<TeamInfo>();
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<TeamInfo>());
}
#endregion
}