/// <summary> /// Sends spell info to the client. /// </summary> /// <param name="client">The client.</param> public void SendSpellToClient(Entities.GameClient client) { if (!client.LoggedIn) return; using (var spell = new Packets.SendSpellPacket()) { spell.ID = ID; spell.Level = Level; spell.Experience = Experience; client.Send(spell); } }
/// <summary> /// Sends spell info to the client. /// </summary> /// <param name="client">The client.</param> public void SendSpellToClient(Entities.GameClient client) { if (!client.LoggedIn) { return; } using (var spell = new Packets.SendSpellPacket()) { spell.ID = ID; spell.Level = Level; spell.Experience = Experience; client.Send(spell); } }
/// <summary> /// Adds spell exp. /// </summary> /// <param name="ID">The spell id.</param> /// <param name="amount">The amount of exp to add.</param> public void AddSpellExp(ushort ID, uint amount, bool second = false) { Data.SpellInfo spellinfo = SpellData.GetSpell(ID); amount *= Core.NumericConst.SpellRate; amount += (uint)(amount * _moongempercentage); spellinfo.Experience += amount; Data.Spell corespell = Core.Kernel.SpellInfos[ID][(byte)SpellData.GetSpell(ID).Level]; if (!Core.Kernel.SpellInfos[ID].ContainsKey((byte)(spellinfo.Level + 1))) return; if (Level < corespell.NeedLevel) return; if (LoggedIn && !second) { using (var msg = Packets.Message.MessageCore.CreateSystem2(Name, string.Format(Core.MessageConst.GAIN_SPELL_EXP, amount))) { Send(msg); } } if (spellinfo.Experience >= corespell.NeedExp) { spellinfo.Level++; spellinfo.Experience = 0; } if (this.LoggedIn) { Database.CharacterDatabase.SaveSpell(this, spellinfo); using (var spell = new Packets.SendSpellPacket()) { spell.ID = spellinfo.ID; spell.Level = spellinfo.Level; spell.Experience = spellinfo.Experience; Send(spell); } } }