From 0a4d972af678786de94127edc95777657ae8a3af Mon Sep 17 00:00:00 2001 From: WarrentyExpired Date: Mon, 21 Sep 2026 10:01:24 -0400 Subject: [PATCH] #W# Added: Added some custom regions. --- .../Regions/Custom/GreetingBusinessRegion.cs | 39 +++++++++++++++++ .../Regions/Custom/GreetingDungeonRegion.cs | 43 +++++++++++++++++++ .../Regions/Custom/GreetingTownRegion.cs | 28 ++++++++++++ .../Regions/Custom/MountlessTownRegion.cs | 35 +++++++++++++++ .../Regions/RegionJsonRegistration.cs | 8 +++- 5 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs create mode 100644 Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs create mode 100644 Projects/UOContent/Regions/Custom/GreetingTownRegion.cs create mode 100644 Projects/UOContent/Regions/Custom/MountlessTownRegion.cs diff --git a/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs b/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs new file mode 100644 index 000000000..3a42706bd --- /dev/null +++ b/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs @@ -0,0 +1,39 @@ +using Server; +using Server.Mobiles; +using Server.Custom; + +namespace Server.Regions +{ + public class GreetingBusinessRegion : TownRegion + { + public GreetingBusinessRegion(string name, Map map, int priority, params Rectangle3D[] area) + : base(name, map, priority, area) + { + } + public override bool MountsAllowed => false; + public override void OnEnter(Mobile m) + { + base.OnEnter(m); + if (m.Player) + { + m.SendMessage($"Welcome to {this.Name}."); + } + if (m is PlayerMobile player ) + { + if ( player.Mounted ) + { + Server.Custom.AutoStable.StoreMount(player); + } + } + } + + public override void OnExit(Mobile m) + { + base.OnExit(m); + if ( m is PlayerMobile player ) + { + Server.Custom.AutoStable.RestoreMount(player); + } + } + } +} diff --git a/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs b/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs new file mode 100644 index 000000000..e9a0dda1f --- /dev/null +++ b/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs @@ -0,0 +1,43 @@ +using Server; +using Server.Mobiles; + +namespace Server.Regions +{ + public class GreetingDungeonRegion : DungeonRegion + { + public GreetingDungeonRegion(string name, Map map, int priority, params Rectangle3D[] area) + : base(name, map, priority, area) + { + } + public override bool MountsAllowed => false; + public override void OnEnter(Mobile m) + { + base.OnEnter(m); + if (m.Player) + { + m.SendMessage($"You entered {this.Name}."); + } + if (m is PlayerMobile player && player.Mounted ) + { + if ( player.Mount is BaseMount ) + { + Server.Custom.AutoStable.StoreMount(player); + } + else + { + BaseMount.Dismount(player); + player.SendMessage("Mounts are not permitted in this Dungeon."); + } + } + } + + public override void OnExit(Mobile m) + { + base.OnExit(m); + if ( m is PlayerMobile player ) + { + Server.Custom.AutoStable.RestoreMount(player); + } + } + } +} diff --git a/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs b/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs new file mode 100644 index 000000000..3a69487c3 --- /dev/null +++ b/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs @@ -0,0 +1,28 @@ +using Server; +using Server.Mobiles; + +namespace Server.Regions +{ + public class GreetingTownRegion : TownRegion + { + public GreetingTownRegion(string name, Map map, int priority, params Rectangle3D[] area) + : base(name, map, priority, area) + { + } + + public override void OnEnter(Mobile m) + { + base.OnEnter(m); + + if (m.Player) + { + m.SendMessage($"Welcome to {this.Name}."); + } + } + + public override void OnExit(Mobile m) + { + base.OnExit(m); + } + } +} diff --git a/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs b/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs new file mode 100644 index 000000000..91c73a221 --- /dev/null +++ b/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs @@ -0,0 +1,35 @@ +using Server; +using Server.Mobiles; +using Server.Custom; + +namespace Server.Regions +{ + public class MountlessTownRegion : TownRegion + { + public MountlessTownRegion(string name, Map map, int priority, params Rectangle3D[] area) + : base(name, map, priority, area) + { + } + public override bool MountsAllowed => false; + public override void OnEnter(Mobile m) + { + base.OnEnter(m); + if (m is PlayerMobile player ) + { + if ( player.Mounted ) + { + Server.Custom.AutoStable.StoreMount(player); + } + } + } + + public override void OnExit(Mobile m) + { + base.OnExit(m); + if ( m is PlayerMobile player ) + { + Server.Custom.AutoStable.RestoreMount(player); + } + } + } +} diff --git a/Projects/UOContent/Regions/RegionJsonRegistration.cs b/Projects/UOContent/Regions/RegionJsonRegistration.cs index 64cc195e7..ba871cf59 100644 --- a/Projects/UOContent/Regions/RegionJsonRegistration.cs +++ b/Projects/UOContent/Regions/RegionJsonRegistration.cs @@ -1,4 +1,4 @@ -namespace Server.Regions; +namespace Server.Regions; public static class RegionJsonRegistration { @@ -59,5 +59,11 @@ public static class RegionJsonRegistration // Myrmidex RegionJsonSerializer.Register(); + + // Custom + RegionJsonSerializer.Register(); + RegionJsonSerializer.Register(); + RegionJsonSerializer.Register(); + RegionJsonSerializer.Register(); } }