Files
JJBB/Assets/Project/Script/GUI/Guild/NoHasGuildMainWnd.cs
2024-08-23 15:49:34 +08:00

638 lines
22 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//还未加入帮会打开时显示的界面
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);
}
}