private void NpcTalkForm_MouseClick(object sender, MouseEventArgs e) { if (tar != -1) { if (interactBlock == null)//一般是最后一选了 { Close(); // Scene.Instance.OnEventEnd(CellId, config.Id, evtItem != null ? evtItem.Type : ""); // Scene.Instance.CheckALiveAndQuestState(); return; } if (evtItem != null && evtItem.RunningState == TalkEventItem.TalkEventState.Running) { //事件过程中无视点击 return; } interactBlock = answerList[tar]; //对话换页 if (evtItem != null) { evtItem.Dispose(); evtItem = null; } if (interactBlock.Children.Count == 1 && interactBlock.Children[0] is SceneQuestSay) { interactBlock = interactBlock.Children[0]; SetupQuestItem(); } else if (interactBlock.Children.Count == 1 && interactBlock.Children[0] is SceneQuestEvent) { var evt = interactBlock.Children[0] as SceneQuestEvent; if (evt.Type == "npc") { tar = -1; //为了修一个显示bug } var region = new Rectangle(340, Height - 10 - 3 * 30 - 150, Width - 350, 150); evtItem = TalkEventItem.CreateEventItem(CellId, EventId, eventLevel, this, region, evt); evtItem.Init(); } if (evtItem != null && evtItem.AutoClose()) { Close(); // Scene.Instance.OnEventEnd(CellId, config.Id, evtItem != null ? evtItem.Type : ""); // Scene.Instance.CheckALiveAndQuestState(); } this.Invalidate(); } }
private void NpcTalkForm_MouseClick(object sender, MouseEventArgs e) { if (tar != -1) { if (interactBlock == null)//一般是最后一选了 { Close(); Scene.Instance.OnEventFinish(); return; } if (evtItem != null && evtItem.RunningState == TalkEventItem.TalkEventState.Running) { //事件过程中无视点击 return; } interactBlock = answerList[tar]; //对话换页 evtItem = null; if (interactBlock.Children.Count == 1 && interactBlock.Children[0] is SceneQuestSay) { interactBlock = interactBlock.Children[0]; SetupQuestItem(); } else if (interactBlock.Children.Count == 1 && interactBlock.Children[0] is SceneQuestEvent) { evtItem = TalkEventItem.CreateEventItem(EventId, eventLevel, this, new Rectangle(10, Height - 10 - 5 * 20 - 160, Width - 20, 160), interactBlock.Children[0] as SceneQuestEvent); } if (evtItem != null && evtItem.AutoClose()) { Close(); Scene.Instance.OnEventFinish(); } this.Invalidate(); } }