diff --git a/Data/Config/Regions.xml b/Data/Config/Regions.xml index 834e950..1291e91 100644 --- a/Data/Config/Regions.xml +++ b/Data/Config/Regions.xml @@ -195,14 +195,23 @@ + + + + + + - p + + + + diff --git a/Data/Decoration/teleporters.cfg b/Data/Decoration/teleporters.cfg index f80a10c..0e760f1 100644 --- a/Data/Decoration/teleporters.cfg +++ b/Data/Decoration/teleporters.cfg @@ -47,10 +47,9 @@ Vaelen 2394 84 -18 Vaelen 2583 298 17 true Vaelen 2394 85 -18 Vaelen 2583 299 17 true # Dune Oasis # Entrance -Vaelen 1177 760 25 Vaelen 3361 192 5 true -Vaelen 1178 760 25 Vaelen 3362 192 5 true -Vaelen 1177 759 25 Vaelen 3361 192 5 false -Vaelen 1178 759 25 Vaelen 3362 192 5 false +Vaelen 869 1726 -18 Vaelen 3361 192 5 true +Vaelen 870 1726 -18 Vaelen 3362 192 5 true +Vaelen 871 1726 -18 Vaelen 3361 192 5 false # Level 2 Vaelen 3282 134 -18 Vaelen 3380 322 17 true Vaelen 3282 135 -18 Vaelen 3380 323 17 true @@ -145,7 +144,16 @@ Vaelen 5023 521 0 Vaelen 5154 377 0 true Vaelen 5023 522 0 Vaelen 5154 378 0 true # Bedroom Chamber Vaelen 4956 367 -10 Vaelen 4929 417 0 true -## Small Underground Keep +## Dreadfall Keep Dungeon +# Level 1 +Vaelen 1885 613 0 Vaelen 3916 504 22 true +Vaelen 1886 613 0 Vaelen 3917 504 22 true +Vaelen 3918 504 22 Vaelen 1886 613 0 false +## Eclipse Sanctum +# Level 1 +Vaelen 251 1754 -18 Vaelen 3756 583 37 true +Vaelen 251 1755 -18 Vaelen 3756 584 37 true +## Deepwatch Keep # Level 1 Vaelen 1401 1319 4 Vaelen 5260 412 0 true Vaelen 1401 1320 4 Vaelen 5260 413 0 true @@ -155,3 +163,7 @@ Vaelen 5233 464 -18 Vaelen 5329 479 17 true Vaelen 5234 464 -18 Vaelen 5330 479 17 true Vaelen 5234 381 -18 Vaelen 5330 396 17 true Vaelen 5235 381 -18 Vaelen 5331 396 17 true +## Eclipse Sanctum +# Level 1 +Vaelen 250 630 19 Vaelen 4659 445 12 true +Vaelen 251 630 19 Vaelen 4660 445 12 true diff --git a/Data/Spawns/chests.map b/Data/Spawns/chests.map new file mode 100644 index 0000000..17981b4 --- /dev/null +++ b/Data/Spawns/chests.map @@ -0,0 +1,26 @@ +## Whispering Depths +# Level 1 +*|treasurechestlevel1||||||2812|85|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2738|195|2|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2796|275|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2761|156|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2776|160|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2793|237|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2785|271|0|1|5|10|-1|2|1|2|0|0|0|0|0 +*|treasurechestlevel1||||||2737|207|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2728|202|0|1|5|10|-1|3|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||144|139|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2702|129|3|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2749|124|3|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2730|134|1|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2820|271|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2763|103|2|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2829|230|2|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2785|89|6|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2735|157|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2760|174|0|1|5|10|-1|1|1|2|0|0|0|0|0 +*|treasurechestlevel1||||||2778|116|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|treasurechestlevel1||||||2746|199|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2830|85|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2805|118|1|1|5|10|-1|8|1|2|0|0|0|0|0 +# Level 2 diff --git a/Data/Spawns/dungeons.map b/Data/Spawns/dungeons.map new file mode 100644 index 0000000..a12c716 --- /dev/null +++ b/Data/Spawns/dungeons.map @@ -0,0 +1,55 @@ +## Whispering Depths +# Level 2 +*|ogre||||||2794|236|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2800|144|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||71|129|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2827|86|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2823|93|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2727|138|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2814|86|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2782|105|0|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2800|112|0|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2712|129|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2729|201|0|1|5|10|-1|2|1|2|0|0|0|0|0 +*|ettin||||||2828|227|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2807|179|0|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2743|124|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2794|163|2|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2749|201|0|1|5|10|-1|2|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2764|118|3|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2740|214|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2819|125|0|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2721|157|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2778|158|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2739|197|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2738|180|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2818|211|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2807|246|2|1|5|10|-1|8|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2721|175|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2746|174|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|troll||||||2822|268|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|brigand||||||2793|277|0|1|5|10|-1|10|1|3|0|0|0|0|0 +*|giantblackwidow||||||2776|254|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|troll||||||2778|187|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2757|187|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2746|164|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2757|173|0|1|5|10|-1|2|1|2|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2736|167|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2737|159|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|mongbat:slime:giantspider||||||2813|159|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|brigand||||||2768|215|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2763|158|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2768|187|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2828|144|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2768|195|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2769|204|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2778|200|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2836|158|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|giantspider||||||2828|145|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2845|168|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|giantspider||||||2828|158|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2812|158|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2836|168|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|ettin||||||2827|167|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2833|180|0|1|5|10|-1|2|1|2|0|0|0|0|0 +# Level 2 diff --git a/Data/Spawns/npcs.map b/Data/Spawns/npcs.map new file mode 100644 index 0000000..e69de29 diff --git a/Data/Spawns/townanimals.map b/Data/Spawns/townanimals.map index 295cb69..e4b161f 100644 --- a/Data/Spawns/townanimals.map +++ b/Data/Spawns/townanimals.map @@ -15,7 +15,7 @@ *|bird|cat|dog|rat|||324|1332|0|1|5|10|-1|30|1|10|3|2|2|0|0 *|bird|cat|dog|rat|||352|1332|0|1|5|10|-1|30|1|10|3|2|2|0|0 *|bird|cat|dog|rat|||382|1332|0|1|5|10|-1|30|1|10|3|2|2|0|0 -*|cow|bull|horse|chicken|llama|sheep|363|1347|0|1|5|10|-1|5|1|1|1|1|3|1|0 +*|cow|bull|horse|chicken|llama|sheep|358|1342|0|1|5|10|-1|5|1|1|1|1|3|1|0 *|cow|bull|horse|chicken|llama|sheep|358|1354|0|1|5|10|-1|5|1|1|1|1|3|1|0 *|cow|bull|horse|chicken|llama|sheep|372|1344|0|1|5|10|-1|5|1|1|1|1|3|1|0 *|bird|cat|dog|rat|||393|936|0|1|5|10|-1|25|1|15|3|3|5|0|0 diff --git a/Data/Spawns/traps.map b/Data/Spawns/traps.map new file mode 100644 index 0000000..2ceed58 --- /dev/null +++ b/Data/Spawns/traps.map @@ -0,0 +1 @@ +*|mushroomtrap||||||2793|263|1|1|5|10|-1|4|1|10|0|0|0|0|0 diff --git a/Scripts/Commands/BuildWorld.cs b/Scripts/Commands/BuildWorld.cs index 4dc1c53..6501b4f 100644 --- a/Scripts/Commands/BuildWorld.cs +++ b/Scripts/Commands/BuildWorld.cs @@ -34,19 +34,16 @@ namespace Server.Scripts.Commands m.SendGump(new BuildWorldGump()); } - // ============================================================================== - // --- MODULAR GENERATION METHODS --- - // ============================================================================== - public static void DoWipe( Mobile m ) { - m.SendMessage( 38, "Removing Premium Spawners and wild mobs... This may take a moment." ); + m.SendMessage( 38, "Removing ALL Spawners and wild mobs... This may take a moment." ); Console.WriteLine( "Removing Spawners..." ); ArrayList targets = new ArrayList(); foreach ( Item item in World.Items.Values ) { - if ( item is PremiumSpawner ) + // Widened net: Catches Premium, Standard, and Proxy Base spawners + if ( item is PremiumSpawner || item is Spawner || item is BaseSpawner ) { targets.Add( item ); } @@ -77,7 +74,7 @@ namespace Server.Scripts.Commands mob.Delete(); } - m.SendMessage( 63, "Wipe Complete: Premium Spawners and wild mobs deleted!" ); + m.SendMessage( 63, "Wipe Complete: All Spawners and wild mobs deleted!" ); } public static void DoDecorate( Mobile m ) @@ -95,19 +92,28 @@ namespace Server.Scripts.Commands public static void DoSpawns( Mobile m ) { m.SendMessage( 38, "Parsing map files and generating spawners..." ); - + Console.WriteLine( "Spawning Overworld..."); Server.SpawnGenerator.Parse( m, "overworld.map" ); - + Console.WriteLine( "Spawning Town Animals..."); Server.SpawnGenerator.Parse( m, "townanimals.map" ); - + Console.WriteLine( "Spawning Camps..." ); Server.SpawnGenerator.Parse( m, "camps.map" ); - + Console.WriteLine( "Spawning NPC's..." ); + Server.SpawnGenerator.Parse( m, "npcs.map" ); + Console.WriteLine( "Spawning Dungeons..." ); + Server.SpawnGenerator.Parse( m, "dungeons.map" ); + Console.WriteLine( "Spawning Dungeon Chests..." ); + Server.SpawnGenerator.Parse( m, "chests.map" ); + + Console.WriteLine( "Spawining Dungeon Floor Traps..." ); + Server.SpawnGenerator.Parse( m, "traps.map" ); + m.SendMessage( 63, "Map parsing complete and world populated!" ); } } @@ -189,6 +195,7 @@ namespace Server.Scripts.Commands break; case 4: // Spawns Only + BuildWorld.DoWipe( m ); BuildWorld.DoSpawns( m ); m.SendGump(new BuildWorldGump()); break;