public CutsceneFactoryCommonDialog(int nStoryID)
        {
            m_nStoryID = nStoryID;
            if (m_nStoryID < 0)
            {
                return;
            }
            Tab_StoryTable storyTable = TableManager.GetStoryTableByID(m_nStoryID, 0);

            if (storyTable == null)
            {
                Module.Log.LogModule.ErrorLog("Can not find storyTable {0}", m_nStoryID);
                return;
            }
            Tab_ClientStoryTable storyLine = TableManager.GetClientStoryTableByID(storyTable.ClientStoryID, 0);

            m_bIsMiniStory = storyLine.DialogType == 1;
        }
        public override void Start()
        {
            base.Start();

            // 检测一些前置的条件

            if (m_nStoryID < 0)
            {
                base.Finish();
            }
            Tab_StoryTable storyTable = TableManager.GetStoryTableByID(m_nStoryID, 0);

            if (storyTable == null)
            {
                Module.Log.LogModule.ErrorLog("Can not find storyTable {0}", m_nStoryID);
                base.Finish();
                return;
            }

            int storyMissionID = storyTable.MissionID;

            if (storyMissionID > -1)
            {
                // 任务状态判断
                MissionState misState = (MissionState)GameManager.gameManager.MissionManager.GetMissionState(storyMissionID);
                if (MissionState.Mission_Accepted != misState)
                {
                    Module.Log.LogModule.ErrorLog("MissionState misState is failed {0}", m_nStoryID);

                    StoryDialogLogic.ShowStory(storyTable.ClientStoryID, 0, StoryDialogOverCallback, 0);
                    base.Finish();

                    return;
                }
            }

            // NPC距离判断
            Tab_ClientStoryTable storyLine = TableManager.GetClientStoryTableByID(storyTable.ClientStoryID, 0);

            if (storyLine == null)
            {
                base.Finish();
                return;
            }


//			// 全填-1的时候不检测距离
//			if (storyLine.TargetPosX > -1 && storyLine.TargetPosZ > -1 && storyLine.TargetPosRadius > -1)
//			{
//				Vector3 userPos = new Vector3(0, 0, 0);
//				if (Singleton<ObjManager>.GetInstance().MainPlayer != null)
//				{
//					userPos = Singleton<ObjManager>.GetInstance().MainPlayer.Position;
//				}
//				else
//				{
//					userPos = GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterScenePos;
//				}
//
//				Vector3 targetPos = new Vector3(storyLine.TargetPosX, 0, storyLine.TargetPosZ);
//				targetPos.y = userPos.y;
//				float dis = Mathf.Abs(Vector3.Distance(userPos, targetPos));
//				if (dis > storyLine.TargetPosRadius)
//				{
//					base.Finish();
//				}
//			}
            // 所有前置判断结束,真的可以进入剧情了
            m_nMissionID     = storyMissionID;
            m_nClientStoryID = storyTable.ClientStoryID;
            m_nDialogType    = storyLine.DialogType;
            m_nDialogID      = 0;

            // 大对话框
            if (m_nDialogType == 0)
            {
                // 判断是否进入ModelStory模式
                Singleton <ObjManager> .Instance.MainPlayer.IsInModelStory = IsNeedSilentMode(m_nStoryID);
                                #if BOBJOYSTICK
                JoyControllerLogic.storyDialogOn = true;
                                #endif
            }

            // 小对话框
            else if (m_nDialogType == 1)
            {
            }

            StoryDialogLogic.ShowStory(m_nClientStoryID, 0, StoryDialogOverCallback, m_nDialogType);
        }