using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections.Generic; using System.IO; public partial class _Default : System.Web.UI.Page { //private SqlTransaction _sqlTransactionWeb = null; private SqlTransaction _sqlTransactionGame = null; private SqlConnection connectionWeb = null; private SqlConnection connectionGame = null; private string _sql = string.Empty; private string _acctNo = string.Empty; private string _oldacctNo = string.Empty; private string _acctPWD = string.Empty; private string _info = string.Empty; private string _ex = string.Empty; private int _old_propid = 0; private int _propid = 0; private string old_Character_Idx = string.Empty; private string old_Character_Idx_list = string.Empty; private string new_Character_Idx = string.Empty; //private string new_Character_Idx_list = string.Empty; private string old_ITEM_DBIDX = string.Empty; private string old_ITEM_DBIDX_list = string.Empty; private string new_ITEM_DBIDX = string.Empty; //private string new_ITEM_DBIDX_list = string.Empty; private string old_ITEM_DBIDX_list_2 = string.Empty; private string old_TITAN_DBIDX = string.Empty; //private string old_TITAN_DBIDX_list = string.Empty; private string new_TITAN_DBIDX = string.Empty; private Dictionary dic_Character_Idx = new Dictionary(); private Dictionary dic_ITEM_DBIDX = new Dictionary(); private Dictionary dic_TITAN_DBIDX = new Dictionary(); private string sessionMsg = string.Empty; private string timeCost = string.Empty; private Boolean needClearFLg = true; private int amount = 0; protected void Page_Load(object sender, EventArgs e) { //TODO: if (!IsPostBack) { //RequiredFieldValidator2.Enabled = false; //RegularExpressionValidator1.Enabled = false; //userPWD_CheckNull.Enabled = false; //userPWD_Check.Enabled = false; //RequiredFieldValidator1.Enabled = false; } } protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { try { if (!Page.IsValid) { return; } DateTime startTime = System.DateTime.Now; DateTime endTime = System.DateTime.Now; string templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm"); StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312")); string html = reader.ReadToEnd(); reader.Close(); Response.Write(html); Response.Flush(); //System.Threading.Thread.Sleep(1000); //TODO: if (Request.Cookies["vCode"].Value.ToLower() != this.checkNo.Text.ToLower()) { ShowMsg(Msg.ValidationFailed); return; } _acctNo = accountNo.Text.Trim(); _oldacctNo = _acctNo; _acctPWD = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(userPWD.Text.Trim(), "MD5").ToLower().Substring(8, 16); amount = int.Parse(ConfigurationManager.AppSettings["Amount"]); string sql = string.Format("select count(1) from log_info with(nolock) where userid='{0}' ", _acctNo); //0.MHLOG using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MHLOG"].ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand("concurrencycontrol", connection); command.CommandType = CommandType.StoredProcedure; int has = int.Parse(command.ExecuteScalar().ToString()); if (has != 0) { ShowMsg(Msg.Wait); needClearFLg = false; return; } command.CommandText = sql; command.CommandType = CommandType.Text; has = int.Parse(command.ExecuteScalar().ToString()); if (has > 0) { ShowMsg(Msg.CompletedAlready); return; } } DataRow rWeb_Login; DataTable Web_BuyLog = new DataTable(); DataTable TB_ABILITY = new DataTable(); DataTable TB_CharacterCreateInfo = new DataTable(); DataTable TB_CHARACTER = new DataTable(); DataTable TB_ITEM = new DataTable(); DataTable TB_ITEM_OPTION = new DataTable(); DataTable TB_ITEM_RARE = new DataTable(); DataTable TB_ITEM_2 = new DataTable(); DataTable TB_ITEM_OPTION_2 = new DataTable(); DataTable TB_ITEM_RARE_2 = new DataTable(); //DataTable TB_GUILD = new DataTable(); DataTable TB_MUGONG = new DataTable(); DataTable TB_PETINFO = new DataTable(); DataTable TB_PYOGUK = new DataTable(); DataTable TB_SAVEDMOVEPOINT = new DataTable(); DataTable TB_SHOPITEMUSEINFO = new DataTable(); //DataTable TB_SUBQUEST = new DataTable(); DataTable TB_TITAN_EQUIP_ENDURANCE = new DataTable(); DataTable TB_TITANINFO = new DataTable(); //1.GameFrom_MHCMEMBER ******************************************************************************************** using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["GameFrom_MHCMEMBER"].ConnectionString)) { connection.Open(); //TODO: sql = string.Format("select * from chr_log_info where id_loginid='{0}' and id_passwd='{1}' ", _acctNo, _acctPWD); //sql = string.Format("select * from chr_log_info where id_loginid='{0}' ", _acctNo); SqlCommand command = new SqlCommand(sql, connection); command.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(command); SqlCommandBuilder scb = new SqlCommandBuilder(da); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { rWeb_Login = dt.Rows[0]; _old_propid = int.Parse(rWeb_Login["propid"].ToString()); command = new SqlCommand("Web_BuyLog2", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@userid", _oldacctNo); try { amount += int.Parse(command.ExecuteScalar().ToString()); } catch { } } else { ShowMsg(Msg.LoginFailed); return; } } sessionMsg = "用戶信息獲取成功
"; ShowMsg(Msg.OtherInfo); //System.Threading.Thread.Sleep(1000); //2.GameTo_MHCMEMBER ******************************************************************************************** connectionWeb = new SqlConnection(ConfigurationManager.ConnectionStrings["GameTo_MHCMEMBER"].ConnectionString); connectionWeb.Open(); SqlCommand commandWeb = new SqlCommand("Web_Register_2", connectionWeb); commandWeb.CommandType = CommandType.StoredProcedure; commandWeb.Parameters.AddWithValue("@userid", _acctNo); commandWeb.Parameters.AddWithValue("@userpwd", rWeb_Login["id_passwd"]); commandWeb.Parameters.AddWithValue("@key", rWeb_Login["WebKey"]); commandWeb.Parameters.AddWithValue("@sex", rWeb_Login["WebSex"]); commandWeb.Parameters.AddWithValue("@email", rWeb_Login["WebEmail"]); commandWeb.Parameters.AddWithValue("@commend", rWeb_Login["WebCommendID"]); commandWeb.Parameters.AddWithValue("@regip", rWeb_Login["WebRegIP"]); commandWeb.Parameters.AddWithValue("@total_game_time", rWeb_Login["total_game_time"]); commandWeb.Parameters.AddWithValue("@webgold", int.Parse(rWeb_Login["WebGold"].ToString()) + amount); commandWeb.Parameters.AddWithValue("@UserLevel", rWeb_Login["UserLevel"]); commandWeb.Parameters.AddWithValue("@WebBank", rWeb_Login["WebBank"]); commandWeb.Parameters.AddWithValue("@WebLevel", rWeb_Login["WebLevel"]); commandWeb.Parameters.AddWithValue("@webyuanbao", rWeb_Login["webyuanbao"]); commandWeb.Parameters.Add("@useridOP", SqlDbType.VarChar, 30).Direction = ParameterDirection.Output; commandWeb.Parameters.AddWithValue("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue; try { commandWeb.ExecuteNonQuery(); _acctNo = commandWeb.Parameters["@useridOP"].Value.ToString(); _propid = (int)commandWeb.Parameters["@RETURN_VALUE"].Value; if (_propid == -1) { ShowMsg(Msg.FailedAndTryAgain); return; } } catch (System.Exception e1) { _info += "試圖往新WEB庫里插入帳號的時候出錯"; _ex = e1.Message; throw e1; } sessionMsg = string.Format("用戶帳戶轉移成功.帳戶:{0}
", _acctNo); ShowMsg(Msg.OtherInfo); //System.Threading.Thread.Sleep(1000); //3.GameFrom_MHGAME ******************************************************************************************** using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["GameFrom_MHGAME"].ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand("", connection); //3.1 TB_CharacterCreateInfo done sql = "select * from TB_CharacterCreateInfo with(nolock) where USER_IDX= " + _old_propid.ToString() + " and FLAG = 1 order by Character_Idx asc"; command.CommandType = CommandType.Text; command.CommandText = sql; SqlDataAdapter da = new SqlDataAdapter(command); SqlCommandBuilder scb = new SqlCommandBuilder(da); da.Fill(TB_CharacterCreateInfo); if (TB_CharacterCreateInfo.Rows.Count > 0) { foreach (DataRow rTB_CharacterCreateInfo in TB_CharacterCreateInfo.Rows) { old_Character_Idx_list += rTB_CharacterCreateInfo["Character_Idx"].ToString() + ","; } } else { ShowMsg(Msg.NoCharacter); return; } old_Character_Idx_list = old_Character_Idx_list.TrimEnd(','); //3.2 TB_CHARACTER done sql = "select * from TB_CHARACTER with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")";//where Character_Idx in ( " + old_Character_Idx_list + ") command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_CHARACTER); if (TB_CHARACTER.Rows.Count > 0) { //old_Character_Idx_list = ""; //foreach (DataRow rTB_CHARACTER in TB_CHARACTER.Rows) //{ // old_Character_Idx_list += rTB_CHARACTER["CHARACTER_NAME"].ToString() + ","; //} //sessionMsg = ConvertBig5ToUTF8(old_Character_Idx_list); //ShowMsg(Msg.OtherInfo); //return; } else { ShowMsg(Msg.NoCharacter); return; } //3.3 TB_ABILITY 1:1 easy done sql = "select * from TB_ABILITY with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ABILITY); //3.4 a TB_ITEM 1:N done sql = "select * from TB_ITEM with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM); if (TB_ITEM.Rows.Count > 0) { foreach (DataRow rTB_ITEM in TB_ITEM.Rows) { old_ITEM_DBIDX_list += rTB_ITEM["ITEM_DBIDX"].ToString() + ","; } } old_ITEM_DBIDX_list = old_ITEM_DBIDX_list.TrimEnd(','); if (!old_ITEM_DBIDX_list.Equals(string.Empty)) { //3.4 b TB_ITEM_OPTION 1:N done sql = "select * from TB_ITEM_OPTION with(nolock) where ITEM_DBIDX in ( " + old_ITEM_DBIDX_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM_OPTION); //3.4 c TB_ITEM_RARE 1:N done sql = "select * from TB_ITEM_RARE with(nolock) where ITEM_DBIDX in ( " + old_ITEM_DBIDX_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM_RARE); } //3.4 a_2 TB_ITEM_2 1:N done sql = string.Format("SELECT * FROM TB_ITEM with(nolock) WHERE CHARACTER_IDX=0 AND (ITEM_PYOGUKIDX={0} OR ITEM_SHOPIDX={0})", _old_propid); command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM_2); if (TB_ITEM_2.Rows.Count > 0) { foreach (DataRow rTB_ITEM_2 in TB_ITEM_2.Rows) { old_ITEM_DBIDX_list_2 += rTB_ITEM_2["ITEM_DBIDX"].ToString() + ","; } } old_ITEM_DBIDX_list_2 = old_ITEM_DBIDX_list_2.TrimEnd(','); if (!old_ITEM_DBIDX_list_2.Equals(string.Empty)) { //3.4 b_2 TB_ITEM_OPTION_2 1:N done sql = "select * from TB_ITEM_OPTION with(nolock) where ITEM_DBIDX in ( " + old_ITEM_DBIDX_list_2 + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM_OPTION_2); //3.4 c_2 TB_ITEM_RARE_2 1:N done sql = "select * from TB_ITEM_RARE with(nolock) where ITEM_DBIDX in ( " + old_ITEM_DBIDX_list_2 + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_ITEM_RARE_2); } //3.5 TB_SHOPITEMUSEINFO 1:N done sql = "select * from TB_SHOPITEMUSEINFO with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_SHOPITEMUSEINFO); //3.6 TB_MUGONG 1:N not to do sql = "select * from TB_MUGONG with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_MUGONG); //3.7 TB_PETINFO 1:N done ?? sql = "select * from TB_PETINFO with(nolock) where MasterIdx = " + _old_propid.ToString(); command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_PETINFO); //3.8 TB_PYOGUK 1:1 easy done sql = "select * from TB_PYOGUK with(nolock) where User_IDX = " + _old_propid.ToString(); command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_PYOGUK); //3.9 TB_SAVEDMOVEPOINT 1:N easy done sql = "select * from TB_SAVEDMOVEPOINT with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_SAVEDMOVEPOINT); ////3.10 TB_SUBQUEST 1:N not do //sql = "select * from TB_SUBQUEST with(nolock) where Character_Idx in ( " + old_Character_Idx_list + ")"; //command.CommandType = CommandType.Text; //command.CommandText = sql; //da = new SqlDataAdapter(command); //scb = new SqlCommandBuilder(da); //da.Fill(TB_SUBQUEST); //OLD LOGIC ---------------- //3.11 TB_TITANINFO 1:N //sql = "select * from TB_TITANINFO with(nolock) where UserID = " + _old_propid.ToString(); //command.CommandType = CommandType.Text; //command.CommandText = sql; //da = new SqlDataAdapter(command); //scb = new SqlCommandBuilder(da); //da.Fill(TB_TITANINFO); ////3.12 TB_TITAN_EQUIP_ENDURANCE //sql = "select * from TB_TITAN_EQUIP_ENDURANCE with(nolock) where USER_IDX = " + _old_propid.ToString() + " or CharacterID in ( " + old_Character_Idx_list + ")"; //command.CommandType = CommandType.Text; //command.CommandText = sql; //da = new SqlDataAdapter(command); //scb = new SqlCommandBuilder(da); //da.Fill(TB_TITAN_EQUIP_ENDURANCE); //------------------ //NEW LOGIC if (!old_ITEM_DBIDX_list.Equals(string.Empty)) { //3.11 TB_TITANINFO 1:N sql = "select * from TB_TITANINFO with(nolock) where CallItemDBIdx in ( " + old_ITEM_DBIDX_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_TITANINFO); //3.12 TB_TITAN_EQUIP_ENDURANCE sql = "select * from TB_TITAN_EQUIP_ENDURANCE with(nolock) where DBIndex in ( " + old_ITEM_DBIDX_list + ")"; command.CommandType = CommandType.Text; command.CommandText = sql; da = new SqlDataAdapter(command); scb = new SqlCommandBuilder(da); da.Fill(TB_TITAN_EQUIP_ENDURANCE); } //------------------ } sessionMsg = "角色信息獲取成功
"; ShowMsg(Msg.OtherInfo); //System.Threading.Thread.Sleep(1000); //4.GameTo_MHGAME ******************************************************************************************** connectionGame = new SqlConnection(ConfigurationManager.ConnectionStrings["GameTo_MHGAME"].ConnectionString); connectionGame.Open(); SqlCommand commandGame = new SqlCommand("", connectionGame); this._sqlTransactionGame = connectionGame.BeginTransaction(); commandGame.Transaction = _sqlTransactionGame; //3.8 TB_PYOGUK if (TB_PYOGUK.Rows.Count > 0) { try { commandGame.CommandText = string.Format("insert into TB_PYOGUK values('{0}',{1},{2})", _propid, TB_PYOGUK.Rows[0]["PyogukNum"].ToString(), TB_PYOGUK.Rows[0]["PyogukMoney"].ToString()); commandGame.ExecuteNonQuery(); } catch (System.Exception e3) { _info += string.Format("試圖往新GAME庫里插入倉庫時候出錯"); _ex = e3.Message; throw e3; } } //TB_ITEM_2 BEGIN======================================================= if (TB_ITEM_2.Rows.Count > 0) { commandGame.CommandText = "ItemInsert2"; commandGame.CommandType = CommandType.StoredProcedure; foreach (DataRow rTB_ITEM_2 in TB_ITEM_2.Rows) { old_ITEM_DBIDX = rTB_ITEM_2["ITEM_DBIDX"].ToString(); //if (old_ITEM_DBIDX == "301115" || old_ITEM_DBIDX == "42208") //{ // string a = "1"; //} commandGame.Parameters.Clear(); commandGame.Parameters.AddWithValue("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue; commandGame.Parameters.AddWithValue("@CHARACTER_IDX", 0); commandGame.Parameters.AddWithValue("@ITEM_IDX", rTB_ITEM_2["ITEM_IDX"]); commandGame.Parameters.AddWithValue("@ITEM_DURABILITY", rTB_ITEM_2["ITEM_DURABILITY"]); commandGame.Parameters.AddWithValue("@ITEM_POSITION", rTB_ITEM_2["ITEM_POSITION"]); commandGame.Parameters.AddWithValue("@ITEM_QPOSITION", rTB_ITEM_2["ITEM_QPOSITION"]); if (string.IsNullOrEmpty(rTB_ITEM_2["ITEM_PYOGUKIDX"].ToString().TrimEnd('0'))) { commandGame.Parameters.AddWithValue("@ITEM_PYOGUKIDX", 0); } else { commandGame.Parameters.AddWithValue("@ITEM_PYOGUKIDX", _propid); } //TODO: 測試0 commandGame.Parameters.AddWithValue("@ITEM_MUNPAIDX", 0); if (string.IsNullOrEmpty(rTB_ITEM_2["ITEM_SHOPIDX"].ToString().TrimEnd('0'))) { commandGame.Parameters.AddWithValue("@ITEM_SHOPIDX", 0); } else { commandGame.Parameters.AddWithValue("@ITEM_SHOPIDX", _propid); } commandGame.Parameters.AddWithValue("@ITEM_PARAM", rTB_ITEM_2["ITEM_PARAM"]); commandGame.Parameters.AddWithValue("@ITEM_RAREIDX", rTB_ITEM_2["ITEM_RAREIDX"]); //2024-1-18 新增物品字段 commandGame.Parameters.AddWithValue("@ITEM_LEVEL", rTB_ITEM_2["ITEM_LEVEL"]); commandGame.Parameters.AddWithValue("@ITEM_EXP", rTB_ITEM_2["ITEM_EXP"]); commandGame.Parameters.AddWithValue("@ITEM_EXT_OPTION_COUNT", rTB_ITEM_2["ITEM_EXT_OPTION_COUNT"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_1", rTB_ITEM_2["ITEM_OPTION_1"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_2", rTB_ITEM_2["ITEM_OPTION_2"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_3", rTB_ITEM_2["ITEM_OPTION_3"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_4", rTB_ITEM_2["ITEM_OPTION_4"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_5", rTB_ITEM_2["ITEM_OPTION_5"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_COUNT", rTB_ITEM_2["ITEM_SLOT_COUNT"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_1", rTB_ITEM_2["ITEM_SLOT_ITEM_1"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_2", rTB_ITEM_2["ITEM_SLOT_ITEM_2"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_3", rTB_ITEM_2["ITEM_SLOT_ITEM_3"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_4", rTB_ITEM_2["ITEM_SLOT_ITEM_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_LEVEL", rTB_ITEM_2["ITEM_GROW_LEVEL"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_ID", rTB_ITEM_2["ITEM_GROW_ID"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_VALUE", rTB_ITEM_2["ITEM_GROW_VALUE"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_1", rTB_ITEM_2["ITEM_GROW_STAR_1"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_2", rTB_ITEM_2["ITEM_GROW_STAR_2"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_3", rTB_ITEM_2["ITEM_GROW_STAR_3"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_4", rTB_ITEM_2["ITEM_GROW_STAR_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_5", rTB_ITEM_2["ITEM_GROW_STAR_5"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_6", rTB_ITEM_2["ITEM_GROW_STAR_6"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_7", rTB_ITEM_2["ITEM_GROW_STAR_7"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_8", rTB_ITEM_2["ITEM_GROW_STAR_8"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_9", rTB_ITEM_2["ITEM_GROW_STAR_9"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_10", rTB_ITEM_2["ITEM_GROW_STAR_10"]); commandGame.Parameters.AddWithValue("@ITEM_FROM_LOCK", rTB_ITEM_2["ITEM_FROM_LOCK"]); commandGame.Parameters.AddWithValue("@ITEM_MAKERCHARID", rTB_ITEM_2["ITEM_MAKERCHARID"]); commandGame.Parameters.AddWithValue("@ITEM_MAKERCHARNAME", rTB_ITEM_2["ITEM_MAKERCHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_BLESSCHARID", rTB_ITEM_2["ITEM_BLESSCHARID"]); commandGame.Parameters.AddWithValue("@ITEM_BLESSCHARNAME", rTB_ITEM_2["ITEM_BLESSCHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_ReinforceCharID", rTB_ITEM_2["ITEM_ReinforceCharID"]); commandGame.Parameters.AddWithValue("@ITEM_REINFORCECHARNAME", rTB_ITEM_2["ITEM_REINFORCECHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_1", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_1"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_2", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_2"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_3", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_3"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_4", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_5", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_5"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_6", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_6"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_7", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_7"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_8", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_8"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_9", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_9"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_10", rTB_ITEM_2["ITEM_GROW_STAR_VALUE_10"]); Boolean flg = true; if (TB_ITEM_OPTION_2.Rows.Count > 0) { DataRow[] rTB_ITEM_OPTION_2 = TB_ITEM_OPTION_2.Select("ITEM_DBIDX=" + old_ITEM_DBIDX); if (rTB_ITEM_OPTION_2.Length > 0) { commandGame.Parameters.AddWithValue("@Option_idx", rTB_ITEM_OPTION_2[0]["OPTION_DBIDX"]); commandGame.Parameters.AddWithValue("@Op_GenGol", rTB_ITEM_OPTION_2[0]["GenGol"]); commandGame.Parameters.AddWithValue("@Op_MinChub", rTB_ITEM_OPTION_2[0]["MinChub"]); commandGame.Parameters.AddWithValue("@Op_CheRyuk", rTB_ITEM_OPTION_2[0]["CheRyuk"]); commandGame.Parameters.AddWithValue("@Op_SimMek", rTB_ITEM_OPTION_2[0]["SimMek"]); commandGame.Parameters.AddWithValue("@Op_Life", rTB_ITEM_OPTION_2[0]["Life"]); commandGame.Parameters.AddWithValue("@Op_NaeRyuk", rTB_ITEM_OPTION_2[0]["NaeRyuk"]); commandGame.Parameters.AddWithValue("@Op_Shield", rTB_ITEM_OPTION_2[0]["Shield"]); commandGame.Parameters.AddWithValue("@Op_FireAttrRegist", rTB_ITEM_OPTION_2[0]["FireAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_WaterAttrRegist", rTB_ITEM_OPTION_2[0]["WaterAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_TreeAttrRegist", rTB_ITEM_OPTION_2[0]["TreeAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_GoldAttrRegist", rTB_ITEM_OPTION_2[0]["GoldAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_EarthAttrRegist", rTB_ITEM_OPTION_2[0]["EarthAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_PhyAttack", rTB_ITEM_OPTION_2[0]["PhyAttack"]); commandGame.Parameters.AddWithValue("@Op_Critical", rTB_ITEM_OPTION_2[0]["Critical"]); commandGame.Parameters.AddWithValue("@Op_FireAttrAttack", rTB_ITEM_OPTION_2[0]["FireAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_WaterAttrAttack", rTB_ITEM_OPTION_2[0]["WaterAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_TreeAttrAttack", rTB_ITEM_OPTION_2[0]["TreeAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_GoldAttrAttack", rTB_ITEM_OPTION_2[0]["GoldAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_EarthAttrAttack", rTB_ITEM_OPTION_2[0]["EarthAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_PhyDefense", rTB_ITEM_OPTION_2[0]["PhyDefense"]); flg = false; } } if (flg) { commandGame.Parameters.AddWithValue("@Option_idx", 0); commandGame.Parameters.AddWithValue("@Op_GenGol", 0); commandGame.Parameters.AddWithValue("@Op_MinChub", 0); commandGame.Parameters.AddWithValue("@Op_CheRyuk", 0); commandGame.Parameters.AddWithValue("@Op_SimMek", 0); commandGame.Parameters.AddWithValue("@Op_Life", 0); commandGame.Parameters.AddWithValue("@Op_NaeRyuk", 0); commandGame.Parameters.AddWithValue("@Op_Shield", 0); commandGame.Parameters.AddWithValue("@Op_FireAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_WaterAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_TreeAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_GoldAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_EarthAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_PhyAttack", 0); commandGame.Parameters.AddWithValue("@Op_Critical", 0); commandGame.Parameters.AddWithValue("@Op_FireAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_WaterAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_TreeAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_GoldAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_EarthAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_PhyDefense", 0); } flg = true; if (TB_ITEM_RARE_2.Rows.Count > 0) { DataRow[] rTB_ITEM_RARE_2 = TB_ITEM_RARE_2.Select("ITEM_DBIDX=" + old_ITEM_DBIDX); if (rTB_ITEM_RARE_2.Length > 0) { commandGame.Parameters.AddWithValue("@Rare_idx", rTB_ITEM_RARE_2[0]["RARE_DBIDX"]); commandGame.Parameters.AddWithValue("@Ra_GenGol", rTB_ITEM_RARE_2[0]["GENGOL"]); commandGame.Parameters.AddWithValue("@Ra_MinChub", rTB_ITEM_RARE_2[0]["MINCHUB"]); commandGame.Parameters.AddWithValue("@Ra_CheRyuk", rTB_ITEM_RARE_2[0]["CHERYUK"]); commandGame.Parameters.AddWithValue("@Ra_SimMek", rTB_ITEM_RARE_2[0]["SIMMEK"]); commandGame.Parameters.AddWithValue("@Ra_Life", rTB_ITEM_RARE_2[0]["LIFE"]); commandGame.Parameters.AddWithValue("@Ra_NaeRyuk", rTB_ITEM_RARE_2[0]["NAERYUK"]); commandGame.Parameters.AddWithValue("@Ra_Shield", rTB_ITEM_RARE_2[0]["SHIELD"]); commandGame.Parameters.AddWithValue("@Ra_FireAttrRegist", rTB_ITEM_RARE_2[0]["FREGIST"]); commandGame.Parameters.AddWithValue("@Ra_WaterAttrRegist", rTB_ITEM_RARE_2[0]["WREGIST"]); commandGame.Parameters.AddWithValue("@Ra_TreeAttrRegist", rTB_ITEM_RARE_2[0]["TREGIST"]); commandGame.Parameters.AddWithValue("@Ra_GoldAttrRegist", rTB_ITEM_RARE_2[0]["GREGIST"]); commandGame.Parameters.AddWithValue("@Ra_EarthAttrRegist", rTB_ITEM_RARE_2[0]["EREGIST"]); commandGame.Parameters.AddWithValue("@Ra_PhyAttack", rTB_ITEM_RARE_2[0]["PHYATTACK"]); commandGame.Parameters.AddWithValue("@Ra_FireAttrAttack", rTB_ITEM_RARE_2[0]["FATTACK"]); commandGame.Parameters.AddWithValue("@Ra_WaterAttrAttack", rTB_ITEM_RARE_2[0]["WATTACK"]); commandGame.Parameters.AddWithValue("@Ra_TreeAttrAttack", rTB_ITEM_RARE_2[0]["TATTACK"]); commandGame.Parameters.AddWithValue("@Ra_GoldAttrAttack", rTB_ITEM_RARE_2[0]["GATTACK"]); commandGame.Parameters.AddWithValue("@Ra_EarthAttrAttack", rTB_ITEM_RARE_2[0]["EATTACK"]); commandGame.Parameters.AddWithValue("@Ra_PhyDefense", rTB_ITEM_RARE_2[0]["PHYDEFENSE"]); flg = false; } } if (flg) { commandGame.Parameters.AddWithValue("@Rare_idx", 0); commandGame.Parameters.AddWithValue("@Ra_GenGol", 0); commandGame.Parameters.AddWithValue("@Ra_MinChub", 0); commandGame.Parameters.AddWithValue("@Ra_CheRyuk", 0); commandGame.Parameters.AddWithValue("@Ra_SimMek", 0); commandGame.Parameters.AddWithValue("@Ra_Life", 0); commandGame.Parameters.AddWithValue("@Ra_NaeRyuk", 0); commandGame.Parameters.AddWithValue("@Ra_Shield", 0); commandGame.Parameters.AddWithValue("@Ra_FireAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_WaterAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_TreeAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_GoldAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_EarthAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_PhyAttack", 0); commandGame.Parameters.AddWithValue("@Ra_FireAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_WaterAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_TreeAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_GoldAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_EarthAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_PhyDefense", 0); } try { commandGame.ExecuteNonQuery(); new_ITEM_DBIDX = commandGame.Parameters["@RETURN_VALUE"].Value.ToString(); if (!dic_ITEM_DBIDX.ContainsKey(old_ITEM_DBIDX)) { dic_ITEM_DBIDX.Add(old_ITEM_DBIDX, new_ITEM_DBIDX); } } catch (System.Exception e6) { _info += string.Format("試圖往新GAME庫里插入百宝倉庫,倉庫時候出錯"); _ex = e6.Message; throw e6; } } } //TB_ITEM_2 END======================================================= sessionMsg = "百宝倉庫,倉庫信息轉移成功
"; ShowMsg(Msg.OtherInfo); //System.Threading.Thread.Sleep(1000); //TB_CHARACTER.Columns.Add("NEW_CHARACTER_IDX"); //TB_CharacterCreateInfo.Columns.Add("NEW_CHARACTER_IDX"); foreach (DataRow rTB_TB_CHARACTER in TB_CHARACTER.Rows) { commandGame.CommandText = "CHARACTER_CreateCharacter2"; commandGame.CommandType = CommandType.StoredProcedure; old_Character_Idx = rTB_TB_CHARACTER["Character_Idx"].ToString(); commandGame.Parameters.Clear(); commandGame.Parameters.Add("@CHARACTER_IDX", SqlDbType.Int).Direction = ParameterDirection.Output; commandGame.Parameters.AddWithValue("@USER_IDX", _propid); commandGame.Parameters.AddWithValue("@CHARACTER_STANDINDEX", rTB_TB_CHARACTER["CHARACTER_STANDINDEX"]); commandGame.Parameters.AddWithValue("@CHARACTER_PARTYIDX", rTB_TB_CHARACTER["CHARACTER_PARTYIDX"]); commandGame.Parameters.AddWithValue("@CHARACTER_GENDER", rTB_TB_CHARACTER["CHARACTER_GENDER"]); commandGame.Parameters.AddWithValue("@CHARACTER_GENGOAL", rTB_TB_CHARACTER["CHARACTER_GENGOAL"]); commandGame.Parameters.AddWithValue("@CHARACTER_LIFE", rTB_TB_CHARACTER["CHARACTER_LIFE"]); commandGame.Parameters.AddWithValue("@CHARACTER_MAXLIFE", rTB_TB_CHARACTER["CHARACTER_MAXLIFE"]); commandGame.Parameters.AddWithValue("@CHARACTER_ENERGE", rTB_TB_CHARACTER["CHARACTER_ENERGE"]); commandGame.Parameters.AddWithValue("@CHARACTER_DEX", rTB_TB_CHARACTER["CHARACTER_DEX"]); commandGame.Parameters.AddWithValue("@CHARACTER_STA", rTB_TB_CHARACTER["CHARACTER_STA"]); commandGame.Parameters.AddWithValue("@CHARACTER_SIMMAK", rTB_TB_CHARACTER["CHARACTER_SIMMAK"]); commandGame.Parameters.AddWithValue("@CHARACTER_FAME", rTB_TB_CHARACTER["CHARACTER_FAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_KARMA", rTB_TB_CHARACTER["CHARACTER_KARMA"]); commandGame.Parameters.AddWithValue("@CHARACTER_NAME", rTB_TB_CHARACTER["CHARACTER_NAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_REPUTE", rTB_TB_CHARACTER["CHARACTER_REPUTE"]); commandGame.Parameters.AddWithValue("@CHARACTER_JOB", rTB_TB_CHARACTER["CHARACTER_JOB"]); commandGame.Parameters.AddWithValue("@CHARACTER_STAGE", rTB_TB_CHARACTER["CHARACTER_STAGE"]); commandGame.Parameters.AddWithValue("@CHARACTER_GRADE", rTB_TB_CHARACTER["CHARACTER_GRADE"]); commandGame.Parameters.AddWithValue("@CHARACTER_MAXGRADE", rTB_TB_CHARACTER["CHARACTER_MAXGRADE"]); commandGame.Parameters.AddWithValue("@CHARACTER_EXPOINT", rTB_TB_CHARACTER["CHARACTER_EXPOINT"]); commandGame.Parameters.AddWithValue("@CHARACTER_GRADEUPPOINT", rTB_TB_CHARACTER["CHARACTER_GRADEUPPOINT"]); commandGame.Parameters.AddWithValue("@CHARACTER_MONEY", rTB_TB_CHARACTER["CHARACTER_MONEY"]); commandGame.Parameters.AddWithValue("@CHARACTER_QUICKPACE", rTB_TB_CHARACTER["CHARACTER_QUICKPACE"]); commandGame.Parameters.AddWithValue("@CHARACTER_VITALITY", rTB_TB_CHARACTER["CHARACTER_VITALITY"]); commandGame.Parameters.AddWithValue("@CHARACTER_MAP", rTB_TB_CHARACTER["CHARACTER_MAP"]); commandGame.Parameters.AddWithValue("@CHARACTER_FACETYPE", rTB_TB_CHARACTER["CHARACTER_FACETYPE"]); commandGame.Parameters.AddWithValue("@CHARACTER_HEADTYPE", rTB_TB_CHARACTER["CHARACTER_HEADTYPE"]); commandGame.Parameters.AddWithValue("@CHARACTER_HAT", rTB_TB_CHARACTER["CHARACTER_HAT"]); commandGame.Parameters.AddWithValue("@CHARACTER_WEAPON", rTB_TB_CHARACTER["CHARACTER_WEAPON"]); commandGame.Parameters.AddWithValue("@CHARACTER_DRESS", rTB_TB_CHARACTER["CHARACTER_DRESS"]); commandGame.Parameters.AddWithValue("@CHARACTER_SHOES", rTB_TB_CHARACTER["CHARACTER_SHOES"]); commandGame.Parameters.AddWithValue("@CHARACTER_RING1", rTB_TB_CHARACTER["CHARACTER_RING1"]); commandGame.Parameters.AddWithValue("@CHARACTER_RING2", rTB_TB_CHARACTER["CHARACTER_RING2"]); commandGame.Parameters.AddWithValue("@CHARACTER_CAPE", rTB_TB_CHARACTER["CHARACTER_CAPE"]); commandGame.Parameters.AddWithValue("@CHARACTER_NECKLACE", rTB_TB_CHARACTER["CHARACTER_NECKLACE"]); commandGame.Parameters.AddWithValue("@CHARACTER_ARMLET", rTB_TB_CHARACTER["CHARACTER_ARMLET"]); commandGame.Parameters.AddWithValue("@CHARACTER_BELT", rTB_TB_CHARACTER["CHARACTER_BELT"]); //TODO:门派问题 commandGame.Parameters.AddWithValue("@CHARACTER_MUNPAIDX", ""); commandGame.Parameters.AddWithValue("@CHARACTER_MUNPAJIKCHEK", ""); commandGame.Parameters.AddWithValue("@CHARACTER_MUNPAENTRYDATE", ""); commandGame.Parameters.AddWithValue("@CHARACTER_MUNPACANENTRYDATE", ""); commandGame.Parameters.AddWithValue("@CHARACTER_MUNPANAME", ""); commandGame.Parameters.AddWithValue("@CHARACTER_MUNPAMARKIDX", ""); commandGame.Parameters.AddWithValue("@CHARACTER_SKININFO", rTB_TB_CHARACTER["CHARACTER_SKININFO"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY2", rTB_TB_CHARACTER["CHARACTER_ABILITY2"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY3", rTB_TB_CHARACTER["CHARACTER_ABILITY3"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY4", rTB_TB_CHARACTER["CHARACTER_ABILITY4"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY5", rTB_TB_CHARACTER["CHARACTER_ABILITY5"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY6", rTB_TB_CHARACTER["CHARACTER_ABILITY6"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITY7", rTB_TB_CHARACTER["CHARACTER_ABILITY7"]); commandGame.Parameters.AddWithValue("@CHARACTER_BIRTH", rTB_TB_CHARACTER["CHARACTER_BIRTH"]); commandGame.Parameters.AddWithValue("@CHARACTER_LASTMODIFIED", rTB_TB_CHARACTER["CHARACTER_LASTMODIFIED"]); commandGame.Parameters.AddWithValue("@CHARACTER_STATE", rTB_TB_CHARACTER["CHARACTER_STATE"]); commandGame.Parameters.AddWithValue("@Character_MapChangePoint", rTB_TB_CHARACTER["Character_MapChangePoint"]); commandGame.Parameters.AddWithValue("@Character_LoginPoint", rTB_TB_CHARACTER["Character_LoginPoint"]); commandGame.Parameters.AddWithValue("@CHARACTER_SHIELD", rTB_TB_CHARACTER["CHARACTER_SHIELD"]); commandGame.Parameters.AddWithValue("@CHARACTER_ABILITYEXP", rTB_TB_CHARACTER["CHARACTER_ABILITYEXP"]); commandGame.Parameters.AddWithValue("@CHARACTER_CURRENTMAP", rTB_TB_CHARACTER["CHARACTER_CURRENTMAP"]); commandGame.Parameters.AddWithValue("@CHARACTER_BADFAME", rTB_TB_CHARACTER["CHARACTER_BADFAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_Height", rTB_TB_CHARACTER["CHARACTER_Height"]); commandGame.Parameters.AddWithValue("@CHARACTER_WIDTH", rTB_TB_CHARACTER["CHARACTER_WIDTH"]); commandGame.Parameters.AddWithValue("@CHARACTER_PLAYTIME", rTB_TB_CHARACTER["CHARACTER_PLAYTIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_LASTPKENDTIME", rTB_TB_CHARACTER["CHARACTER_LASTPKENDTIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_NICKNAME", rTB_TB_CHARACTER["CHARACTER_NICKNAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_ATTR", rTB_TB_CHARACTER["CHARACTER_ATTR"]); commandGame.Parameters.AddWithValue("@CHARACTER_EXPFLAG", rTB_TB_CHARACTER["CHARACTER_EXPFLAG"]); commandGame.Parameters.AddWithValue("@WebChaReset", rTB_TB_CHARACTER["WebChaReset"]); commandGame.Parameters.AddWithValue("@WebNewName", rTB_TB_CHARACTER["WebNewName"]); commandGame.Parameters.AddWithValue("@CHARACTER_FQNAME", rTB_TB_CHARACTER["CHARACTER_FQNAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_FQIDX", rTB_TB_CHARACTER["CHARACTER_FQIDX"]); commandGame.Parameters.AddWithValue("@CHARACTER_VIPTYPE", rTB_TB_CHARACTER["CHARACTER_VIPTYPE"]); commandGame.Parameters.AddWithValue("@CHARACTER_NameFlag", rTB_TB_CHARACTER["CHARACTER_NameFlag"]); commandGame.Parameters.AddWithValue("@CHARACTER_NameFlag_Enddate", rTB_TB_CHARACTER["CHARACTER_NameFlag_Enddate"]); //2024-1-18ko新增字段 commandGame.Parameters.AddWithValue("@CHARACTER_SPNAME", rTB_TB_CHARACTER["CHARACTER_SPNAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_SPLIMITETIME", rTB_TB_CHARACTER["CHARACTER_SPLIMITETIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_PICTITLEID", rTB_TB_CHARACTER["CHARACTER_PICTITLEID"]); commandGame.Parameters.AddWithValue("@CHARACTER_PICTITLETIMEOUT", rTB_TB_CHARACTER["CHARACTER_PICTITLETIMEOUT"]); commandGame.Parameters.AddWithValue("@CHARACTER_KILLPLAYNUMBER", rTB_TB_CHARACTER["CHARACTER_KILLPLAYNUMBER"]); commandGame.Parameters.AddWithValue("@CHARACTER_FROM_AREA", rTB_TB_CHARACTER["CHARACTER_FROM_AREA"]); commandGame.Parameters.AddWithValue("@CHARACTER_AREA_FLAG", rTB_TB_CHARACTER["CHARACTER_AREA_FLAG"]); commandGame.Parameters.AddWithValue("@CHARACTER_POS", rTB_TB_CHARACTER["CHARACTER_POS"]); commandGame.Parameters.AddWithValue("@CHARACTER_LASTLEVELUPTIME", rTB_TB_CHARACTER["CHARACTER_LASTLEVELUPTIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_LIMITFRAME", rTB_TB_CHARACTER["CHARACTER_LIMITFRAME"]); commandGame.Parameters.AddWithValue("@CHARACTER_LIMITFRAMEDAY", rTB_TB_CHARACTER["CHARACTER_LIMITFRAMEDAY"]); commandGame.Parameters.AddWithValue("@CHARACTER_BAPOINT", rTB_TB_CHARACTER["CHARACTER_BAPOINT"]); commandGame.Parameters.AddWithValue("@CHARACTER_SHOPINVNTIME", rTB_TB_CHARACTER["CHARACTER_SHOPINVNTIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_SHOPINVNLEVEL", rTB_TB_CHARACTER["CHARACTER_SHOPINVNLEVEL"]); commandGame.Parameters.AddWithValue("@CHARACTER_AWARD_DAY", rTB_TB_CHARACTER["CHARACTER_AWARD_DAY"]); commandGame.Parameters.AddWithValue("@CHARACTER_AWARD_IDX", rTB_TB_CHARACTER["CHARACTER_AWARD_IDX"]); commandGame.Parameters.AddWithValue("@CHARACTER_AWARD_LASTTIME", rTB_TB_CHARACTER["CHARACTER_AWARD_LASTTIME"]); commandGame.Parameters.AddWithValue("@CHARACTER_BTPOINT", rTB_TB_CHARACTER["CHARACTER_BTPOINT"]); commandGame.Parameters.AddWithValue("@CHARACTER_BTGETPOINTDAY", rTB_TB_CHARACTER["CHARACTER_BTGETPOINTDAY"]); commandGame.Parameters.AddWithValue("@CHARACTER_BTLASTGETDAY", rTB_TB_CHARACTER["CHARACTER_BTLASTGETDAY"]); commandGame.Parameters.AddWithValue("@CHARACTER_VIP_LEVEL", rTB_TB_CHARACTER["CHARACTER_VIP_LEVEL"]); commandGame.Parameters.AddWithValue("@CHARACTER_VIP_LIMIT", rTB_TB_CHARACTER["CHARACTER_VIP_LIMIT"]); //TB_ABILITY BEGIN======================================================= DataRow[] rTB_ABILITY = TB_ABILITY.Select("CHARACTER_IDX=" + old_Character_Idx); if (rTB_ABILITY.Length > 0) { commandGame.Parameters.AddWithValue("@BattleAbility", rTB_ABILITY[0]["BattleAbility"]); commandGame.Parameters.AddWithValue("@KyungGongAbility", rTB_ABILITY[0]["KyungGongAbility"]); commandGame.Parameters.AddWithValue("@SocietyAbility", rTB_ABILITY[0]["SocietyAbility"]); commandGame.Parameters.AddWithValue("@JobAbility", rTB_ABILITY[0]["JobAbility"]); commandGame.Parameters.AddWithValue("@BattleQuick", rTB_ABILITY[0]["BattleQuick"]); commandGame.Parameters.AddWithValue("@KyungGongQuick", rTB_ABILITY[0]["KyungGongQuick"]); commandGame.Parameters.AddWithValue("@SocietyQuick", rTB_ABILITY[0]["SocietyQuick"]); commandGame.Parameters.AddWithValue("@JobQuick", rTB_ABILITY[0]["JobQuick"]); } else { commandGame.Parameters.AddWithValue("@BattleAbility", "-1"); commandGame.Parameters.AddWithValue("@KyungGongAbility", ""); commandGame.Parameters.AddWithValue("@SocietyAbility", ""); commandGame.Parameters.AddWithValue("@JobAbility", ""); commandGame.Parameters.AddWithValue("@BattleQuick", ""); commandGame.Parameters.AddWithValue("@KyungGongQuick", ""); commandGame.Parameters.AddWithValue("@SocietyQuick", ""); commandGame.Parameters.AddWithValue("@JobQuick", ""); } try { commandGame.ExecuteNonQuery(); new_Character_Idx = commandGame.Parameters["@CHARACTER_IDX"].Value.ToString(); dic_Character_Idx.Add(old_Character_Idx, new_Character_Idx); } catch (System.Exception e2) { _info += string.Format("試圖往新GAME庫里插入角色 {0}的時候出錯", rTB_TB_CHARACTER["CHARACTER_NAME"].ToString()); _ex = e2.Message; throw e2; } //TB_ABILITY END======================================================= //TB_ITEM BEGIN======================================================= DataRow[] rTB_ITEM = TB_ITEM.Select("CHARACTER_IDX=" + old_Character_Idx); if (rTB_ITEM.Length > 0) { commandGame.CommandText = "ItemInsert2"; commandGame.CommandType = CommandType.StoredProcedure; for (int i = 0; i < rTB_ITEM.Length; i++) { old_ITEM_DBIDX = rTB_ITEM[i]["ITEM_DBIDX"].ToString(); commandGame.Parameters.Clear(); commandGame.Parameters.AddWithValue("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue; commandGame.Parameters.AddWithValue("@CHARACTER_IDX", new_Character_Idx); commandGame.Parameters.AddWithValue("@ITEM_IDX", rTB_ITEM[i]["ITEM_IDX"]); commandGame.Parameters.AddWithValue("@ITEM_DURABILITY", rTB_ITEM[i]["ITEM_DURABILITY"]); commandGame.Parameters.AddWithValue("@ITEM_POSITION", rTB_ITEM[i]["ITEM_POSITION"]); commandGame.Parameters.AddWithValue("@ITEM_QPOSITION", rTB_ITEM[i]["ITEM_QPOSITION"]); commandGame.Parameters.AddWithValue("@ITEM_PYOGUKIDX", rTB_ITEM[i]["ITEM_PYOGUKIDX"]); //TODO: 測試0 commandGame.Parameters.AddWithValue("@ITEM_MUNPAIDX", 0); commandGame.Parameters.AddWithValue("@ITEM_SHOPIDX", rTB_ITEM[i]["ITEM_SHOPIDX"]); commandGame.Parameters.AddWithValue("@ITEM_PARAM", rTB_ITEM[i]["ITEM_PARAM"]); commandGame.Parameters.AddWithValue("@ITEM_RAREIDX", rTB_ITEM[i]["ITEM_RAREIDX"]); //2024-1-18 新增物品字段 commandGame.Parameters.AddWithValue("@ITEM_LEVEL", rTB_ITEM[i]["ITEM_LEVEL"]); commandGame.Parameters.AddWithValue("@ITEM_EXP", rTB_ITEM[i]["ITEM_EXP"]); commandGame.Parameters.AddWithValue("@ITEM_EXT_OPTION_COUNT", rTB_ITEM[i]["ITEM_EXT_OPTION_COUNT"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_1", rTB_ITEM[i]["ITEM_OPTION_1"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_2", rTB_ITEM[i]["ITEM_OPTION_2"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_3", rTB_ITEM[i]["ITEM_OPTION_3"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_4", rTB_ITEM[i]["ITEM_OPTION_4"]); commandGame.Parameters.AddWithValue("@ITEM_OPTION_5", rTB_ITEM[i]["ITEM_OPTION_5"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_COUNT", rTB_ITEM[i]["ITEM_SLOT_COUNT"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_1", rTB_ITEM[i]["ITEM_SLOT_ITEM_1"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_2", rTB_ITEM[i]["ITEM_SLOT_ITEM_2"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_3", rTB_ITEM[i]["ITEM_SLOT_ITEM_3"]); commandGame.Parameters.AddWithValue("@ITEM_SLOT_ITEM_4", rTB_ITEM[i]["ITEM_SLOT_ITEM_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_LEVEL", rTB_ITEM[i]["ITEM_GROW_LEVEL"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_ID", rTB_ITEM[i]["ITEM_GROW_ID"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_VALUE", rTB_ITEM[i]["ITEM_GROW_VALUE"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_1", rTB_ITEM[i]["ITEM_GROW_STAR_1"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_2", rTB_ITEM[i]["ITEM_GROW_STAR_2"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_3", rTB_ITEM[i]["ITEM_GROW_STAR_3"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_4", rTB_ITEM[i]["ITEM_GROW_STAR_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_5", rTB_ITEM[i]["ITEM_GROW_STAR_5"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_6", rTB_ITEM[i]["ITEM_GROW_STAR_6"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_7", rTB_ITEM[i]["ITEM_GROW_STAR_7"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_8", rTB_ITEM[i]["ITEM_GROW_STAR_8"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_9", rTB_ITEM[i]["ITEM_GROW_STAR_9"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_10", rTB_ITEM[i]["ITEM_GROW_STAR_10"]); commandGame.Parameters.AddWithValue("@ITEM_FROM_LOCK", rTB_ITEM[i]["ITEM_FROM_LOCK"]); commandGame.Parameters.AddWithValue("@ITEM_MAKERCHARID", rTB_ITEM[i]["ITEM_MAKERCHARID"]); commandGame.Parameters.AddWithValue("@ITEM_MAKERCHARNAME", rTB_ITEM[i]["ITEM_MAKERCHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_BLESSCHARID", rTB_ITEM[i]["ITEM_BLESSCHARID"]); commandGame.Parameters.AddWithValue("@ITEM_BLESSCHARNAME", rTB_ITEM[i]["ITEM_BLESSCHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_ReinforceCharID", rTB_ITEM[i]["ITEM_ReinforceCharID"]); commandGame.Parameters.AddWithValue("@ITEM_REINFORCECHARNAME", rTB_ITEM[i]["ITEM_REINFORCECHARNAME"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_1", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_1"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_2", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_2"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_3", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_3"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_4", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_4"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_5", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_5"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_6", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_6"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_7", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_7"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_8", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_8"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_9", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_9"]); commandGame.Parameters.AddWithValue("@ITEM_GROW_STAR_VALUE_10", rTB_ITEM[i]["ITEM_GROW_STAR_VALUE_10"]); Boolean flg = true; if (TB_ITEM_OPTION.Rows.Count > 0) { DataRow[] rTB_ITEM_OPTION = TB_ITEM_OPTION.Select("ITEM_DBIDX=" + old_ITEM_DBIDX); if (rTB_ITEM_OPTION.Length > 0) { commandGame.Parameters.AddWithValue("@Option_idx", rTB_ITEM_OPTION[0]["OPTION_DBIDX"]); commandGame.Parameters.AddWithValue("@Op_GenGol", rTB_ITEM_OPTION[0]["GenGol"]); commandGame.Parameters.AddWithValue("@Op_MinChub", rTB_ITEM_OPTION[0]["MinChub"]); commandGame.Parameters.AddWithValue("@Op_CheRyuk", rTB_ITEM_OPTION[0]["CheRyuk"]); commandGame.Parameters.AddWithValue("@Op_SimMek", rTB_ITEM_OPTION[0]["SimMek"]); commandGame.Parameters.AddWithValue("@Op_Life", rTB_ITEM_OPTION[0]["Life"]); commandGame.Parameters.AddWithValue("@Op_NaeRyuk", rTB_ITEM_OPTION[0]["NaeRyuk"]); commandGame.Parameters.AddWithValue("@Op_Shield", rTB_ITEM_OPTION[0]["Shield"]); commandGame.Parameters.AddWithValue("@Op_FireAttrRegist", rTB_ITEM_OPTION[0]["FireAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_WaterAttrRegist", rTB_ITEM_OPTION[0]["WaterAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_TreeAttrRegist", rTB_ITEM_OPTION[0]["TreeAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_GoldAttrRegist", rTB_ITEM_OPTION[0]["GoldAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_EarthAttrRegist", rTB_ITEM_OPTION[0]["EarthAttrRegist"]); commandGame.Parameters.AddWithValue("@Op_PhyAttack", rTB_ITEM_OPTION[0]["PhyAttack"]); commandGame.Parameters.AddWithValue("@Op_Critical", rTB_ITEM_OPTION[0]["Critical"]); commandGame.Parameters.AddWithValue("@Op_FireAttrAttack", rTB_ITEM_OPTION[0]["FireAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_WaterAttrAttack", rTB_ITEM_OPTION[0]["WaterAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_TreeAttrAttack", rTB_ITEM_OPTION[0]["TreeAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_GoldAttrAttack", rTB_ITEM_OPTION[0]["GoldAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_EarthAttrAttack", rTB_ITEM_OPTION[0]["EarthAttrAttack"]); commandGame.Parameters.AddWithValue("@Op_PhyDefense", rTB_ITEM_OPTION[0]["PhyDefense"]); flg = false; } } if (flg) { commandGame.Parameters.AddWithValue("@Option_idx", 0); commandGame.Parameters.AddWithValue("@Op_GenGol", 0); commandGame.Parameters.AddWithValue("@Op_MinChub", 0); commandGame.Parameters.AddWithValue("@Op_CheRyuk", 0); commandGame.Parameters.AddWithValue("@Op_SimMek", 0); commandGame.Parameters.AddWithValue("@Op_Life", 0); commandGame.Parameters.AddWithValue("@Op_NaeRyuk", 0); commandGame.Parameters.AddWithValue("@Op_Shield", 0); commandGame.Parameters.AddWithValue("@Op_FireAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_WaterAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_TreeAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_GoldAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_EarthAttrRegist", 0); commandGame.Parameters.AddWithValue("@Op_PhyAttack", 0); commandGame.Parameters.AddWithValue("@Op_Critical", 0); commandGame.Parameters.AddWithValue("@Op_FireAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_WaterAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_TreeAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_GoldAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_EarthAttrAttack", 0); commandGame.Parameters.AddWithValue("@Op_PhyDefense", 0); } flg = true; if (TB_ITEM_RARE.Rows.Count > 0) { DataRow[] rTB_ITEM_RARE = TB_ITEM_RARE.Select("ITEM_DBIDX=" + old_ITEM_DBIDX); if (rTB_ITEM_RARE.Length > 0) { commandGame.Parameters.AddWithValue("@Rare_idx", rTB_ITEM_RARE[0]["RARE_DBIDX"]); commandGame.Parameters.AddWithValue("@Ra_GenGol", rTB_ITEM_RARE[0]["GENGOL"]); commandGame.Parameters.AddWithValue("@Ra_MinChub", rTB_ITEM_RARE[0]["MINCHUB"]); commandGame.Parameters.AddWithValue("@Ra_CheRyuk", rTB_ITEM_RARE[0]["CHERYUK"]); commandGame.Parameters.AddWithValue("@Ra_SimMek", rTB_ITEM_RARE[0]["SIMMEK"]); commandGame.Parameters.AddWithValue("@Ra_Life", rTB_ITEM_RARE[0]["LIFE"]); commandGame.Parameters.AddWithValue("@Ra_NaeRyuk", rTB_ITEM_RARE[0]["NAERYUK"]); commandGame.Parameters.AddWithValue("@Ra_Shield", rTB_ITEM_RARE[0]["SHIELD"]); commandGame.Parameters.AddWithValue("@Ra_FireAttrRegist", rTB_ITEM_RARE[0]["FREGIST"]); commandGame.Parameters.AddWithValue("@Ra_WaterAttrRegist", rTB_ITEM_RARE[0]["WREGIST"]); commandGame.Parameters.AddWithValue("@Ra_TreeAttrRegist", rTB_ITEM_RARE[0]["TREGIST"]); commandGame.Parameters.AddWithValue("@Ra_GoldAttrRegist", rTB_ITEM_RARE[0]["GREGIST"]); commandGame.Parameters.AddWithValue("@Ra_EarthAttrRegist", rTB_ITEM_RARE[0]["EREGIST"]); commandGame.Parameters.AddWithValue("@Ra_PhyAttack", rTB_ITEM_RARE[0]["PHYATTACK"]); commandGame.Parameters.AddWithValue("@Ra_FireAttrAttack", rTB_ITEM_RARE[0]["FATTACK"]); commandGame.Parameters.AddWithValue("@Ra_WaterAttrAttack", rTB_ITEM_RARE[0]["WATTACK"]); commandGame.Parameters.AddWithValue("@Ra_TreeAttrAttack", rTB_ITEM_RARE[0]["TATTACK"]); commandGame.Parameters.AddWithValue("@Ra_GoldAttrAttack", rTB_ITEM_RARE[0]["GATTACK"]); commandGame.Parameters.AddWithValue("@Ra_EarthAttrAttack", rTB_ITEM_RARE[0]["EATTACK"]); commandGame.Parameters.AddWithValue("@Ra_PhyDefense", rTB_ITEM_RARE[0]["PHYDEFENSE"]); flg = false; } } if (flg) { commandGame.Parameters.AddWithValue("@Rare_idx", 0); commandGame.Parameters.AddWithValue("@Ra_GenGol", 0); commandGame.Parameters.AddWithValue("@Ra_MinChub", 0); commandGame.Parameters.AddWithValue("@Ra_CheRyuk", 0); commandGame.Parameters.AddWithValue("@Ra_SimMek", 0); commandGame.Parameters.AddWithValue("@Ra_Life", 0); commandGame.Parameters.AddWithValue("@Ra_NaeRyuk", 0); commandGame.Parameters.AddWithValue("@Ra_Shield", 0); commandGame.Parameters.AddWithValue("@Ra_FireAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_WaterAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_TreeAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_GoldAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_EarthAttrRegist", 0); commandGame.Parameters.AddWithValue("@Ra_PhyAttack", 0); commandGame.Parameters.AddWithValue("@Ra_FireAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_WaterAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_TreeAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_GoldAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_EarthAttrAttack", 0); commandGame.Parameters.AddWithValue("@Ra_PhyDefense", 0); } try { commandGame.ExecuteNonQuery(); new_ITEM_DBIDX = commandGame.Parameters["@RETURN_VALUE"].Value.ToString(); if (!dic_ITEM_DBIDX.ContainsKey(old_ITEM_DBIDX)) { dic_ITEM_DBIDX.Add(old_ITEM_DBIDX, new_ITEM_DBIDX); } } catch (System.Exception e5) { _info += string.Format("試圖往新GAME庫里插入角色 {0}的ITEM時候出錯", ConvertBig5ToUTF8(rTB_TB_CHARACTER["CHARACTER_NAME"].ToString())); _ex = e5.Message; throw e5; } } } //TB_ITEM END======================================================= //TB_SAVEDMOVEPOINT BEGIN======================================================= DataRow[] rTB_SAVEDMOVEPOINT = TB_SAVEDMOVEPOINT.Select("CHARACTER_IDX=" + old_Character_Idx); _sql = ""; for (int i = 0; i < rTB_SAVEDMOVEPOINT.Length; i++) { _sql += string.Format("insert into TB_SAVEDMOVEPOINT values({0},'{1}',{2},{3}) ;", new_Character_Idx, rTB_SAVEDMOVEPOINT[i]["SAVE_NAME"].ToString(), rTB_SAVEDMOVEPOINT[i]["MAP_NUM"].ToString(), rTB_SAVEDMOVEPOINT[i]["MAP_POINT"].ToString()); } try { if (_sql != "") { commandGame.Parameters.Clear(); commandGame.CommandText = _sql; commandGame.CommandType = CommandType.Text; commandGame.ExecuteNonQuery(); } } catch (System.Exception e4) { _info += string.Format("試圖往新GAME庫里插入角色 {0}的記憶石地圖位置時候出錯", rTB_TB_CHARACTER["CHARACTER_NAME"].ToString()); _ex = e4.Message; throw e4; } //TB_SAVEDMOVEPOINT END======================================================= sessionMsg = string.Format("角色 {0} 轉移成功
", ConvertBig5ToUTF8(rTB_TB_CHARACTER["CHARACTER_NAME"].ToString())); ShowMsg(Msg.OtherInfo); //System.Threading.Thread.Sleep(1000); } if (!dic_Character_Idx.ContainsKey("0")) { dic_Character_Idx.Add("0", "0"); } //character end------------------------------- //TB_SHOPITEMUSEINFO BEGIN======================================================= _sql = ""; foreach (DataRow rTB_SHOPITEMUSEINFO in TB_SHOPITEMUSEINFO.Rows) { old_Character_Idx = rTB_SHOPITEMUSEINFO["CHARACTER_IDX"].ToString(); try { new_Character_Idx = dic_Character_Idx[old_Character_Idx]; } catch { continue; } old_ITEM_DBIDX = rTB_SHOPITEMUSEINFO["ITEM_DBIDX"].ToString(); try { new_ITEM_DBIDX = dic_ITEM_DBIDX[old_ITEM_DBIDX]; } catch { continue; } string _USER_IDX = rTB_SHOPITEMUSEINFO["USER_IDX"].ToString(); if (!_USER_IDX.Equals("0")) { _USER_IDX = _propid.ToString(); } _sql += string.Format("insert into TB_SHOPITEMUSEINFO values({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}) ;", new_Character_Idx, rTB_SHOPITEMUSEINFO["ITEM_IDX"].ToString(), _USER_IDX, new_ITEM_DBIDX, rTB_SHOPITEMUSEINFO["ITEM_PARAM"].ToString(), rTB_SHOPITEMUSEINFO["BEGIN_TIME"].ToString(), rTB_SHOPITEMUSEINFO["REMAIN_TIME"].ToString(), rTB_SHOPITEMUSEINFO["ITEM_PARAM_VALUE"].ToString(), rTB_SHOPITEMUSEINFO["NEW_BEGIN_TIME"].ToString(), rTB_SHOPITEMUSEINFO["NEW_REMAIN_TIME"].ToString(), rTB_SHOPITEMUSEINFO["OWNERMAP"].ToString()); } try { if (_sql != "") { commandGame.Parameters.Clear(); commandGame.CommandText = _sql; commandGame.CommandType = CommandType.Text; commandGame.ExecuteNonQuery(); } } catch (System.Exception e7) { _info += string.Format("試圖往新GAME庫里插入百寶物品時間時候出錯"); _ex = e7.Message; throw e7; } //TB_SHOPITEMUSEINFO END======================================================= //TB_PETINFO BEGIN======================================================= _sql = ""; foreach (DataRow rTB_PETINFO in TB_PETINFO.Rows) { old_ITEM_DBIDX = rTB_PETINFO["SummonItemDBIdx"].ToString(); try { new_ITEM_DBIDX = dic_ITEM_DBIDX[old_ITEM_DBIDX]; } catch { continue; } _sql += string.Format("insert into TB_PETINFO values({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}) ;", _propid, new_ITEM_DBIDX, rTB_PETINFO["Kind"].ToString(), rTB_PETINFO["Grade"].ToString(), rTB_PETINFO["Stamina"].ToString(), rTB_PETINFO["FriendShip"].ToString(), rTB_PETINFO["Alive"].ToString(), rTB_PETINFO["Summon"].ToString(), rTB_PETINFO["Rest"].ToString(), rTB_PETINFO["Relevel"].ToString(), rTB_PETINFO["EndTime"].ToString()); } try { if (_sql != "") { commandGame.Parameters.Clear(); commandGame.CommandText = _sql; commandGame.CommandType = CommandType.Text; commandGame.ExecuteNonQuery(); } } catch (System.Exception e8) { _info += string.Format("試圖往新GAME庫里插入寵物時候出錯"); _ex = e8.Message; throw e8; } //TB_PETINFO END======================================================= //TB_TITANINFO BEGIN======================================================= _sql = ""; //commandGame.CommandText = "TitanInsert2"; //commandGame.CommandType = CommandType.StoredProcedure; foreach (DataRow rTB_TITANINFO in TB_TITANINFO.Rows) { old_Character_Idx = rTB_TITANINFO["RegisterIdx"].ToString(); try { new_Character_Idx = dic_Character_Idx[old_Character_Idx]; } catch { continue; } old_ITEM_DBIDX = rTB_TITANINFO["CallItemDBIdx"].ToString(); try { new_ITEM_DBIDX = dic_ITEM_DBIDX[old_ITEM_DBIDX]; } catch { continue; } string _USER_IDX = rTB_TITANINFO["UserID"].ToString(); if (!_USER_IDX.Equals("0")) { _USER_IDX = _propid.ToString(); } //old_TITAN_DBIDX = rTB_TITANINFO["DBIndex"].ToString(); //commandGame.Parameters.Clear(); //commandGame.Parameters.AddWithValue("@UserID", _propid); //commandGame.Parameters.AddWithValue("@CallItemDBIdx", new_ITEM_DBIDX); //commandGame.Parameters.AddWithValue("@Kind", rTB_TITANINFO["Kind"]); //commandGame.Parameters.AddWithValue("@Grade", rTB_TITANINFO["Grade"]); //commandGame.Parameters.AddWithValue("@Fuel", rTB_TITANINFO["Fuel"]); //commandGame.Parameters.AddWithValue("@Spell", rTB_TITANINFO["Spell"]); //commandGame.Parameters.AddWithValue("@RecallTime", rTB_TITANINFO["RecallTime"]); //commandGame.Parameters.AddWithValue("@RegisterIdx", new_Character_Idx); //commandGame.Parameters.AddWithValue("@bRiding", rTB_TITANINFO["bRiding"]); //commandGame.Parameters.AddWithValue("@Scale", rTB_TITANINFO["Scale"]); //commandGame.Parameters.AddWithValue("@MaintainTime", rTB_TITANINFO["MaintainTime"]); //commandGame.Parameters.AddWithValue("@Shield", rTB_TITANINFO["Shield"]); //Boolean flg = true; //if (TB_TITAN_EQUIP_ENDURANCE.Rows.Count > 0) //{ // DataRow[] rTB_TITAN_EQUIP_ENDURANCE = TB_TITAN_EQUIP_ENDURANCE.Select("DBIndex=" + old_TITAN_DBIDX); // if (rTB_TITAN_EQUIP_ENDURANCE.Length > 0) // { // string _USER_IDX = rTB_TITAN_EQUIP_ENDURANCE[0]["USER_IDX"].ToString(); // if (!_USER_IDX.Equals("0")) // { // _USER_IDX = _propid.ToString(); // } // commandGame.Parameters.AddWithValue("@ItemIdx", rTB_TITAN_EQUIP_ENDURANCE[0]["ItemIdx"]); // commandGame.Parameters.AddWithValue("@Endurance", rTB_TITAN_EQUIP_ENDURANCE[0]["Endurance"]); // commandGame.Parameters.AddWithValue("@USER_IDX", _USER_IDX); // flg = false; // } //} //if (flg) //{ // commandGame.Parameters.AddWithValue("@ItemIdx", 0); // commandGame.Parameters.AddWithValue("@Endurance", 0); // commandGame.Parameters.AddWithValue("@USER_IDX", 0); //} //try //{ // commandGame.ExecuteNonQuery(); //} //catch (System.Exception e9) //{ // _info += string.Format("試圖往新GAME庫里插入泰坦時候出錯"); // _ex = e9.Message; // throw e9; //} _sql += string.Format("insert into TB_TITANINFO values({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}) ;", _USER_IDX, new_ITEM_DBIDX, rTB_TITANINFO["Kind"].ToString(), rTB_TITANINFO["Grade"].ToString(), rTB_TITANINFO["Fuel"].ToString(), rTB_TITANINFO["Spell"].ToString(), rTB_TITANINFO["RecallTime"].ToString(), new_Character_Idx, rTB_TITANINFO["bRiding"].ToString(), rTB_TITANINFO["Scale"].ToString(), rTB_TITANINFO["MaintainTime"].ToString(), rTB_TITANINFO["Shield"].ToString()); } foreach (DataRow rTB_TITAN_EQUIP_ENDURANCE in TB_TITAN_EQUIP_ENDURANCE.Rows) { old_Character_Idx = rTB_TITAN_EQUIP_ENDURANCE["CharacterID"].ToString(); try { new_Character_Idx = dic_Character_Idx[old_Character_Idx]; } catch { continue; } old_ITEM_DBIDX = rTB_TITAN_EQUIP_ENDURANCE["DBIndex"].ToString(); try { new_ITEM_DBIDX = dic_ITEM_DBIDX[old_ITEM_DBIDX]; } catch { continue; } string _USER_IDX = rTB_TITAN_EQUIP_ENDURANCE["USER_IDX"].ToString(); if (!_USER_IDX.Equals("0")) { _USER_IDX = _propid.ToString(); } _sql += string.Format("insert into TB_TITAN_EQUIP_ENDURANCE values({0},{1},{2},{3},{4}) ;", new_ITEM_DBIDX, new_Character_Idx, rTB_TITAN_EQUIP_ENDURANCE["ItemIdx"].ToString(), rTB_TITAN_EQUIP_ENDURANCE["Endurance"].ToString(), _USER_IDX); } foreach (DataRow rTB_MUGONG in TB_MUGONG.Rows) { old_Character_Idx = rTB_MUGONG["CHARACTER_IDX"].ToString(); try { new_Character_Idx = dic_Character_Idx[old_Character_Idx]; } catch { continue; } _sql += string.Format("insert into TB_MUGONG values({0},{1},{2},{3},{4},{5},'{6}',{7}) ;", new_Character_Idx, rTB_MUGONG["MUGONG_IDX"].ToString(), rTB_MUGONG["MUGONG_EXPPOINT"].ToString(), rTB_MUGONG["MUGONG_SUNG"].ToString(), rTB_MUGONG["MUGONG_POSITION"].ToString(), rTB_MUGONG["MUGONG_QPOSITION"].ToString(), rTB_MUGONG["MUGONG_WEAR"].ToString(), rTB_MUGONG["MUGONG_OPTION"].ToString()); } try { if (_sql != "") { commandGame.Parameters.Clear(); commandGame.CommandText = _sql; commandGame.CommandType = CommandType.Text; commandGame.ExecuteNonQuery(); } } catch (System.Exception e9) { _info += string.Format("試圖往新GAME庫里插入泰坦時候出錯"); _ex = e9.Message; throw e9; } //TB_TITANINFO END======================================================= sessionMsg = "寵物,百寶物品,泰坦轉移成功
"; ShowMsg(Msg.OtherInfo); //_sqlTransactionWeb.Commit(); _sqlTransactionGame.Commit(); //connectionWeb.Dispose(); //connectionGame.Dispose(); //connectionWeb.Close(); //connectionGame.Close(); //success //5.MHLOG using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MHLOG"].ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand("", connection); command.CommandType = CommandType.Text; sql = "insert into log_info values(@0,@1,@2,getdate())"; command.CommandText = sql; command.Parameters.AddWithValue("@0", accountNo.Text.Trim()); command.Parameters.AddWithValue("@1", _old_propid.ToString()); if (old_Character_Idx_list.Length > 1000) { old_Character_Idx_list = old_Character_Idx_list.Substring(0, 999); } command.Parameters.AddWithValue("@2", old_Character_Idx_list); int has = command.ExecuteNonQuery(); } //TODO:Delete info ... this.checkNo.Text = ""; this.accountNo.Text = ""; this.userPWD.Text = ""; endTime = DateTime.Now; timeCost = GetTimeSpan(startTime, endTime); ShowMsg(Msg.Succeed); } catch (System.Exception ee) { //if (_sqlTransactionWeb != null) //{ _sqlTransactionWeb.Rollback(); } if (_sqlTransactionGame != null) { _sqlTransactionGame.Rollback(); } if (_ex.Equals(string.Empty)) { _ex = ee.Message; } WriteLog(); RollbackWebInfo(); ShowMsg(Msg.FailedAndTryAgain); } finally { ConcurrencyFlgClear(); if (connectionWeb != null) { connectionWeb.Dispose(); connectionWeb.Close(); } if (connectionGame != null) { connectionGame.Dispose(); connectionGame.Close(); } //if (_sqlTransactionWeb != null) //{ // _sqlTransactionWeb.Dispose(); // _sqlTransactionWeb = null; //} if (_sqlTransactionGame != null) { _sqlTransactionGame.Dispose(); _sqlTransactionGame = null; } Dispose(); } } private void WriteLog() { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MHLOG"].ConnectionString)) { connection.Open(); if (_info == "") { _info = "未知錯誤"; } if (_ex.Length > 1000) { _ex = _ex.Substring(0, 1000); } SqlCommand command = new SqlCommand(string.Format("insert into event_info values(@1,@2,@3,getdate())", _oldacctNo, _info, _ex), connection); command.Parameters.AddWithValue("@1", _acctNo); command.Parameters.AddWithValue("@2", _info); command.Parameters.AddWithValue("@3", _ex); command.CommandType = CommandType.Text; try { command.ExecuteNonQuery(); } catch { command = new SqlCommand(string.Format("insert into event_info values('{0}','{1}','{2}',getdate())", _oldacctNo, _info, ""), connection); command.CommandType = CommandType.Text; command.ExecuteNonQuery(); } } } private void RollbackWebInfo() { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["GameTo_MHCMEMBER"].ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand(string.Format("delete from chr_log_info where propid={0}", _propid), connection); command.CommandType = CommandType.Text; command.ExecuteNonQuery(); } } private void ConcurrencyFlgClear() { if (needClearFLg) { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MHLOG"].ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand("UPDATE concurrency_info SET flg = 0 where datediff(d,createtime,getdate())=0 ;", connection); command.CommandType = CommandType.Text; command.ExecuteNonQuery(); } } } private void ShowMsg(Msg msg) { string option = string.Empty; Boolean clearBG = true; switch (msg) { case Msg.FailedAndTryAgain: option = "轉區失敗,請再來一次!"; break; case Msg.Succeed: option = string.Format("轉區成功!耗时:{0},補償金幣:{1}", timeCost, amount.ToString()); break; case Msg.LoginFailed: option = "請核對帳戶密碼!"; break; case Msg.CompletedAlready: option = "該用戶已經完成過轉區"; break; case Msg.ValidationFailed: option = "驗證碼錯誤!"; break; case Msg.NoCharacter: option = "轉區成功,但帳戶無角色!"; break; case Msg.Wait: option = "請稍等再操作,前面有玩家正在轉區!"; break; case Msg.OtherInfo: option = sessionMsg; clearBG = false; break; default: break; } if (option != "") { string js = string.Empty; if (clearBG) { js = string.Format("", option); } else { js = string.Format("", option); } Response.Write(js); Response.Flush(); } } private enum Msg { FailedAndTryAgain, Succeed, LoginFailed, CompletedAlready, ValidationFailed, NoCharacter, Wait, OtherInfo }; protected string GetTimeSpan(DateTime startTime, DateTime endTime) { string timeSpan = string.Empty; TimeSpan ts = endTime - startTime; if (ts.Days > 0) timeSpan += ts.Days.ToString() + "天"; if (ts.Hours > 0) timeSpan += ts.Hours.ToString() + "小時"; if (ts.Minutes > 0) timeSpan += ts.Minutes.ToString() + "分鐘"; if (ts.Seconds > 0) timeSpan += ts.Seconds.ToString() + "秒"; return timeSpan; } public static string ConvertBig5ToUTF8(string source) { byte[] bytes; bytes = System.Text.Encoding.Default.GetBytes(source); System.Text.Decoder gbDecoder = System.Text.Encoding.GetEncoding("BIG5").GetDecoder(); int charCount = gbDecoder.GetCharCount(bytes, 0, bytes.Length); Char[] chars = new Char[charCount]; int charsDecodedCount = gbDecoder.GetChars(bytes, 0, bytes.Length, chars, 0); return new string(chars); } }