Exemplo n.º 1
0
    bool HandleChangeTaskInfo(NetCmdBase obj)
    {
        LC_Cmd_GetOnceTaskInfo ncb   = (LC_Cmd_GetOnceTaskInfo)obj;
        RoleTaskBase           pTask = GetTask(ncb.TaskInfo.TaskID);

        if (pTask == null)
        {
            //直接添加
            tagTaskConfig pConfig = null;
            if (!FishConfig.Instance.m_TaskInfo.m_TaskMap.TryGetValue(ncb.TaskInfo.TaskID, out pConfig))
            {
                return(false);
            }
            pTask = CreateTask((EventTargetType)pConfig.TaskEventInfo.EventID);
            if (pTask == null || !pTask.OnInit(ncb.TaskInfo, this))
            {
                return(false);
            }
            m_TaskMap.Add(ncb.TaskInfo.TaskID, pTask);
            CheckIsExistsFinishItem();
            tagOnceTaskChangeEvent pEvent = new tagOnceTaskChangeEvent(ncb.TaskInfo.TaskID);
            MsgEventHandle.HandleMsg(pEvent);

            return(true);
        }
        else
        {
            CheckIsExistsFinishItem();
            pTask.ChangeTaskErrorInfo(ncb.TaskInfo);
        }
        return(true);
    }
Exemplo n.º 2
0
    bool HandleJoinTaskInfo(NetCmdBase obj)
    {
        LC_Cmd_JoinTask ncb     = (LC_Cmd_JoinTask)obj;
        tagTaskConfig   pConfig = null;

        if (!FishConfig.Instance.m_TaskInfo.m_TaskMap.TryGetValue(ncb.TaskID, out pConfig))
        {
            return(false);
        }
        RoleTaskBase    pBase = CreateTask((EventTargetType)pConfig.TaskEventInfo.EventID);
        tagRoleTaskInfo pInfo = new tagRoleTaskInfo();

        pInfo.TaskID    = ncb.TaskID;
        pInfo.TaskValue = 0;
        if (pBase == null || !pBase.OnInit(pInfo, this))
        {
            return(false);
        }
        m_TaskMap.Add(ncb.TaskID, pBase);
        PlayerRole.Instance.UpdateRoleEventHandle();
        CheckIsExistsFinishItem();
        tagOnceTaskChangeEvent pEvent = new tagOnceTaskChangeEvent(ncb.TaskID);

        MsgEventHandle.HandleMsg(pEvent);
        return(true);
    }
Exemplo n.º 3
0
    bool HandleGetRoleTaskInfo(NetCmdBase obj)
    {
        LC_Cmd_GetRoleTaskInfo ncb = (LC_Cmd_GetRoleTaskInfo)obj;

        if ((ncb.States & FishDataInfo.MsgBegin) != 0)
        {
            m_TaskMap.Clear();
        }
        for (UInt16 i = 0; i < ncb.Sum; ++i)
        {
            tagTaskConfig pConfig = null;
            if (!FishConfig.Instance.m_TaskInfo.m_TaskMap.TryGetValue(ncb.Array[i].TaskID, out pConfig))
            {
                continue;
            }
            RoleTaskBase pBase = CreateTask((EventTargetType)pConfig.TaskEventInfo.EventID);
            if (pBase == null || !pBase.OnInit(ncb.Array[i], this))
            {
                continue;
            }
            m_TaskMap.Add(ncb.Array[i].TaskID, pBase);
        }
        if ((ncb.States & FishDataInfo.MsgEnd) != 0)
        {
            m_IsLoadInfo = true;
            CheckIsExistsFinishItem();
            tagTaskChangeEvent pEvent = new tagTaskChangeEvent();
            MsgEventHandle.HandleMsg(pEvent);
        }
        return(true);
    }
Exemplo n.º 4
0
 public virtual bool OnInit(tagRoleTaskInfo pInfo, RoleTaskManager pManager)
 {
     //初始化任务 的数据
     m_pManger           = pManager;
     pTaskInfo           = pInfo;//客户端在加载的时候 无须判断是否需要进行每日清空
     pConfig             = FishConfig.Instance.m_TaskInfo.m_TaskMap[pTaskInfo.TaskID];
     m_TaskEventIsFinish = (pConfig.TaskEventInfo.FinishValue <= pInfo.TaskValue);
     OnJoinTask();
     return(true);
 }