182 lines
4.3 KiB
C#
182 lines
4.3 KiB
C#
|
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
|
|||
|
}
|