Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -5,7 +5,7 @@ public class DTC0102_tagCDBPlayer : DtcBasic { public static event Action beforePlayerDataInitializeEvent; //重登切换账号 或者 短暂的断线重连 都会触发,(慎用!!!) public static event Action beforePlayerDataInitializeEvent; //重登切换账号 或者 短暂的断线重连 都会触发 (选择性使用!!!) public static event Action beforePlayerDataInitializeEventOnRelogin; //重登切换账号触发 (大多情况用这个,注意服务端会发包列表类的存储重复添加的情况) public static event Action beforePlayerDataInitializeEventOnReconnect; //同账号断线重连触发 public static event Action afterPlayerDataInitializeEvent; Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30C_tagMCPlayerRewardGetRecord.cs
New file @@ -0,0 +1,13 @@ using UnityEngine; using System.Collections; //A3 0C 玩家各奖励类型领取记录信息 #tagMCPlayerRewardGetRecord public class DTCA30C_tagMCPlayerRewardGetRecord : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA30C_tagMCPlayerRewardGetRecord vNetData = vNetPack as HA30C_tagMCPlayerRewardGetRecord; SmallFuncManager.Instance.UpdatePlayerReward(vNetData); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30C_tagMCPlayerRewardGetRecord.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: f6149834f7edcb74cb112ba34d865e88 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -155,6 +155,7 @@ Register(typeof(HAA89_tagMCActLunhuidianPlayerInfo), typeof(DTCAA89_tagMCActLunhuidianPlayerInfo)); Register(typeof(HA124_tagMCPlayerInfo), typeof(DTCA124_tagMCPlayerInfo)); Register(typeof(HA106_tagMCCoinToGoldReport), typeof(DTCA106_tagMCCoinToGoldReport)); Register(typeof(HA30C_tagMCPlayerRewardGetRecord), typeof(DTCA30C_tagMCPlayerRewardGetRecord)); } //主工程注册封包 Main/Core/NetworkPackage/ServerPack/HA3_Function/HA30C_tagMCPlayerRewardGetRecord.cs
New file @@ -0,0 +1,19 @@ using UnityEngine; using System.Collections; //A3 0C 玩家各奖励类型领取记录信息 #tagMCPlayerRewardGetRecord public class HA30C_tagMCPlayerRewardGetRecord : GameNetPackBasic { public byte RewardType; //奖励类型 public uint RewardGetRecord; // 按二进制位标示领取记录 public HA30C_tagMCPlayerRewardGetRecord () { _cmd = (ushort)0xA30C; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out RewardType, vBytes, NetDataType.BYTE); TransBytes (out RewardGetRecord, vBytes, NetDataType.DWORD); } } Main/Core/NetworkPackage/ServerPack/HA3_Function/HA30C_tagMCPlayerRewardGetRecord.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 842a0ed9f41346846ba3d8c619c09112 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Main.cs
@@ -107,6 +107,7 @@ managers.Add(TimingGiftManager.Instance); managers.Add(SettingDataManager.Instance); managers.Add(TimeRushManager.Instance); managers.Add(SmallFuncManager.Instance); foreach (var manager in managers) { Main/SDK/SDKUtils.cs
@@ -56,7 +56,7 @@ get; private set; } public static string channelSign; //不同渠道的打包标识 public static string channelSign = ""; //不同渠道的打包标识 // 是否同意隐私政策 public bool IsAgreeSecret = false; Main/System/GeneralConfig/GeneralDefine.cs
@@ -44,6 +44,10 @@ public static int lvExpFullTipLimit { get; private set; } public static Dictionary<string, string> commonAwardTipDict { get; private set; } public static int[][] review_Awards; public static Dictionary<string, string> review_UrlDict; public static int review_MainLevel; public static int review_CD; public static void Init() { try @@ -100,6 +104,13 @@ config = FuncConfigConfig.Get("AwardEventTip"); commonAwardTipDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical1); config = FuncConfigConfig.Get("GoodGameReward"); review_Awards = JsonMapper.ToObject<int[][]>(config.Numerical1); config = FuncConfigConfig.Get("Review"); review_UrlDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical2); review_MainLevel = int.Parse(config.Numerical3); review_CD = int.Parse(config.Numerical4); } catch (Exception ex) { Main/System/Main/RightFuncInHome.cs
@@ -18,6 +18,7 @@ [SerializeField] Button llmjBtn; //历练秘笈 [SerializeField] Button signBtn; [SerializeField] Button previewBtn; [SerializeField] Button reviewBtn; //好评 static string listenWindowName = ""; //监听关闭时再显示 @@ -87,6 +88,10 @@ ListenWindow("FunctionPreviewWin"); UIManager.Instance.OpenWindow<FunctionPreviewWin>(); }); reviewBtn.AddListener(() => { UIManager.Instance.OpenWindow<GoodReviewWin>(); }); } void OnDestroy() @@ -104,6 +109,7 @@ signBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.DaySign)); monthCardBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard)); previewBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FunctionPreview)); reviewBtn.SetActive(SmallFuncManager.Instance.IsReviewOpen()); } Main/System/Redpoint/MainRedDot.cs
@@ -83,6 +83,9 @@ public const int RedPoint_GuaBao = 118; //命格 public const int RedPoint_Mingge = 119; //好评福利 public const int RedPoint_Review = 120; //武将卡 public const int HeroCardRedpoint = 200; public Redpoint HeroListRedpoint = new Redpoint(MainHerosRedpoint, HeroCardRedpoint); Main/System/SmallFunc.meta
New file @@ -0,0 +1,8 @@ fileFormatVersion: 2 guid: d87e877ec143c7f42b49d2659587f18a folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Main/System/SmallFunc/GoodReviewWin.cs
New file @@ -0,0 +1,76 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //好评 public class GoodReviewWin : UIBase { [SerializeField] ItemCell[] itemCells; [SerializeField] Button goBtn; [SerializeField] Text goBtnText; //前往评价 Review2 / 领取奖励 Review4 protected override void InitComponent() { goBtn.AddListener(()=> { if (SmallFuncManager.Instance.IsReviewOpen()) { if (SmallFuncManager.Instance.GetReviewState() == 1) { //领取奖励 var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 35; GameNetSystem.Instance.SendInfo(pack); CloseWindow(); return; } if (!string.IsNullOrEmpty(SDKUtils.channelSign)) { //前往评价 Application.OpenURL(GeneralDefine.review_UrlDict[SDKUtils.channelSign]); } LocalSave.SetInt("review" + PlayerDatas.Instance.baseData.PlayerID, TimeUtility.AllSeconds); } }); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; for (int i = 0; i < itemCells.Length; i++) { if (i < GeneralDefine.review_Awards.Length) { itemCells[i].SetActive(true); var itemID = GeneralDefine.review_Awards[i][0]; itemCells[i].Init(new ItemCellModel(itemID, false, GeneralDefine.review_Awards[i][1])); itemCells[i].button.AddListener(() => { ItemTipUtility.Show(itemID); }); } else { itemCells[i].SetActive(false); } } goBtnText.text = SmallFuncManager.Instance.GetReviewState() == 1 ? Language.Get("Review4") : Language.Get("Review2"); } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; } void OnSecondEvent() { goBtnText.text = SmallFuncManager.Instance.GetReviewState() == 1 ? Language.Get("Review4") : Language.Get("Review2"); } } Main/System/SmallFunc/GoodReviewWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: decdd0e3914df2f4a8ced80ac3ae6d4f MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/SmallFunc/SmallFuncManager.cs
New file @@ -0,0 +1,116 @@ using System.Collections.Generic; using UnityEngine.UI; using System.Linq; using LitJson; using System; //一些小功能少量代码存放 public class SmallFuncManager : GameSystemManager<SmallFuncManager> { public Dictionary<int, int> playerRewardDict = new Dictionary<int, int>(); //A3 0C 玩家各奖励类型领取记录信息 #tagMCPlayerRewardGetRecord public event Action OnPlayerRewardEvent; public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; UIManager.Instance.OnCloseWindow += OnCloseWindow; } public override void Release() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk; UIManager.Instance.OnCloseWindow -= OnCloseWindow; } public void OnBeforePlayerDataInitialize() { playerRewardDict.Clear(); } void OnPlayerLoginOk() { UpdateReviewRedpoint(); } void OnCloseWindow(UIBase win) { if (win is StoryBossBattleWin) { //刚好过关的时候推送 if (PlayerDatas.Instance.baseData.ExAttr1 == (GeneralDefine.review_MainLevel + 1) * 100 && IsReviewOpen()) { PopupWindowsProcessor.Instance.Add("GoodReviewWin"); UpdateReviewRedpoint(); } } } public void UpdatePlayerReward(HA30C_tagMCPlayerRewardGetRecord pack) { playerRewardDict[pack.RewardType] = (int)pack.RewardGetRecord; UpdateReviewRedpoint(); OnPlayerRewardEvent?.Invoke(); } #region 好评 //是否显示好评 1.达到通关条件 2.该渠道有好评功能,3. 未领取奖励(未评价) public bool IsReviewOpen() { if (PlayerDatas.Instance.baseData.ExAttr1 / 100 <= GeneralDefine.review_MainLevel) { return false; } if (!GeneralDefine.review_UrlDict.ContainsKey(SDKUtils.channelSign) && VersionConfig.Get().versionAuthority == VersionAuthority.Release) { return false; } if (GetReviewState() == 2) { return false; } // 奖励 return true; } // 好评红点 Redpoint reviewRedpoint = new Redpoint(MainRedDot.RightFuncRedpoint, MainRedDot.RedPoint_Review); void UpdateReviewRedpoint() { reviewRedpoint.state = IsReviewOpen() ? RedPointState.Simple : RedPointState.None; } //评分仅可领1次 0 未评分 1 可领取 2 已领取 public int GetReviewState() { if (!playerRewardDict.ContainsKey(35) || playerRewardDict[35] == 0) { var clickTime = LocalSave.GetInt("review" + PlayerDatas.Instance.baseData.PlayerID); if (clickTime == 0) { return 0; } if (TimeUtility.AllSeconds - clickTime > GeneralDefine.review_CD) { return 1; } return 0; } return 2; } #endregion } Main/System/SmallFunc/SmallFuncManager.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 63a1f22377829424cab384d0ce8401ea MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: