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); }
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); }
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); }
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); }