void HandleConfirmRespecWipe(ConfirmRespecWipe confirmRespecWipe) { Creature unit = GetPlayer().GetNPCIfCanInteractWith(confirmRespecWipe.RespecMaster, NPCFlags.Trainer, NPCFlags2.None); if (unit == null) { Log.outDebug(LogFilter.Network, "WORLD: HandleTalentWipeConfirm - {0} not found or you can't interact with him.", confirmRespecWipe.RespecMaster.ToString()); return; } if (confirmRespecWipe.RespecType != SpecResetType.Talents) { Log.outDebug(LogFilter.Network, "WORLD: HandleConfirmRespecWipe - reset type {0} is not implemented.", confirmRespecWipe.RespecType); return; } if (!unit.CanResetTalents(_player)) { return; } if (!_player.PlayerTalkClass.GetGossipMenu().HasMenuItemType((uint)GossipOption.Unlearntalents)) { return; } // remove fake death if (GetPlayer().HasUnitState(UnitState.Died)) { GetPlayer().RemoveAurasByType(AuraType.FeignDeath); } if (!GetPlayer().ResetTalents()) { GetPlayer().SendRespecWipeConfirm(ObjectGuid.Empty, 0); return; } GetPlayer().SendTalentsInfoData(); unit.CastSpell(GetPlayer(), 14867, true); //spell: "Untalent Visual Effect" }