void SetTipText(int nMissionID, byte yQuality)
    {
        Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0);

        if (MissionBase == null || MissionBase.MissionType != (int)MISSIONTYPE.MISSION_DAILY)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", nMissionID);
            return;
        }

        Tab_DailyMission DailyMission = TableManager.GetDailyMissionByID(MissionBase.DalityMissionTabID, 0);

        if (DailyMission == null)
        {
            LogModule.ErrorLog("Can not find DailyMission {0}", MissionBase.DalityMissionTabID);
            return;
        }

        Tab_MissionDictionary MisDec = TableManager.GetMissionDictionaryByID(MissionID, 0);

        if (MisDec == null)
        {
            LogModule.ErrorLog("Can not find missionDictionary {0}", MissionID);
            return;
        }

        if (m_NameText && m_QualityColorText && m_ActivenessText && m_MisDec)
        {
            m_NameText.text         = DailyMission.Name;
            m_QualityColorText.text = GetStrColorByQuality(yQuality);
            m_ActivenessText.text   = "+" + DailyMission.AwardActiveness;
            m_MisDec.text           = MisDec.MissionDesc;
        }
        return;
    }
Exemple #2
0
    // 寻路后逻辑处理
    public void MissionLogic(int nMissionID)
    {
        Tab_MissionBase table      = TableManager.GetMissionBaseByID(nMissionID, 0);
        int             nTableType = table.LogicType;

        MissionState misState = (MissionState)GameManager.gameManager.MissionManager.GetMissionState(nMissionID);

        if (MissionState.Mission_Accepted == misState)
        {
            if (nTableType == ((int)TableType.Table_KillMonster) ||
                nTableType == ((int)TableType.Table_LootItem) ||
                nMissionID == 25 || nMissionID == 33 || nMissionID == 36)
            {
                if (Singleton <ObjManager> .GetInstance().MainPlayer &&
                    Singleton <ObjManager> .GetInstance().MainPlayer.OwnSkillInfo[0].IsValid())
                {
                    int nSkillID = Singleton <ObjManager> .GetInstance().MainPlayer.OwnSkillInfo[0].SkillId;

                    Singleton <ObjManager> .GetInstance().MainPlayer.SelectTarget = null;

                    Singleton <ObjManager> .GetInstance().MainPlayer.UseSkillOpt(nSkillID, null);
                }
                return;
            }
        }

        // 弹出对话
        AutoDialog(nMissionID);
    }
    void YuanBaoTipBox()
    {
        int nTotalYuanBao = 0;

        for (int i = 0; i < DailyMissionData.MAX_DAILYMISSION_KINDS; i++)
        {
            DailyMission rMission = GameManager.gameManager.PlayerDataPool.DailyMissionData.GetDailyMissionByKind(i);
            if (rMission.MissionID < 0)
            {
                continue;
            }
            bool IsHaveMission = GameManager.gameManager.MissionManager.IsHaveMission(rMission.MissionID);
            if (IsHaveMission)
            {
                continue;
            }
            Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(rMission.MissionID, 0);
            if (MissionBase == null)
            {
                return;
            }
            Tab_DailyMission DailyMission = TableManager.GetDailyMissionByID(MissionBase.DalityMissionTabID, 0);
            if (DailyMission == null)
            {
                return;
            }
            nTotalYuanBao += DailyMission.ConsumeBangdedYuanBao;
        }
        string str = "";

        str = StrDictionary.GetClientDictionaryString("#{1538}", nTotalYuanBao);
        MessageBoxLogic.OpenOKCancelBox(str, null, OnMessageOK, OnCancelClick);
    }
    void AcceptAllMission()
    {
        if (Singleton <ObjManager> .Instance.MainPlayer.IsInJianYu())
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{2216}");

            return;
        }

        int nMaxKinds = DailyMissionData.MAX_DAILYMISSION_KINDS;

        for (int i = 0; i < nMaxKinds; i++)
        {
            DailyMission rDailyMission = GameManager.gameManager.PlayerDataPool.DailyMissionData.GetDailyMissionByKind(i);

            int nMissionID = rDailyMission.MissionID;
            //byte yQuality = rDailyMission.Quality;

            Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0);
            if (MissionBase == null)
            {
                continue;
            }

            bool isHaveMission = GameManager.gameManager.MissionManager.IsHaveMission(nMissionID);
            if (isHaveMission)
            {
                continue;
            }

            GameManager.gameManager.MissionManager.AcceptMission(nMissionID);
        }
    }
    bool IsMasterMission()
    {
        Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(m_nMissionID, 0);

        if (MissionBase == null)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", m_nMissionID);
            return(false);
        }

        Tab_DailyMission DailyMission = TableManager.GetDailyMissionByID(MissionBase.DalityMissionTabID, 0);

        if (DailyMission == null)
        {
            LogModule.ErrorLog("Can not find dailyMission {0}", MissionBase.DalityMissionTabID);
            return(false);
        }

        if (DailyMission.Type == 0)
        {
            return(true);
        }

        return(false);
    }
