public void EndStable(Mobile from, BaseCreature pet) { if (Deleted || !from.CheckAlive()) { return; } if (!this.InRange(from.Location, 14)) { return; } if (!pet.Controlled || pet.ControlMaster != from) { SayTo(from, 1042562); // You do not own that pet! } else if (!pet.Tamable && !pet.IsGolem) { SayTo(from, 1048053); // You can't stable that! } else if (pet.IsDeadPet) { SayTo(from, 1049668); // Living pets only, please. } else if (pet.Summoned) { SayTo(from, 502673); // I can not stable summoned creatures. } else if (pet.Body.IsHuman) { SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn. } else if ((pet is PackLlama || pet is PackHorse || pet is Beetle) && (pet.Backpack != null && pet.Backpack.Items.Count > 0)) { SayTo(from, 1042563); // You need to unload your pet. } else if (pet.Combatant != null && pet.InRange(pet.Combatant, 12) && pet.Map == pet.Combatant.Map) { SayTo(from, 1042564); // I'm sorry. Your pet seems to be busy. } else if (from.Stabled.Count >= GetMaxStabled(from)) { SayTo(from, 1042565); // You have too many pets in the stables! } else if (pet.IsInvolvedInTrade()) { SayTo(from, 1062908); // Please remove your pet from the transfer crate before attempting to stable it. } else { Container bank = from.BankBox; if (bank != null && bank.ConsumeTotal(typeof(Gold), 30)) { pet.ControlTarget = null; pet.ControlOrder = OrderType.Stay; pet.Internalize(); pet.SetControlMaster(null); pet.SummonMaster = null; pet.IsStabled = true; from.Stabled.Add(pet); SayTo(from, 1049677); // Your pet has been stabled. } else { SayTo(from, 502677); // But thou hast not the funds in thy bank account! } } }