public static void LearnSkill(Client client, PacketIn packet) { byte skillId = packet.ReadByte(); if(client.Character.Player.SkillPoints >= 1) { if(!client.Character.Skills.ContainsKey(skillId)) { using(ISession session = Server.Factory.OpenSession()) { PlayerSkill skill = new PlayerSkill(); skill.Level = 1; skill.PlayerId = client.Character.Player.PlayerId; skill.SkillIndex = (int)skillId; client.Character.Skills[skillId] = skill; client.Send(new Packets.SkillSet(skillId,(byte)1)); using(ITransaction transaction = session.BeginTransaction()) { session.Save(skill); transaction.Commit(); } } client.Character.Player.SkillPoints--; client.Send(new Packets.ValueChange(0x18,(byte)client.Character.Player.SkillPoints)); } } }
public void OnRequest(PlayerSkill skill, Character caster, Character target) { }
public void OnPassiveRemove(PlayerSkill skill, Character caster, byte level) { }
public void OnPassiveApply(PlayerSkill skill, Character caster, byte level) { }
public void OnExecute(PlayerSkill skill, Character caster, byte mode, byte level, Character target) { }