Exemple #6
0
    // 遍历弹出可接任务
    bool PopCanAcceptedMission()
    {
        // 显示可接任务
        for (int i = 0; i < m_CareNPC.MissionList.Count; ++i)
        {
            int missionID = m_CareNPC.MissionList[i];
            if (missionID < 0)
            {
                return(false);
            }

            Tab_MissionBase table = TableManager.GetMissionBaseByID(missionID, 0);
            if (table == null)
            {
                return(false);
            }

            if (table.AcceptDataID != m_CareNPC.BaseAttr.RoleBaseID)
            {
                continue;
            }

            bool bCanAcceptMission = GameManager.gameManager.MissionManager.CanAcceptMission(missionID);
            if (bCanAcceptMission)
            {
                ShowMission(missionID);
                return(true);
            }
        }

        return(false);
    }
Exemple #7
0
    // 遍历弹出已完成任务
    bool PopCompletedMission()
    {
        // 显示已完成任务
        for (int i = 0; i < m_CareNPC.MissionList.Count; ++i)
        {
            int missionID = m_CareNPC.MissionList[i];
            if (missionID < 0)
            {
                LogModule.ErrorLog("missionID: {0} can not less then 0", missionID);
                return(false);
            }

            Tab_MissionBase table = TableManager.GetMissionBaseByID(missionID, 0);
            if (table == null)
            {
                LogModule.ErrorLog("Can not find missionID {0} in Tab_MissionBase", missionID);
                return(false);
            }

            bool bIsHaveMission = GameManager.gameManager.MissionManager.IsHaveMission(missionID);
            if (false == bIsHaveMission)
            {
//				LogModule.ErrorLog("Do not have mission: {0}", missionID);
                continue;
            }

            if (table.CompleteDataID != m_CareNPC.BaseAttr.RoleBaseID)
            {
                LogModule.ErrorLog("Do not have mission: {0}", missionID);
                continue;
            }

            MissionState misState = (MissionState)GameManager.gameManager.MissionManager.GetMissionState(missionID);
            if (MissionState.Mission_Completed == misState)
            {
                if (table.MissionType != (int)MISSIONTYPE.MISSION_DAILY && table.MissionType != (int)MISSIONTYPE.MISSION_GUILD)
                {
                    ShowMission(missionID);
                    return(true);
                }
            }

            // 剧情对话特殊处理
            if (table.LogicType == (short)TableType.Table_Story) //是剧情任务,不弹出对话框
            {
                //if (StoryDialogLogic.ShowStory(table.LogicID))
                //{
                //    return true;
                //}
                Cutscene.CutsceneManager.Instance.PlayCommonStory(table.LogicID);
                return(true);
            }
        }

        return(false);
    }
Exemple #8
0
    // 采集条出发 真正删除物品
    public void SafeDeleteItem()
    {
        if (m_ItemObjToRemove)
        {
            if (m_MissionID >= 0)
            {
                Tab_MissionBase MissionTab = TableManager.GetMissionBaseByID(m_MissionID, 0);
                if (MissionTab == null)
                {
                    return;
                }
                if (MissionTab.LogicType != (int)TableType.Table_CollectItem)
                {
                    return;
                }
                Tab_MissionCollectItem CItem = TableManager.GetMissionCollectItemByID(MissionTab.LogicID, 0);
                if (CItem == null)
                {
                    LogModule.ErrorLog("Can not find missionCollectItem {0}", MissionTab.LogicID);
                    return;
                }
                GameObject gItemObj = Singleton <ObjManager> .GetInstance().FindOtherGameObj(m_ItemObjToRemove.name);

                if (gItemObj)
                {
                    Obj_OtherGameObj otherGameObj = gItemObj.GetComponent <Obj_OtherGameObj>();
                    if (otherGameObj && otherGameObj.GetIntParamByIndex(0) == CItem.CharModelID)
                    {
                        int nParam = GameManager.gameManager.MissionManager.GetMissionParam(m_MissionID, 0);
                        if (nParam >= CItem.ItemCount)
                        {
                            return;
                        }
                        nParam += 1;
                        GameManager.gameManager.MissionManager.SetMissionParam(m_MissionID, 0, nParam);
                        if (nParam >= CItem.ItemCount)
                        {
                            GameManager.gameManager.MissionManager.SetMissionState(m_MissionID, 2);
                        }

                        // 移除 隐藏处理
                        gItemObj.SetActive(false);
                        m_ItemObjToRemove = null;
                        m_MissionID       = -1;

                        ReSeedItemEvent(GameManager.gameManager.RunningScene, otherGameObj.GetIntParamByIndex(1), otherGameObj.GetIntParamByIndex(2));
                    }
                }
            }
        }
    }
