/* public string[] CloneValue(string[] strvalues) * { * if (strvalues != null) * return (string[])(strvalues.Clone()); * return null; * }*/ private bool CallLuaExport(string strLuaFile, string strTableName, ref string fields, ref string values) { LuaEx lua = new LuaEx(); lua["Conn"] = m_conn; // 注册sql连接 lua["RootDir"] = Program.RootDir; lua.DoString("function trace(txt)\r\n MainForm.LogEditBox.Visible = true\r\n MainForm.LogEditBox.OutputBox.Text = MainForm.LogEditBox.Text ..txt..'\\r\\n' \r\n end"); lua.RegisterFunction("writefile", this, typeof(FileFolderHelper).GetMethod("WriteStringToFile")); lua.RegisterFunction("msgbox", this, typeof(TabExport).GetMethod("ShowMessage")); lua.RegisterFunction("GetDataTableRow", this, typeof(TabExport).GetMethod("GetDataTableRow")); //lua.RegisterFunction("clonevalues", this, typeof(TabExport).GetMethod("CloneValue")); String luafile = strLuaFile; try { if (!File.Exists(luafile)) { return(false); } try { lua.DoFile(luafile); LuaFunction fun = lua.GetFunction("onexport"); if (fun != null) { ImportInfoHelper helper = new ImportInfoHelper(); ArrayList feildlist = new ArrayList(); feildlist.AddRange(fields.Split(new char[] { '\t' })); helper.Fields = feildlist; helper.Values = values.Split(new string[] { "\r\n" }, StringSplitOptions.None); object[] retobjs = fun.Call(m_strModlName, strTableName, Program.RootDir, helper); if (retobjs != null && retobjs.GetLength(0) > 0) { if (retobjs[0] is bool) { StringBuilder strFields = new StringBuilder(); foreach (string strLine in feildlist) { strFields.Append(strLine); strFields.Append('\t'); } strFields.Remove(strFields.Length - 1, 1); strFields.Append("\r\n"); fields = strFields.ToString(); StringBuilder strValues = new StringBuilder(); foreach (string strLine in helper.Values) { strValues.Append(strLine); strValues.Append("\r\n"); } values = strValues.ToString(); return((bool)retobjs[0]); } } } } catch (Exception ex) { ScriptDebugForm frm = Program.MainForm.DebugForm; frm.OutputBox.Text += ex.Message + "\r\n"; frm.Show(); frm.BringToFront(); } } finally { lua.Dispose(); } return(false); }
/* * private void InitUserAclDesc() * { * * conn.Open(); * SqlCommand sqlCmd = new SqlCommand("delete from sys_useracl_desc", conn); * sqlCmd.ExecuteNonQuery(); * sqlCmd.Dispose(); * conn.Close(); * * DataTable tblAcl = Helper.GetDataTable("select userid,_index from sys_useracl", conn); * DataTable tblModl = Helper.GetDataTable("select id,modelname_en from sys_modl_def", conn); * DataTable tblAclDesc = Helper.GetDataTable("select * from sys_useracl_desc", conn); * SqlDataAdapter adp = new SqlDataAdapter("select * from sys_useracl_desc", conn); * * foreach (DataRow rowAcl in tblAcl.Rows) * { * foreach (DataRow rowModl in tblModl.Rows) * { * DataRow rowDesc = tblAclDesc.NewRow(); * rowDesc.BeginEdit(); * rowDesc["userindex"] = rowAcl["_index"]; * rowDesc["moduleid"] = rowModl["id"]; * rowDesc["groupname"] = ""; * rowDesc["modulename_en"] = rowModl["modelname_en"]; * rowDesc["canread"] = 1; * rowDesc["canwrite"] = 1; * rowDesc["canimport"] = 1; * rowDesc["canconfigmeta"] = 1; * rowDesc.EndEdit(); * tblAclDesc.Rows.Add(rowDesc); * } * } * * SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); * adp.InsertCommand = cmdBuilder.GetInsertCommand(); * int val = adp.Update(tblAclDesc); * tblAclDesc.AcceptChanges(); * } * private void InitUserAclDesc2() * { * * DataTable tblAcl = Helper.GetDataTable("select userid,_index from sys_useracl", conn); * SqlDataAdapter adp = new SqlDataAdapter("select * from sys_useracl_desc", conn); * DataTable tblAclDesc = Helper.GetDataTable("select * from sys_useracl_desc", conn); * foreach (DataRow rowDesc in tblAclDesc.Rows) * { * rowDesc.BeginEdit(); * int userid = Convert.ToInt32(rowDesc["userindex"]); * string username = tblAcl.Rows.Find(userid)["userid"].ToString().Trim(); * string s = username.Substring(0, 1).ToLower(); * if (string.Compare(s, "j") <= 0) * rowDesc["groupname"] = "A - J"; * else if (string.Compare(s, "s") <= 0) * rowDesc["groupname"] = "K - S"; * else if (string.Compare(s, "x") <= 0) * rowDesc["groupname"] = "T - X"; * else * rowDesc["groupname"] = "Y - Z"; * rowDesc.EndEdit(); * * } * SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); * adp.UpdateCommand = cmdBuilder.GetUpdateCommand(); * int val = adp.Update(tblAclDesc); * tblAclDesc.AcceptChanges(); * } * * private void GenQuestText() * { * string Output = "剑侠情缘网络版叁 任务脚本\r\n\r\n\r\n"; * * StringBuilder sb = new StringBuilder(); * DataTable tblQuest = Helper.GetDataTable("select questname, objective, description, dunningdialogue, unfinisheddialogue, finisheddialogue from tbl_quests order by class, questid", conn); * foreach (DataRow row in tblQuest.Rows) * { * if (row["QuestName"].ToString().Length != 0) * { * sb.Append("任务名称:"); * sb.Append(row["QuestName"].ToString()); * sb.Append("\r\n任务目标:"); * sb.Append(row["Objective"].ToString()); * sb.Append("\r\n任务描述:"); * sb.Append(row["Description"].ToString()); * sb.Append("\r\n未完成对话1:"); * sb.Append(row["DunningDialogue"].ToString()); * sb.Append("\r\n未完成对话2:"); * sb.Append(row["UnfinishedDialogue"].ToString()); * sb.Append("\r\n完成对话:"); * sb.Append(row["FinishedDialogue"].ToString()); * sb.Append("\r\n\r\n"); * } * } * * Output += sb.ToString(); * Output = Output.Replace("<G>", string.Empty); * Output = Output.Replace("\\n", string.Empty); * Output = Output.Replace("<C>", string.Empty); * Output = Output.Replace("<H28>", string.Empty); * Output = Output.Replace("<N>", string.Empty); * FileFolderHelper.StringToFile(Output, "c:/q.txt"); * } * private void GenNpcText() * { * string Output = "剑侠情缘网络版叁 任务脚本\r\n\r\n\r\n"; * * StringBuilder sb = new StringBuilder(); * DataTable tblNpc = Helper.GetDataTable("select name, idledialog1, idledialog2, idledialog3, idledialogafterquest from npctemplate order by mapname, id", conn); * foreach (DataRow row in tblNpc.Rows) * { * if (row["IdleDialog1"].ToString().Length != 0) * { * sb.Append("NPC名称:"); * sb.Append(row["Name"].ToString()); * sb.Append("\r\n待机对话1:"); * sb.Append(row["IdleDialog1"].ToString()); * sb.Append("\r\n待机对话2:"); * sb.Append(row["IdleDialog2"].ToString()); * sb.Append("\r\n待机对话3:"); * sb.Append(row["IdleDialog3"].ToString()); * sb.Append("\r\n任务后待机对话:"); * sb.Append(row["IdleDialogAfterQuest"].ToString()); * sb.Append("\r\n\r\n"); * } * } * * Output += sb.ToString(); * Output = Output.Replace("<G>", string.Empty); * Output = Output.Replace("\\n", string.Empty); * Output = Output.Replace("<C>", string.Empty); * Output = Output.Replace("<H28>", string.Empty); * Output = Output.Replace("<N>", string.Empty); * FileFolderHelper.StringToFile(Output, "c:/n.txt"); * } * private void OldIpToNewIp() * { * string sql = "select * from sys_useracl"; * SqlDataAdapter adp = new SqlDataAdapter(sql, conn); * DataTable tbl = Helper.GetDataTable(sql, conn); * foreach (DataRow row in tbl.Rows) * { * string hostname = row["userid"].ToString().Trim(); * System.Net.IPHostEntry ipEntry = null; * try * { * ipEntry = System.Net.Dns.GetHostByName(hostname); * } * catch (Exception ex) * { * if ((ex as System.Net.Sockets.SocketException) != null) * ipEntry = null; * } * if (ipEntry == null) * continue; * * //获取IP地址列表 * foreach (System.Net.IPAddress ip in ipEntry.AddressList) * { * string strIp = ip.ToString(); * if (strIp.StartsWith("10.20.")) * { * row["ip"] = strIp; * } * } * * } * * SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); * adp.UpdateCommand = cmdBuilder.GetUpdateCommand(); * int val = adp.Update(tbl); * tbl.AcceptChanges(); * } */ private void MainForm_Load(object sender, EventArgs e) { //InitUserAclDesc(); //InitUserAclDesc2(); //GenQuestText(); //GenNpcText(); //OldIpToNewIp(); //Helper.LockWndUpdate(this); try { //System.Diagnostics.Process.Start("regsvr32.exe /s", "atlax.dll"); //InitConn(); tabStrip1.MdiForm = this; m_debugform = new ScriptDebugForm(); m_codeform = new ScriptCodeForm(this); // 从sys_modl_def读取功能模块信息 只列出来该用户可读的 string sql; if (Program.m_bUseNewAcl) { sql = string.Format("SELECT * FROM sys_modl_def WHERE (id IN (SELECT moduleid FROM sys_useracl_desc WHERE userindex = {0} AND canread = 1))", Program.m_rightmgr._userindex); } else { sql = "SELECT * FROM sys_modl_def"; } string[] names = new string[] { "sys_modl_def", "sys_useracl_desc" }; DataTable tbl = Helper.GetDataTableWithSqlProxy(names, sql, conn); cmdModels = new ButtonItem[tbl.Rows.Count]; int i = 0; // 绑定新的点击事件处理方法 customizeItem1.Click += new EventHandler(bConfigModel_Click); foreach (DataRow row in tbl.Rows) { cmdModels[i] = new ButtonItem(); this.moduletoolbar.Items.AddRange(new BaseItem[] { cmdModels[i] }); cmdModels[i].Name = "cmd" + row["modelname_en"] + "editor"; cmdModels[i].GlobalName = cmdModels[i].Name; //cmdModels[i].ImageIndex = Convert.ToInt32(row["iconid"]); if (Convert.ToInt32(row["iconid"]) < imageList2.Images.Count) { if (Convert.ToInt32(row["iconid"]) == -1) // 自定义图标 { cmdModels[i].Image = GetImageFromDataBase(row); } else { cmdModels[i].Image = imageList2.Images[Convert.ToInt32(row["iconid"])]; } } cmdModels[i].PopupAnimation = DevComponents.DotNetBar.ePopupAnimation.SystemDefault; if (!(row["displaystyle"] is DBNull)) // 自定义显示样式不为空 { cmdModels[i].Text = row["displaytext"].ToString(); cmdModels[i].Tooltip = row["modelname_en"].ToString(); switch (row["displaystyle"].ToString()) { case "0": // 默认样式 { cmdModels[i].ButtonStyle = eButtonStyle.Default; break; } case "1": // 单一文本 { cmdModels[i].ButtonStyle = eButtonStyle.TextOnlyAlways; break; } case "2": // 图文混合 { cmdModels[i].ButtonStyle = eButtonStyle.ImageAndText; break; } } } else { cmdModels[i].Text = row["modelname_en"].ToString(); cmdModels[i].Tooltip = cmdModels[i].Text; } cmdModels[i].Click += new System.EventHandler(this.cmdNewModelEditor_Click); imageTable[row["id"].ToString()] = cmdModels[i]; // 记录模块id对应的Button cmdModels[i].Tag = row["id"].ToString(); // 记录该模块的id } moduletoolbar.RecalcLayout(); FileInfo _fi = new FileInfo("_layout.xml"); FileInfo fi = new FileInfo("layout.xml"); if (_fi.Exists) { dotNetBarManager1.LoadLayout("_layout.xml"); // 读取布局设置 } else if (fi.Exists) { dotNetBarManager1.LoadLayout("layout.xml"); // 读取布局设置 } // 从配置文件中读取模块显示的自定义内容 ReloadButtonItems(LoadModelConfigInfo()); //初始化状态条内容 LDBName.Text = conn.DataSource + " : " + conn.Database; LHostName.Text = Helper.GetHostName() + " : " + Helper.GetIPAddress(); //谁要是再截屏,hehe try { string strHost = Helper.GetHostName().ToLower(); string _sql = string.Format("select * from sys_useracl where userid = '{0}'", strHost); /*DataTable tbl_acl = CustomClassCache.GetDataTableWithKey(_sql);*/ string filter = string.Format("userid = '{0}'", strHost); DataTable tbl_acl = CustomClassCache.GetDataTableWithKeyProxy("sys_useracl", filter, null); DataRow row_acl = tbl_acl.Rows[0]; this.Text = string.Format("剑3游戏设计工具(1.0.2.{0})", row_acl["_index"].ToString().Trim()); if (Program.forPublic) { this.Text = string.Format("策划工具(1.0.2.{0})", row_acl["_index"].ToString().Trim()); } } catch (Exception) { Helper.AddLog("出错啦~~~"); } } catch (Exception ex) { Helper.AddLog(ex.Message); this.Close(); throw; } finally { //Helper.LockWndUpdate(null); } }
/* private void InitUserAclDesc() { conn.Open(); SqlCommand sqlCmd = new SqlCommand("delete from sys_useracl_desc", conn); sqlCmd.ExecuteNonQuery(); sqlCmd.Dispose(); conn.Close(); DataTable tblAcl = Helper.GetDataTable("select userid,_index from sys_useracl", conn); DataTable tblModl = Helper.GetDataTable("select id,modelname_en from sys_modl_def", conn); DataTable tblAclDesc = Helper.GetDataTable("select * from sys_useracl_desc", conn); SqlDataAdapter adp = new SqlDataAdapter("select * from sys_useracl_desc", conn); foreach (DataRow rowAcl in tblAcl.Rows) { foreach (DataRow rowModl in tblModl.Rows) { DataRow rowDesc = tblAclDesc.NewRow(); rowDesc.BeginEdit(); rowDesc["userindex"] = rowAcl["_index"]; rowDesc["moduleid"] = rowModl["id"]; rowDesc["groupname"] = ""; rowDesc["modulename_en"] = rowModl["modelname_en"]; rowDesc["canread"] = 1; rowDesc["canwrite"] = 1; rowDesc["canimport"] = 1; rowDesc["canconfigmeta"] = 1; rowDesc.EndEdit(); tblAclDesc.Rows.Add(rowDesc); } } SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); adp.InsertCommand = cmdBuilder.GetInsertCommand(); int val = adp.Update(tblAclDesc); tblAclDesc.AcceptChanges(); } private void InitUserAclDesc2() { DataTable tblAcl = Helper.GetDataTable("select userid,_index from sys_useracl", conn); SqlDataAdapter adp = new SqlDataAdapter("select * from sys_useracl_desc", conn); DataTable tblAclDesc = Helper.GetDataTable("select * from sys_useracl_desc", conn); foreach (DataRow rowDesc in tblAclDesc.Rows) { rowDesc.BeginEdit(); int userid = Convert.ToInt32(rowDesc["userindex"]); string username = tblAcl.Rows.Find(userid)["userid"].ToString().Trim(); string s = username.Substring(0, 1).ToLower(); if (string.Compare(s, "j") <= 0) rowDesc["groupname"] = "A - J"; else if (string.Compare(s, "s") <= 0) rowDesc["groupname"] = "K - S"; else if (string.Compare(s, "x") <= 0) rowDesc["groupname"] = "T - X"; else rowDesc["groupname"] = "Y - Z"; rowDesc.EndEdit(); } SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); adp.UpdateCommand = cmdBuilder.GetUpdateCommand(); int val = adp.Update(tblAclDesc); tblAclDesc.AcceptChanges(); } private void GenQuestText() { string Output = "剑侠情缘网络版叁 任务脚本\r\n\r\n\r\n"; StringBuilder sb = new StringBuilder(); DataTable tblQuest = Helper.GetDataTable("select questname, objective, description, dunningdialogue, unfinisheddialogue, finisheddialogue from tbl_quests order by class, questid", conn); foreach (DataRow row in tblQuest.Rows) { if (row["QuestName"].ToString().Length != 0) { sb.Append("任务名称:"); sb.Append(row["QuestName"].ToString()); sb.Append("\r\n任务目标:"); sb.Append(row["Objective"].ToString()); sb.Append("\r\n任务描述:"); sb.Append(row["Description"].ToString()); sb.Append("\r\n未完成对话1:"); sb.Append(row["DunningDialogue"].ToString()); sb.Append("\r\n未完成对话2:"); sb.Append(row["UnfinishedDialogue"].ToString()); sb.Append("\r\n完成对话:"); sb.Append(row["FinishedDialogue"].ToString()); sb.Append("\r\n\r\n"); } } Output += sb.ToString(); Output = Output.Replace("<G>", string.Empty); Output = Output.Replace("\\n", string.Empty); Output = Output.Replace("<C>", string.Empty); Output = Output.Replace("<H28>", string.Empty); Output = Output.Replace("<N>", string.Empty); FileFolderHelper.StringToFile(Output, "c:/q.txt"); } private void GenNpcText() { string Output = "剑侠情缘网络版叁 任务脚本\r\n\r\n\r\n"; StringBuilder sb = new StringBuilder(); DataTable tblNpc = Helper.GetDataTable("select name, idledialog1, idledialog2, idledialog3, idledialogafterquest from npctemplate order by mapname, id", conn); foreach (DataRow row in tblNpc.Rows) { if (row["IdleDialog1"].ToString().Length != 0) { sb.Append("NPC名称:"); sb.Append(row["Name"].ToString()); sb.Append("\r\n待机对话1:"); sb.Append(row["IdleDialog1"].ToString()); sb.Append("\r\n待机对话2:"); sb.Append(row["IdleDialog2"].ToString()); sb.Append("\r\n待机对话3:"); sb.Append(row["IdleDialog3"].ToString()); sb.Append("\r\n任务后待机对话:"); sb.Append(row["IdleDialogAfterQuest"].ToString()); sb.Append("\r\n\r\n"); } } Output += sb.ToString(); Output = Output.Replace("<G>", string.Empty); Output = Output.Replace("\\n", string.Empty); Output = Output.Replace("<C>", string.Empty); Output = Output.Replace("<H28>", string.Empty); Output = Output.Replace("<N>", string.Empty); FileFolderHelper.StringToFile(Output, "c:/n.txt"); } private void OldIpToNewIp() { string sql = "select * from sys_useracl"; SqlDataAdapter adp = new SqlDataAdapter(sql, conn); DataTable tbl = Helper.GetDataTable(sql, conn); foreach (DataRow row in tbl.Rows) { string hostname = row["userid"].ToString().Trim(); System.Net.IPHostEntry ipEntry = null; try { ipEntry = System.Net.Dns.GetHostByName(hostname); } catch (Exception ex) { if ((ex as System.Net.Sockets.SocketException) != null) ipEntry = null; } if (ipEntry == null) continue; //获取IP地址列表 foreach (System.Net.IPAddress ip in ipEntry.AddressList) { string strIp = ip.ToString(); if (strIp.StartsWith("10.20.")) { row["ip"] = strIp; } } } SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp); adp.UpdateCommand = cmdBuilder.GetUpdateCommand(); int val = adp.Update(tbl); tbl.AcceptChanges(); } */ private void MainForm_Load(object sender, EventArgs e) { //InitUserAclDesc(); //InitUserAclDesc2(); //GenQuestText(); //GenNpcText(); //OldIpToNewIp(); //Helper.LockWndUpdate(this); try { //System.Diagnostics.Process.Start("regsvr32.exe /s", "atlax.dll"); //InitConn(); tabStrip1.MdiForm = this; m_debugform = new ScriptDebugForm(); m_codeform = new ScriptCodeForm(this); // 从sys_modl_def读取功能模块信息 只列出来该用户可读的 string sql; if (Program.m_bUseNewAcl) sql = string.Format("SELECT * FROM sys_modl_def WHERE (id IN (SELECT moduleid FROM sys_useracl_desc WHERE userindex = {0} AND canread = 1))", Program.m_rightmgr._userindex); else sql = "SELECT * FROM sys_modl_def"; string[] names = new string[] { "sys_modl_def", "sys_useracl_desc" }; DataTable tbl = Helper.GetDataTableWithSqlProxy(names, sql, conn); cmdModels = new ButtonItem[tbl.Rows.Count]; int i = 0; // 绑定新的点击事件处理方法 customizeItem1.Click += new EventHandler(bConfigModel_Click); foreach (DataRow row in tbl.Rows) { cmdModels[i] = new ButtonItem(); this.moduletoolbar.Items.AddRange(new BaseItem[] { cmdModels[i] }); cmdModels[i].Name = "cmd" + row["modelname_en"] + "editor"; cmdModels[i].GlobalName = cmdModels[i].Name; //cmdModels[i].ImageIndex = Convert.ToInt32(row["iconid"]); if (Convert.ToInt32(row["iconid"]) < imageList2.Images.Count) { if (Convert.ToInt32(row["iconid"]) == -1) // 自定义图标 { cmdModels[i].Image = GetImageFromDataBase(row); } else { cmdModels[i].Image = imageList2.Images[Convert.ToInt32(row["iconid"])]; } } cmdModels[i].PopupAnimation = DevComponents.DotNetBar.ePopupAnimation.SystemDefault; if(!(row["displaystyle"] is DBNull)) // 自定义显示样式不为空 { cmdModels[i].Text = row["displaytext"].ToString(); cmdModels[i].Tooltip = row["modelname_en"].ToString(); switch(row["displaystyle"].ToString()) { case "0": // 默认样式 { cmdModels[i].ButtonStyle = eButtonStyle.Default; break; } case "1": // 单一文本 { cmdModels[i].ButtonStyle = eButtonStyle.TextOnlyAlways; break; } case "2": // 图文混合 { cmdModels[i].ButtonStyle = eButtonStyle.ImageAndText; break; } } } else { cmdModels[i].Text = row["modelname_en"].ToString(); cmdModels[i].Tooltip = cmdModels[i].Text; } cmdModels[i].Click += new System.EventHandler(this.cmdNewModelEditor_Click); imageTable[row["id"].ToString()] = cmdModels[i]; // 记录模块id对应的Button cmdModels[i].Tag = row["id"].ToString(); // 记录该模块的id } moduletoolbar.RecalcLayout(); FileInfo _fi = new FileInfo("_layout.xml"); FileInfo fi = new FileInfo("layout.xml"); if (_fi.Exists) { dotNetBarManager1.LoadLayout("_layout.xml"); // 读取布局设置 } else if (fi.Exists) { dotNetBarManager1.LoadLayout("layout.xml"); // 读取布局设置 } // 从配置文件中读取模块显示的自定义内容 ReloadButtonItems(LoadModelConfigInfo()); //初始化状态条内容 LDBName.Text = conn.DataSource + " : " + conn.Database; LHostName.Text = Helper.GetHostName() + " : " + Helper.GetIPAddress(); //谁要是再截屏,hehe try { string strHost = Helper.GetHostName().ToLower(); string _sql = string.Format("select * from sys_useracl where userid = '{0}'", strHost); /*DataTable tbl_acl = CustomClassCache.GetDataTableWithKey(_sql);*/ string filter = string.Format("userid = '{0}'", strHost); DataTable tbl_acl = CustomClassCache.GetDataTableWithKeyProxy("sys_useracl", filter, null); DataRow row_acl = tbl_acl.Rows[0]; this.Text = string.Format("剑3游戏设计工具(1.0.2.{0})", row_acl["_index"].ToString().Trim()); if (Program.forPublic) { this.Text = string.Format("策划工具(1.0.2.{0})", row_acl["_index"].ToString().Trim()); } } catch (Exception) { Helper.AddLog("出错啦~~~"); } } catch (Exception ex) { Helper.AddLog(ex.Message); this.Close(); throw; } finally { //Helper.LockWndUpdate(null); } }