Files
JJBB/Assets/Project/Script/GUI/Guild/NoHasGuildMainWnd.cs

638 lines
22 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
//还未加入帮会打开时显示的界面
using Games.LogicObj;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame;
using Module.Log;
using Games.GlobeDefine;
using System.Collections.Generic;
using System;
using GCGame.Table;
using Games.Events;
public class NoHasGuildMainWnd : MonoBehaviour
{
public GameObject ApplyBtn; //申请加入一个帮会按钮
public GameObject RespondBtn; //申请响应帮会的按钮
public GameObject CancelRespondBtn; //取消响应帮会按钮
public GameObject ConnectMainBtn; //响应联系帮主
public GameObject AskEnsileBtn; //招兵买马
public UITagPanel _TagPanel;
public GameObject CancleSearchBtn;
public InputField m_SearchGuild; //搜索帮会输入框
//public InputField m_CreateGuildZhongzhi; //创建帮会界面的宗旨输入框
public Text GuildNotice;
public InputField m_CreateGuildName; //创建帮会界面的帮会名称输入框
public Text m_CreateGuildtiaokuan;
public Text m_JoinGuildZongzhi;
public Text m_RespondZongzhi;
public Text title;
public UIContainerSelect m_JoinContainer;
public UIContainerSelect m_ResponContainer;
private GuildPreviewInfo m_currSelectJoinInfo;
private GuildPreviewInfo m_currSelectRespondInfo;
private ulong m_CurrSelectRespondId = GlobeVar.INVALID_GUID;
//消耗
public Image iconPrice;
public Image iconHas;
public Text Price;
public Text Has;
void Awake()
{
Hashtable add = new Hashtable();
add["name"] = "InitGuildInfoContent";
Games.Events.MessageEventCallBack call = InitGuildInfoContent;
add["callFun"] = call;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.JoinGuildListInfo, add);
if(GameManager.gameManager.PlayerDataPool.IsHaveGuild() == false)
{
Hashtable add1 = new Hashtable();
add1["name"] = "createGuildSucc";
Games.Events.MessageEventCallBack call1 = CreateGuildSuccess;
add1["callFun"] = call1;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.UpdateGuildInfo, add1);
}
Hashtable add2 = new Hashtable();
add2["name"] = "JoinRespond";
Games.Events.MessageEventCallBack call2 = UpdateBtns;
add2["callFun"] = call2;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.OperatorResult, add2);
Hashtable calbackMoveparam3 = new Hashtable();
calbackMoveparam3["name"] = "NoHasGuild";
MessageEventCallBack fun3 = PayFresh;
calbackMoveparam3.Add("callFun", fun3);
EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.FRESHSAMEUSETIP, calbackMoveparam3);
GuildNotice.text = StrDictionary.GetClientDictionaryString("#{25243}");
m_JoinGuildZongzhi.text = StrDictionary.GetClientDictionaryString("#{25243}");
}
void OnDestroy()
{
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.JoinGuildListInfo, "InitGuildInfoContent");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.UpdateGuildInfo, "createGuildSucc");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.OperatorResult, "JoinRespond");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.FRESHSAMEUSETIP, "NoHasGuild");
if (GameManager.gameManager.PlayerDataPool.guildList!=null && GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList!=null)
{
GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList.Clear();
}
if(GameManager.gameManager.PlayerDataPool.guildList!=null && GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList!=null)
{
GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList.Clear();
}
}
public void PayFresh(Hashtable addparam, Hashtable sendparam)
{
Tab_GuildOther other = TableManager.GetGuildOtherByID(0, 0);
if (other != null)
{
Has.text = GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType((MONEYTYPE)other.CreateMoneyType).ToString();
}
}
void Start()
{
if (GameManager.gameManager.PlayerDataPool.guildList != null && GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList != null)
{
GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList.Clear();
}
if (GameManager.gameManager.PlayerDataPool.guildList != null && GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList != null)
{
GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList.Clear();
}
if(Singleton<ObjManager>.Instance.MainPlayer!=null)
{
Singleton<ObjManager>.Instance.MainPlayer.ReqGuildList(1);
Singleton<ObjManager>.Instance.MainPlayer.ReqGuildList(0);
}
Tab_GuildOther other = TableManager.GetGuildOtherByID(0, 0);
if (other != null)
{
Has.text = GameManager.gameManager.PlayerDataPool.Money.GetMoneyByType((MONEYTYPE)other.CreateMoneyType).ToString();
Price.text = other.CreateNeedMoney.ToString();
LoadAssetBundle.Instance.SetImageSprite(iconPrice, UICurrencyItem.GetCurrencySprite((MONEYTYPE)other.CreateMoneyType));
LoadAssetBundle.Instance.SetImageSprite(iconHas, UICurrencyItem.GetCurrencySprite((MONEYTYPE)other.CreateMoneyType));
}
SetRespondBtns();
}
public void SetRespondBtns()
{
if (m_currSelectRespondInfo == null)
return;
bool hasGuild = GameManager.gameManager.PlayerDataPool.IsHaveGuild();
bool HadCreateGuild = GameManager.gameManager.PlayerDataPool.IsHadCreateGuild();
bool isGuildChief = (m_currSelectRespondInfo.GuildChiefGUID == Singleton<ObjManager>.Instance.MainPlayer.GUID);
bool HasRespond = GameManager.gameManager.PlayerDataPool.guildList.HadRespond != GlobeVar.INVALID_GUID;
RespondBtn.SetActive(!(hasGuild || HasRespond || HadCreateGuild));
CancelRespondBtn.SetActive(false);
if (GameManager.gameManager.PlayerDataPool.guildList.HadRespond == m_currSelectRespondInfo.GuildGuid)
{
CancelRespondBtn.SetActive(true);
}
ConnectMainBtn.SetActive(!isGuildChief);
AskEnsileBtn.SetActive(isGuildChief);
}
public void BuyFast()
{
JudgeMoneyLogic.ShowSwitchMoneyPanel(MONEYTYPE.MONEYTYPE_YUANBAO, true);
}
public void TagShowPage(int page)
{
if (page == 0)
{
Click_OpenJoinWnd();
}
else if (page == 1)
{
Click_OpenCreateWnd();
}
else
{
Click_OpenRespondWnd();
}
}
public void OpenIndex(int index,ulong guildGuid = GlobeVar.INVALID_GUID)
{
if (_TagPanel == null)
return;
if (index == 2)
m_CurrSelectRespondId = guildGuid;
_TagPanel.ShowPage(index);
}
public void CreateGuildSuccess(Hashtable add, Hashtable send)
{
//m_CreateGuildZhongzhi.text = "";
m_CreateGuildName.text = "";
if (GameManager.gameManager.PlayerDataPool.IsHaveGuild())
{
UIManager.CloseUI(UIInfo.GuildMainWnd);
UIManager.ShowUI(UIInfo.GuildMainInfoWnd, null, null);
}
else
{
if (GameManager.gameManager.PlayerDataPool.GuildInfo!=null && GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid!= GlobeVar.INVALID_GUID && GameManager.gameManager.PlayerDataPool.GuildInfo.GuildLevel == 0)
{
_TagPanel.ShowPage(2);
}
}
}
private int openIndex = 0;
public void InitGuildInfoContent(Hashtable add, Hashtable send)
{
if (openIndex == 0)
{
InitGuildJoinInfoContent();
}
if(openIndex==1)
{
return;
}
if(openIndex==2)
{
InitGuildRespondInfoContent();
}
}
#region
void InitGuildJoinInfoContent()
{
List<GuildPreviewInfo> selects = new List<GuildPreviewInfo>();
if(GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList.Count>0)
selects.Add(GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList[0]);
m_JoinContainer.InitSelectContent(GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList, selects, GuildInfoItemClick);
}
private GameObject JoinSelect = null;
public void GuildInfoItemClick(object initInfo)
{
GuildPreviewInfo info = initInfo as GuildPreviewInfo;
if (info == null)
{
LogModule.DebugLog("GuildPreviewInfo is null");
return;
}
ApplyBtn.SetActive(info.IsEnemyGuild == false);
//m_JoinGuildZongzhi.text = info.GuildNotice;
m_currSelectJoinInfo = info;
}
#endregion
#region
void InitGuildRespondInfoContent()
{
GuildPreviewInfo Selecte = null;
GuildPreviewInfo self = null;
List<GuildPreviewInfo> showList = new List<GuildPreviewInfo>();
for (int i = 0; i < GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList.Count; i++)
{
GuildPreviewInfo guildInfo = GameManager.gameManager.PlayerDataPool.guildList.RGuildInfoList[i];
if (guildInfo == null)
continue;
if (guildInfo.RespondOverTime - Time.realtimeSinceStartup <= 0)
continue;
if(m_CurrSelectRespondId!=GlobeVar.INVALID_GUID && guildInfo.GuildGuid == m_CurrSelectRespondId)
{
Selecte = guildInfo;
}
if (GameManager.gameManager.PlayerDataPool.GuildInfo != null && GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid == guildInfo.GuildGuid)
{
self = guildInfo;
}
else
showList.Add(guildInfo);
}
if (showList.Count <= 0 && self == null)
return;
List<GuildPreviewInfo> selects = new List<GuildPreviewInfo>();
if (self != null)
showList.Insert(0, self);
if (Selecte != null)
selects.Add(Selecte);
else
{
if (self != null)
selects.Add(self);
else
selects.Add(showList[0]);
}
m_ResponContainer.InitSelectContent(showList, selects, GuildResInfoItemClick);
}
public void GuildResInfoItemClick(object initInfo)
{
GuildPreviewInfo info = initInfo as GuildPreviewInfo;
if (info == null)
{
//LogModule.DebugLog("GuildPreviewInfo is null");
return;
}
m_RespondZongzhi.text = info.GuildNotice;
m_currSelectRespondInfo = info;
SetRespondBtns();
}
#endregion
public void UpdateBtns(Hashtable addParam,Hashtable sendParam)
{
if(openIndex==0)
{
if (m_currSelectJoinInfo == null)
return;
ApplyBtn.SetActive(m_currSelectJoinInfo.IsEnemyGuild == false);
}
if(openIndex == 2)
{
if (m_currSelectRespondInfo == null)
return;
SetRespondBtns();
m_ResponContainer.RefreshItems();
}
}
public void CancleSearch()
{
CancleSearchBtn.SetActive(false);
InitGuildJoinInfoContent();
}
public void OnInputFieldChange()
{
if(string.IsNullOrEmpty(m_SearchGuild.text))
{
CancleSearchBtn.SetActive(true);
return;
}
CancleSearchBtn.SetActive(false);
}
public void SearchGuild()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (string.IsNullOrEmpty(m_SearchGuild.text))
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6710}"));
return;
}
List<GuildPreviewInfo> searchs = new List<GuildPreviewInfo>();
for(int i=0;i< GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList.Count;i++)
{
if(GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList[i].GuildName.Contains(m_SearchGuild.text))
{
searchs.Add(GameManager.gameManager.PlayerDataPool.guildList.GuildInfoList[i]);
}
}
if(searchs.Count<=0)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6710}"));
return;
}
CancleSearchBtn.SetActive(true);
List<GuildPreviewInfo> selects = new List<GuildPreviewInfo>();
selects.Add(searchs[0]);
m_JoinContainer.InitSelectContent(searchs, selects, GuildInfoItemClick);
}
private float AskEnsileTimeLimit = 0;
public void Click_AskEnsile()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (!ChatInputLogic.IsCanChat((int)CG_CHAT.CHATTYPE.CHAT_TYPE_WORLD,true,false))
return;
if(Time.realtimeSinceStartup - AskEnsileTimeLimit <300)
{
GUIData.AddNotifyData("#{25212}");
return;
}
AskEnsileTimeLimit = Time.realtimeSinceStartup;
Games.ChatHistory.ChatHistoryItem item = new Games.ChatHistory.ChatHistoryItem();
item.CleanUp();
item.EChannel = (GC_CHAT.CHATTYPE)((int)CG_CHAT.CHATTYPE.CHAT_TYPE_WORLD);
string sendStr = StrDictionary.GetClientDictionaryString("#{3077}",GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName,GameManager.gameManager.PlayerDataPool.GuildInfo.GuildName,GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid);
item.ChatInfo = sendStr;
Utils.SendCGChatPak(item.ChatInfo, item);
}
public void Click_OpenJoinWnd()
{
if (openIndex == 0)
return;
openIndex = 0;
title.text = StrDictionary.GetClientDictionaryString("#{25001}");
Singleton<ObjManager>.Instance.MainPlayer.ReqGuildList(0);
//InitGuildJoinInfoContent();
}
public void Click_OpenCreateWnd()
{
if (openIndex == 1)
return;
openIndex = 1;
title.text = StrDictionary.GetClientDictionaryString("#{25002}");
}
public void Click_OpenRespondWnd()
{
if (openIndex == 2)
return;
openIndex = 2;
title.text = StrDictionary.GetClientDictionaryString("#{25003}");
//InitGuildRespondInfoContent();
Singleton<ObjManager>.Instance.MainPlayer.ReqGuildList(1);
}
public void Click_OneKeyAskBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
Obj_MainPlayer mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (mainPlayer == null)
return;
mainPlayer.ReqJoinGuild(GlobeVar.INVALID_GUID);
}
public void Click_AskJoinBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if(m_currSelectJoinInfo==null)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{25012}"));
return;
}
if(m_currSelectJoinInfo.GuildCurMemberNum == m_currSelectJoinInfo.GuildMaxMemberNum)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{25013}"));
return;
}
Obj_MainPlayer mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (mainPlayer == null)
return;
if (m_currSelectJoinInfo == null)
return;
mainPlayer.ReqJoinGuild(m_currSelectJoinInfo.GuildGuid);
}
public void Click_ConnectManagerBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (m_currSelectJoinInfo == null)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{25206}"));
return;
}
ConnectGuildMan(m_currSelectJoinInfo.GuildChiefGUID, m_currSelectJoinInfo.GuildChiefName);
}
public void ConnectGuildMan(ulong guildGuid,string name)
{
//如果非玩家,则无效
if (GlobeVar.INVALID_GUID == guildGuid)
{
return;
}
//如果目标是自己
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid == guildGuid)
{
return;
}
//未打开过则创建
FriendAndMailRoot.ShowFriendChat(guildGuid, name);
}
public void Click_CreateGuildBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (GameManager.gameManager.PlayerDataPool.IsHaveGuild())
{
if (GameManager.gameManager.PlayerDataPool.GuildInfo.GuildChiefGuid == Singleton<ObjManager>.Instance.MainPlayer.GUID)
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{25000}"));
else
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{24999}"));
return;
}
if(GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid != GlobeVar.INVALID_GUID)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{25209}"));
return;
}
int price = 100000;
Tab_GuildOther other = TableManager.GetGuildOtherByID(0, 0);
if (other != null)
{
price = other.CreateNeedMoney;
}
if (JudgeMoneyLogic.IsMoneyEnough(MONEYTYPE.MONEYTYPE_YUANBAO, price))
{
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{25023}", price, m_CreateGuildName.text),
"", OnCreateGuild, null);
}
}
void OnCreateGuild()
{
if (null == Singleton<ObjManager>.GetInstance().MainPlayer)
{
return;
}
//判断帮会名称控件是否存在
if (null == m_CreateGuildName)
{
return;
}
Obj_MainPlayer mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (null == mainPlayer)
{
return;
}
//判断帮会名称是否合法
string szGuildName = m_CreateGuildName.text;
//过短
if (szGuildName.Length <= 0)
{
mainPlayer.SendNoticMsg(false, "#{1761}"); //请输入帮会名称
return;
}
//玩家等级判断
if (mainPlayer.CreateLevelisOK(mainPlayer.BaseAttr.Level) == false)
{
mainPlayer.SendNoticMsg(false, "#{1771}"); //你的人物等级不足30级无法创建帮会
return;
}
//有帮会无法申请
if (GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid != GlobeVar.INVALID_GUID)
{
mainPlayer.SendNoticMsg(false, "#{1772}"); //你已属于一个帮会,不能创建帮会
return;
}
if (null != Utils.GetStrFilter(szGuildName, (int)GameDefine_Globe.STRFILTER_TYPE.STRFILTER_NAME))
{
mainPlayer.SendNoticMsg(false, "#{1278}"); // 包含非法字符
return;
}
mainPlayer.ReqCreateGuild(szGuildName, "1");
}
public void Click_RespondGuildBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (m_currSelectRespondInfo == null)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{25015}"));
return;
}
Obj_MainPlayer mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (mainPlayer == null)
return;
if (m_currSelectRespondInfo == null)
return;
mainPlayer.ReqRespondGuild(m_currSelectRespondInfo.GuildGuid, GCGame.Utils.GetTimeStr( (int)(m_currSelectRespondInfo.RespondOverTime - Time.realtimeSinceStartup)),m_currSelectRespondInfo.GuildName);
}
public void Click_ConnectGuildManBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
if (m_currSelectRespondInfo == null)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{25203}"));
return;
}
ConnectGuildMan(m_currSelectRespondInfo.GuildChiefGUID, m_currSelectRespondInfo.GuildChiefName);
}
public void Click_CancelRespondBtn()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
Obj_MainPlayer mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (mainPlayer == null)
return;
if (m_currSelectRespondInfo == null)
return;
mainPlayer.ReqRespondGuild(m_currSelectRespondInfo.GuildGuid,"",m_currSelectRespondInfo.GuildName,true); //响应的也发加入的协议,服务器自己会根据帮会等级处理
}
public void Click_Close()
{
UIManager.CloseUI(UIInfo.GuildMainWnd);
}
}