Exemple #9
0
    private List <Data> GetDataListMission_1()
    {
        List <Data> res = new List <Data>();

        List <int> MissionList = GameManager.gameManager.MissionManager.GetCanAcceptedMissionIDInScene(MaxMissionNum);

        //也是只显示前9个任务
        for (int i = 0; i < MissionList.Count; i++)
        {
            Tab_MissionBase MisBase = TableManager.GetMissionBaseByID(MissionList[i], 0);
            if (MisBase == null)
            {
                continue;
            }

            // 日常任务不显示
            //             if (MisBase.MissionType == (int)MISSIONTYPE.MISSION_DAILY
            //                 || MisBase.MissionType == (int)MISSIONTYPE.MISSION_GUILD)
            //             {
            //                 //DailyMissionBonusInfo(MisBase);
            //                 continue;
            //             }
            Data data = new Data();
            data.id = MissionList[i];
            res.Add(data);
        }

        // 创建LogItem
        List <int> nMissionIDList = GameManager.gameManager.MissionManager.GetAllNotDailyMissionList();

        //同样加了 9 个限制,已级日常任务,和帮会任务的不显示
        for (int i = 0; i < MaxMissionNum && i < nMissionIDList.Count; i++)
        {
            // 日常任务 不显示在日志上 // 帮会任务 不显示
            Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionIDList[i], 0);
            //             if (null == MissionBase || MissionBase.MissionType == (int)MISSIONTYPE.MISSION_DAILY
            //                 || MissionBase.MissionType == (int)MISSIONTYPE.MISSION_GUILD)
            //             {
            //                 continue;
            //             }
            if (null == MissionBase)
            {
                continue;
            }
            Data data = new Data();
            data.id = nMissionIDList[i];
            res.Add(data);
        }
        return(res);
    }
    void OnLoadItemList(GameObject DailyMissionItem)
    {
        if (null == DailyMissionItem)
        {
            return;
        }

        if (m_ItemGrid == null || m_ItemGrid.gameObject == null)
        {
            return;
        }
        m_ItemGrid.GetComponent <UITopGrid>().recenterTopNow = true;
        int nMaxKinds = DailyMissionData.MAX_DAILYMISSION_KINDS;

        for (int i = 0; i < nMaxKinds; i++)
        {
            DailyMission rDailyMission = GameManager.gameManager.PlayerDataPool.DailyMissionData.GetDailyMissionByKind(i);

            int  nMissionID = rDailyMission.MissionID;
            byte yQuality   = rDailyMission.Quality;

            Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0);
            if (MissionBase == null)
            {
                continue;
            }

            // 创建Item
            GameObject curItem = Utils.BindObjToParent(DailyMissionItem, m_ItemGrid.gameObject);
            if (curItem == null)
            {
                LogModule.DebugLog("AwardActivityItem create error");
                continue;
            }

            curItem.name = i.ToString();
            DailyMissionItemLogic AwardItem = curItem.GetComponent <DailyMissionItemLogic>();
            if (AwardItem != null)
            {
                AwardItem.Init(i, nMissionID, yQuality);
            }

            UpdateMissionState(nMissionID);
        }

        m_ItemGrid.repositionNow = true;
        m_ItemGrid.sorted        = true;
    }
    public static bool CalculateIsShowRedPoint()
    {
        bool           sign           = false;
        MissionManager missionManager = GameManager.gameManager.MissionManager;

        foreach (List <Tab_DailyMission> dailyMission in TableManager.GetDailyMission().Values)
        {
            if (!missionManager.IsMissionHaveDone(dailyMission[0].MissionID))
            {
                Tab_MissionBase missionBase = TableManager.GetMissionBaseByID(dailyMission[0].MissionID, 0);
                if (missionBase != null)
                {
                    Tab_MissionOperationNum missionOp = TableManager.GetMissionOperationNumByID(missionBase.LogicID, 0);
                    if (missionOp != null)
                    {
                        if (missionManager.GetMissionParam(dailyMission[0].MissionID, 0) < missionOp.OperationCount)
                        {
                            continue;
                        }
                        else
                        {
                            sign = true;
                            break;
                        }
                    }
                }
            }
        }
        if (!sign)
        {
            int progress = GameManager.gameManager.PlayerDataPool.AwardActivityData.Activeness;
            int index    = 0;
            foreach (List <Tab_ActivenessAward> award in TableManager.GetActivenessAward().Values)
            {
                if (progress >= award[0].MiniActiveness && index < 5)
                {
                    bool claimed = GameManager.gameManager.PlayerDataPool.AwardActivityData.GetActivenessAwardFlag(award[0].Id);
                    if (!claimed)
                    {
                        sign = true;
                        break;
                    }
                }
                index++;
            }
        }
        return(sign);
    }
