public virtual TalkFragment Start(string id, int index = 0) { CurData = Table.Find(id); if (CurData == null) { CLog.Error("没有找到对话:{0}", id); return(null); } CurTalkIndex = index; CurSelectOption = BaseConstMgr.STR_Inv; CurSelectOptionIndex = -1; if (IsHave()) { var ret = CurData.Fragments[CurTalkIndex]; Callback_OnStartTalk?.Invoke(CurData, ret); Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex); OnTalk(CurData, ret, CurTalkIndex); OnStartTalk(CurData, ret); IsStartTalk = true; if (!PauseFlag) { SelfBaseGlobal.PlotMgr.EnablePlotMode(true); } PauseFlag = true; return(ret); } return(null); }
/// <summary> /// 下一段对话 /// </summary> public virtual TalkFragment Next() { if (IsLockNextTalk) { return(null); } if (!IsStartTalk) { return(null); } if (IsInOption() && CurSelectOption.IsInvStr()) { return(CurTalkFragment()); } CurTalkIndex++; if (IsHave()) { var ret = CurTalkFragment(); Callback_OnNextTalk?.Invoke(CurData, ret, CurTalkIndex); Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex); OnTalk(CurData, ret, CurTalkIndex); return(ret); } else { Stop(); return(null); } }
public virtual TDBaseTalkFragment Start(string id, int index = 0) { CurData = TDLuaMgr.Get <TData>(id); if (CurData == null) { CLog.Error("没有找到对话:{0}", id); return(null); } CurTalkIndex = index; CurSelectOption = Const.STR_Inv; CurSelectOptionIndex = -1; if (IsHave()) { var ret = CurData.Fragments[CurTalkIndex]; Callback_OnStart?.Invoke(CurData, ret); Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex); OnTalk(CurData, ret, CurTalkIndex); OnStartTalk(CurData, ret); IsStartTalk = true; if (!PauseFlag) { PlotMgr.SetPlotPause(true); } PauseFlag = true; return(ret); } return(null); }