530 子 【运营需求】前往评价功能 / 【运营需求】前往评价功能-客户端
9个文件已添加
7个文件已修改
302 ■■■■■ 已修改文件
Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30C_tagMCPlayerRewardGetRecord.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30C_tagMCPlayerRewardGetRecord.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA30C_tagMCPlayerRewardGetRecord.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA30C_tagMCPlayerRewardGetRecord.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Main.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/SDK/SDKUtils.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/GeneralConfig/GeneralDefine.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/RightFuncInHome.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Redpoint/MainRedDot.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SmallFunc.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SmallFunc/GoodReviewWin.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SmallFunc/GoodReviewWin.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SmallFunc/SmallFuncManager.cs 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SmallFunc/SmallFuncManager.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: