Пример #1
0
        public static bool DestroyGuild(uint guildId, uint targetId)
        {
            if (guildId == 0)
            {
                return(false);
            }

            foreach (var g in _guilds.Values)
            {
                if (g != null && g.FealtyGuild == guildId)
                {
                    if (!DestroyGuild(g.Id, targetId))
                    {
                        return(false);
                    }
                }
            }

            var masterGuild = _guilds[guildId];

            masterGuild.DeleteFlag = true;
            masterGuild.SaveInfo();

            var guild = GetGuild(guildId);

            if (guild != null)
            {
                PlayerManager.SendToServer(new Packets.Game.TalkPacket(ChatType.GM, string.Format("Guild {0} has been terminated.", guild.Name)));
                PlayerManager.SendToServer(Packets.Game.GuildPackets.Create(GuildAction.DestroySyndicate, guildId, 0));

                Structures.Guild targetGuild = null;
                if (targetId != 0)
                {
                    targetGuild = GetGuild(targetId);
                }

                foreach (var user in PlayerManager.Select(p => p != null && p.GuildAttribute.GuildId == guildId))
                {
                    if (targetId == 0)
                    {
                        user.GuildAttribute.LeaveGuild(false, false);
                    }
                    else
                    {
                        user.GuildAttribute.SetIdRank(targetId, GuildRank.Member, false);
                    }
                }

                _guilds.Remove(guildId);
                if (guildId != 0)
                {
                    Database.ServerDatabase.Context.GuildAttributes.DeleteAttr(guildId);
                }
            }

            return(true);
        }
Пример #2
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);
        }
Пример #3
0
        public static bool Initialize()
        {
            var results = ServerDatabase.Context.Guilds.GetAll();

            foreach (var res in results)
            {
                var guild = new Structures.Guild();
                if (guild.Create(res))
                {
                    _guilds.Add(guild.Id, guild);
                }
            }

            var winnerID = ServerDatabase.Context.Events.GetWinner();

            if (winnerID != null)
            {
                GuildWar.CurrentWinner = GuildManager.GetGuild(winnerID.WinnerID);
            }

            return(true);
        }
        public static GuildAttrInfoPacket Create(Structures.GuildAttrInfoStruct info, Structures.Guild guild)
        {
            var packet = new GuildAttrInfoPacket();

            packet.GuildId = info.GuildId;
            packet.Rank    = info.Rank;
            //packet.EnrollmentDate = info.JoinDate;

            if (guild != null)
            {
                //packet.Unknown8 = 123456;
                packet.Fund = guild.Money;
                //packet.CP = guild.EMoney;
                packet.Donation    = (uint)info.SilverDonation;
                packet.Amount      = guild.Amount; // TODO: .GetSynAmount()
                packet.Leader      = guild.LeaderName;
                packet.MemberCount = (uint)guild.Amount;
                //packet.RequiredLevel = guild.RequiredLevel;
                //packet.RequiredMetempsychosis = guild.RequiredMetempsychosis;
                //packet.RequiredProfession = guild.RequiredProfession;
                // packet.Level = guild.Level;
            }

            return(packet);
        }