Пример #1
0
    bool HandleChangeAchievementInfo(NetCmdBase obj)
    {
        LC_Cmd_GetOnceAchievementInfo ncb          = (LC_Cmd_GetOnceAchievementInfo)obj;
        RoleAchievementBase           pAchievement = GetAchievement(ncb.AchievementInfo.AchievementID);

        if (pAchievement == null)
        {
            //直接添加
            tagAchievementConfig pConfig = null;
            if (!FishConfig.Instance.m_AchievementInfo.m_AchievementMap.TryGetValue(ncb.AchievementInfo.AchievementID, out pConfig))
            {
                return(false);
            }
            pAchievement = CreateAchievement((EventTargetType)pConfig.AchievementEventInfo.EventID);
            if (pAchievement == null || !pAchievement.OnInit(ncb.AchievementInfo, this))
            {
                return(false);
            }
            m_AchievementMap.Add(ncb.AchievementInfo.AchievementID, pAchievement);
            // CheckIsExistsFinishItem();//判断成就是否有完成的
            tagOnceAchievementChangeEvent pEvent = new tagOnceAchievementChangeEvent(ncb.AchievementInfo.AchievementID);
            MsgEventHandle.HandleMsg(pEvent);

            return(true);
        }
        else
        {
            //  CheckIsExistsFinishItem();//判断成就是否有完成的
            pAchievement.ChangeAchievementErrorInfo(ncb.AchievementInfo);
        }
        return(true);
    }
Пример #2
0
    bool HandleJoinAchievementInfo(NetCmdBase obj)
    {
        LC_Cmd_JoinAchievement ncb     = (LC_Cmd_JoinAchievement)obj;
        tagAchievementConfig   pConfig = null;

        if (!FishConfig.Instance.m_AchievementInfo.m_AchievementMap.TryGetValue(ncb.AchievementID, out pConfig))
        {
            return(false);
        }
        RoleAchievementBase    pBase = CreateAchievement((EventTargetType)pConfig.AchievementEventInfo.EventID);
        tagRoleAchievementInfo pInfo = new tagRoleAchievementInfo();

        pInfo.AchievementID    = ncb.AchievementID;
        pInfo.AchievementValue = 0;
        if (pBase == null || !pBase.OnInit(pInfo, this))
        {
            return(false);
        }
        m_AchievementMap.Add(ncb.AchievementID, pBase);

        //因为接到新的成就了 我们刷新下状态
        PlayerRole.Instance.UpdateRoleEventHandle();
        // CheckIsExistsFinishItem();//判断成就是否有完成的

        tagOnceAchievementChangeEvent pEvent = new tagOnceAchievementChangeEvent(ncb.AchievementID);

        MsgEventHandle.HandleMsg(pEvent);
        return(true);
    }
Пример #3
0
    bool HandleGetRoleAchievementInfo(NetCmdBase obj)
    {
        LC_Cmd_GetRoleAchievementInfo ncb = (LC_Cmd_GetRoleAchievementInfo)obj;

        if ((ncb.States & FishDataInfo.MsgBegin) != 0)
        {
            m_AchievementMap.Clear();
        }
        for (UInt16 i = 0; i < ncb.Sum; ++i)
        {
            tagAchievementConfig pConfig = null;
            if (!FishConfig.Instance.m_AchievementInfo.m_AchievementMap.TryGetValue(ncb.Array[i].AchievementID, out pConfig))
            {
                continue;
            }
            RoleAchievementBase pBase = CreateAchievement((EventTargetType)pConfig.AchievementEventInfo.EventID);
            if (pBase == null || !pBase.OnInit(ncb.Array[i], this))
            {
                continue;
            }
            m_AchievementMap.Add(ncb.Array[i].AchievementID, pBase);
        }
        if ((ncb.States & FishDataInfo.MsgEnd) != 0)
        {
            m_IsLoadInfo = true;
            tagAchievementChangeEvent pEvent = new tagAchievementChangeEvent();
            MsgEventHandle.HandleMsg(pEvent);
        }
        return(true);
    }
Пример #4
0
 public virtual bool OnInit(tagRoleAchievementInfo pInfo, RoleAchievementManager pManager)
 {
     //初始化任务 的数据
     m_pManger                  = pManager;
     pAchievementInfo           = pInfo;//客户端在加载的时候 无须判断是否需要进行每日清空
     pConfig                    = FishConfig.Instance.m_AchievementInfo.m_AchievementMap[pAchievementInfo.AchievementID];
     m_AchievementEventIsFinish = (pConfig.AchievementEventInfo.FinishValue <= pInfo.AchievementValue);
     OnJoinAchievement();
     return(true);
 }