Example #1
0
        public void NewBuff(int Id, bool charge = true)
        {
            GuildBuffInfo info = Envir.FindGuildBuffInfo(Id);

            if (info == null)
            {
                return;
            }

            GuildBuff buff = new GuildBuff()
            {
                Id     = Id,
                Info   = info,
                Active = true,
            };

            buff.ActiveTimeRemaining = buff.Info.TimeLimit;

            if (charge)
            {
                ChargeForBuff(buff);
            }

            BuffList.Add(buff);
            List <GuildBuff> NewBuff = new List <GuildBuff>
            {
                buff
            };

            SendServerPacket(new ServerPackets.GuildBuffList {
                ActiveBuffs = NewBuff
            });

            //now tell everyone our new sparepoints
            for (int i = 0; i < Ranks.Count; i++)
            {
                for (int j = 0; j < Ranks[i].Members.Count; j++)
                {
                    if (Ranks[i].Members[j].Player != null)
                    {
                        SendGuildStatus((PlayerObject)Ranks[i].Members[j].Player);
                    }
                }
            }

            NeedSave = true;
            RefreshAllStats();
        }
Example #2
0
        public GuildObject(BinaryReader reader)
        {
            int customversion = Envir.LoadCustomVersion;
            int version       = reader.ReadInt32();

            Guildindex = version;
            if (version == int.MaxValue)
            {
                version       = reader.ReadInt32();
                customversion = reader.ReadInt32();
                Guildindex    = reader.ReadInt32();
            }
            else
            {
                version  = Envir.LoadVersion;
                NeedSave = true;
            }
            Name            = reader.ReadString();
            Level           = reader.ReadByte();
            SparePoints     = reader.ReadByte();
            Experience      = reader.ReadInt64();
            Gold            = reader.ReadUInt32();
            Votes           = reader.ReadInt32();
            LastVoteAttempt = DateTime.FromBinary(reader.ReadInt64());
            Voting          = reader.ReadBoolean();
            int RankCount = reader.ReadInt32();

            Membercount = 0;
            for (int i = 0; i < RankCount; i++)
            {
                int index = i;
                Ranks.Add(new Rank(reader, true, Envir.LoadVersion)
                {
                    Index = index
                });
                Membercount += Ranks[i].Members.Count;
            }
            int ItemCount = reader.ReadInt32();

            for (int j = 0; j < ItemCount; j++)
            {
                if (Envir.Version > 28)
                {
                    if (!reader.ReadBoolean())
                    {
                        continue;
                    }
                }
                GuildStorageItem Guilditem = new GuildStorageItem()
                {
                    Item   = new UserItem(reader, version, customversion),
                    UserId = reader.ReadInt64()
                };

                if (SMain.Envir.BindItem(Guilditem.Item) && j < StoredItems.Length)
                {
                    StoredItems[j] = Guilditem;
                }
            }
            int BuffCount = reader.ReadInt32();

            if (version < 61)
            {
                for (int j = 0; j < BuffCount; j++)
                {
                    new GuildBuffOld(reader);
                }
            }
            else
            {
                for (int j = 0; j < BuffCount; j++)
                {
                    //new GuildBuff(reader);
                    BuffList.Add(new GuildBuff(reader));
                }
            }
            for (int j = 0; j < BuffList.Count; j++)
            {
                BuffList[j].Info = Envir.FindGuildBuffInfo(BuffList[j].Id);
            }
            int NoticeCount = reader.ReadInt32();

            for (int j = 0; j < NoticeCount; j++)
            {
                Notice.Add(reader.ReadString());
            }
            if (Level < Settings.Guild_ExperienceList.Count)
            {
                MaxExperience = Settings.Guild_ExperienceList[Level];
            }
            if (Level < Settings.Guild_MembercapList.Count)
            {
                MemberCap = Settings.Guild_MembercapList[Level];
            }

            if (Name == Settings.NewbieName)
            {
                MemberCap = 1000;
            }

            if (version >= 75)
            {
                FlagImage  = reader.ReadUInt16();
                FlagColour = Color.FromArgb(reader.ReadInt32());
            }

            if (version > 110)
            {
                GTRent  = DateTime.FromBinary(reader.ReadInt64());
                GTIndex = reader.ReadInt32();
            }

            if (version > 117)
            {
                WarWins   = reader.ReadInt32();
                WarLoses  = reader.ReadInt32();
                WarPoints = reader.ReadInt32();
            }
            if (Envir.LoadVersion > 143)
            {
                TaxRate = reader.ReadByte();
            }
        }