Exemple #1
0
    /// <summary>
    /// 刷新成就数据
    /// </summary>
    /// <param name="cmd"></param>
    public void OnResponRefreshAchieveData(List <AchieveData> data, uint achieve_num)
    {
        if (data != null)
        {
            for (int i = 0; i < data.Count; i++)
            {
                uint id = data[i].id;
                if (achievementServerData.ContainsKey(id))
                {
                    achievementServerData[id].progress = data[i].progress;
                    achievementServerData[id].status   = data[i].status;
                }
                else
                {
                    achievementServerData.Add(id, data[i]);
                }

                if (data[i].status == (uint)AchieveStatus.AchieveStatus_CanReceive)
                {
                    table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id);
                    if (table != null)
                    {
                        TipsManager.Instance.ShowTips(table.tips);
                        DataManager.Manager <ChatDataManager>().PrivateChatManager.AddChat(new GameCmd.stCommonMChatUserCmd_CS()
                        {
                            szInfo     = table.tips,
                            byChatType = CHATTYPE.CHAT_SYS,
                            dwOPDes    = 0,
                            szOPDes    = "系统",
                            timestamp  = (uint)DateTimeHelper.Instance.Now,
                        });
                    }
                }
                else if (data[i].status == (uint)AchieveStatus.AchieveStatus_HaveReceive)
                {
                    table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id);
                    if (table != null)
                    {
                        haveAchievePoint += table.get_point;
                    }
                }
            }
        }
        if (HaveCanReceiveAchieve())
        {
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.REFRESHACHIEVEMENTPUSH, null);
            stShowMainPanelRedPoint st = new stShowMainPanelRedPoint()
            {
                modelID   = (int)WarningEnum.Achievement,
                direction = (int)WarningDirection.Left,
                bShowRed  = true,
            };
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.MAINPANEL_SHOWREDWARING, st);
        }
        DispatchValueUpdateEvent(new ValueUpdateEventArgs(AchieveDispatchEvents.RefreshAchieveInfo.ToString(), null, null));
    }
Exemple #2
0
    /// <summary>
    /// 领取奖励成功
    /// </summary>
    /// <param name="cmd"></param>
    public void OnResponGetAchieveReward(stGetAchieveRewardDataUserCmd_CS cmd)
    {
        if (cmd != null)
        {
            for (int i = 0; i < cmd.id.Count; i++)
            {
                uint id = cmd.id[i];
                if (achievementServerData.ContainsKey(id))
                {
                    achievementServerData[id].status = (uint)AchieveStatus.AchieveStatus_HaveReceive;
                    table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id);
                    if (table == null)
                    {
                        Engine.Utility.Log.Error("成就表格找不到对应ID为{0}的数据", id);
                    }
                    else
                    {
                        haveAchievePoint += table.get_point;
                        if (table.title != 0)
                        {
                            TitleDataBase title = GameTableManager.Instance.GetTableItem <TitleDataBase>(table.title);
                            TipsManager.Instance.ShowTips(DataManager.Manager <TextManager>().GetLocalFormatText(LocalTextType.Local_TXT_Notice_GetTitle, title.strName));
                        }
                    }
                }
            }
        }
        if (HaveCanReceiveAchieve())
        {
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.REFRESHACHIEVEMENTPUSH, null);
            stShowMainPanelRedPoint st = new stShowMainPanelRedPoint()
            {
                modelID   = (int)WarningEnum.Achievement,
                direction = (int)WarningDirection.Left,
                bShowRed  = true,
            };
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.MAINPANEL_SHOWREDWARING, st);
        }

        DispatchValueUpdateEvent(new ValueUpdateEventArgs(AchieveDispatchEvents.GetAchieveReward.ToString(), null, null));
    }