public static void SavePetTalentChanges(IRealmClient client, RealmPacketIn packet) { var petId = packet.ReadEntityId(); var chr = client.ActiveCharacter; var pet = chr.Map.GetObject(petId) as NPC; if (pet != null && pet.IsAlive) { if (pet == chr.ActivePet) { var count = packet.ReadInt32(); var talents = pet.Talents; for (var i = 0; i < count; i++) { var talentId = (TalentId)packet.ReadUInt32(); var rank = packet.ReadInt32(); talents.Learn(talentId, rank); } TalentHandler.SendTalentGroupList(talents); } } }
public static void HandleRemoveGlyph(IRealmClient client, RealmPacketIn packet) { uint num = packet.ReadUInt32(); Character activeCharacter = client.ActiveCharacter; activeCharacter.RemoveGlyph((byte)num); TalentHandler.SendTalentGroupList(activeCharacter.Talents); }
public static void HandleLearnTalent(IRealmClient client, RealmPacketIn packet) { TalentId id = (TalentId)packet.ReadUInt32(); int rank = packet.ReadInt32(); TalentCollection talents = client.ActiveCharacter.Talents; if (talents.Learn(id, rank) == null) { return; } TalentHandler.SendTalentGroupList(talents); }
public static void HandleSaveTalentGroup(IRealmClient client, RealmPacketIn packet) { int num = packet.ReadInt32(); TalentCollection talents = client.ActiveCharacter.Talents; for (int index = 0; index < num; ++index) { TalentId id = (TalentId)packet.ReadUInt32(); int rank = packet.ReadInt32(); talents.Learn(id, rank); } TalentHandler.SendTalentGroupList(talents); }
public static void HandlePetLearnTalent(IRealmClient client, RealmPacketIn packet) { EntityId id1 = packet.ReadEntityId(); Character activeCharacter = client.ActiveCharacter; NPC npc = activeCharacter.Map.GetObject(id1) as NPC; if (npc == null || !npc.IsAlive || npc != activeCharacter.ActivePet) { return; } TalentCollection talents = npc.Talents; TalentId id2 = (TalentId)packet.ReadUInt32(); int rank = packet.ReadInt32(); talents.Learn(id2, rank); TalentHandler.SendTalentGroupList(talents); }
public static void HandlePetLearnTalent(IRealmClient client, RealmPacketIn packet) { var petId = packet.ReadEntityId(); var chr = client.ActiveCharacter; var pet = chr.Map.GetObject(petId) as NPC; if (pet == null || !pet.IsAlive) { return; } if (pet != chr.ActivePet) { return; } var talents = pet.Talents; var talentId = (TalentId)packet.ReadUInt32(); var rank = packet.ReadInt32(); talents.Learn(talentId, rank); TalentHandler.SendTalentGroupList(talents); }
public static void SendTalentGroupList(TalentCollection talents) { TalentHandler.SendTalentGroupList(talents, talents.CurrentSpecIndex); }