public bool Create(Structures.CreateGuildInfo info, bool save)
        {
            //if (_data != null) return false;

            _members = new List <MemberInfo>();
            _allies  = new uint[5];
            _enemies = new uint[5];

            _data = save ? new DbGuild {
                Id = 0
            } : ServerDatabase.Context.Guilds.GetById(info.GuildId);

            _data.Id         = info.GuildId;
            _data.Name       = info.Name;
            _data.Announce   = string.Empty;
            _data.LeaderId   = info.LeaderId;
            _data.LeaderName = info.LeaderName;
            _data.Money      = info.Money;

            _data.Amount = 0;     //info.DeleteFlag ? 0 : 1;

            if (save)
            {
                ServerDatabase.Context.Guilds.AddOrUpdate(_data);
                return(true);
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Creates a new guild with an empty database model.
        /// </summary>
        public Guild()
            : base()
        {
            DbGuild = new DbGuild();

            // Sets controller
            Guild = this;
        }
Пример #3
0
 public static GuildIdentity FromDb(DbAccount acc, DbGuild guild)
 {
     return(new GuildIdentity()
     {
         _id = guild.Id,
         _name = guild.Name,
         _rank = acc.GuildRank
     });
 }
Пример #4
0
        /// <summary>
        /// Creates a new guild.
        /// </summary>
        /// <param name="dbGuild">The database model association with the guild.</param>
        public Guild(DbGuild dbGuild)
            : base()
        {
            DbGuild = dbGuild;

            // Sets controller
            Guild = this;

            if (DbGuild.HasHouse)
            {
                CreateHouse();
            }
        }
Пример #5
0
        public GuildUnit(DbGuild guild)
        {
            Id         = guild.Id;
            Name       = guild.Name;
            MasterName = guild.Master.Name;
            Rank       = guild.Rank;
            Points     = guild.Points;

#if EP8_V2 || SHAIYA_US
            Message = Encoding.Unicode.GetBytes(guild.Message);
#else
            Message = Encoding.UTF8.GetBytes(guild.Message);
#endif
        }
Пример #6
0
        public async Task UpdateDbGuild(DbGuild guild)
        {
            var con = (MySqlConnection)_baseConnection.Clone();
            await con.OpenAsync();

            var cmd = con.CreateCommand();

            cmd.CommandText = "UPDATE Guilds SET prefix=@Prefix, premium=@Premium WHERE guildId=@Id;";
            cmd.Parameters.AddWithValue("Id", guild.GuildId);
            cmd.Parameters.AddWithValue("Prefix", guild.Prefix);
            cmd.Parameters.AddWithValue("Premium", guild.Premium);

            await cmd.ExecuteNonQueryAsync();

            DbGuild.GuildCache.AddToCache(guild);
        }
Пример #7
0
        private async Task <DbGuild> CreateGuild(string name, string message, Character master)
        {
            var guild = new DbGuild(name, message, master.Id, master.Country);

            _database.Guilds.Add(guild);

            var result = await _database.SaveChangesAsync();

            if (result > 0)
            {
                return(guild);
            }
            else
            {
                return(null);
            }
        }
Пример #8
0
        public static Guild FromDb(Database db, DbGuild guild)
        {
            var members = (from member in guild.Members
                           select db.GetAccount(member) into acc
                           where acc != null
                           orderby acc.GuildRank descending,
                           acc.GuildFame descending,
                           acc.Name ascending
                           select GuildMember.FromDb(acc)).ToList();

            return(new Guild()
            {
                _id = guild.Id,
                _name = guild.Name,
                _currentFame = guild.Fame,
                _totalFame = guild.TotalFame,
                _hallType = "Guild Hall " + guild.Level,
                _members = members
            });
        }
        public bool Create(DbGuild res)
        {
            if (_data != null)
            {
                return(false);
            }

            _data = res;

            if (_data.DeleteFlag)
            {
                return(false);
            }

            _members = new List <MemberInfo>();
            foreach (var info in ServerDatabase.Context.Guilds.GetMemberInfo((int)Id))
            {
                if (info.Rank == GuildRank.DeputyLeader)
                {
                    DeputyLeaders++;
                }
                _members.Add(new MemberInfo(info));
            }

            _allies  = new uint[5];
            _enemies = new uint[5];

            _allies[0] = Ally0;
            _allies[1] = Ally1;
            _allies[2] = Ally2;
            _allies[3] = Ally3;
            _allies[4] = Ally4;

            _enemies[0] = Enemy0;
            _enemies[1] = Enemy1;
            _enemies[2] = Enemy2;
            _enemies[3] = Enemy3;
            _enemies[4] = Enemy4;

            return(true);
        }
Пример #10
0
        /// <summary>
        /// Creates a new <see cref="Structures.Guild"/> from the <paramref name="info"/> provided.
        /// </summary>
        /// <returns>The id of the new guild</returns>
        public static uint CreateGuild(Structures.CreateGuildInfo info)
        {
            var dbGuild = new DbGuild
            {
                Name       = info.Name,
                Announce   = string.Empty,
                LeaderId   = info.LeaderId,
                LeaderName = info.LeaderName,
                Money      = info.Money
            };

            try
            {
                ServerDatabase.Context.Guilds.Add(dbGuild);
            }
            catch (Exception)
            {
                return(0);
            }
            info.GuildId = dbGuild.Id;

            if (GetGuild(info.GuildId) != null)
            {
                return(info.GuildId);
            }

            var guild = new Structures.Guild();

            if (guild.Create(info, true))
            {
                _guilds.Add(guild.Id, guild);

                var leader = PlayerManager.GetUser(info.LeaderId);
                if (leader != null)
                {
                    leader.GuildAttribute.Rank = GuildRank.GuildLeader;
                }
            }

            return(dbGuild.Id);
        }
Пример #11
0
        public Player(Client client) : base(client.Character.ObjectType, client.Random)
        {
            try
            {
                if (client.Account.Admin == true)
                {
                    Admin = 1;
                }
                Achievements    = new List <string>();
                ActualTask      = null;
                MonsterCaches   = new List <MonsterCache>();
                Task            = null;
                AccountType     = client.Account.AccountType;
                AccountPerks    = new AccountTypePerks(AccountType);
                AccountLifetime = client.Account.AccountLifetime;
                IsVip           = AccountLifetime != DateTime.MinValue;
                Client          = client;
                StatsManager    = new StatsManager(this, client.Random.CurrentSeed);
                Name            = client.Account.Name;
                AccountId       = client.Account.AccountId;
                FameCounter     = new FameCounter(this);
                Tokens          = client.Account.FortuneTokens;
                HpPotionPrice   = 5;
                MpPotionPrice   = 5;
                Level           = client.Character.Level == 0 ? 1 : client.Character.Level;
                Experience      = client.Character.Experience;
                ExperienceGoal  = GetExpGoal(Level);
                Stars           = AccountType >= (int)Core.config.AccountType.LEGENDS_OF_LOE_ACCOUNT ? 70 : GetStars();
                Texture1        = client.Character.Tex1;
                Texture2        = client.Character.Tex2;
                Credits         = client.Account.Credits;
                NameChosen      = client.Account.NameChosen;
                CurrentFame     = client.Account.Fame;
                Fame            = client.Character.Fame;
                PetHealing      = null;
                PetAttack       = null;
                if (client.Character.Pet != 0)
                {
                    PetHealing = new List <List <int> >();
                    PetAttack  = new List <int>();
                    PetID      = client.Character.Pet;
                    Tuple <int, int, double> HPData = PetHPHealing.MinMaxBonus(Resolve((ushort)PetID).ObjectDesc.HPTier, Stars);
                    Tuple <int, int, double> MPData = PetMPHealing.MinMaxBonus(Resolve((ushort)PetID).ObjectDesc.MPTier, Stars);
                    PetHealing.Add(new List <int> {
                        HPData.Item1, HPData.Item2, (int)((HPData.Item3 - 1) * 100)
                    });
                    PetHealing.Add(new List <int> {
                        MPData.Item1, MPData.Item2, (int)((MPData.Item3 - 1) * 100)
                    });
                    PetAttack.Add(7750 - Stars * 100);
                    PetAttack.Add(30 + Stars);
                    PetAttack.Add(Resolve((ushort)PetID).ObjectDesc.Projectiles[0].MinDamage);
                    PetAttack.Add(Resolve((ushort)PetID).ObjectDesc.Projectiles[0].MaxDamage);
                }
                LootDropBoostTimeLeft  = client.Character.LootDropTimer;
                lootDropBoostFreeTimer = LootDropBoost;
                LootTierBoostTimeLeft  = client.Character.LootTierTimer;
                lootTierBoostFreeTimer = LootTierBoost;
                FameGoal = (AccountType >= (int)Core.config.AccountType.LEGENDS_OF_LOE_ACCOUNT) ? 0 : GetFameGoal(FameCounter.ClassStats[ObjectType].BestFame);
                Glowing  = false;
                DbGuild guild = GameServer.Manager.Database.GetGuild(client.Account.GuildId);
                if (guild != null)
                {
                    Guild     = GameServer.Manager.Database.GetGuild(client.Account.GuildId).Name;
                    GuildRank = client.Account.GuildRank;
                }
                else
                {
                    Guild     = "";
                    GuildRank = -1;
                }
                HP = client.Character.HP <= 0 ? (int)ObjectDesc.MaxHP : client.Character.HP;
                MP = client.Character.MP;
                ConditionEffects = 0;
                OxygenBar        = 100;
                HasBackpack      = client.Character.HasBackpack == true;
                PlayerSkin       = Client.Account.OwnedSkins.Contains(Client.Character.Skin) ? Client.Character.Skin : 0;
                HealthPotions    = client.Character.HealthPotions < 0 ? 0 : client.Character.HealthPotions;
                MagicPotions     = client.Character.MagicPotions < 0 ? 0 : client.Character.MagicPotions;

                try
                {
                    Locked  = client.Account.Database.GetLockeds(client.Account);
                    Ignored = client.Account.Database.GetIgnoreds(client.Account);
                    Muted   = client.Account.Muted;
                }
                catch (Exception) { }

                if (HasBackpack)
                {
                    Item[] inv =
                        client.Character.Items.Select(
                            _ =>
                            _ == -1
                                    ? null
                                    : (GameServer.Manager.GameData.Items.ContainsKey((ushort)_) ? GameServer.Manager.GameData.Items[(ushort)_] : null))
                        .ToArray();
                    Item[] backpack =
                        client.Character.Backpack.Select(
                            _ =>
                            _ == -1
                                    ? null
                                    : (GameServer.Manager.GameData.Items.ContainsKey((ushort)_) ? GameServer.Manager.GameData.Items[(ushort)_] : null))
                        .ToArray();

                    Inventory = inv.Concat(backpack).ToArray();
                    XElement xElement = GameServer.Manager.GameData.ObjectTypeToElement[ObjectType].Element("SlotTypes");
                    if (xElement != null)
                    {
                        int[] slotTypes =
                            Utils.FromCommaSepString32(
                                xElement.Value);
                        Array.Resize(ref slotTypes, 20);
                        SlotTypes = slotTypes;
                    }
                }
                else
                {
                    Inventory =
                        client.Character.Items.Select(
                            _ =>
                            _ == -1
                                        ? null
                                        : (GameServer.Manager.GameData.Items.ContainsKey((ushort)_) ? GameServer.Manager.GameData.Items[(ushort)_] : null))
                        .ToArray();
                    XElement xElement = GameServer.Manager.GameData.ObjectTypeToElement[ObjectType].Element("SlotTypes");
                    if (xElement != null)
                    {
                        SlotTypes =
                            Utils.FromCommaSepString32(
                                xElement.Value);
                    }
                }
                Stats = (int[])client.Character.Stats.Clone();

                for (var i = 0; i < SlotTypes.Length; i++)
                {
                    if (SlotTypes[i] == 0)
                    {
                        SlotTypes[i] = 10;
                    }
                }

                if (Client.Account.AccountType >= (int)Core.config.AccountType.TUTOR_ACCOUNT)
                {
                    return;
                }

                for (var i = 0; i < 4; i++)
                {
                    if (Inventory[i]?.SlotType != SlotTypes[i])
                    {
                        Inventory[i] = null;
                    }
                }
            }
            catch (Exception) { }
        }
Пример #12
0
 public async Task CreateDbGuild(DbGuild guild)
 {
 }
Пример #13
0
 public void SendGuildListAdd(DbGuild guild) => _packetsHelper.SendGuildListAdd(Client, guild);
Пример #14
0
 public void SendGuildJoinResult(bool ok, DbGuild guild) => _packetsHelper.SendGuildJoinResult(Client, ok, guild);