From 9f5db2e92b93dcbe7c5d53606d62c8f04aef3c19 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 18 三月 2026 23:20:18 +0800
Subject: [PATCH] 533 开服冲榜-客户端 开服冲榜的将星云集、百炼成军、红袖添香、命定乾坤和限时冲刺的武将冲刺、古宝冲刺、元宝冲刺添加特权标识
---
Main/System/Guild/GuildManager.cs | 263 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 205 insertions(+), 58 deletions(-)
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index d7fc442..c37afb5 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -8,10 +8,9 @@
using UnityEngine;
-public class GuildManager : GameSystemManager<GuildManager>
+public partial class GuildManager : GameSystemManager<GuildManager>
{
// 瀹舵棌鑷畾涔夎褰曠被鍨�
- public const int CustomyActionType = 0; //閫氱敤
public const int MemberChangeActionType = 12; //鍏細鍙樻洿璁板綍
public const int FamilyActionsType = 15; // 鍏細璁板綍寰界珷绫诲瀷15
public const int ZBGFamilyActionType = 16; // 鐝嶅疂闃佽褰曠被鍨�
@@ -50,6 +49,7 @@
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
TimeMgr.Instance.OnHourEvent += UpdateZBGRedpoint;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
}
public override void Release()
{
@@ -58,19 +58,28 @@
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
TimeMgr.Instance.OnHourEvent -= UpdateZBGRedpoint;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
}
+ private void OnRefreshFairyInfo()
+ {
+ UpdateRequestRedpoint();
+ UpdateDonateRedPoint();
+ }
void OnBeforePlayerDataInitialize()
{
+ zoneID = 0;
+ crossServerIDList.Clear();
ClearGuildData();
donateCntList = null;
}
void OnBeforePlayerDataInitializeEx()
{
- guildChanged = false;
isQueryZBGYet = false;
+ //澧為噺鐨勫舰寮�
+ PlayerDatas.Instance.fairyData.ClearData();
}
void OnPlayerLoginOk()
@@ -92,7 +101,6 @@
PlayerDatas.Instance.baseData.FamilyId = 0;
m_FairyRequesteds.Clear();
familyActions.Clear();
- guildChanged = false;
applyList.Clear();
PlayerDatas.Instance.fairyData.ClearData();
@@ -165,7 +173,24 @@
//鐝嶅疂闃�(琛屽晢)
- public int zhenbaogeCutState = 0;
+ int m_ZhenbaogeCutState = 0;
+ public int zhenbaogeCutState
+ {
+ get
+ {
+ if (familyZBGActions.Count - 1 >= 50)
+ {
+ //鐮嶄环浜烘暟瓒呰繃涓婇檺鍚庡彲鐩存帴璐拱
+ m_ZhenbaogeCutState = 1;
+ }
+ return m_ZhenbaogeCutState;
+ }
+ set
+ {
+
+ m_ZhenbaogeCutState = value;
+ }
+ }
public int zhenbaogeBuyState = 0;
public bool needCheckCutCD = false;
public event Action UpdateZhenbaogeEvent;
@@ -180,7 +205,7 @@
public int zbgOrgPriceValue;
public int zbgChangFamilyCD;
public List<int> cutCntListForTalk = new List<int>();
-
+ public int familyRecordMaxCount;
void ParseConfig()
{
@@ -219,6 +244,14 @@
zbgOrgPriceValue = int.Parse(config.Numerical2);
zbgChangFamilyCD = int.Parse(config.Numerical3);
cutCntListForTalk = JsonMapper.ToObject<List<int>>(config.Numerical4);
+
+ config = FuncConfigConfig.Get("FamilyNote");
+ familyRecordMaxCount = int.Parse(config.Numerical1);
+
+
+ config = FuncConfigConfig.Get("FamilyBillboardSet");
+ pageCnt = int.Parse(config.Numerical1);
+ queryPointNum = int.Parse(config.Numerical2);
}
@@ -338,7 +371,7 @@
punishTime = quitGuildPunishTime[Math.Min(quitCount, quitGuildPunishTime.Length - 1)];
}
- return punishTime * 60 - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime);
+ return punishTime * 60 - (TimeUtility.GetCommServerTick(zoneID)- PlayerDatas.Instance.baseData.leaveFamilyTime);
}
@@ -522,10 +555,70 @@
// 鏌ユ壘鐨勫叕浼欼D锛氬叕浼氭暟鎹�
public Dictionary<int, FairyData> guildsDict = new Dictionary<int, FairyData>();
+ public int myFairyRank;
// 鎸夋煡璇㈤〉瀛樺偍
public List<int> pageIndexList = new List<int>(); //姝e父鏄寜椤垫煡璇紝椤哄簭娣诲姞鍗冲彲
public int curPageIndex;
public int totalPageCount;
+
+ public int lastPage = -1;
+ public int pageCnt; //姣忛〉鏌ヨ鏉℃暟
+ int queryPointNum; //鏌ヨ鐐�
+
+ public bool isPowerSort
+ {
+ get
+ {
+ return LocalSave.GetBool($"GuildApplyList_IsPowerSort_{PlayerDatas.Instance.PlayerId}");
+ }
+ set
+ {
+ LocalSave.SetBool($"GuildApplyList_IsPowerSort_{PlayerDatas.Instance.PlayerId}", value);
+ }
+ }
+
+
+ public FairyData GetFairyDataByRank(int rank)
+ {
+ if (rank < 1)
+ return null;
+ int index = rank - 1;
+ FairyData fairyData = GetFairyDataByIndex(index);
+ return fairyData;
+ }
+
+ public FairyData GetFairyDataByIndex(int index)
+ {
+ if (pageIndexList.IsNullOrEmpty() || index < 0 || index >= pageIndexList.Count)
+ return null;
+ int fairyID = pageIndexList[index];
+ FairyData fairyData = GetFairyData(fairyID);
+ return fairyData;
+ }
+
+ public FairyData GetFairyData(int fairyID)
+ {
+ return guildsDict.TryGetValue(fairyID, out var data) ? data : null;
+ }
+
+ public void ResetQueryParam()
+ {
+ pageCnt = 20;
+ lastPage = -1;
+ queryPointNum = 12;
+ }
+
+ public void ListenRankPage(int index)
+ {
+ int page = index / pageCnt;
+ if (index > page * pageCnt + queryPointNum)
+ {
+ if (lastPage >= page)
+ return;
+ lastPage = page;
+ SendFindGuild(string.Empty, page + 1, pageCnt);
+ }
+ }
//鏌ユ壘鍏細鍒楄〃
public void OnRefreshGuildViewList(HA523_tagMCFamilyViewList vNetData)
@@ -540,7 +633,7 @@
SetFairyViewData(data, guildInfo);
pageIndexList.Add((int)guildInfo.FamilyID);
}
-
+ myFairyRank = (int)vNetData.Rank; //0-娌℃湁鍏細鎴栨病鏈夊湪姒滀笂锛�>0-瀵瑰簲鎺掑悕
if (OnRefreshFairyList != null)
{
@@ -573,28 +666,13 @@
GameNetSystem.Instance.SendInfo(pack);
}
- public void SendFindGuildNoDecrypt(string msg, int pageIndex = 0, int pageSize = 20)
- {
- if (pageIndex == 0)
- {
- //榛樿鏌ヨ绗竴椤靛嵆浠h〃閲嶆柊寮�濮嬫煡璇紝娓呯┖涔嬪墠鐨勬暟鎹�
- guildsDict.Clear();
- pageIndexList.Clear();
- }
- var pack = new CA620_tagCMViewFamilyPage();
- pack.Msg = msg;
- pack.MsgLen = (byte)msg.Length;
- pack.PageIndex = (byte)pageIndex;
- pack.ShowCount = (byte)pageSize;
- GameNetSystem.Instance.SendInfo(pack);
- }
-
public static void SetFairyViewData(FairyData data, HA523_tagMCFamilyViewList.tagMCFamilyView view)
{
data.Rank = view.Rank;
data.FamilyID = (int)view.FamilyID;
data.FamilyName = view.FamilyName;
data.LeaderID = (int)view.LeaderID;
+ data.LeaderServerID = (int)view.LeaderServerID;
data.LeaderName = view.LeaderName;
data.FamilyLV = view.FamilyLV;
data.JoinReview = view.JoinReview;
@@ -604,16 +682,52 @@
data.EmblemWord = view.EmblemWord;
data.totalFightPower = view.FightPowerEx * Constants.ExpPointValue + view.FightPower;
data.MemberCount = view.MemberCount;
-
}
+ #endregion
+
+ #region 鏌ョ湅鐩爣鍏細
+ public Dictionary<int, FairyData> viewGuildsDict = new Dictionary<int, FairyData>();
+
+ public event Action OnUpdateViewFamilyInfo;
+
+ public void UpdateViewFamilyInfo(HA519_tagSCTagFamilyInfo pack)
+ {
+ FairyData data = new FairyData();
+ SetFairyViewData(data, pack);
+ viewGuildsDict[(int)data.FamilyID] = data;
+ OnUpdateViewFamilyInfo?.Invoke();
+ }
+
+ public static void SetFairyViewData(FairyData data, HA519_tagSCTagFamilyInfo view)
+ {
+ data.FamilyID = (int)view.FamilyID;
+ data.FamilyName = view.FamilyName;
+ data.LeaderID = (int)view.LeaderID;
+ data.LeaderServerID = (int)view.LeaderServerID;
+ data.LeaderName = view.LeaderName;
+ data.FamilyLV = view.FamilyLV;
+ data.ServerID = (int)view.ServerID;
+ data.EmblemID = (int)view.EmblemID;
+ data.EmblemWord = view.EmblemWord;
+ data.totalFightPower = view.FightPowerEx * Constants.ExpPointValue + view.FightPower;
+ data.MemberCount = view.MemberCount;
+ }
+
+ public void SendViewGuild(int fairyID, int serverID)
+ {
+ var pack = new CA619_tagCSViewTagFamily();
+ pack.FamilyID = (uint)fairyID;
+ pack.DataServerID = (uint)serverID;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
#endregion
#region 鐢宠鍒楄〃
public event Action OnRefreshApplyList;
private List<FairyApply> applyList = new List<FairyApply>();
private Redpoint memberRedpoint = new Redpoint(107, 10702);
- private Redpoint applyRedpoint = new Redpoint(10702, 1070201);
+ private Redpoint applyRedpoint = new Redpoint(MainRedDot.MainGuildRedpoint, 1070201);
//鐢宠鍔犲叆鐨勭帺瀹朵俊鎭�
public void OnRefreshRequestJoinPlayerInfo(HA522_tagMCFamilyReqJoinInfo vNetData)
@@ -642,6 +756,9 @@
}
UpdateRequestRedpoint();
}
+
+
+
void UpdateRequestRedpoint()
{
@@ -697,6 +814,12 @@
SysNotifyMgr.Instance.ShowTip("jiazu_lhs_202580");
return;
}
+
+ if (guildsDict[id].JoinLVMin > PlayerDatas.Instance.baseData.realmLevel && RealmConfig.HasKey(guildsDict[id].JoinLVMin))
+ {
+ SysNotifyMgr.Instance.ShowTip("GuildApply01", RealmConfig.Get(guildsDict[id].JoinLVMin).Name);
+ return;
+ }
}
}
@@ -724,39 +847,64 @@
return 0;
}
+ public void SendJoinFamilyReply(int tagPlayerID, bool isOK)
+ {
+ CA621_tagCMJoinFamilyReply pack = new CA621_tagCMJoinFamilyReply();
+ pack.TagPlayerID = (uint)tagPlayerID;
+ pack.IsOK = (byte)(isOK ? 1 : 0);
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+ public void SendChangeFamilyJoin(int joinReview, int joinLVMin)
+ {
+ CA622_tagCMChangeFamilyJoin pack = new CA622_tagCMChangeFamilyJoin();
+ pack.JoinReview = (byte)joinReview;
+ pack.JoinLVMin = (ushort)joinLVMin;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+ public void SendRequestJoinFamilyByPlayer(int tagPlayerID)
+ {
+ CA601_tagCMRequestJoinFamilyByPlayer pack = new CA601_tagCMRequestJoinFamilyByPlayer();
+ pack.TagPlayerID = (uint)tagPlayerID;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ List<string> optionStrings = null;
+ List<int> options = null;
+ public bool TryGetApplyOptions(out List<int> optionKeys, out List<string> optionValues)
+ {
+ optionKeys = null;
+ optionValues = null;
+
+ if (options == null)
+ {
+ options = new List<int>();
+ options = new List<int>(RealmConfig.GetKeys());
+ options.Sort();
+ options.Remove(0);
+ }
+
+ if (optionStrings == null)
+ {
+ optionStrings = new List<string>();
+ foreach (int lv in options)
+ {
+ if (!RealmConfig.HasKey(lv))
+ continue;
+ RealmConfig realmConfig = RealmConfig.Get(lv);
+ optionStrings.Add(UIHelper.AppendColor(OfficialRankManager.Instance.GetOfficialRankColor(realmConfig.Quality), realmConfig.Name));
+ }
+ }
+
+ if (options.IsNullOrEmpty() || optionStrings.IsNullOrEmpty() || options.Count != optionStrings.Count)
+ return false;
+ optionKeys = options;
+ optionValues = optionStrings;
+ return true;
+ }
#endregion
- float lastChangeMarkTime = 0; //鎵撳紑鐣岄潰鎯呭喌涓嬮伩鍏嶇煭鏃堕棿澶氭绔嬪嵆璇锋眰锛孋/S閫氫俊涔熸槸鏈夋椂闂撮棿闅�
- public bool guildChanged = false;
- //Type锛�0-鏃狅紱1-鎴愬憳鍔犲叆锛�2-鎴愬憳閫�鍑猴紱3-鏀朵汉璁剧疆淇敼锛�4-鍏憡淇敼锛�5-寰界珷淇敼锛�6-鐩熶富鍙樻洿锛�7-鎴愬憳鑱屼綅鍙樻洿锛�8-鎴愬憳涓婄嚎锛�9-鎴愬憳绂荤嚎锛�
- //鍏細鏁版嵁鍙樺寲锛岃姹傛柊鐨勫叕浼氫俊鎭紝濡傚湪鎵撳紑鍏細鍒楄〃鏃惰姹傦紝鍏朵粬鍔熻兘鏍规嵁鑷韩鎯呭喌璇锋眰
- public void UpdateGuildDataChangeMark(HA521_tagMCFamilyChange netPack)
- {
- guildChanged = true;
- if (Time.time - lastChangeMarkTime < 0.2f)
- {
- //灏忎紭鍖� 濡傛灉鏈夐棶棰樹篃鍙互鍘婚櫎
- return;
- }
- lastChangeMarkTime = Time.time;
- if (UIManager.Instance.IsOpened<GuildHallWin>())
- {
- RequestGuildData();
- }
- }
-
- public void RequestGuildData()
- {
- if (guildChanged)
- {
- guildChanged = false;
- var pack = new CA626_tagCMGetFamilyInfo();
- GameNetSystem.Instance.SendInfo(pack);
-
- }
- }
public void SendKickFairy(uint playerID)
{
@@ -865,7 +1013,7 @@
return false;
}
bool restart = false;
-
+
for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
{
int playerID = (int)vNetData.FamilyActionList[i].Value1;
@@ -969,7 +1117,6 @@
#endregion
-
#region 绾㈢偣
Redpoint donateRedpoint = new Redpoint(MainRedDot.guildHallRedpointID, MainRedDot.donateRedpointID);
@@ -1014,7 +1161,7 @@
{
return;
}
- if (TimeUtility.ServerNow.Hour < 10)
+ if (TimeUtility.GetCommServerNow(zoneID).Hour < 10)
return;
if (zhenbaogeCutState == 0)
--
Gitblit v1.8.0