using System; using Server; using Server.Commands; using Server.Mobiles; using Server.Items; namespace Server.Commands { public class StableMountCommand { public static void Initialize() { CommandSystem.Register("StableMount", AccessLevel.Player, new CommandEventHandler(StableMount_OnCommand)); } [Usage("StableMount")] [Description("Forces a player off their mount and bypasses stable limits for zone control.")] public static void StableMount_OnCommand(CommandEventArgs e) { PlayerMobile pm = e.Mobile as PlayerMobile; if (pm != null) { ForceDismountAndStore(pm); } } public static void ForceDismountAndStore(PlayerMobile pm) { if (pm == null || !pm.Mounted) return; IMount mount = pm.Mount; if (mount == null) return; if (mount is BaseMount) { BaseMount baseMount = (BaseMount)mount; BaseCreature mountCreature = baseMount as BaseCreature; if (mountCreature != null) { baseMount.Rider = null; mountCreature.ControlTarget = null; mountCreature.ControlOrder = OrderType.Stay; mountCreature.Internalize(); mountCreature.SetControlMaster(null); mountCreature.SummonMaster = null; mountCreature.IsStabled = true; pm.Stabled.Add(mountCreature); //pm.SendMessage("Mounts are not allowed here! Your mount has been tucked away."); } } else { mount.Rider = null; pm.SendMessage("Ethereal mounts are not allowed in this zone."); } } } }