示例#1
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);
    }
示例#2
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);
    }
示例#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 RoleAchievementBase GetAchievement(Byte AchievementID)
    {
        RoleAchievementBase pBase = null;

        if (!m_AchievementMap.TryGetValue(AchievementID, out pBase))
        {
            return(null);
        }
        return(pBase);
    }
示例#5
0
    //bool HandleGetRoleAchievementInfoFinish(NetCmdBase obj)
    //{
    //    LC_Cmd_GetRoleAchievementInfoFinish ncb = (LC_Cmd_GetRoleAchievementInfoFinish)obj;

    //    return true;
    //}
    bool HandleAchievementAllEventFinish(NetCmdBase obj)
    {
        LC_Cmd_AchievementAllEventFinish ncb = (LC_Cmd_AchievementAllEventFinish)obj;
        RoleAchievementBase pAchievement     = GetAchievement(ncb.AchievementID);

        if (pAchievement == null)
        {
            SendGetAchievementInfoByServer(ncb.AchievementID);
            return(true);
        }
        pAchievement.SetAchievementIsFinish();
        //m_IsExistsFinishAchievement = true;
        tagOnceAchievementChangeEvent pEvent = new tagOnceAchievementChangeEvent(ncb.AchievementID);

        MsgEventHandle.HandleMsg(pEvent);

        tagAchievementEventFinishEvent pFinish = new tagAchievementEventFinishEvent(ncb.AchievementID);

        MsgEventHandle.HandleMsg(pFinish);
        return(true);
    }
示例#6
0
    void InitAchieveItem(RoleAchievementBase Value, int indx)
    {
        AchieveItem item = new AchieveItem(true);

        item.Init(m_BaseItem);
        tagAchievementStrInfo achievementStrInfo = FishConfig.Instance.m_AchievementInfo.m_AchievementStr[Value.pConfig.AchievementID];

        item.AchieveID = Value.pConfig.AchievementID;
        string strDesc         = achievementStrInfo.AchievementDec;
        string strName         = achievementStrInfo.AchievementName;
        int    starNum         = achievementStrInfo.AchievementStar;
        uint   curAchieveValue = PlayerRole.Instance.AchievementManager.GetAchievement(Value.pConfig.AchievementID).pAchievementInfo.AchievementValue;
        uint   AchieveValueMax = Value.pConfig.AchievementEventInfo.FinishValue;

        tagRewardOnce pReward = FishConfig.Instance.GetRewardOnceByID(Value.pConfig.RewardID);

        if (pReward == null)
        {
            return;
        }
        item.ShowAchievementInfo(strDesc, strName, achievementStrInfo.AchievementIcon, pReward, starNum);
        item.UpdateAchievementProgress(curAchieveValue, AchieveValueMax, Value.m_AchievementEventIsFinish);
        m_AchieveList.Add(item);
    }
示例#7
0
    private bool SendGetAchievementReward(Byte AchievementID)
    {
        //判断任务是否完成了
        RoleAchievementBase pAchievement = GetAchievement(AchievementID);

        if (pAchievement == null)
        {
            tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Achievement_GetReward_Failed_1);
            MsgEventHandle.HandleMsg(pUOM);
            return(false);
        }
        if (!pAchievement.m_AchievementEventIsFinish)
        {
            tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Achievement_GetReward_Failed_2);
            MsgEventHandle.HandleMsg(pUOM);
            return(false);
        }
        CL_Cmd_GetAchievementReward ncb = new CL_Cmd_GetAchievementReward();

        ncb.SetCmdType(NetCmdType.CMD_CL_GetAchievementReward);
        ncb.AchievementID = AchievementID;
        NetServices.Instance.Send <CL_Cmd_GetAchievementReward>(ncb);
        return(true);
    }