//打开NPC对话 public bool OpenMissionNpcDialog(int npcId, ulong objId = TypeDefine.INVALID_ULONG) { NpcId = npcId; NpcObjId = objId; CurrentMissionData = null; CurrentMissionTableData = null; var tableCharacter = Table.GetCharacterBase(npcId); if (null != tableCharacter) { var tableNpc = Table.GetNpcBase(tableCharacter.ExdataId); if (null != tableNpc) { for (var i = 0; i < tableNpc.pop.Length; i++) { if (!string.IsNullOrEmpty(tableNpc.pop[i])) { //打开任务的时候关闭引导 EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.NewbieGuide)); EventDispatcher.Instance.DispatchEvent(new UIEvent_UpdateCurrentMission(-1)); UIManager.Instance.ShowUI(UIConfig.MissionFrame); return(true); } } } } return(false); }
//打开当前任务 public bool OpenMissionById(int Id, int npcId = -1, ulong objId = TypeDefine.INVALID_ULONG) { var tableData = Table.GetMissionBase(Id); if (null == tableData) { return(false); } MissionBaseModel data = null; if (!MissionData.Datas.TryGetValue(Id, out data)) { Logger.Fatal("Don't have this mission[" + Id + "]"); return(false); } NpcId = npcId; NpcObjId = objId; CurrentMissionData = data; CurrentMissionTableData = Table.GetMissionBase(Id); //打开任务的时候关闭引导 EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.NewbieGuide)); EventDispatcher.Instance.DispatchEvent(new UIEvent_UpdateCurrentMission(-1)); //if (!UIConfig.MissionFrame.Visible()) { UIManager.Instance.ShowUI(UIConfig.MissionFrame); } return(true); }
//计算任务显示内容 public static string MissionContent(MissionBaseRecord missionData, ReadonlyList <int> data) { var str = "("; if (data[0] == (int)eMissionState.Finished) { str += GameUtils.GetDictionaryText(1031); } else if (data[0] == (int)eMissionState.Acceptable) { str += GameUtils.GetDictionaryText(1034); } else if (data[0] == (int)eMissionState.Failed) { str += GameUtils.GetDictionaryText(1033); } else { var missionType = (eMissionType)missionData.FinishCondition; switch (missionType) { case eMissionType.Finish: { str += GameUtils.GetDictionaryText(1031); } break; case eMissionType.AcceptProgressBar: case eMissionType.AreaProgressBar: case eMissionType.AcceptStroy: { str += string.Format("{0}/{1}", 0, 1); } break; default: { str += string.Format("{0}/{1}", data[2], data[4]); } break; } } str += ")"; if (data[0] == (int)eMissionState.Finished) { str = "[5DFF00]" + str + "[-]"; } return(str); }