Exemple #12
0
    //////////////////////////////////////////////////////////////////////////
    //对话相关接口
    //////////////////////////////////////////////////////////////////////////
    // 弹出最近对话框 --寻路完响应
    public void AutoDialog(int nMissionID)
    {
        Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0);

        if (MissionBase == null)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", nMissionID);
            return;
        }

        Obj_NPC TargetNpc = null;

        foreach (string strName in Singleton <ObjManager> .GetInstance().ObjPools.Keys)
        {
            Obj_Character objChar = Singleton <ObjManager> .GetInstance().ObjPools[strName] as Obj_Character;

            if (null == objChar)
            {
                return;
            }

            if (objChar.BaseAttr.RoleBaseID == MissionBase.AcceptDataID ||
                objChar.BaseAttr.RoleBaseID == MissionBase.CompleteDataID)
            {
                TargetNpc = objChar as Obj_NPC;
                break;
            }
        }
        if (TargetNpc == null)
        {
            LogModule.ErrorLog("Can not find TargetNPC of ID: {0} or {1}", MissionBase.AcceptDataID, MissionBase.CompleteDataID);
            return;
        }

        if (null != Singleton <ObjManager> .GetInstance().MainPlayer)
        {
            Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(TargetNpc.gameObject);
        }
        if (!TargetNpc.IsHaveMission(nMissionID))
        {
            LogModule.ErrorLog("Do not have mission {0}", nMissionID);
            return;
        }

        Show(TargetNpc);
    }
    void UpdateButtonClick()
    {
        if (Singleton <ObjManager> .Instance.MainPlayer.IsInJianYu())
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{2216}");

            return;
        }

        Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(m_nMissionID, 0);

        if (MissionBase == null)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", m_nMissionID);
            return;
        }
        Tab_DailyMission DailyMission = TableManager.GetDailyMissionByID(MissionBase.DalityMissionTabID, 0);

        if (DailyMission == null)
        {
            LogModule.ErrorLog("Can not find dailyMission {0}", MissionBase.DalityMissionTabID);
            return;
        }
        bool bIsHaveMission = GameManager.gameManager.MissionManager.IsHaveMission(m_nMissionID);

        if (bIsHaveMission)
        {
            Singleton <ObjManager> .GetInstance().MainPlayer.SendNoticMsg(false, "#{2444}");

            return;
        }
        //string str = "";
        //str = StrDictionary.GetClientDictionaryString("#{1538}", DailyMission.ConsumeYuanBao);
        //MessageBoxLogic.OpenOKCancelBox(str, null, OnMessageOK, OnCancelClick);
        if (DailyMissionWindow.Instance() != null)
        {
            if (DailyMissionWindow.Instance().m_DailyMissionRefresh.GetComponent <DailyMissionRefresh>() != null)
            {
                DailyMissionWindow.Instance().m_DailyMissionRefresh.GetComponent <DailyMissionRefresh>().InitInfo(DailyMission.ConsumeNormalRefreshItem, DailyMission.ConsumeBangdedYuanBao, DailyMission.ConsumeSpecialRefreshItem, DailyMission.ConsumeYuanBao, Kind);
            }
            DailyMissionWindow.Instance().ShowRefresh();
        }
    }
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="mission"></param>
    public void SetData(Tab_DailyMission mission)
    {
        mMissionId = mission.MissionID;
        mGoToUIId  = mission.UIName;
        MissionManager        missionManager = GameManager.gameManager.MissionManager;
        Tab_MissionDictionary missionDic     = TableManager.GetMissionDictionaryByID(mMissionId, 0);
        Tab_MissionBase       missionBase    = TableManager.GetMissionBaseByID(mMissionId, 0);

        if (missionBase == null || missionBase.LogicType != (int)TableType.Table_OperationNum)
        {
            LogModule.WarningLog("DailyMission Logic Type Error, id = " + mission.Id);
            return;
        }
        Tab_MissionOperationNum missionOp = TableManager.GetMissionOperationNumByID(missionBase.LogicID, 0);

        lblMissionName.text = string.Format(missionDic.MissionName, "", "");
        sprIcon.spriteName  = missionDic.MissionIcon;
        lblDesc.text        = missionDic.MissionDesc;
        lblActive.text      = StrDictionary.GetClientDictionaryString("#{1634}", mission.AwardActiveness);

        int progress = missionOp.OperationCount;

        if (missionManager.IsHaveMission(mMissionId))
        {
            progress = missionManager.GetMissionParam(mMissionId, 0);
            doneArea.SetActive(false);
            rewardArea.SetActive(true);
            btnClaim.SetActive(missionManager.GetMissionState(mMissionId) == (byte)MissionState.Mission_Completed);
            UIEventListener.Get(btnClaim).onClick = ClaimReward;
            SetRewards(mission);
        }
        else
        {
            doneArea.SetActive(true);
            rewardArea.SetActive(false);
            btnClaim.SetActive(false);
        }
        lblProgress.text = progress + "/" + missionOp.OperationCount;
        UpdateProgress(progress, missionOp.OperationCount);
        UIEventListener.Get(btnGoTo).onClick = GoToUI;
    }
