/// <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); } }
/// <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); } }
/// <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); } } }