少年修仙传客户端代码仓库
client_Zxw
2019-02-14 fe5cfe4b19665a27859631eb5c1809633af738c1
5314 子 【1.6】登录奖励活动 (只做登陆奖励,仙灵商店先不做)
4个文件已修改
144 ■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardModel.cs 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardWin.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs
@@ -6,11 +6,13 @@
public class DTCAA0C_tagMCActLoginAwardInfo : DtcBasic {
public class DTCAA0C_tagMCActLoginAwardInfo : DtcBasic
{
    LoginRewardModel m_LoginRewardModel;
    LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
    public override void Done(GameNetPackBasic vNetPack) {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        HAA0C_tagMCActLoginAwardInfo vNetData = vNetPack as HAA0C_tagMCActLoginAwardInfo;         if (vNetData == null)
        {
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs
@@ -32,6 +32,7 @@
            DayInfoList[i] = new tagMCActLoginAwardDayInfo();
            TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE);
            TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt);
            TransBytes (out DayInfoList[i].WorldLV, vBytes, NetDataType.WORD);
        }
        TransBytes (out TCount, vBytes, NetDataType.BYTE);
        ActionInfo = new tagMCActLoginAwardAction[TCount];
@@ -41,21 +42,15 @@
            TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD);
            TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE);
            ActionInfo[i].ItemInfo = new tagMCActLoginAwardItem[ActionInfo[i].Count];
            for (int j = 0; j < ActionInfo[i].Count; j ++) {
                ActionInfo[i].ItemInfo[j] = new tagMCActLoginAwardItem();
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemID, vBytes, NetDataType.DWORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].IsBind, vBytes, NetDataType.BYTE);
            }
            TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.WORD);
            TransBytes (out ActionInfo[i].ItemInfo, vBytes, NetDataType.Chars, ActionInfo[i].Count);
        }
    }
    public struct tagMCActLoginAwardItem {
        public uint ItemID;        // 物品ID
        public ushort ItemCnt;        // 物品数量
        public byte IsBind;        // 是否绑定
    public struct tagMCActLoginAwardDayInfo {
        public byte ActCnt;        // 数量
        public  ushort[] TemplateList;        // 模板列表
        public ushort WorldLV;        // 世界等级
    }
    public struct tagMCActLoginAwardAction {
@@ -63,13 +58,8 @@
        public ushort ActionType;        // 活动类别
        public uint TotalTimes;        // 可完成的总次数,0表示不限次数
        public uint SingleTimes;        // 单次领奖需要的次数
        public byte Count;        // 物品数
        public  tagMCActLoginAwardItem[] ItemInfo;        // 物品信息
    }
    public struct tagMCActLoginAwardDayInfo {
        public byte ActCnt;        // 数量
        public  ushort[] TemplateList;        // 模板列表
        public ushort Count;        // 物品配置长度
        public string ItemInfo;        // 物品信息
    }
}
System/OpenServerActivity/LoginRewardModel.cs
@@ -17,6 +17,7 @@
    public Dictionary<int, WeekPartyDayClass> LoginAwardDayDic = new Dictionary<int, WeekPartyDayClass>();//每天的奖励信息
    public Dictionary<int, WeekPartyActionClass> LoginAwardDic = new Dictionary<int, WeekPartyActionClass>();//活动模板信息
    public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//红点
    private Dictionary<int, int> WorldLvDic = new Dictionary<int, int>();//世界等级
    public int DayNow = 0;//当前天
    public int SelectedNow = 0;//获取选择天
    public int LimitLV = 0;//限制等级
@@ -60,11 +61,14 @@
        OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
    }
    public void OnBeforePlayerDataInitialize()
    {
        LoginAwardInfoDic.Clear();
        LoginAwardDayDic.Clear();
        LoginAwardDic.Clear();
        WorldLvDic.Clear();
    }
    public void OnPlayerLoginOk()