Exemple #15
0
    // 接任务和交任务UI
    public void MissionUI(int nMissionID, MissionUIType type)
    {
        // 先清理
        CleanUp();

        if (nMissionID < 0)
        {
            LogModule.ErrorLog("MissionID: {0} can not less then 0", nMissionID);
            return;
        }
        m_CurMissionID = nMissionID;
        Tab_MissionDictionary MDLine = TableManager.GetMissionDictionaryByID(nMissionID, 0);

        if (MDLine == null)
        {
            LogModule.ErrorLog("Can not find MissionDictionary {0}", nMissionID);
            return;
        }

        m_MissionType = type;
        if (type == MissionUIType.TYPE_ACCETP)
        {
            m_AcceptButton.SetActive(true);
            m_CompleteButton.SetActive(false);
            m_MissionInfoAward.SetActive(true);

            StoryDialogLogic.ShowMissionStory(StrDictionary.GetClientString_WithNameSex(MDLine.MissionDesc), false, false);

            m_CurTalkID = MDLine.AcceptTalkID;
            GameManager.gameManager.SoundManager.PlaySoundEffect(m_CurTalkID);
        }
        else if (type == MissionUIType.TYPE_COMPLETE)
        {
            m_AcceptButton.SetActive(false);
            m_CompleteButton.SetActive(true);
            m_MissionInfoAward.SetActive(true);

            StoryDialogLogic.ShowMissionStory(StrDictionary.GetClientString_WithNameSex(MDLine.MissionDoneDesc), false, false);
        }

        Tab_MissionBase misLine = TableManager.GetMissionBaseByID(nMissionID, 0);

        if (misLine == null)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", nMissionID);
            return;
        }

        if (misLine.MissionType == (int)MISSIONTYPE.MISSION_BRANCH && type == MissionUIType.TYPE_ACCETP)
        {
            m_NoAcceptButton.SetActive(true);
        }
        else
        {
            m_NoAcceptButton.SetActive(false);
        }

        if (misLine.BonusID > -1)
        {
            //显示奖励内容
            Tab_MissionBonus bonusTab = TableManager.GetMissionBonusByID(misLine.BonusID, 0);
            if (bonusTab == null)
            {
                LogModule.ErrorLog("Can not find missionBonus {0}", misLine.BonusID);
            }
            else
            {
                // 最多一共7个奖励 按顺序显示 物品(最多4个) 玩家经验 宠物经验 金钱

                int currentAwardItemIdx = 0;

                // 物品
                if (bonusTab.getToolIDCount() > 0)
                {
                    for (int i = 0; i < bonusTab.getToolIDCount(); i++)
                    {
                        Tab_CommonItem commonItem = TableManager.GetCommonItemByID(bonusTab.GetToolIDbyIndex(i), 0);
                        if (commonItem != null && bonusTab.GetToolNumbyIndex(i) > 0 && currentAwardItemIdx < m_MissionBonusItemSlot.Length)
                        {
                            int nItemCount = bonusTab.GetToolNumbyIndex(i);
                            m_MissionBonusItemSlot[currentAwardItemIdx].gameObject.SetActive(true);
                            m_MissionBonusItemSlot[currentAwardItemIdx].InitInfo_Item(commonItem.Id, ItemSlotLogic.OnClickOpenTips, nItemCount > 1 ? nItemCount.ToString() : "", nItemCount > 1);
                            currentAwardItemIdx += 1;
                        }
                    }
                }

                // 玩家经验
                if (bonusTab.Exp > 0 && currentAwardItemIdx < m_MissionBonusItemSlot.Length)
                {
                    m_MissionBonusItemSlot[currentAwardItemIdx].gameObject.SetActive(true);
                    m_MissionBonusItemSlot[currentAwardItemIdx].InitInfo_PlayerExp(bonusTab.Exp.ToString());
                    currentAwardItemIdx += 1;
                }

                // 宠物经验
                if (bonusTab.FellowExp > 0 && currentAwardItemIdx < m_MissionBonusItemSlot.Length)
                {
                    m_MissionBonusItemSlot[currentAwardItemIdx].gameObject.SetActive(true);
                    m_MissionBonusItemSlot[currentAwardItemIdx].InitInfo_FellowExp(bonusTab.FellowExp.ToString());
                    currentAwardItemIdx += 1;
                }

                // 金钱 金币和绑定点券 一般不会共存
                if (bonusTab.Money > 0 && currentAwardItemIdx < m_MissionBonusItemSlot.Length)
                {
                    m_MissionBonusItemSlot[currentAwardItemIdx].gameObject.SetActive(true);
                    m_MissionBonusItemSlot[currentAwardItemIdx].InitInfo_Coin(null, bonusTab.Money.ToString(), true);
                    currentAwardItemIdx += 1;
                }
                if (bonusTab.BindYuanBao > 0 && currentAwardItemIdx < m_MissionBonusItemSlot.Length)
                {
                    m_MissionBonusItemSlot[currentAwardItemIdx].gameObject.SetActive(true);
                    m_MissionBonusItemSlot[currentAwardItemIdx].InitInfo_YuanbaoBind(null, bonusTab.BindYuanBao.ToString(), true);
                    currentAwardItemIdx += 1;
                }

                if (m_MissionItemGrid)
                {
                    m_MissionItemGrid.Reposition();
                }
            }
        }

        GameManager.gameManager.SoundManager.PlaySoundEffect(128);
#if BOBJOYSTICK
        RefreshJoyGUI(type);
#endif
    }
    void SetData(int missionId)
    {
        mMissionId = missionId;
        // 任务基本
        Tab_MissionBase mission = TableManager.GetMissionBaseByID(mMissionId, 0);

        if (mission == null)
        {
            Debug.LogError("No MissionBase Error, id = " + mMissionId);
            return;
        }

        // 任务字典
        Tab_MissionDictionary missionDic = TableManager.GetMissionDictionaryByID(mMissionId, 0);

        if (missionDic == null)
        {
            Debug.LogError("No MissionDictionary Error, id = " + mMissionId);
            return;
        }
        lblMissionName.text = string.Format(missionDic.MissionName, "", "");
        lblMissionDesc.text = StrDictionary.GetClientString_WithNameSex(missionDic.MissionDesc);

        // 任务奖励
        Utils.CleanGrid(rewardList);
        Tab_MissionBonus missionBonus = TableManager.GetMissionBonusByID(mission.BonusID, 0);

        if (missionBonus == null)
        {
            Debug.LogError("No Tab_MissionBonus Error, mission id = " + mMissionId + ", bonus id = " + mission.BonusID);
            return;
        }
        // 经验
        if (missionBonus.Exp > 0)
        {
            AddRewardItem(ItemType.ITEM_EXP, -1, missionBonus.Exp);
        }
        // 金币
        if (missionBonus.Money > 0)
        {
            AddRewardItem(ItemType.ITEM_MONEY, -1, missionBonus.Money);
        }
        // 绑定元宝
        if (missionBonus.BindYuanBao > 0)
        {
            AddRewardItem(ItemType.ITEM_YUANBAO, -1, missionBonus.BindYuanBao);
        }
        // 物品
        for (int i = 0; i < missionBonus.getToolIDCount(); i++)
        {
            int itemId    = missionBonus.GetToolIDbyIndex(i);
            int itemCount = missionBonus.GetToolNumbyIndex(i);
            if (itemCount <= 0)
            {
                continue;
            }
            AddRewardItem(ItemType.ITEM_ITEM, itemId, itemCount);
        }
        // 职业奖励
        int nProfess = Singleton <ObjManager> .GetInstance().MainPlayer.Profession;

        if (nProfess >= 0 && nProfess < missionBonus.getProfessionItemIDCount())
        {
            AddRewardItem(ItemType.ITEM_ITEM, missionBonus.GetProfessionItemIDbyIndex(nProfess), missionBonus.GetProfessionNumbyIndex(nProfess));
        }
        // 多选物品
        int nChoosedItemdNum = missionBonus.ChoosedItemNum;

        if (nChoosedItemdNum > 0 && nChoosedItemdNum <= missionBonus.getItemIDCount())
        {
            AddRewardItem(ItemType.ITEM_ITEM, missionBonus.GetItemIDbyIndex(nChoosedItemdNum - 1), missionBonus.GetItemNumbyIndex(nChoosedItemdNum - 1));
        }
        rewardList.GetComponent <UIGrid>().Reposition();
    }
