Example #1
0
        public static void LearnSkillRequest(IRealmClient client, RealmPacketIn packet)
        {
            short            skillId = packet.ReadInt16();
            byte             level   = packet.ReadByte();
            SkillLearnStatus status  = client.ActiveCharacter.PlayerSpells.TryLearnSpell(skillId, level);

            if (status == SkillLearnStatus.Ok)
            {
                return;
            }
            SendSkillLearnedResponse(status, client.ActiveCharacter, 0U, 0);
        }
Example #2
0
 public static void SendSkillLearnedResponse(SkillLearnStatus status, Character ownerChar, uint id, int level)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SkillLearned))
     {
         packet.WriteByte((byte)status);
         packet.WriteInt16(ownerChar.Spells.AvalibleSkillPoints);
         packet.WriteInt32(ownerChar.Money);
         packet.WriteInt16(id);
         packet.WriteByte(level);
         packet.WriteSkip(stab16);
         packet.WriteInt16(ownerChar.Asda2Strength);
         packet.WriteInt16(ownerChar.Asda2Agility);
         packet.WriteInt16(ownerChar.Asda2Stamina);
         packet.WriteInt16(ownerChar.Asda2Spirit);
         packet.WriteInt16(ownerChar.Asda2Intellect);
         packet.WriteInt16(ownerChar.Asda2Luck);
         packet.WriteInt16(0);
         packet.WriteInt16(0);
         packet.WriteInt16(0);
         packet.WriteInt16(0);
         packet.WriteInt16(0);
         packet.WriteInt16(0);
         packet.WriteInt16(ownerChar.Asda2Strength);
         packet.WriteInt16(ownerChar.Asda2Agility);
         packet.WriteInt16(ownerChar.Asda2Stamina);
         packet.WriteInt16(ownerChar.Asda2Spirit);
         packet.WriteInt16(ownerChar.Asda2Intellect);
         packet.WriteInt16(ownerChar.Asda2Luck);
         packet.WriteInt32(ownerChar.MaxHealth);
         packet.WriteInt16(ownerChar.MaxPower);
         packet.WriteInt32(ownerChar.Health);
         packet.WriteInt16(ownerChar.Power);
         packet.WriteInt16((short)ownerChar.MinDamage);
         packet.WriteInt16((short)ownerChar.MaxDamage);
         packet.WriteInt16(ownerChar.MinMagicDamage);
         packet.WriteInt16(ownerChar.MaxMagicDamage);
         packet.WriteInt16((short)ownerChar.Asda2MagicDefence);
         packet.WriteInt16((short)ownerChar.Asda2Defence);
         packet.WriteInt16((short)ownerChar.Asda2Defence);
         packet.WriteFloat(ownerChar.BlockChance);
         packet.WriteFloat(ownerChar.BlockValue);
         packet.WriteInt16(15);
         packet.WriteInt16(7);
         packet.WriteInt16(4);
         packet.WriteSkip(stub87);
         ownerChar.Send(packet, false);
     }
 }