public static Enums.AccountStatus Authenticate(Client.AuthClient client, string Account, string Password) { try { using (var sql = new SqlHandler(Program.Config.ReadString("AuthConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("AccountName", Account); cmd.AddWhereValue("AccountPassword", Password); cmd.Finish("DB_Accounts"); } if (!sql.Read()) { return(Enums.AccountStatus.Invalid_AccountID_Or_Password); } client.DatabaseUID = sql.ReadInt32("AccountID"); client.Server = sql.ReadByte("AccountServer"); client.Account = Account; client.Password = Password; using (var sql2 = new SqlHandler(Program.Config.ReadString("AuthConnectionString"))) { using (var cmd2 = new SqlCommandBuilder(sql2, SqlCommandType.UPDATE, true)) { cmd2.AddWhereValue("AccountID", client.DatabaseUID); if (sql.ReadBoolean("AccountBanned")) { DateTime banexpire = sql.ReadDateTime("AccountBanExpire"); if (DateTime.Now < banexpire) { return(Enums.AccountStatus.Account_Banned); } cmd2.AddUpdateValue("AccountBanned", false); } cmd2.AddUpdateValue("AccountLastLoginIP", client.NetworkClient.IP); cmd2.Finish("DB_Accounts"); } sql2.Execute(); } } return(Enums.AccountStatus.Ready); } catch (Exception e) { Console.WriteLine(e.ToString()); return(Enums.AccountStatus.Datebase_Error); } }
public static void DeleteGuild(Data.Guild guild) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.DELETE, true)) { cmd.AddWhereValue("GuildName", guild.Name); cmd.Finish("DB_Guilds"); } sql.Execute(); } }
private static bool PlayerExists(int DatabaseID) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("PlayerID", DatabaseID); cmd.Finish("DB_Players"); } return(sql.Read()); } }
public static void UpdateGuildInfo(Data.Guild guild, string Column, object Value) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true)) { cmd.AddWhereValue("GuildID", guild.DatabaseID); cmd.AddUpdateValue(Column, Value); cmd.Finish("DB_Guilds"); } sql.Execute(); } }
public static void UpdateNobilityDonation(int Identifier, string Column, object Value) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true)) { cmd.AddWhereValue("PlayerID", Identifier); cmd.AddUpdateValue(Column, Value); cmd.Finish("DB_NobilityBoard"); } sql.Execute(); } }
public static void SetRecordID(Data.ArenaInfo arena) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("PlayerID", arena.DatabaseID); cmd.Finish("DB_ArenaQualifier"); } if (sql.Read()) { arena.ArenaID = sql.ReadInt32("ArenaID"); } } }
public static void SetRecordID(Entities.GameClient client) { if (client.Nobility == null) { return; } using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("PlayerID", client.DatabaseUID); cmd.Finish("DB_NobilityBoard"); } if (sql.Read()) { client.Nobility.RecordID = sql.ReadInt32("NobilityID"); } } }
private static bool LoadGuildMembers(Data.Guild guild) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("PlayerGuild", guild.Name); cmd.Finish("DB_Players"); } while (sql.Read()) { Data.GuildMember member = new ProjectX_V3_Game.Data.GuildMember(); member.DatabaseUID = sql.ReadInt32("PlayerID"); member.JoinDate = Core.Kernel.TimeGet(Enums.TimeType.Day); //DateTime.Now; member.Name = sql.ReadString("PlayerName"); member.Level = sql.ReadByte("PlayerLevel"); member.MoneyDonation = sql.ReadUInt32("PlayerGuildDonation"); member.CPDonation = sql.ReadUInt32("PlayerGuildCPDonation"); member.Rank = (Enums.GuildRank)Enum.Parse(typeof(Enums.GuildRank), sql.ReadString("PlayerGuildRank")); if (!guild.Members.TryAdd(member.DatabaseUID, member.Name, member)) { return(false); } if (member.Rank == Enums.GuildRank.GuildLeader) { guild.Leader = member; } else if (member.Rank == Enums.GuildRank.DeputyLeader) { if (!guild.DeputyLeaders.TryAdd(member.DatabaseUID, member.Name, member)) { return(false); } } } } return(true); }
public static void SaveArenaInfo(Data.ArenaInfo arena) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true)) { cmd.AddWhereValue("PlayerID", arena.DatabaseID); cmd.AddUpdateValue("PlayerName", arena.Name); cmd.AddUpdateValue("ArenaLevel", arena.Level); cmd.AddUpdateValue("ArenaClass", arena.Class); cmd.AddUpdateValue("Mesh", arena.Mesh); cmd.AddUpdateValue("HonorPoints", arena.DatabaseID); cmd.AddUpdateValue("ArenaPoints", arena.ArenaPoints); cmd.AddUpdateValue("TotalWins", arena.ArenaTotalWins); cmd.AddUpdateValue("TotalWinsToday", arena.ArenaWinsToday); cmd.AddUpdateValue("TotalLoss", arena.ArenaTotalLoss); cmd.AddUpdateValue("TotalLossToday", arena.ArenaLossToday); cmd.Finish("DB_ArenaQualifier"); } sql.Execute(); } }
public static void UpdateAuthentication(Client.AuthClient client) { if (PlayerExists(client.DatabaseUID)) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true)) { cmd.AddWhereValue("PlayerID", client.DatabaseUID); cmd.AddUpdateValue("PlayerLastEntityUID", client.EntityUID); cmd.AddUpdateValue("PlayerLoginOK", true); cmd.Finish("DB_Players"); } sql.Execute(); } } else { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false)) { cmd.AddInsertValue("PlayerID", client.DatabaseUID); cmd.AddInsertValue("PlayerNew", true); cmd.AddInsertValue("PlayerAccount", client.Account); cmd.AddInsertValue("PlayerLastEntityUID", client.EntityUID); cmd.AddInsertValue("PlayerLoginOK", true); cmd.AddInsertValue("PlayerServer", client.Server); cmd.Finish("DB_Players"); } sql.Execute(); } } }
public static bool Create(Entities.GameClient leader, string Name) { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false)) { cmd.AddInsertValue("GuildName", Name); cmd.AddInsertValue("GuildBullentin", ""); cmd.AddInsertValue("GuildFund", (ulong)0); cmd.AddInsertValue("GuildCPsFund", (uint)0); cmd.AddInsertValue("GuildLevel", (byte)0); cmd.AddInsertValue("GuildAllie1", ""); cmd.AddInsertValue("GuildAllie2", ""); cmd.AddInsertValue("GuildAllie3", ""); cmd.AddInsertValue("GuildAllie4", ""); cmd.AddInsertValue("GuildAllie5", ""); cmd.AddInsertValue("GuildEnemy1", ""); cmd.AddInsertValue("GuildEnemy2", ""); cmd.AddInsertValue("GuildEnemy3", ""); cmd.AddInsertValue("GuildEnemy4", ""); cmd.AddInsertValue("GuildEnemy5", ""); cmd.Finish("DB_Guilds"); } sql.Execute(); } using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("GuildName", Name); cmd.Finish("DB_Guilds"); } if (!sql.Read()) { return(false); } Data.Guild newGuild = new ProjectX_V3_Game.Data.Guild(); newGuild.DatabaseID = sql.ReadUInt32("GuildID"); newGuild.Name = sql.ReadString("GuildName"); newGuild.Bullentin = sql.ReadString("GuildBullentin"); newGuild.MoneyDonation = sql.ReadUInt64("GuildFund"); newGuild.CPDonation = sql.ReadUInt32("GuildCPsFund"); newGuild.Level = sql.ReadByte("GuildLevel"); if (Core.Kernel.Guilds.TryAdd(newGuild.GuildID, newGuild.Name, newGuild)) { newGuild.Leader = new Data.GuildMember(leader); newGuild.Leader.Rank = Enums.GuildRank.GuildLeader; newGuild.Leader.JoinDate = Core.Kernel.TimeGet(Enums.TimeType.Day); newGuild.Members.TryAdd(leader.DatabaseUID, leader.Name, newGuild.Leader); leader.Guild = newGuild; leader.GuildMemberInfo = newGuild.Leader; leader.SendGuild(); Database.CharacterDatabase.Save(leader); return(true); } } return(false); }
/// <summary> /// Loads the map info. /// </summary> /// <returns>Returns true if the maps were loaded.</returns> public static bool LoadMaps() { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("\tLoading Maps..."); using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, false)) { cmd.Finish("DB_MapInfo"); } while (sql.Read()) { Maps.Map map = new ProjectX_V3_Game.Maps.Map( sql.ReadUInt16("MapID"), sql.ReadString("Name")); if (map.MapID == 0) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed to load maps. [MAPID]"); Console.ResetColor(); return(false); } map.MapType = (Enums.MapType)Enum.Parse(typeof(Enums.MapType), sql.ReadString("MapType")); ushort dmap = sql.ReadUInt16("DMapInfo"); if (dmap > 0) { map.DMapInfo = dmap; } map.InheritanceMap = sql.ReadUInt16("InheritanceMap"); using (var sqlflags = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd2 = new SqlCommandBuilder(sqlflags, SqlCommandType.SELECT, true)) { cmd2.AddWhereValue("MapID", map.MapID); cmd2.Finish("DB_MapFlags"); } while (sqlflags.Read()) { Enums.MapTypeFlags flag = (Enums.MapTypeFlags)Enum.Parse(typeof(Enums.MapTypeFlags), sqlflags.ReadString("Flag")); if (!map.Flags.TryAdd((ulong)flag, flag)) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed to load maps. [FLAGS] Failed at ID: {0}", map.MapID); Console.ResetColor(); return(false); } } } if (!Core.Kernel.Maps.TryAdd(map.MapID, map.Name, map)) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed to load maps. [MAP] Failed at ID: {0}", map.MapID); Console.ResetColor(); return(false); } } } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\tLoaded {0} Maps...", Core.Kernel.Maps.Count); return(true); }
public void LoadBot(Enums.BotType BotType, int botid, Maps.MapPoint location, Entities.GameClient Opponent) { switch (BotType) { #region afk bot case Enums.BotType.AFKBot: { using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString"))) { using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true)) { cmd.AddWhereValue("BotID", botid); cmd.Finish("DB_Bots"); } if (!sql.Read()) { return; } Original.Name = Core.NameGenerator.GetName(); if (string.IsNullOrEmpty(Original.Name) || string.IsNullOrWhiteSpace(Original.Name)) { return; } Original.Avatar = sql.ReadUInt16("BotAvatar"); Original.Model = sql.ReadUInt16("BotModel"); Original.HairStyle = sql.ReadUInt16("BotHairStyle"); Original.Transformation = sql.ReadUInt16("BotTransformation"); Original.Strength = sql.ReadUInt16("BotStrength"); Original.Agility = sql.ReadUInt16("BotAgility"); Original.Vitality = sql.ReadUInt16("BotVitality"); Original.Spirit = sql.ReadUInt16("BotSpirit"); Original.PKPoints = sql.ReadInt16("BotPKPoints"); Original.Level = sql.ReadByte("BotLevel"); Original.Class = (Enums.Class)Enum.Parse(typeof(Enums.Class), sql.ReadString("BotClass")); Original.PlayerTitle = (Enums.PlayerTitle)Enum.Parse(typeof(Enums.PlayerTitle), sql.ReadString("BotTitle")); Original.Reborns = sql.ReadByte("BotReborns"); Maps.Map map = location.Map; Original.Map = map; Original.LastMapID = Original.Map.MapID; Original.X = location.X; Original.Y = location.Y; Original.LastMapX = location.X; Original.LastMapY = location.Y; Original.LastX = location.X; Original.LastY = location.Y; Original.Action = Enums.ActionType.Sit; Original.Direction = (byte)ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(8); uint entityuid = (uint)ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(700000000, 999999999); Original.EntityUID = entityuid; if (!Original.Map.EnterMap(Original)) { return; } uint WeaponR = sql.ReadUInt32("BotWeaponR"); if (WeaponR > 0) { Data.ItemInfo item = Core.Kernel.ItemInfos[WeaponR].Copy(); Original.Equipments.Equip(item, Enums.ItemLocation.WeaponR, false, false); } uint WeaponL = sql.ReadUInt32("BotWeaponL"); if (WeaponL > 0) { Data.ItemInfo item = Core.Kernel.ItemInfos[WeaponL].Copy(); Original.Equipments.Equip(item, Enums.ItemLocation.WeaponL, false, false); } uint Armor = sql.ReadUInt32("BotArmor"); if (Armor > 0) { Data.ItemInfo item = Core.Kernel.ItemInfos[Armor].Copy(); Original.Equipments.Equip(item, Enums.ItemLocation.Armor, false, false); } uint Head = sql.ReadUInt32("BotHead"); if (Head > 0) { Data.ItemInfo item = Core.Kernel.ItemInfos[Head].Copy(); Original.Equipments.Equip(item, Enums.ItemLocation.Head, false, false); } bool UseSteed = sql.ReadBoolean("BotSteed"); if (UseSteed) { uint Steed = sql.ReadUInt32("BotSteedColor"); Data.ItemInfo item = Core.Kernel.ItemInfos[300000].Copy(); item.SocketAndRGB = Steed; Original.Equipments.Equip(item, Enums.ItemLocation.Steed, false, false); uint MountArmor = sql.ReadUInt32("BotMountArmor"); if (MountArmor > 0) { Data.ItemInfo item2 = Core.Kernel.ItemInfos[MountArmor].Copy(); Original.Equipments.Equip(item2, Enums.ItemLocation.SteedArmor, false, false); } Original.Action = Enums.ActionType.None; Original.AddStatusEffect1(Enums.Effect1.Riding); } uint Garment = sql.ReadUInt32("BotGarment"); if (Garment > 0) { Data.ItemInfo item = Core.Kernel.ItemInfos[Garment].Copy(); Original.Equipments.Equip(item, Enums.ItemLocation.Garment, false, false); } Original.LoggedIn = true; } break; } #endregion * #region duel bot case Enums.BotType.DuelBot: { if (Opponent == null) { return; } Original.Name = Core.NameGenerator.GetName(); if (string.IsNullOrEmpty(Original.Name) || string.IsNullOrWhiteSpace(Original.Name)) { return; } Original.Avatar = Opponent.Avatar; Original.Model = Opponent.Model; Original.HairStyle = Opponent.HairStyle; Original.Transformation = 0; Original.Strength = Opponent.Strength; Original.Agility = Opponent.Agility; Original.Vitality = Opponent.Vitality; Original.Spirit = Opponent.Spirit; Original.PKPoints = Opponent.PKPoints; Original.Level = Opponent.Level; Original.Class = Opponent.Class; Original.PlayerTitle = Opponent.PlayerTitle; Original.Reborns = Opponent.Reborns; Maps.Map map = Opponent.Map; Original.Map = map; Original.LastMapID = Original.Map.MapID; Original.X = Opponent.X; Original.Y = Opponent.Y; Original.LastMapX = Opponent.X; Original.LastMapY = Opponent.Y; Original.LastX = Opponent.X; Original.LastY = Opponent.Y; Original.Action = Enums.ActionType.None; Original.Direction = (byte)ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(8); uint entityuid = (uint)ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(700000000, 999999999); Original.EntityUID = entityuid; if (!Original.Map.EnterMap(Original)) { return; } Original.Equipments.ForceEquipments(Opponent.Equipments); Original.BaseEntity.CalculateBaseStats(); Original.HP = Original.MaxHP; Original.MP = Original.MaxMP; /* * uint WeaponR = sql.ReadUInt32("BotWeaponR"); * if (WeaponR > 0) * { * Data.ItemInfo item = Core.Kernel.ItemInfos[WeaponR].Copy(); * Original.Equipments.Equip(item, Enums.ItemLocation.WeaponR, false, false); * } * uint WeaponL = sql.ReadUInt32("BotWeaponL"); * if (WeaponL > 0) * { * Data.ItemInfo item = Core.Kernel.ItemInfos[WeaponL].Copy(); * Original.Equipments.Equip(item, Enums.ItemLocation.WeaponL, false, false); * } * uint Armor = sql.ReadUInt32("BotArmor"); * if (Armor > 0) * { * Data.ItemInfo item = Core.Kernel.ItemInfos[Armor].Copy(); * Original.Equipments.Equip(item, Enums.ItemLocation.Armor, false, false); * } * uint Head = sql.ReadUInt32("BotHead"); * if (Head > 0) * { * Data.ItemInfo item = Core.Kernel.ItemInfos[Head].Copy(); * Original.Equipments.Equip(item, Enums.ItemLocation.Head, false, false); * } * bool UseSteed = sql.ReadBoolean("BotSteed"); * if (UseSteed) * { * uint Steed = sql.ReadUInt32("BotSteedColor"); * Data.ItemInfo item = Core.Kernel.ItemInfos[300000].Copy(); * item.SocketAndRGB = Steed; * Original.Equipments.Equip(item, Enums.ItemLocation.Steed, false, false); * * uint MountArmor = sql.ReadUInt32("BotMountArmor"); * if (MountArmor > 0) * { * Data.ItemInfo item2 = Core.Kernel.ItemInfos[MountArmor].Copy(); * Original.Equipments.Equip(item2, Enums.ItemLocation.SteedArmor, false, false); * } * * Original.Action = Enums.ActionType.None; * Original.AddStatusEffect1(Enums.Effect1.Riding); * } * uint Garment = sql.ReadUInt32("BotGarment"); * if (Garment > 0) * { * Data.ItemInfo item = Core.Kernel.ItemInfos[Garment].Copy(); * Original.Equipments.Equip(item, Enums.ItemLocation.Garment, false, false); * }*/ Original.LoggedIn = true; break; } #endregion * } }