Exemple #17
0
    /// <summary>
    /// 显示对话框
    /// </summary>
    /// <param name='bMission'>
    /// 是否是任务
    /// </param>
    /// <param name='nDialogId'>
    /// 任务ID/对白ID
    /// </param>
    public static void ShowMissionDialogUI(int nMissionID)
    {
        Tab_MissionBase table = TableManager.GetMissionBaseByID(nMissionID, 0);

        if (table != null)
        {
            // NPC 距离判断
            Obj_NPC TargetNpc = Singleton <DialogCore> .GetInstance().CareNPC;

            if (TargetNpc == null)
            {
//				LogModule.ErrorLog("Can not find DialogCore's CareNPC");
                return;
            }

            if (!TargetNpc.IsHaveMission(nMissionID))
            {
                LogModule.ErrorLog("NPC {0} do not have mission {1}", TargetNpc.name, nMissionID);
                return;
            }

            // 是否已接取
            bool         isHaveMission = GameManager.gameManager.MissionManager.IsHaveMission(nMissionID);
            MissionState misState      = (MissionState)GameManager.gameManager.MissionManager.GetMissionState(nMissionID);
            if (isHaveMission && misState != MissionState.Mission_Failed)
            {
                if (MissionState.Mission_Completed == misState)
                {
                    if (table.CompleteDataID == TargetNpc.BaseAttr.RoleBaseID)
                    {
                        ShowMissionDialogUI(nMissionID, MissionInfoController.MissionUIType.TYPE_COMPLETE);
                    }
                    else
                    {
                        // cunyi
                        LogModule.ErrorLog("Mission {0} completeDataID {1} dos not match with targetNPC's roleBaseID {2}", nMissionID, table.CompleteDataID, TargetNpc.BaseAttr.RoleBaseID);
                    }
                }
                else
                {
                    // cunyi
                    LogModule.ErrorLog("Mission {0} 's state {1} is not complete", nMissionID, misState);
                }
            }
            else
            {
                bool isCanAcceptMission = GameManager.gameManager.MissionManager.CanAcceptMission(nMissionID);
                if (isCanAcceptMission)
                {
                    if (table.AcceptDataID == TargetNpc.BaseAttr.RoleBaseID)
                    {
                        ShowMissionDialogUI(nMissionID, MissionInfoController.MissionUIType.TYPE_ACCETP);
                    }
                    else
                    {
                        // cunyi
                        LogModule.ErrorLog("Mission {0} acceptDataID {1} dos not match with targetNPC's roleBaseID {2}", nMissionID, table.AcceptDataID, TargetNpc.BaseAttr.RoleBaseID);
                    }
                }
                else
                {
                    // cunyi
                    LogModule.ErrorLog("Can not accept mission {0}", nMissionID);
                }
            }
        }
        else
        {
            LogModule.ErrorLog("Can not find missionID {0} in Tab_MissionBase", nMissionID);
        }
    }
    void UpdateAwardItem(int nMissionID)
    {
        if (m_ItemGrid == null)
        {
            return;
        }

        Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0);

        if (MissionBase == null)
        {
            LogModule.ErrorLog("Can not find missionBase {0}", nMissionID);
            return;
        }
        Tab_DailyMission DailyMissionTab = TableManager.GetDailyMissionByID(MissionBase.DalityMissionTabID, 0);

        if (DailyMissionTab == null)
        {
            LogModule.ErrorLog("Can not find dailyMission {0}", MissionBase.DalityMissionTabID);
            return;
        }

        // 品质、等级系数
        float fQualityFactor = 1.0f;
        float fLevelFactor   = 1.0f;

        Tab_DailyMissionQuality QualityTab = TableManager.GetDailyMissionQualityByID(m_yQuality, 0);

        if (QualityTab == null)
        {
            LogModule.ErrorLog("Can not find dailyMissionQuality {0}", m_yQuality);
        }
        else
        {
            fQualityFactor = QualityTab.AwardFactor;
            int nLevelFactorIndex = Singleton <ObjManager> .Instance.MainPlayer.BaseAttr.Level / 10;
            int nLevelFactorCount = QualityTab.getLevelFactorCount();
            if (nLevelFactorIndex >= nLevelFactorCount || nLevelFactorIndex < 0)
            {
                nLevelFactorIndex = nLevelFactorCount - 1;
            }
            if (QualityTab.GetLevelFactorbyIndex(nLevelFactorIndex) >= 0)
            {
                fLevelFactor = QualityTab.GetLevelFactorbyIndex(nLevelFactorIndex);
            }
        }

        float fAwardFactor = fQualityFactor * fLevelFactor;

        if (fAwardFactor <= 0)
        {
            return;
        }

        int nIndex = 0;

        // 金钱
        if (DailyMissionTab.AwardMoney > 0 && nIndex >= 0 && nIndex < MaxItemCount &&
            m_AwardItem[nIndex] && nIndex < m_AwardItemNumLable.Length)
        {
            m_AwardItem[nIndex].SetActive(true);
            if (m_AwardItemNumLable[nIndex] != null)
            {
                float fRewardMoney = DailyMissionTab.AwardMoney * fAwardFactor;
                int   nRewardMoney = (int)fRewardMoney;
                m_AwardItemNumLable[nIndex].text = nRewardMoney.ToString();
            }
        }

        // 经验
        nIndex++;
        if (DailyMissionTab.AwardExp > 0 && nIndex >= 0 && nIndex < MaxItemCount &&
            m_AwardItem[nIndex] && nIndex < m_AwardItemNumLable.Length)
        {
            m_AwardItem[nIndex].SetActive(true);
            if (m_AwardItemNumLable[nIndex] != null)
            {
                float fRewardExp = DailyMissionTab.AwardExp * fAwardFactor;
                int   nRewardExp = (int)fRewardExp;
                m_AwardItemNumLable[nIndex].text = nRewardExp.ToString();
            }
        }

        // 声望
        nIndex++;
        if (DailyMissionTab.AwardReputation > 0 && nIndex >= 0 && nIndex < MaxItemCount &&
            m_AwardItem[nIndex] && nIndex < m_AwardItemNumLable.Length)
        {
            m_AwardItem[nIndex].SetActive(true);
            if (m_AwardItemNumLable[nIndex] != null)
            {
                int nRewardRepution = DailyMissionTab.AwardReputation;
                m_AwardItemNumLable[nIndex].text = nRewardRepution.ToString();
            }
        }

        // 活跃度
        nIndex++;
        if (DailyMissionTab.AwardActiveness > 0 && nIndex >= 0 && nIndex < MaxItemCount &&
            m_AwardItem[nIndex] && nIndex < m_AwardItemNumLable.Length)
        {
            m_AwardItem[nIndex].SetActive(true);
            if (m_AwardItemNumLable[nIndex] != null)
            {
                m_AwardItemNumLable[nIndex].text = DailyMissionTab.AwardActiveness.ToString();
            }
        }

        // 物品
        nIndex++;
        if (DailyMissionTab.AwardItemNum > 0)
        {
            Tab_CommonItem Item = TableManager.GetCommonItemByID(DailyMissionTab.AwardItemID, 0);
            if (Item == null)
            {
                LogModule.ErrorLog("Can not find commonItem {0}", DailyMissionTab.AwardItemID);
            }
            else
            if (nIndex >= 0 && nIndex < MaxItemCount &&
                m_AwardItem[nIndex] && m_ItemSprit && nIndex < m_AwardItemNumLable.Length)
            {
                m_AwardItem[nIndex].SetActive(true);
                m_ItemSprit.spriteName = Item.Icon;
                if (m_AwardItemNumLable[nIndex] != null)
                {
                    m_AwardItemNumLable[nIndex].text = DailyMissionTab.AwardItemNum.ToString();
                }
            }
        }

        m_ItemGrid.repositionNow = true;
    }
