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; }
// 寻路后逻辑处理 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); }
// 遍历弹出可接任务 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); }
// 遍历弹出已完成任务 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); }
// 采集条出发 真正删除物品 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)); } } } } }
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); }
////////////////////////////////////////////////////////////////////////// //对话相关接口 ////////////////////////////////////////////////////////////////////////// // 弹出最近对话框 --寻路完响应 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; }
// 接任务和交任务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(); }
/// <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; }
// 开始从场景中移除物品 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); } }
// 任务显示相关 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; } } }