Exemple #1
0
        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);
            }
        }
Exemple #2
0
 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();
     }
 }
Exemple #3
0
 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());
     }
 }
Exemple #4
0
 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();
     }
 }
Exemple #5
0
 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");
         }
     }
 }
Exemple #7
0
        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");
                }
            }
        }
Exemple #8
0
        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();
     }
 }
Exemple #10
0
        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();
                }
            }
        }
Exemple #11
0
        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);
        }
Exemple #13
0
        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 *
            }
        }