Exemple #19
0
    // 开始从场景中移除物品
    public void RemoveItem(GameObject ItemObj)
    {
        if (ItemObj)
        {
            // 玩家任务检测
            List <int> nMissionIDList = GameManager.gameManager.MissionManager.GetAllMissionID();
            int        nMissionCount  = nMissionIDList.Count;
            if (nMissionCount <= 0)
            {
                return;
            }
            int nBornMonster = 0;
            // 遍历任务
            foreach (int nMissionID in nMissionIDList)
            {
                Tab_MissionBase MissionTab = TableManager.GetMissionBaseByID(nMissionID, 0);
                if (MissionTab == null)
                {
                    continue;
                }
                if (MissionTab.LogicType != (int)TableType.Table_CollectItem)
                {
                    continue;
                }

                // 任务状态 已完成
                if (2 == GameManager.gameManager.MissionManager.GetMissionState(nMissionID))
                {
                    continue;
                }

                Tab_MissionCollectItem CItem = TableManager.GetMissionCollectItemByID(MissionTab.LogicID, 0);
                if (CItem == null)
                {
                    LogModule.ErrorLog("Can not find missionCollectItem {0}", MissionTab.LogicID);
                    continue;
                }

                GameObject gItemObj = Singleton <ObjManager> .GetInstance().FindOtherGameObj(ItemObj.name);

                if (gItemObj)
                {
                    Obj_OtherGameObj otherGameObj = gItemObj.GetComponent <Obj_OtherGameObj>();
                    if (otherGameObj && otherGameObj.GetIntParamByIndex(0) == CItem.CharModelID)
                    {
                        m_MissionID  = nMissionID;
                        nBornMonster = otherGameObj.GetIntParamByIndex(3);
                    }
                    break;
                }
            }

            // 无任务
            if (m_MissionID < 0)
            {
                return;
            }

            if (nBornMonster > 0)
            {
                CG_ASK_COLLECTBORNMONSTER packet = (CG_ASK_COLLECTBORNMONSTER)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_COLLECTBORNMONSTER);
                if (packet != null)
                {
                    packet.Id = nBornMonster;
                    packet.SendPacket();
                }
            }

            m_ItemObjToRemove = ItemObj;
            GameManager.gameManager.SoundManager.PlaySoundEffect(9);        //collect
            // 通知采集条
            UIManager.ShowUI(UIInfo.CollectItemSlider);
        }
    }
