public List <TalkContent> GetAllContentByFromId(string fnick, string tnick, DateTime start, DateTime end) { string nick = fnick.IndexOf(":") >= 0 ? fnick.Substring(0, fnick.IndexOf(':')) : fnick; string sql = SQL_SELECT_TALKCONTENT.Replace("@tableName", DBHelper.GetRealTable("TalkContent", DataHelper.Encrypt(nick))); List <TalkContent> list = new List <TalkContent>(); SqlParameter[] param = new[] { new SqlParameter("@start", start.ToShortDateString()), new SqlParameter("@end", end.ToShortDateString()), new SqlParameter("@fnick", fnick), new SqlParameter("@tnick", tnick) }; DataTable dt = DBHelper.ExecuteDataTable(sql, param); foreach (DataRow dr in dt.Rows) { TalkContent info = new TalkContent(); info.content = dr["TalkContent"].ToString(); info.time = dr["TalkTime"].ToString(); info.direction = int.Parse(dr["direction"].ToString()); info.FromNick = fnick; info.ToNick = tnick; list.Add(info); } return(list); }
public int InsertContent(TalkContent tc, string nick) { SqlParameter[] param = CreateParameter(tc); string sql = SQL_INSERT.Replace("@tableName", DBHelper.GetRealTable("TalkContent", DataHelper.Encrypt(nick))); return(ServiceDBHelper.ExcuteSql(sql, param)); }
public List <TalkContent> GetAllContent(DateTime start, DateTime end, string nick) { List <TalkContent> list = new List <TalkContent>(); string sql = SQL_SELECT_ALL_CONTENT_BYDATE.Replace("@tableName", DBHelper.GetRealTable("TalkContent", DataHelper.Encrypt(nick))); SqlParameter[] param = new[] { new SqlParameter("@start", start), new SqlParameter("@end", end) }; using (SqlDataReader dr = ServiceDBHelper.CreateReader(sql, param)) { if (dr != null) { while (dr.Read()) { TalkContent info = new TalkContent(); info.FromNick = dr["FromId"].ToString(); info.direction = dr["direction"] == DBNull.Value ? 0 : int.Parse(dr["direction"].ToString()); info.ToNick = dr["ToId"].ToString(); info.time = dr["TalkTime"].ToString(); list.Add(info); } } } return(list); }
private void OnSceneGUI() { m_monoTalkConten = target as MonoTalkContent; m_talkContent = m_monoTalkConten.m_talkContent; //ShowContent (); }
void ShowContent(TalkContent talkNode, MonoTalkNode monoTalkNode) { GameObject go = new GameObject(talkNode.m_name + "-" + talkNode.GetType()); go.transform.SetParent(monoTalkNode.transform); go.transform.position = Vector3.zero; MonoTalkContent monoCont = go.AddComponent <MonoTalkContent> (); monoCont.Init(talkNode); }
private static SqlParameter[] CreateParameter(TalkContent tc) { SqlParameter[] param = new[] { new SqlParameter("@TalkTime", tc.time), new SqlParameter("@ContentId", Guid.NewGuid()), new SqlParameter("@FromId", tc.FromNick), new SqlParameter("@ToId", tc.ToNick), new SqlParameter("@TalkContent", tc.content), new SqlParameter("@direction", tc.direction) }; return(param); }
public IList <TalkContent> GetTalkTotalHour(string nick, DateTime start, DateTime end) { string sql = SQL_SELECT_R_CUSTOMER.Replace("@tableName", DBHelper.GetRealTable("TalkContent", DataHelper.Encrypt(nick))); SqlParameter[] param = new[] { new SqlParameter("@start", start.ToShortDateString()), new SqlParameter("@end", end.ToShortDateString()), new SqlParameter("@nick", nick) }; IList <TalkContent> list = new List <TalkContent>(); DataTable dt = DBHelper.ExecuteDataTable(sql, param); foreach (DataRow dr in dt.Rows) { TalkContent info = new TalkContent(); info.ToNick = dr["toid"].ToString(); info.time = dr["mhour"].ToString(); list.Add(info); } return(list); }
public void Init(TalkContent talkContent) { m_talkContent = talkContent; }
public static void UpdateTalkContent(string _TalkContent) { TalkContent.GetComponent <Text>().text = _TalkContent; }
//保存为xml public static void SaveXMLEvent() { DialogWriter dialogWriter = ProduceWriter(); //保存路径 path = Application.dataPath + "/OutputXml/" + dialogWriter.GetType() + ".xml"; FileInfo fi = new FileInfo(path); if (fi.Exists) { //fi.MoveTo ("./backup"); fi.Delete(); } List <DialogEvent> dialogEventLsit = dialogWriter.m_dialogEventList; XmlDocument doc = new XmlDocument(); XmlElement dialogWriterElem = doc.CreateElement("DialogWriter"); for (int i = 0; i < dialogEventLsit.Count; i++) { XmlElement eve = doc.CreateElement("Event"); DialogEvent dialogEvent = dialogEventLsit [i]; eve.SetAttribute("Name", dialogEvent.m_name); eve.SetAttribute("EvenOrder", dialogEvent.m_eventOrder.ToString()); for (int j = 0; j < dialogEvent.m_nodeList.Count; j++) { //判断是否为talk节点 if (dialogEvent.m_nodeList [j].m_dialogType == DialogNode.NodeType.Talk) { XmlElement node = doc.CreateElement("TalkNode"); TalkNode talkNode = (TalkNode)dialogEvent.m_nodeList [j]; node.SetAttribute("Name", talkNode.m_name); node.SetAttribute("NodeType", talkNode.m_dialogType.ToString()); for (int k = 0; k < talkNode.m_background.Count; k++) { //node.SetAttribute ("Background"+k, ); XmlElement background = doc.CreateElement("Background"); background.SetAttribute("Name", talkNode.m_background [k]); node.AppendChild(background); } for (int k = 0; k < talkNode.m_tachie.Count; k++) { XmlElement tachie = doc.CreateElement("Tachie"); tachie.SetAttribute("Name", talkNode.m_tachie [k]); node.AppendChild(tachie); //node.SetAttribute ("Tachie"+k, talkNode.m_tachie [k]); } for (int k = 0; k < talkNode.m_talkContents.Count; k++) { XmlElement content = doc.CreateElement("TalkContent"); TalkContent talkContent = talkNode.m_talkContents [k]; content.SetAttribute("Background", talkContent.m_backGround.ToString()); content.SetAttribute("Tachie", talkContent.m_tachie.ToString()); content.SetAttribute("Name", talkContent.m_name); content.SetAttribute("Content", talkContent.m_content); node.AppendChild(content); } eve.AppendChild(node); } else { XmlElement node = doc.CreateElement("SelectionNode"); SelectionNode selectionNode = (SelectionNode)dialogEvent.m_nodeList [j]; node.SetAttribute("Name", selectionNode.m_name); node.SetAttribute("NodeType", selectionNode.m_dialogType.ToString()); //分为两个select节点 foreach (string s in selectionNode.m_selection.Keys) { XmlElement select = doc.CreateElement("Select"); select.SetAttribute("Select", s); XmlElement talk = doc.CreateElement("TalkNode"); TalkNode talkNode = selectionNode.m_selection [s]; talk.SetAttribute("Name", talkNode.m_name); talk.SetAttribute("NodeType", talkNode.m_dialogType.ToString()); for (int k = 0; k < talkNode.m_background.Count; k++) { //node.SetAttribute ("Background"+k, ); XmlElement background = doc.CreateElement("Background"); background.SetAttribute("Name", talkNode.m_background [k]); talk.AppendChild(background); } for (int k = 0; k < talkNode.m_tachie.Count; k++) { XmlElement tachie = doc.CreateElement("Tachie"); tachie.SetAttribute("Name", talkNode.m_tachie [k]); talk.AppendChild(tachie); //node.SetAttribute ("Tachie"+k, talkNode.m_tachie [k]); } for (int k = 0; k < talkNode.m_talkContents.Count; k++) { XmlElement content = doc.CreateElement("TalkContent"); TalkContent talkContent = talkNode.m_talkContents [k]; content.SetAttribute("Background", talkContent.m_backGround.ToString()); content.SetAttribute("Tachie", talkContent.m_tachie.ToString()); content.SetAttribute("Name", talkContent.m_name); content.SetAttribute("Content", talkContent.m_content); talk.AppendChild(content); } select.AppendChild(talk); node.AppendChild(select); } eve.AppendChild(node); } } dialogWriterElem.AppendChild(eve); } doc.AppendChild(dialogWriterElem); doc.Save(path); }
static void WriteTalkContent(Transform monoDialogEvent) { TalkContent talkContent = monoDialogEvent.gameObject.GetComponent <MonoTalkContent> ().m_talkContent; newWriterTalkNode.m_talkContents.Add(talkContent); }
//加载xm文件 public static DialogWriter LoadXMLEvent() { bool m_isTalkNode = true; if (Application.platform == RuntimePlatform.OSXPlayer) { Console.Log("sfdbdfsdgsfdgsfdds"); path = Application.dataPath + "/Resources/Data/StreamingAssets/dialogWriter.xml"; Console.Log(path); } else if (Application.platform == RuntimePlatform.IPhonePlayer) { path = Application.dataPath + "/Raw/"; } else if (Application.platform == RuntimePlatform.Android) { path = "jar:file//" + Application.dataPath + "!/assets/"; } //} else if(Application.platform == RuntimePlatform.){ // path = Application.dataPath + "/StreamingAssets/"; //} XmlReader reader = new XmlTextReader(path); //提前设置的变量,用于保存读取文件时的各个子节点 DialogWriter newDialogWriter = null; DialogEvent newDialogEvent = null; TalkNode newTalkNode = null; SelectionNode newSelectionNode = null; TalkContent newTalkContent = null; string newSelect = ""; newDialogWriter = new DialogWriter(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.LocalName == "DialogWriter") { if (newDialogWriter != null) { } //不会执行 } else if (reader.LocalName == "Event") { newDialogEvent = new DialogEvent(""); for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Name") { newDialogEvent.m_name = reader.Value; } else if (reader.Name == "EventOrder") { newDialogEvent.m_eventOrder = int.Parse(reader.Value); } } if (newDialogWriter != null) { newDialogWriter.m_dialogEventList.Add(newDialogEvent); } } else if (reader.LocalName == "TalkNode") { newTalkNode = new TalkNode(""); for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Name") { newTalkNode.m_name = reader.Value; } else if (reader.Name == "NodeType") { newTalkNode.m_dialogType = (DialogNode.NodeType)System.Enum.Parse(typeof(DialogNode.NodeType), reader.Value); } } //不是选择分支下的对话节点 if (m_isTalkNode) { if (newDialogEvent != null) { newDialogEvent.m_nodeList.Add(newTalkNode); } } else { if (newSelectionNode != null) { newSelectionNode.m_selection [newSelect] = newTalkNode; //每次都重新设为true m_isTalkNode = true; } } } else if (reader.LocalName == "Background") { for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Name") { newTalkNode.m_background.Add(reader.Value); } } } else if (reader.LocalName == "Tachie") { for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Name") { newTalkNode.m_tachie.Add(reader.Value); } } } else if (reader.LocalName == "TalkContent") { newTalkContent = new TalkContent(); for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Background") { newTalkContent.m_backGround = int.Parse(reader.Value); } else if (reader.Name == "Tachie") { newTalkContent.m_tachie = int.Parse(reader.Value); } else if (reader.Name == "Name") { newTalkContent.m_name = reader.Value; } else if (reader.Name == "Content") { newTalkContent.m_content = reader.Value; } } if (newTalkNode != null) { newTalkNode.m_talkContents.Add(newTalkContent); } } else if (reader.LocalName == "SelectionNode") { newSelectionNode = new SelectionNode(""); for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Name") { newSelectionNode.m_name = reader.Value; } } if (newDialogEvent != null) { newDialogEvent.m_nodeList.Add(newSelectionNode); } } else if (reader.LocalName == "Select") { m_isTalkNode = false; for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "Select") { //把数值临时保存 newSelect = reader.Value; newSelectionNode.m_selection.Add(reader.Value, new TalkNode("")); } } } } } return(newDialogWriter); }
public void UpdateDayInfo() { // 新規会話の処理 if (!TalkContent.ContainsKey(LatestGameInfo.Day)) { TalkContent.Add(LatestGameInfo.Day, new List <Content>()); } List <Content> ContentList = TalkContent[LatestGameInfo.Day]; for (int i = talkOffset; i < LatestGameInfo.TalkList.Count; i++) { Talk srcTalk = LatestGameInfo.TalkList[i]; Content newContent = new Content(srcTalk.Text); // Content版を作成する ContentList.Add(newContent); // 単文か if (newContent.Operator == Operator.NOP) { switch (newContent.Topic) { case Topic.COMINGOUT: // カミングアウト // 自分に対する村陣営COのみ対象 if (srcTalk.Agent == newContent.Target && newContent.Role.GetTeam() == Team.VILLAGER) { // カミングアウトの更新 UpdateComingOut(newContent.Target, newContent.Role, srcTalk); } break; case Topic.DIVINED: // 占い結果 // カミングアウトの更新 UpdateComingOut(srcTalk.Agent, Role.SEER, srcTalk); // 判定の追加 Judge newSeerJudge = new Judge(srcTalk); SeerJudge.Add(newSeerJudge); break; case Topic.IDENTIFIED: // 霊媒結果 // カミングアウトの更新 UpdateComingOut(srcTalk.Agent, Role.MEDIUM, srcTalk); // 判定の追加 Judge newMediumJudge = new Judge(srcTalk); MediumJudge.Add(newMediumJudge); break; case Topic.GUARDED: // 護衛履歴 break; default: break; } } } talkOffset = LatestGameInfo.TalkList.Count; // 新規囁きの処理 /* for (int i = todayInfo.WhisperContentList.Count; i < todayInfo.WhisperList.Count; i++) * { * Content newContent = new Content(todayInfo.WhisperList[i].Text); * * // Content版を作成する * todayInfo.WhisperContentList.Add(newContent); * }*/ }