@@ -78,7 +82,7 @@
    }
    private void OperationEndEvent(Operation arg1, int arg2)
    {
        if (arg1 == Operation.LoginReward  && arg2 == 0)
        if (arg1 == Operation.LoginReward && arg2 == 0)
        {
            if (onStateUpate != null)
            {
@@ -114,7 +118,7 @@
    public override void UnInit()
    {
    }
    public void LoginAwardInfo(HAA0C_tagMCActLoginAwardInfo info)//登录奖励活动信息
@@ -126,6 +130,10 @@
        {
            int Index = i;
            var dayInfo = info.DayInfoList[i];
            if (!WorldLvDic.ContainsKey(Index))
            {
                WorldLvDic.Add(Index, dayInfo.WorldLV);
            }
            WeekPartyDayClass loginAwardDay = new WeekPartyDayClass();
            loginAwardDay.TemplateList = new int[dayInfo.ActCnt];
            for (int k = 0; k < dayInfo.ActCnt; k++)
@@ -151,16 +159,18 @@
            loginAward.ActionType = (int)ActionInfo.ActionType;
            loginAward.TotalTimes = (int)ActionInfo.TotalTimes;
            loginAward.SingleTimes = (int)ActionInfo.SingleTimes;
            loginAward.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count];
            for (int z = 0; z < ActionInfo.Count; z++)
            {
                var item = ActionInfo.ItemInfo[z];
                WeekPartyItemClass loginAwardItem = new WeekPartyItemClass();
                loginAwardItem.ItemID = (int)item.ItemID;
                loginAwardItem.ItemCnt = (int)item.ItemCnt;
                loginAwardItem.IsBind = item.IsBind;
                loginAward.WeekPartyItem[z] = loginAwardItem;
            }
            string ItemInfoJason = ActionInfo.ItemInfo;
            loginAward.WeekPartyItem = GetLoginrewardItemList(i, ItemInfoJason);
            //for (int z = 0; z < ActionInfo.Count; z++)
            //{
            //    var item = ActionInfo.ItemInfo[z];
            //    WeekPartyItemClass loginAwardItem = new WeekPartyItemClass();
            //    loginAwardItem.ItemID = (int)item.ItemID;
            //    loginAwardItem.ItemCnt = (int)item.ItemCnt;
            //    loginAwardItem.IsBind = item.IsBind;
            //    loginAward.WeekPartyItem[z] = loginAwardItem;
            //}
            if (LoginAwardDic.ContainsKey(templateID))
            {
                LoginAwardDic[templateID] = loginAward;
@@ -170,6 +180,45 @@
                LoginAwardDic.Add(templateID, loginAward);
            }
        }
    }
    private WeekPartyItemClass[] GetLoginrewardItemList(int index, string jsonStr)
    {
        int count = 1;
        var jsonData = LitJson.JsonMapper.ToObject(jsonStr);
        Dictionary<int, WeekPartyItemClass[]> dic = new Dictionary<int, WeekPartyItemClass[]>();
        foreach (var key in jsonData.Keys)
        {
            var worldLv = int.Parse(key);
            var itemArray = LitJson.JsonMapper.ToObject<int[][]>(jsonData[key].ToJson());
            WeekPartyItemClass[] loginrewardItem = new WeekPartyItemClass[itemArray.Length];
            count = itemArray.Length;
            for (int j = 0; j < itemArray.Length; j++)
            {
                WeekPartyItemClass loginAwardItem = new WeekPartyItemClass();
                loginAwardItem.ItemID = itemArray[j][0];
                loginAwardItem.ItemCnt = itemArray[j][1];
                loginAwardItem.IsBind = itemArray[j][2];
                loginrewardItem[j] = loginAwardItem;
            }
            dic.Add(worldLv, loginrewardItem);
        }
        int lv = 0;
        int type = 10000;
        if (WorldLvDic.ContainsKey(index))
        {
            lv = WorldLvDic[index];
        }
        WeekPartyItemClass[] Item = new WeekPartyItemClass[count];
        foreach (var key in dic.Keys)
        {
            if (key > lv && type > key)
            {
                type = key;
                Item = dic[key];
            }
        }
        return Item;
    }
    public void LoginAwardPlayerInfo(HAA0D_tagMCActLoginAwardPlayerInfo info)//登录奖励玩家活动信息
@@ -245,7 +294,7 @@
        return Num;
    }
    public int GetCarryOutNum(int Day,int ID)//获取已完成次数
    public int GetCarryOutNum(int Day, int ID)//获取已完成次数
    {
        int Num = 0;
        if (LoginAwardInfoDic.ContainsKey(Day))
@@ -349,7 +398,8 @@
            if (LoginAwardInfoDic.Count <= 0 && inday <= 0)
            {
                DayNow = 0;
            } else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count)
            }
            else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count)
            {
                DayNow = inday;
            }
System/OpenServerActivity/LoginRewardWin.cs
@@ -20,6 +20,8 @@
        [SerializeField] ScrollerController m_ScrollerController_2;
        LoginRewardModel m_LoginRewardModel;
        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
        OpenServiceAchievementModel OpenServicemodel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        DailyQuestModel dailymodel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        List<int> SortList = new List<int>();
        protected override void BindController()
        {
@@ -145,6 +147,17 @@
        private void ToAddSorting()
        {
            SortList.Clear();
            int Weekday = OpenServicemodel.GetWeekDay(loginRewardModel.SelectedNow);
            var quests = dailymodel.GetQuestByWeekTime(Weekday);
            List<int> dailyIdlist = new List<int>();
            foreach (var key in quests.Keys)
            {
                var _list = quests[key];
                for (int i = 0; i < _list.Count; i++)
                {
                    dailyIdlist.Add(_list[i]);
                }
            }
            foreach (var key in loginRewardModel.LoginAwardDayDic.Keys)
            {
                if (key == loginRewardModel.SelectedNow)
@@ -153,7 +166,22 @@
                    for (int i = 0; i < loginReward.TemplateList.Length; i++)
                    {
                        var TemplateId = loginReward.TemplateList[i];
                        SortList.Add(TemplateId);
                        var config = LoginRewardConfig.Get(TemplateId);
                        if (config == null)
                        {
                            continue;
                        }
                        if (config.DailyQusetId != 0)
                        {
                            if (dailyIdlist.Contains(config.DailyQusetId))
                            {
                                SortList.Add(TemplateId);
                            }
                        }
                        else
                        {
                            SortList.Add(TemplateId);
                        }
                    }
                }