Exemple #20
0
    // 任务显示相关
    void UpdateMissionInfo(int nData)
    {
        CleanMissionInfo();

        int nMissionID   = nData % 10000;
        int nRoundIndex  = (nData / 10000) % 100;
        int nAcptedTimes = nData / 1000000;

        // 大于0 才是 帮会任务
        // 没有帮会 也不显示
        PlayerData MyPlayerData = GameManager.gameManager.PlayerDataPool;

        if (MyPlayerData == null)
        {
            return;
        }
        if (MyPlayerData.GuildInfo == null)
        {
            return;
        }
        if (false == MyPlayerData.IsHaveGuild())
        {
            return;
        }

        Tab_GuildMissionGuild guildMisGuild = TableManager.GetGuildMissionGuildByID(MyPlayerData.GuildInfo.GuildLevel, 0);

        if (guildMisGuild == null)
        {
            LogModule.ErrorLog("Can not find guildMisGuild {0}", MyPlayerData.GuildInfo.GuildLevel);
            return;
        }

        // 按钮显示否
        if (nAcptedTimes <= guildMisGuild.MemMaxTimesOneDay)
        {
            if (nRoundIndex < guildMisGuild.MemMisRoundNumOnce)
            {
                // 还没任务呢
                if (nMissionID <= 0)
                {
                    if (m_JoinButton)
                    {
                        m_JoinButton.isEnabled = true;
                    }
                }
                else
                {
                    if (m_MissionOptButton)
                    {
                        m_MissionOptButton.isEnabled = true;
                    }
                }
            }
            else
            {
                if (m_JoinButton && nAcptedTimes < guildMisGuild.MemMaxTimesOneDay)
                {
                    m_JoinButton.isEnabled = true;
                }
            }
        }

        Obj_MainPlayer mainPlayer = Singleton <ObjManager> .Instance.MainPlayer;

        if (mainPlayer == null)
        {
            return;
        }

        if (nMissionID > 0)
        {
            Tab_MissionBase misTab = TableManager.GetMissionBaseByID(nMissionID, 0);
            if (misTab == null)
            {
                LogModule.ErrorLog("Can not find missionBase {0}", nMissionID);
                return;
            }
            else
            if (misTab.MissionType != (int)MISSIONTYPE.MISSION_GUILD)
            {
                return;
            }

            Tab_MissionDictionary misDic = TableManager.GetMissionDictionaryByID(nMissionID, 0);
            if (misDic == null)
            {
                LogModule.ErrorLog("Can not find missionDictionary {0}", nMissionID);
                return;
            }

            Tab_GuildMission guildMis = TableManager.GetGuildMissionByID(misTab.GuildMissionTabID, 0);
            if (guildMis == null)
            {
                LogModule.ErrorLog("Can not find guidMission {0}", misTab.GuildMissionTabID);
                return;
            }


            if (m_MisNameLabel && m_MisInfoLabel)
            {
                m_MisNameLabel.text = string.Format(misDic.MissionName, "[ffffff]", "[ffffff]");
                m_MisInfoLabel.text = misDic.MissionDesc;
            }

            // 金币 经验
            Tab_GuildMissionAward awardTab = TableManager.GetGuildMissionAwardByID(mainPlayer.BaseAttr.Level, 0);
            if (awardTab == null)
            {
                LogModule.ErrorLog("Can not find guidMissionAward {0}", mainPlayer.BaseAttr.Level);
                return;
            }

            float fMisMoney = guildMis.AwardMoney * guildMisGuild.AwardFactor * awardTab.GetExpQualityFactorbyIndex((int)(MISSION_QUALITY.MISSION_QUALITY_PURPLE - 1)) * awardTab.MoneyFactor;
            float fMisExp   = guildMis.AwardExp * guildMisGuild.AwardFactor * awardTab.GetExpQualityFactorbyIndex((int)(MISSION_QUALITY.MISSION_QUALITY_PURPLE - 1)) * awardTab.ExpFactor;

            if (m_MisMoneyLabel && m_MisExpLabel)
            {
                m_MisMoneyLabel.text = ((int)fMisMoney).ToString();
                m_MisExpLabel.text   = ((int)fMisExp).ToString();
            }

            UpdateMissionState(nMissionID);

            // 任务环数
            if (m_MisRoundInfoLabel && nRoundIndex >= 0)
            {
                m_MisRoundInfoLabel.text = nRoundIndex + "/" + guildMisGuild.MemMisRoundNumOnce;
            }
        }
    }