public static void SaveHouseMap(MySql database, string mapID, HouseMap map) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } SaveMapDump(database, mapID, map); // Save extra data associated with instanced maps database.UpdateOrInsert("map_house_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Owner", map.Owner), database.CreateColumn(false, "Room", map.Room.ToString()), database.CreateColumn(false, "StartX", map.StartX.ToString()), database.CreateColumn(false, "StartY", map.StartY.ToString()) }); if (localTransaction) { database.EndTransaction(); } }
public static void SaveRDungeonMap(MySql database, string mapID, RDungeonMap map) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } SaveMapDump(database, mapID, map); // Save extra data associated with instanced maps database.UpdateOrInsert("map_rdungeon_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "RDungeonIndex", map.RDungeonIndex.ToString()), database.CreateColumn(false, "RDungeonFloor", map.RDungeonFloor.ToString()), database.CreateColumn(false, "StartX", map.StartX.ToString()), database.CreateColumn(false, "StartY", map.StartY.ToString()) }); if (localTransaction) { database.EndTransaction(); } }
public static void SaveShop(int shopNum) { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM shop WHERE num = \'" + shopNum + "\'"); database.ExecuteNonQuery("DELETE FROM shop_trade WHERE num = \'" + shopNum + "\'"); database.UpdateOrInsert("shop", new IDataColumn[] { database.CreateColumn(false, "num", shopNum.ToString()), database.CreateColumn(false, "name", shops[shopNum].Name), database.CreateColumn(false, "greeting", shops[shopNum].JoinSay), database.CreateColumn(false, "farewell", shops[shopNum].LeaveSay) }); for (int i = 0; i < Constants.MAX_TRADES; i++) { database.UpdateOrInsert("shop_trade", new IDataColumn[] { database.CreateColumn(false, "num", shopNum.ToString()), database.CreateColumn(false, "trade_num", i.ToString()), database.CreateColumn(false, "item", shops[shopNum].Items[i].GetItem.ToString()), database.CreateColumn(false, "cost_num", shops[shopNum].Items[i].GiveItem.ToString()), database.CreateColumn(false, "cost_val", shops[shopNum].Items[i].GiveValue.ToString()) }); } database.EndTransaction(); } }
public static void SaveEvo(int evoNum) { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM evolution WHERE num = \'" + evoNum + "\'"); database.ExecuteNonQuery("DELETE FROM evolution_branch WHERE num = \'" + evoNum + "\'"); database.UpdateOrInsert("evolution", new IDataColumn[] { database.CreateColumn(false, "num", evoNum.ToString()), database.CreateColumn(false, "name", evolution[evoNum].Name), database.CreateColumn(false, "species", evolution[evoNum].Species.ToString()) }); for (int i = 0; i < evolution[evoNum].Branches.Count; i++) { database.UpdateOrInsert("evolution_branch", new IDataColumn[] { database.CreateColumn(false, "num", evoNum.ToString()), database.CreateColumn(false, "branch", i.ToString()), database.CreateColumn(false, "name", evolution[evoNum].Branches[i].Name), database.CreateColumn(false, "species", evolution[evoNum].Branches[i].NewSpecies.ToString()), database.CreateColumn(false, "req_script", evolution[evoNum].Branches[i].ReqScript.ToString()), database.CreateColumn(false, "data1", evolution[evoNum].Branches[i].Data1.ToString()), database.CreateColumn(false, "data2", evolution[evoNum].Branches[i].Data2.ToString()), database.CreateColumn(false, "data3", evolution[evoNum].Branches[i].Data3.ToString()) }); } database.EndTransaction(); } }
public static void SaveDungeon(int dungeonNum) { if (dungeons.Dungeons.ContainsKey(dungeonNum) == false) { dungeons.Dungeons.Add(dungeonNum, new Dungeon()); } using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM dungeon WHERE num = \'" + dungeonNum + "\'"); database.ExecuteNonQuery("DELETE FROM dungeon_smap WHERE num = \'" + dungeonNum + "\'"); database.ExecuteNonQuery("DELETE FROM dungeon_rmap WHERE num = \'" + dungeonNum + "\'"); database.ExecuteNonQuery("DELETE FROM dungeon_script WHERE num = \'" + dungeonNum + "\'"); database.UpdateOrInsert("dungeon", new IDataColumn[] { database.CreateColumn(false, "num", dungeonNum.ToString()), database.CreateColumn(false, "name", dungeons[dungeonNum].Name), database.CreateColumn(false, "rescue", dungeons[dungeonNum].AllowsRescue.ToIntString()) }); for (int i = 0; i < dungeons[dungeonNum].StandardMaps.Count; i++) { database.UpdateOrInsert("dungeon_smap", new IDataColumn[] { database.CreateColumn(false, "num", dungeonNum.ToString()), database.CreateColumn(false, "map_id", dungeons[dungeonNum].StandardMaps[i].MapNum.ToString()), database.CreateColumn(false, "difficulty", ((int)dungeons[dungeonNum].StandardMaps[i].Difficulty).ToString()), database.CreateColumn(false, "boss_map", dungeons[dungeonNum].StandardMaps[i].IsBadGoalMap.ToIntString()) }); } for (int i = 0; i < dungeons[dungeonNum].RandomMaps.Count; i++) { database.UpdateOrInsert("dungeon_rmap", new IDataColumn[] { database.CreateColumn(false, "num", dungeonNum.ToString()), database.CreateColumn(false, "rdungeon_num", dungeons[dungeonNum].RandomMaps[i].RDungeonIndex.ToString()), database.CreateColumn(false, "rdungeon_floor", dungeons[dungeonNum].RandomMaps[i].RDungeonFloor.ToString()), database.CreateColumn(false, "difficulty", ((int)dungeons[dungeonNum].RandomMaps[i].Difficulty).ToString()), database.CreateColumn(false, "boss_map", dungeons[dungeonNum].RandomMaps[i].IsBadGoalMap.ToIntString()) }); } for (int i = 0; i < dungeons[dungeonNum].ScriptList.Count; i++) { database.UpdateOrInsert("dungeon_script", new IDataColumn[] { database.CreateColumn(false, "num", dungeonNum.ToString()), database.CreateColumn(false, "script_key", dungeons[dungeonNum].ScriptList.KeyByIndex(i).ToString()), database.CreateColumn(false, "script_args", dungeons[dungeonNum].ScriptList.ValueByIndex(i).ToString()) }); } database.EndTransaction(); } }
public static void SaveStory(int storyNum) { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM story WHERE num = \'" + storyNum + "\'"); database.ExecuteNonQuery("DELETE FROM story_segment WHERE num = \'" + storyNum + "\'"); database.ExecuteNonQuery("DELETE FROM story_param WHERE num = \'" + storyNum + "\'"); database.UpdateOrInsert("story", new IDataColumn[] { database.CreateColumn(false, "num", storyNum.ToString()), database.CreateColumn(false, "revision", stories[storyNum].Revision.ToString()), database.CreateColumn(false, "name", stories[storyNum].Name), database.CreateColumn(false, "story_start", stories[storyNum].StoryStart.ToString()) }); for (int i = 0; i < stories[storyNum].Segments.Count; i++) { bool isCheckPoint = false; for (int j = 0; j < stories[storyNum].ExitAndContinue.Count; j++) { if (stories[storyNum].ExitAndContinue[j] == i) { isCheckPoint = true; break; } } database.UpdateOrInsert("story_segment", new IDataColumn[] { database.CreateColumn(false, "num", storyNum.ToString()), database.CreateColumn(false, "segment", i.ToString()), database.CreateColumn(false, "action", ((int)stories[storyNum].Segments[i].Action).ToString()), database.CreateColumn(false, "checkpoint", isCheckPoint.ToIntString()) }); for (int j = 0; j < stories[storyNum].Segments[i].Parameters.Count; j++) { database.UpdateOrInsert("story_param", new IDataColumn[] { database.CreateColumn(false, "num", storyNum.ToString()), database.CreateColumn(false, "segment", i.ToString()), database.CreateColumn(false, "param_key", stories[storyNum].Segments[i].Parameters.KeyByIndex(j)), database.CreateColumn(false, "param_val", stories[storyNum].Segments[i].Parameters.ValueByIndex(j)) }); } } database.EndTransaction(); } }
private void ConectarDataBaseBtn_Click(object sender, EventArgs e) { string connectionString = "Server=localhost;Database=mydb;Uid=root;Pwd=sebas1995;"; MySql mySql = new MySql(); mySql.ConnectionString = connectionString; mySql.OpenConnection(); mySql.BeginTransaction(); dataGridView1.DataSource = mySql.QuerySQL("Select * from Clientes"); mySql.CommitTransaction(); mySql.CloseConnection(); MessageBox.Show("Conexión exitosa"); }
public static void SaveMove(int moveNum) { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM move WHERE num = \'" + moveNum + "\'"); database.UpdateOrInsert("move", new IDataColumn[] { database.CreateColumn(false, "num", moveNum.ToString()), database.CreateColumn(false, "name", moves[moveNum].Name), database.CreateColumn(false, "max_pp", moves[moveNum].MaxPP.ToString()), database.CreateColumn(false, "effect_type", ((int)moves[moveNum].EffectType).ToString()), database.CreateColumn(false, "element", ((int)moves[moveNum].Element).ToString()), database.CreateColumn(false, "category", ((int)moves[moveNum].MoveCategory).ToString()), database.CreateColumn(false, "range_type", ((int)moves[moveNum].RangeType).ToString()), database.CreateColumn(false, "range_dist", moves[moveNum].Range.ToString()), database.CreateColumn(false, "target", ((int)moves[moveNum].TargetType).ToString()), database.CreateColumn(false, "data1", moves[moveNum].Data1.ToString()), database.CreateColumn(false, "data2", moves[moveNum].Data2.ToString()), database.CreateColumn(false, "data3", moves[moveNum].Data3.ToString()), database.CreateColumn(false, "effect_data1", moves[moveNum].AdditionalEffectData1.ToString()), database.CreateColumn(false, "effect_data2", moves[moveNum].AdditionalEffectData2.ToString()), database.CreateColumn(false, "effect_data3", moves[moveNum].AdditionalEffectData3.ToString()), database.CreateColumn(false, "accuracy", moves[moveNum].Accuracy.ToString()), database.CreateColumn(false, "hit_time", moves[moveNum].HitTime.ToString()), database.CreateColumn(false, "hit_freeze", moves[moveNum].HitFreeze.ToIntString()), database.CreateColumn(false, "per_player", moves[moveNum].PerPlayer.ToIntString()), database.CreateColumn(false, "key_effect", moves[moveNum].KeyItem.ToString()), database.CreateColumn(false, "sound", moves[moveNum].Sound.ToString()), database.CreateColumn(false, "attack_anim_type", ((int)moves[moveNum].AttackerAnim.AnimationType).ToString()), database.CreateColumn(false, "attack_anim_index", moves[moveNum].AttackerAnim.AnimationIndex.ToString()), database.CreateColumn(false, "attack_anim_speed", moves[moveNum].AttackerAnim.FrameSpeed.ToString()), database.CreateColumn(false, "attack_anim_cycle", moves[moveNum].AttackerAnim.Repetitions.ToString()), database.CreateColumn(false, "travel_anim_type", ((int)moves[moveNum].TravelingAnim.AnimationType).ToString()), database.CreateColumn(false, "travel_anim_index", moves[moveNum].TravelingAnim.AnimationIndex.ToString()), database.CreateColumn(false, "travel_anim_speed", moves[moveNum].TravelingAnim.FrameSpeed.ToString()), database.CreateColumn(false, "travel_anim_cycle", moves[moveNum].TravelingAnim.Repetitions.ToString()), database.CreateColumn(false, "landed_anim_type", ((int)moves[moveNum].DefenderAnim.AnimationType).ToString()), database.CreateColumn(false, "landed_anim_index", moves[moveNum].DefenderAnim.AnimationIndex.ToString()), database.CreateColumn(false, "landed_anim_speed", moves[moveNum].DefenderAnim.FrameSpeed.ToString()), database.CreateColumn(false, "landed_anim_cycle", moves[moveNum].DefenderAnim.Repetitions.ToString()), }); database.EndTransaction(); } }
public static void SaveNpc(int npcNum) { if (npcs.Npcs.ContainsKey(npcNum) == false) { npcs.Npcs.Add(npcNum, new Npc()); } using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM npc WHERE num = \'" + npcNum + "\'"); database.ExecuteNonQuery("DELETE FROM npc_drop WHERE npc_num = \'" + npcNum + "\'"); database.UpdateOrInsert("npc", new IDataColumn[] { database.CreateColumn(false, "num", npcNum.ToString()), database.CreateColumn(false, "name", npcs[npcNum].Name), database.CreateColumn(false, "attack_say", npcs[npcNum].AttackSay), database.CreateColumn(false, "species", npcs[npcNum].Species.ToString()), database.CreateColumn(false, "form", npcs[npcNum].Form.ToString()), database.CreateColumn(false, "behavior", ((int)npcs[npcNum].Behavior).ToString()), database.CreateColumn(false, "shiny_chance", npcs[npcNum].ShinyChance.ToString()), database.CreateColumn(false, "dawn_spawn", npcs[npcNum].SpawnsAtDawn.ToIntString()), database.CreateColumn(false, "day_spawn", npcs[npcNum].SpawnsAtDay.ToIntString()), database.CreateColumn(false, "dusk_spawn", npcs[npcNum].SpawnsAtDusk.ToIntString()), database.CreateColumn(false, "night_spawn", npcs[npcNum].SpawnsAtNight.ToIntString()), database.CreateColumn(false, "ai_script", npcs[npcNum].AIScript), database.CreateColumn(false, "recruit_rate", npcs[npcNum].RecruitRate.ToString()), database.CreateColumn(false, "move1", npcs[npcNum].Moves[0].ToString()), database.CreateColumn(false, "move2", npcs[npcNum].Moves[1].ToString()), database.CreateColumn(false, "move3", npcs[npcNum].Moves[2].ToString()), database.CreateColumn(false, "move4", npcs[npcNum].Moves[3].ToString()), }); for (int i = 0; i < npcs[npcNum].Drops.Length; i++) { database.UpdateOrInsert("npc_drop", new IDataColumn[] { database.CreateColumn(false, "npc_num", npcNum.ToString()), database.CreateColumn(false, "drop_num", i.ToString()), database.CreateColumn(false, "item_num", npcs[npcNum].Drops[i].ItemNum.ToString()), database.CreateColumn(false, "item_val", npcs[npcNum].Drops[i].ItemValue.ToString()), database.CreateColumn(false, "tag", npcs[npcNum].Drops[i].Tag), database.CreateColumn(false, "chance", npcs[npcNum].Drops[i].Chance.ToString()), }); } database.EndTransaction(); } }
public static void SaveItem(int itemNum) { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Data)) { MySql database = dbConnection.Database; database.BeginTransaction(); database.ExecuteNonQuery("DELETE FROM item WHERE num = \'" + itemNum + "\'"); database.UpdateOrInsert("item", new IDataColumn[] { database.CreateColumn(false, "num", itemNum.ToString()), database.CreateColumn(false, "name", items[itemNum].Name), database.CreateColumn(false, "info", items[itemNum].Desc), database.CreateColumn(false, "pic", items[itemNum].Pic.ToString()), database.CreateColumn(false, "item_type", ((int)items[itemNum].Type).ToString()), database.CreateColumn(false, "data1", items[itemNum].Data1.ToString()), database.CreateColumn(false, "data2", items[itemNum].Data2.ToString()), database.CreateColumn(false, "data3", items[itemNum].Data3.ToString()), database.CreateColumn(false, "price", items[itemNum].Price.ToString()), database.CreateColumn(false, "stack_cap", items[itemNum].StackCap.ToString()), database.CreateColumn(false, "bound", items[itemNum].Bound.ToIntString()), database.CreateColumn(false, "loseable", items[itemNum].Loseable.ToIntString()), database.CreateColumn(false, "rarity", items[itemNum].Rarity.ToString()), database.CreateColumn(false, "req_data1", items[itemNum].ReqData1.ToString()), database.CreateColumn(false, "req_data2", items[itemNum].ReqData2.ToString()), database.CreateColumn(false, "req_data3", items[itemNum].ReqData3.ToString()), database.CreateColumn(false, "req_data4", items[itemNum].ReqData4.ToString()), database.CreateColumn(false, "req_data5", items[itemNum].ReqData5.ToString()), database.CreateColumn(false, "scripted_req", items[itemNum].ScriptedReq.ToString()), database.CreateColumn(false, "add_hp", items[itemNum].AddHP.ToString()), database.CreateColumn(false, "add_pp", items[itemNum].AddPP.ToString()), database.CreateColumn(false, "add_atk", items[itemNum].AddAttack.ToString()), database.CreateColumn(false, "add_def", items[itemNum].AddDefense.ToString()), database.CreateColumn(false, "add_spatk", items[itemNum].AddSpAtk.ToString()), database.CreateColumn(false, "add_spdef", items[itemNum].AddSpDef.ToString()), database.CreateColumn(false, "add_speed", items[itemNum].AddSpeed.ToString()), database.CreateColumn(false, "add_exp", items[itemNum].AddEXP.ToString()), database.CreateColumn(false, "attack_speed", items[itemNum].AttackSpeed.ToString()), database.CreateColumn(false, "recruit_bonus", items[itemNum].RecruitBonus.ToString()) }); database.EndTransaction(); } }
public static void SaveInstancedMap(MySql database, string mapID, InstancedMap map) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } SaveMapDump(database, mapID, map); // Save extra data associated with instanced maps database.UpdateOrInsert("map_instanced_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "MapBase", map.MapBase.ToString()) }); if (localTransaction) { database.EndTransaction(); } }
public static void SaveStandardMap(MySql database, string mapID, Map map) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } // Save the raw map SaveRawMap(database, mapID, map); // Save extra data associated with standard maps database.UpdateOrInsert("map_standard_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Instanced", map.Instanced.ToIntString()) }); if (localTransaction) { database.EndTransaction(); } }
public static void SaveMapDump(MySql database, string mapID, MapDump mapDump) { mapID = database.VerifyValueString(mapID); bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } SaveRawMap(database, mapID, mapDump); // Save map state data database.UpdateOrInsert("mapstate_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "ActivationTime", mapDump.ActivationTime.ToString()), database.CreateColumn(false, "ProcessingPaused", mapDump.ProcessingPaused.ToIntString()), database.CreateColumn(false, "SpawnMarker", mapDump.SpawnMarker.ToString()), database.CreateColumn(false, "NpcSpawnWait", mapDump.NpcSpawnWait.ToString()), database.CreateColumn(false, "TempChange", mapDump.TempChange.ToIntString()), database.CreateColumn(false, "CurrentWeather", mapDump.CurrentWeather.ToString()) }); // Save active item data MultiRowInsert multiRowInsert = new MultiRowInsert(database, "mapstate_activeitem", "MapID", "Slot", "Number", "Value", "Sticky", "Tag", "Hidden", "X", "Y", "TimeRemaining", "ItemOwner"); for (int i = 0; i < mapDump.ActiveItem.Length; i++) { if (mapDump.ActiveItem[i].Num > 0) { MapItem item = mapDump.ActiveItem[i]; multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, item.Num, item.Value); multiRowInsert.AddColumnData(item.Sticky.ToIntString(), item.Tag, item.Hidden.ToIntString()); multiRowInsert.AddColumnData(item.X, item.Y, item.TimeRemaining); multiRowInsert.AddColumnData(item.PlayerFor); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npcs multiRowInsert.UpdateParameters("mapstate_activenpc_data", new string[] {"MapID", "MapNpcSlot", "Name", "Shiny", "Form", "Level", "NpcNumber", "Sex", "AttackTimer", "PauseTimer", "StatusAilment", "StatusAilmentCounter", "HPStepCounter", "Target" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.Name, npc.Shiny.ToString()); multiRowInsert.AddColumnData(npc.Form, npc.Level, npc.Num, (int)npc.Sex); multiRowInsert.AddColumnData(npc.AttackTimer, npc.PauseTimer, (int)npc.StatusAilment, npc.StatusAilmentCounter, npc.HPStepCounter); multiRowInsert.AddColumnData(npc.Target); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc held items multiRowInsert.UpdateParameters("mapstate_activenpc_helditem", new string[] {"MapID", "MapNpcSlot", "ItemNumber", "Amount", "Sticky", "Tag" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0 && mapDump.ActiveNpc[i].HeldItem.Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); //multiRowInsert.AddColumnData(npc.ItemActive.ToIntString()); //if (npc.HeldItem != null) { // The npc is holding an item - save the held item information multiRowInsert.AddColumnData(npc.HeldItem.Num, npc.HeldItem.Amount); multiRowInsert.AddColumnData(npc.HeldItem.Sticky.ToIntString(), npc.HeldItem.Tag); //} else { // The npc is not holding an item! Save default information // multiRowInsert.AddColumnData(-1, 0, 0); // multiRowInsert.AddColumnData(""); //} multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc locations multiRowInsert.UpdateParameters("mapstate_activenpc_location", new string[] { "MapID", "MapNpcSlot", "X", "Y", "Direction" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.X, npc.Y, (int)npc.Direction); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc stats multiRowInsert.UpdateParameters("mapstate_activenpc_stats", new string[] { "MapID", "MapNpcSlot", "IQ", "HP", "HPRemainder", "MaxHPBonus", "AtkBonus", "DefBonus", "SpdBonus", "SpclAtkBonus", "SpclDefBonus", "AttackBuff", "DefenseBuff", "SpAtkBuff", "SpDefBuff", "SpeedBuff", "AccuracyBuff", "EvasionBuff" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.IQ, npc.HP, npc.HPRemainder, npc.MaxHPBonus, npc.AtkBonus, npc.DefBonus, npc.SpdBonus, npc.SpclAtkBonus, npc.SpclDefBonus, npc.AttackBuff, npc.DefenseBuff, npc.SpAtkBuff, npc.SpDefBuff, npc.SpeedBuff, npc.AccuracyBuff, npc.EvasionBuff); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc moves multiRowInsert.UpdateParameters("mapstate_activenpc_moves", new string[] { "MapID", "MapNpcSlot", "MoveSlot", "CurrentPP", "MaxPP", "MoveNum" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { for (int n = 0; n < npc.Moves.Length; n++) { if (npc.Moves[n].MoveNum > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, n); multiRowInsert.AddColumnData(npc.Moves[n].CurrentPP, npc.Moves[n].MaxPP, npc.Moves[n].MoveNum); //multiRowInsert.AddColumnData(npc.Moves[n].Sealed.ToIntString()); multiRowInsert.AddRowClosing(); } } } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc mobility //multiRowInsert.UpdateParameters("mapstate_activenpc_mobility", new string[] { "MapID", "MapNpcSlot", "MobilitySlot", "Mobile" }); //for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { // MapNpc npc = mapDump.ActiveNpc[i]; // for (int n = 0; n < npc.Mobility.Length; n++) { // multiRowInsert.AddRowOpening(); // multiRowInsert.AddColumnData(mapID); // multiRowInsert.AddColumnData(i, n); // multiRowInsert.AddColumnData(npc.Mobility[n].ToIntString()); // multiRowInsert.AddRowClosing(); // } //} //database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc volatile status multiRowInsert.UpdateParameters("mapstate_activenpc_volatilestatus", new string[] { "MapID", "MapNpcSlot", "StatusIndex", "Name", "Emoticon", "Counter", "Tag" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { for (int n = 0; n < npc.VolatileStatus.Count; n++) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, n); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Name); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Emoticon); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Counter); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Tag); multiRowInsert.AddRowClosing(); } } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save map status multiRowInsert.UpdateParameters("mapstate_mapstatus", new string[] { "MapID", "StatusIndex", "Name", "Tag", "GraphicEffect", "Counter" }); for (int i = 0; i < mapDump.TempStatus.Count; i++) { MapStatus status = mapDump.TempStatus[i]; multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(status.Name); multiRowInsert.AddColumnData(status.Tag); multiRowInsert.AddColumnData(status.GraphicEffect); multiRowInsert.AddColumnData(status.Counter); multiRowInsert.AddRowClosing(); } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); if (localTransaction) { database.EndTransaction(); } }
public static void SaveRawMap(MySql database, string mapID, RawMap rawMap) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } // Delete old map, if it exists DeleteMap(database, mapID); // Save map general information database.UpdateOrInsert("map_general", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Revision", rawMap.Revision.ToString()), database.CreateColumn(false, "MaxX", rawMap.MaxX.ToString()), database.CreateColumn(false, "MaxY", rawMap.MaxY.ToString()) }); // Save map data database.UpdateOrInsert("map_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Name", rawMap.Name), database.CreateColumn(false, "Moral", rawMap.Moral.ToString()), database.CreateColumn(false, "Music", rawMap.Music), database.CreateColumn(false, "Indoors", rawMap.Indoors.ToIntString()), database.CreateColumn(false, "Weather", rawMap.Weather.ToString()), database.CreateColumn(false, "Darkness", rawMap.Darkness.ToString()), database.CreateColumn(false, "HungerEnabled", rawMap.HungerEnabled.ToIntString()), database.CreateColumn(false, "RecruitmentEnabled", rawMap.RecruitEnabled.ToIntString()), database.CreateColumn(false, "ExpEnabled", rawMap.ExpEnabled.ToIntString()), database.CreateColumn(false, "TimeLimit", rawMap.TimeLimit.ToString()), database.CreateColumn(false, "MinNpcs", rawMap.MinNpcs.ToString()), database.CreateColumn(false, "MaxNpcs", rawMap.MaxNpcs.ToString()), database.CreateColumn(false, "NpcSpawnTime", rawMap.NpcSpawnTime.ToString()) }); // Save map switchovers database.UpdateOrInsert("map_switchovers", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "UpMap", rawMap.Up.ToString()), database.CreateColumn(false, "DownMap", rawMap.Down.ToString()), database.CreateColumn(false, "LeftMap", rawMap.Left.ToString()), database.CreateColumn(false, "RightMap", rawMap.Right.ToString()) }); // Save map npc presets MultiRowInsert multiRowInsert = new MultiRowInsert(database, "map_npcs", "MapID", "Slot", "Number", "SpawnX", "SpawnY", "MinLevel", "MaxLevel", "AppearanceRate", "StartStatus", "StartStatusCounter", "StartStatusChance"); if (rawMap.Npc.Count > 0) { for (int i = 0; i < rawMap.Npc.Count; i++) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, rawMap.Npc[i].NpcNum, rawMap.Npc[i].SpawnX, rawMap.Npc[i].SpawnY, rawMap.Npc[i].MinLevel, rawMap.Npc[i].MaxLevel, rawMap.Npc[i].AppearanceRate, rawMap.Npc[i].StartStatus, rawMap.Npc[i].StartStatusCounter, rawMap.Npc[i].StartStatusChance); multiRowInsert.AddRowClosing(); } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); } // Save map tiles multiRowInsert.UpdateParameters("map_tiles", new string[] { "MapID", "X", "Y", "Ground", "GroundAnim", "Mask", "MaskAnim", "Mask2", "Mask2Anim", "Fringe", "FringeAnim", "Fringe2", "Fringe2Anim", "Type", "Data1", "Data2", "Data3", "String1", "String2", "String3", "Light", "GroundTileset", "GroundAnimTileset", "MaskTileset", "MaskAnimTileset", "Mask2Tileset", "Mask2AnimTileset", "FringeTileset", "FringeAnimTileset", "Fringe2Tileset", "Fringe2AnimTileset" }); for (int x = 0; x <= rawMap.MaxX; x++) { for (int y = 0; y <= rawMap.MaxY; y++) { if (rawMap.Tile[x, y] == null) { rawMap.Tile[x, y] = new Tile(); } multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(x, y); Tile tile = rawMap.Tile[x, y]; multiRowInsert.AddColumnData(tile.Ground, tile.GroundAnim, tile.Mask, tile.Anim, tile.Mask2, tile.M2Anim, tile.Fringe, tile.FAnim, tile.Fringe2, tile.F2Anim, tile.Type, tile.Data1, tile.Data2, tile.Data3); multiRowInsert.AddColumnData(tile.String1, tile.String2, tile.String3); multiRowInsert.AddColumnData(tile.RDungeonMapValue, tile.GroundSet, tile.GroundAnimSet, tile.MaskSet, tile.AnimSet, tile.Mask2Set, tile.M2AnimSet, tile.FringeSet, tile.FAnimSet, tile.Fringe2Set, tile.F2AnimSet); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); if (localTransaction) { database.EndTransaction(); } }
public static void SaveMapDump(MySql database, string mapID, MapDump mapDump) { mapID = database.VerifyValueString(mapID); bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } SaveRawMap(database, mapID, mapDump); // Save map state data database.UpdateOrInsert("mapstate_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "ActivationTime", mapDump.ActivationTime.ToString()), database.CreateColumn(false, "ProcessingPaused", mapDump.ProcessingPaused.ToIntString()), database.CreateColumn(false, "SpawnMarker", mapDump.SpawnMarker.ToString()), database.CreateColumn(false, "NpcSpawnWait", mapDump.NpcSpawnWait.ToString()), database.CreateColumn(false, "TempChange", mapDump.TempChange.ToIntString()), database.CreateColumn(false, "CurrentWeather", mapDump.CurrentWeather.ToString()) }); // Save active item data MultiRowInsert multiRowInsert = new MultiRowInsert(database, "mapstate_activeitem", "MapID", "Slot", "Number", "Value", "Sticky", "Tag", "Hidden", "X", "Y", "TimeRemaining", "ItemOwner"); for (int i = 0; i < mapDump.ActiveItem.Length; i++) { if (mapDump.ActiveItem[i].Num > 0) { MapItem item = mapDump.ActiveItem[i]; multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, item.Num, item.Value); multiRowInsert.AddColumnData(item.Sticky.ToIntString(), item.Tag, item.Hidden.ToIntString()); multiRowInsert.AddColumnData(item.X, item.Y, item.TimeRemaining); multiRowInsert.AddColumnData(item.PlayerFor); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npcs multiRowInsert.UpdateParameters("mapstate_activenpc_data", new string[] { "MapID", "MapNpcSlot", "Name", "Shiny", "Form", "Level", "NpcNumber", "Sex", "AttackTimer", "PauseTimer", "StatusAilment", "StatusAilmentCounter", "HPStepCounter", "Target" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.Name, npc.Shiny.ToString()); multiRowInsert.AddColumnData(npc.Form, npc.Level, npc.Num, (int)npc.Sex); multiRowInsert.AddColumnData(npc.AttackTimer, npc.PauseTimer, (int)npc.StatusAilment, npc.StatusAilmentCounter, npc.HPStepCounter); multiRowInsert.AddColumnData(npc.Target); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc held items multiRowInsert.UpdateParameters("mapstate_activenpc_helditem", new string[] { "MapID", "MapNpcSlot", "ItemNumber", "Amount", "Sticky", "Tag" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0 && mapDump.ActiveNpc[i].HeldItem.Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); //multiRowInsert.AddColumnData(npc.ItemActive.ToIntString()); //if (npc.HeldItem != null) { // The npc is holding an item - save the held item information multiRowInsert.AddColumnData(npc.HeldItem.Num, npc.HeldItem.Amount); multiRowInsert.AddColumnData(npc.HeldItem.Sticky.ToIntString(), npc.HeldItem.Tag); //} else { // The npc is not holding an item! Save default information // multiRowInsert.AddColumnData(-1, 0, 0); // multiRowInsert.AddColumnData(""); //} multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc locations multiRowInsert.UpdateParameters("mapstate_activenpc_location", new string[] { "MapID", "MapNpcSlot", "X", "Y", "Direction" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.X, npc.Y, (int)npc.Direction); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc stats multiRowInsert.UpdateParameters("mapstate_activenpc_stats", new string[] { "MapID", "MapNpcSlot", "IQ", "HP", "HPRemainder", "MaxHPBonus", "AtkBonus", "DefBonus", "SpdBonus", "SpclAtkBonus", "SpclDefBonus", "AttackBuff", "DefenseBuff", "SpAtkBuff", "SpDefBuff", "SpeedBuff", "AccuracyBuff", "EvasionBuff" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(npc.IQ, npc.HP, npc.HPRemainder, npc.MaxHPBonus, npc.AtkBonus, npc.DefBonus, npc.SpdBonus, npc.SpclAtkBonus, npc.SpclDefBonus, npc.AttackBuff, npc.DefenseBuff, npc.SpAtkBuff, npc.SpDefBuff, npc.SpeedBuff, npc.AccuracyBuff, npc.EvasionBuff); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc moves multiRowInsert.UpdateParameters("mapstate_activenpc_moves", new string[] { "MapID", "MapNpcSlot", "MoveSlot", "CurrentPP", "MaxPP", "MoveNum" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { for (int n = 0; n < npc.Moves.Length; n++) { if (npc.Moves[n].MoveNum > 0) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, n); multiRowInsert.AddColumnData(npc.Moves[n].CurrentPP, npc.Moves[n].MaxPP, npc.Moves[n].MoveNum); //multiRowInsert.AddColumnData(npc.Moves[n].Sealed.ToIntString()); multiRowInsert.AddRowClosing(); } } } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc mobility //multiRowInsert.UpdateParameters("mapstate_activenpc_mobility", new string[] { "MapID", "MapNpcSlot", "MobilitySlot", "Mobile" }); //for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { // MapNpc npc = mapDump.ActiveNpc[i]; // for (int n = 0; n < npc.Mobility.Length; n++) { // multiRowInsert.AddRowOpening(); // multiRowInsert.AddColumnData(mapID); // multiRowInsert.AddColumnData(i, n); // multiRowInsert.AddColumnData(npc.Mobility[n].ToIntString()); // multiRowInsert.AddRowClosing(); // } //} //database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save active npc volatile status multiRowInsert.UpdateParameters("mapstate_activenpc_volatilestatus", new string[] { "MapID", "MapNpcSlot", "StatusIndex", "Name", "Emoticon", "Counter", "Tag" }); for (int i = 0; i < mapDump.ActiveNpc.Length; i++) { MapNpc npc = mapDump.ActiveNpc[i]; if (mapDump.ActiveNpc[i].Num > 0) { for (int n = 0; n < npc.VolatileStatus.Count; n++) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, n); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Name); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Emoticon); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Counter); multiRowInsert.AddColumnData(npc.VolatileStatus[n].Tag); multiRowInsert.AddRowClosing(); } } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); // Save map status multiRowInsert.UpdateParameters("mapstate_mapstatus", new string[] { "MapID", "StatusIndex", "Name", "Tag", "GraphicEffect", "Counter" }); for (int i = 0; i < mapDump.TempStatus.Count; i++) { MapStatus status = mapDump.TempStatus[i]; multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i); multiRowInsert.AddColumnData(status.Name); multiRowInsert.AddColumnData(status.Tag); multiRowInsert.AddColumnData(status.GraphicEffect); multiRowInsert.AddColumnData(status.Counter); multiRowInsert.AddRowClosing(); } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); if (localTransaction) { database.EndTransaction(); } }
public static void SaveRawMap(MySql database, string mapID, RawMap rawMap) { bool localTransaction = false; if (database.IsTransactionActive == false) { database.BeginTransaction(); localTransaction = true; } // Delete old map, if it exists DeleteMap(database, mapID); // Save map general information database.UpdateOrInsert("map_general", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Revision", rawMap.Revision.ToString()), database.CreateColumn(false, "MaxX", rawMap.MaxX.ToString()), database.CreateColumn(false, "MaxY", rawMap.MaxY.ToString()) }); // Save map data database.UpdateOrInsert("map_data", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "Name", rawMap.Name), database.CreateColumn(false, "Moral", rawMap.Moral.ToString()), database.CreateColumn(false, "Music", rawMap.Music), database.CreateColumn(false, "Indoors", rawMap.Indoors.ToIntString()), database.CreateColumn(false, "Weather", rawMap.Weather.ToString()), database.CreateColumn(false, "Darkness", rawMap.Darkness.ToString()), database.CreateColumn(false, "HungerEnabled", rawMap.HungerEnabled.ToIntString()), database.CreateColumn(false, "RecruitmentEnabled", rawMap.RecruitEnabled.ToIntString()), database.CreateColumn(false, "ExpEnabled", rawMap.ExpEnabled.ToIntString()), database.CreateColumn(false, "TimeLimit", rawMap.TimeLimit.ToString()), database.CreateColumn(false, "MinNpcs", rawMap.MinNpcs.ToString()), database.CreateColumn(false, "MaxNpcs", rawMap.MaxNpcs.ToString()), database.CreateColumn(false, "NpcSpawnTime", rawMap.NpcSpawnTime.ToString()) }); // Save map switchovers database.UpdateOrInsert("map_switchovers", new IDataColumn[] { database.CreateColumn(false, "MapID", mapID), database.CreateColumn(false, "UpMap", rawMap.Up.ToString()), database.CreateColumn(false, "DownMap", rawMap.Down.ToString()), database.CreateColumn(false, "LeftMap", rawMap.Left.ToString()), database.CreateColumn(false, "RightMap", rawMap.Right.ToString()) }); // Save map npc presets MultiRowInsert multiRowInsert = new MultiRowInsert(database, "map_npcs", "MapID", "Slot", "Number", "SpawnX", "SpawnY", "MinLevel", "MaxLevel", "AppearanceRate", "StartStatus", "StartStatusCounter", "StartStatusChance"); if (rawMap.Npc.Count > 0) { for (int i = 0; i < rawMap.Npc.Count; i++) { multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(i, rawMap.Npc[i].NpcNum, rawMap.Npc[i].SpawnX, rawMap.Npc[i].SpawnY, rawMap.Npc[i].MinLevel, rawMap.Npc[i].MaxLevel, rawMap.Npc[i].AppearanceRate, rawMap.Npc[i].StartStatus, rawMap.Npc[i].StartStatusCounter, rawMap.Npc[i].StartStatusChance); multiRowInsert.AddRowClosing(); } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); } // Save map tiles multiRowInsert.UpdateParameters("map_tiles", new string[] {"MapID", "X", "Y", "Ground", "GroundAnim", "Mask", "MaskAnim", "Mask2", "Mask2Anim", "Fringe", "FringeAnim", "Fringe2", "Fringe2Anim", "Type", "Data1", "Data2", "Data3", "String1", "String2", "String3", "Light", "GroundTileset", "GroundAnimTileset", "MaskTileset", "MaskAnimTileset", "Mask2Tileset", "Mask2AnimTileset", "FringeTileset", "FringeAnimTileset", "Fringe2Tileset", "Fringe2AnimTileset" }); for (int x = 0; x <= rawMap.MaxX; x++) { for (int y = 0; y <= rawMap.MaxY; y++) { if (rawMap.Tile[x, y] == null) { rawMap.Tile[x, y] = new Tile(); } multiRowInsert.AddRowOpening(); multiRowInsert.AddColumnData(mapID); multiRowInsert.AddColumnData(x, y); Tile tile = rawMap.Tile[x, y]; multiRowInsert.AddColumnData(tile.Ground, tile.GroundAnim, tile.Mask, tile.Anim, tile.Mask2, tile.M2Anim, tile.Fringe, tile.FAnim, tile.Fringe2, tile.F2Anim, tile.Type, tile.Data1, tile.Data2, tile.Data3); multiRowInsert.AddColumnData(tile.String1, tile.String2, tile.String3); multiRowInsert.AddColumnData(tile.RDungeonMapValue, tile.GroundSet, tile.GroundAnimSet, tile.MaskSet, tile.AnimSet, tile.Mask2Set, tile.M2AnimSet, tile.FringeSet, tile.FAnimSet, tile.Fringe2Set, tile.F2AnimSet); multiRowInsert.AddRowClosing(); } } database.ExecuteNonQuery(multiRowInsert.GetSqlQuery()); if (localTransaction) { database.EndTransaction(); } }