public void RemoveMissionInfo(int missIndex)
    {
        _OWN_MISSION OwnMission = CDetailAttrib_Player.Instance.GetMission(missIndex);

        // 统一修改为使用任务ID来管理任务信息 [7/4/2011 ivan edit]
        int           missId      = OwnMission.m_idMission;
        _MISSION_INFO MissionInfo = GetMissionInfo(missId);

        for (int i = 0; i < MissionInfo.m_vecQuestDemandItem.Count; i++)
        {
            if (MissionInfo.m_vecQuestDemandItem[i].pItemImpl != null)
            {
                ObjectSystem.Instance.DestroyItem(MissionInfo.m_vecQuestDemandItem[i].pItemImpl);
            }
        }
        for (int i = 0; i < MissionInfo.m_vecQuestRewardItem.Count; i++)
        {
            if (MissionInfo.m_vecQuestRewardItem[i].pItemImpl != null)
            {
                ObjectSystem.Instance.DestroyItem(MissionInfo.m_vecQuestRewardItem[i].pItemImpl);
            }
        }

        MissionInfo.m_misName = "";
        MissionInfo.m_misDesc = "";

        if (MisInfo.ContainsKey(missId))
        {
            MisInfo.Remove(missId);
        }
    }
Ejemplo n.º 2
0
    public bool readFromBuff(ref NetInputBuffer buff)
    {
        if (buff.ReadByte(ref m_Count) != sizeof(byte))
        {
            return(false);
        }

        for (int i = 0; i < GAMEDEFINE.MAX_CHAR_MISSION_NUM; i++)
        {
            m_aMission[i] = new _OWN_MISSION();
            if (!m_aMission[i].readFromBuff(ref buff))
            {
                return(false);
            }
        }
        for (int j = 0; j < GAMEDEFINE.MAX_CHAR_MISSION_FLAG_LEN; j++)
        {
            if (buff.ReadUint(ref m_aMissionHaveDoneFlags[j]) != sizeof(uint))
            {
                return(false);
            }
        }
        for (int k = 0; k < GAMEDEFINE.MAX_CHAR_MISSION_DATA_NUM; k++)
        {
            if (buff.ReadInt(ref m_aMissionData[k]) != sizeof(int))
            {
                return(false);
            }
        }

        return(true);
    }
Ejemplo n.º 3
0
    public int[] m_aMissionData           = new int[GAMEDEFINE.MAX_CHAR_MISSION_DATA_NUM];                  //角色身上的任务自定义数据

    public _MISSION_DB_LOAD()
    {
        for (int i = 0; i < GAMEDEFINE.MAX_CHAR_MISSION_NUM; i++)
        {
            m_aMission[i] = new _OWN_MISSION();
        }
        CleanUp();
    }
Ejemplo n.º 4
0
 public void AddMission(byte yIndex, _OWN_MISSION pMission)
 {
     if (yIndex < GAMEDEFINE.MAX_CHAR_MISSION_NUM)
     {
         m_uMissionListFlags |= (uint)(0x00000001 << yIndex);
         m_listMission.m_aMission[yIndex] = pMission;
     }
 }
Ejemplo n.º 5
0
    internal int GetMissionIdByIndex(int index)
    {
        _OWN_MISSION miss = CDetailAttrib_Player.Instance.GetMission(index);

        if (miss == null)
        {
            return(-1);
        }
        else
        {
            return(miss.m_idMission);
        }
    }
    public override void AddMission(_OWN_MISSION pMission)
    {
        if (m_listMission.m_Count == (byte)GAMEDEFINE.MAX_CHAR_MISSION_NUM)
        {
            return;
        }
        int dwIndex = GetMissionIndexByID(pMission.m_idMission);

        if (dwIndex != MacroDefine.INVALID_ID)
        {
            return;
        }

        dwIndex = MacroDefine.INVALID_ID;
        for (int i = 0; i < GAMEDEFINE.MAX_CHAR_MISSION_NUM; i++)
        {
            if (m_listMission.m_aMission[i].m_idMission == MacroDefine.INVALID_ID)
            {
                dwIndex = i;
                break;
            }
        }

        if (dwIndex == MacroDefine.INVALID_ID)
        {
            return;
        }

        m_listMission.m_aMission[dwIndex] = pMission;
        m_listMission.m_Count++;

        // 添加到任务追?
        AddTraceMission(pMission.m_idMission);

        // �解析任务
        DataPool.Instance.ParseMission(pMission.m_idMission, pMission.m_idScript);

        // 自动执行任务
        AutoExecuteMission(pMission.m_idMission);

        ////任务增加,播放声音?
        //CSoundSystemFMod::_PlayUISoundFunc(70);

        //if(CGameProcedure::s_pUISystem && CGameProcedure::s_pUISystem->IsWindowShow("QuestLog"))
        //    CEventSystem::GetMe()->PushEvent(GE_UPDATE_MISSION);
    }
    public override void ModifyMission(_OWN_MISSION pMission)
    {
        int dwIndex = GetMissionIndexByID(pMission.m_idMission);

        if (dwIndex == MacroDefine.INVALID_ID)
        {
            return;
        }
        m_listMission.m_aMission[dwIndex] = pMission;

        //// 如果境界任务处于可完成状态则给客户端发送消?[8/18/2011 edit by ZL]
        //if (DataPool::GetMe()->GetAmbitMissionPojieByScriptID(pMission->m_idScript) != -1 &&
        //    m_listMission.m_aMission[dwIndex].m_anParam[0] == 0 ) {
        //    CEventSystem::GetMe()->PushEvent(GE_AMBITMISSION_FINISHED);
        //    }

        AutoReplyMission(pMission.m_idMission);

        //�删除只限QuestLog窗口显示时才发送消息的限制,任务跟踪系统也需要这个消?
        if (GameProcedure.s_pUISystem != null)
        {
            CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_MISSION, pMission.m_idMission);
        }
    }
Ejemplo n.º 8
0
 public void SetMission(_OWN_MISSION Mission)
 {
     m_Mission = Mission;
 }
Ejemplo n.º 9
0
    internal _MISSION_INFO GetPlayerMissionByIndex(int index)
    {
        _OWN_MISSION miss = CDetailAttrib_Player.Instance.GetMission(index);

        return(GetPlayerMissionById(miss.m_idMission));
    }
    public _OWN_MISSION GetMissionByID(uint dwMissionID)
    {
        _OWN_MISSION a = new _OWN_MISSION();

        return(a);
    }
Ejemplo n.º 11
0
 public abstract void ModifyMission(_OWN_MISSION pMission);
Ejemplo n.º 12
0
    //public virtual void ChangeSkillAttrib( const _OWN_SKILL *pSkillInit ){}

    //public virtual void ChangeXinFaAttrib( const _OWN_XINFA *pXinFaInit ){}
    //生活技能数据发生改变
    //public virtual void ChangeLifeAbilityAttrib( INT idAbility, _OWN_ABILITY pAbility) {}
    //生活技能数据发生改变
    //public virtual void ChangeLifeAbilityAttrib( INT idAbility, BYTE type, UINT value) {}

    public abstract void AddMission(_OWN_MISSION pMission);