Ejemplo n.º 1
0
        /// <summary>
        /// Sends prof info to the client.
        /// </summary>
        /// <param name="client">The client.</param>
        public void SendProfToClient(Entities.GameClient client)
        {
            if (!client.LoggedIn)
                return;

            using (var spell = new Packets.SendProfPacket())
            {
                spell.ID = ID;
                spell.Level = Level;
                spell.Experience = Experience;
                client.Send(spell);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sends prof info to the client.
        /// </summary>
        /// <param name="client">The client.</param>
        public void SendProfToClient(Entities.GameClient client)
        {
            if (!client.LoggedIn)
            {
                return;
            }

            using (var spell = new Packets.SendProfPacket())
            {
                spell.ID         = ID;
                spell.Level      = Level;
                spell.Experience = Experience;
                client.Send(spell);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds prof exp.
        /// </summary>
        /// <param name="ID">The prof id.</param>
        /// <param name="amount">The amount of exp to add.</param>
        public void AddProfExp(ushort ID, uint amount, bool second = false)
        {
            Data.SpellInfo prof = null;
            if (SpellData.ContainsProf(ID))
                prof = SpellData.GetProf(ID);
            else
            {
                prof = new ProjectX_V3_Game.Data.SpellInfo();
                prof.Experience = 0;
                prof.Level = 0;
                prof.ID = ID;
                SpellData.AddProf(prof);
            }

            if (prof.Level >= 20)
                return;

            amount *= Core.NumericConst.ProfRate;
            prof.Experience += amount;

            if (LoggedIn && !second)
            {
                using (var msg = Packets.Message.MessageCore.CreateSystem2(Name, string.Format(Core.MessageConst.GAIN_PROF_EXP, amount)))
                {
                    Send(msg);
                }
            }

            uint required = Calculations.LevelCalculations.GetProfExperience((byte)prof.Level);
            if (prof.Experience >= required)
            {
                prof.Level++;
                prof.Experience = 0;
            }
            if (this.LoggedIn)
            {
                Database.CharacterDatabase.SaveProf(this, prof);
                using (var spell = new Packets.SendProfPacket())
                {
                    spell.ID = prof.ID;
                    spell.Level = prof.Level;
                    spell.Experience = prof.Experience;
                    Send(spell);
                }
            }
        }