diff --git a/Data/Config/Regions.xml b/Data/Config/Regions.xml index 1291e91..b2feef8 100644 --- a/Data/Config/Regions.xml +++ b/Data/Config/Regions.xml @@ -159,6 +159,9 @@ + + + diff --git a/Data/Spawns/camps.map b/Data/Spawns/camps.map deleted file mode 100644 index da9c9ab..0000000 --- a/Data/Spawns/camps.map +++ /dev/null @@ -1,2 +0,0 @@ -*|brigandcamp||||||821|225|10|1|5|10|-1|4|1|1|0|0|0|0|0 -*|orccamp||||||821|360|3|1|5|10|-1|4|1|1|0|0|0|0|0 diff --git a/Data/Spawns/chests.map b/Data/Spawns/chests.map index 36efc45..743b3a7 100644 --- a/Data/Spawns/chests.map +++ b/Data/Spawns/chests.map @@ -1,3 +1,10 @@ +## Overworld +# Hallow Keep +*|treasurechestlevel1||||||903|112|34|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||899|112|34|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||909|119|14|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||891|116|14|1|5|10|-1|0|1|1|0|0|0|0|0 +## ## Whispering Depths # Level 1 *|treasurechestlevel1||||||2812|85|0|1|1|1|-1|1|1|1|0|0|0|0|0 @@ -135,3 +142,4 @@ *|treasurechestlevel3:treasurechestlevel4||||||3077|436|0|1|1|1|-1|0|1|1|0|0|0|0|0 *|treasurechestlevel2:treasurechestlevel3||||||3097|414|0|1|1|1|-1|0|1|1|0|0|0|0|0 *|treasurechestlevel2:treasurechestlevel3||||||3085|376|0|1|1|1|-1|0|1|1|0|0|0|0|0 +#Next Dungeon diff --git a/Data/Spawns/danger.map b/Data/Spawns/danger.map new file mode 100644 index 0000000..4f1de7d --- /dev/null +++ b/Data/Spawns/danger.map @@ -0,0 +1,19 @@ +## Camps +*|brigandcamp||||||821|225|10|1|5|10|-1|0|1|1|0|0|0|0|0 +*|orccamp||||||821|360|3|1|5|10|-1|0|1|1|0|0|0|0|0 +## Hallow Keep +*|zombie:skeleton||||||898|115|34|1|5|10|-1|0|1|2|0|0|0|0|0 +*|evilmage||||||892|119|34|1|5|10|-1|0|1|1|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton:ghoul||||||901|115|15|1|5|10|-1|0|1|3|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton||||||912|126|9|1|5|10|-1|0|1|3|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton||||||902|127|9|1|5|10|-1|0|1|3|0|0|0|0|0 +*|lich:evilmage||||||901|115|34|1|5|10|-1|0|1|1|0|0|0|0|0 +*|evilmage||||||910|118|14|1|5|10|-1|0|1|1|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton:ghoul||||||910|115|14|1|0|10|-1|5|1|3|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton:ghoul||||||892|113|14|1|0|10|-1|5|1|3|0|0|0|0|0 +*|evilmage||||||901|114|14|1|5|10|-1|0|1|1|0|0|0|0|0 +*|evilmage||||||911|119|34|1|5|10|-1|0|1|1|0|0|0|0|0 +*|evilmage||||||892|118|14|1|5|10|-1|0|1|1|0|0|0|0|0 +*|zombie:skeleton||||||904|115|34|1|0|10|-1|5|1|2|0|0|0|0|0 +*|spectre:wraith:zombie:skeleton||||||891|125|9|1|5|10|-1|0|1|3|0|0|0|0|0 +## diff --git a/Scripts/Commands/BuildWorld.cs b/Scripts/Commands/BuildWorld.cs index aa4ed29..96222fd 100644 --- a/Scripts/Commands/BuildWorld.cs +++ b/Scripts/Commands/BuildWorld.cs @@ -100,7 +100,7 @@ namespace Server.Scripts.Commands Server.SpawnGenerator.Parse( m, "townanimals.map" ); Console.WriteLine( "Spawning Camps..." ); - Server.SpawnGenerator.Parse( m, "camps.map" ); + Server.SpawnGenerator.Parse( m, "danger.map" ); Console.WriteLine( "Spawning NPC's..." ); Server.SpawnGenerator.Parse( m, "npcs.map" ); diff --git a/Scripts/Commands/GetLevel.cs b/Scripts/Commands/GetLevel.cs new file mode 100644 index 0000000..13448bf --- /dev/null +++ b/Scripts/Commands/GetLevel.cs @@ -0,0 +1,54 @@ +using System; +using Server; +using System.Collections; +using System.Collections.Generic; +using Server.Misc; +using Server.Items; +using Server.Network; +using Server.Commands; +using Server.Commands.Generic; +using Server.Mobiles; +using Server.Accounting; +using Server.Regions; +using System.IO; +using Server.Targeting; + +namespace Server.Scripts.Commands +{ + public class GetLevel + { + public static void Initialize() + { + CommandSystem.Register("GetLevel", AccessLevel.Counselor, new CommandEventHandler( GetLevels )); + } + + [Usage("GetLevel")] + [Description("Gets the level of the creature.")] + public static void GetLevels( CommandEventArgs e ) + { + e.Mobile.SendMessage( "What target do you want to inspect?" ); + e.Mobile.Target = new InternalTarget(); + } + + private class InternalTarget : Target + { + public InternalTarget() : base ( 8, false, TargetFlags.None ) + { + } + + protected override void OnTarget( Mobile from, object targeted ) + { + if ( targeted is Mobile ) + { + Mobile m = (Mobile)targeted; + + from.SendMessage( "" + BaseCreature.MyLevel( m ) + "" ); + } + else + { + from.SendMessage( "Not a valid creature!" ); + } + } + } + } +} \ No newline at end of file diff --git a/Scripts/Mobiles/BaseCreature.cs b/Scripts/Mobiles/BaseCreature.cs index 03efc1d..5cabc1f 100644 --- a/Scripts/Mobiles/BaseCreature.cs +++ b/Scripts/Mobiles/BaseCreature.cs @@ -3424,6 +3424,65 @@ namespace Server.Mobiles m_AI.OnSpeech( e ); } + public static int MyLevel( Mobile m ) + { + int level = 0; + + if ( m is BaseCreature ) + { + BaseCreature bc = (BaseCreature)m; + + int psn = 0; + + if ( bc.HitPoison == Poison.Lesser ) + psn = 5; + else if ( bc.HitPoison == Poison.Regular ) + psn = 10; + else if ( bc.HitPoison == Poison.Greater ) + psn = 15; + else if ( bc.HitPoison == Poison.Deadly ) + psn = 20; + else if ( bc.HitPoison == Poison.Lethal ) + psn = 25; + + if ( bc.PoisonImmune == Poison.Lesser ) + psn = psn + 5; + else if ( bc.PoisonImmune == Poison.Regular ) + psn = psn + 10; + else if ( bc.PoisonImmune == Poison.Greater ) + psn = psn + 15; + else if ( bc.PoisonImmune == Poison.Deadly ) + psn = psn + 20; + else if ( bc.PoisonImmune == Poison.Lethal ) + psn = psn + 25; + + int bard = 0; + + if ( bc.BardImmune ) + bard = 50; + else + { + if ( bc.Unprovokable ) + bard = bard + 25; + + if ( bc.Uncalmable ) + bard = bard + 25; + } + + int dmg = (int)( bc.DamageMax * 8 ); + int sts = (int)( m.RawStatTotal / 6 ); + int fam = (int)( m.Fame / 120 ); + int arm = (int)( m.VirtualArmor * 2.5 ); + + level = psn + dmg + sts + fam + arm + bard; + + if ( level > 1000 ){ level = 1000; } + else if ( level < 1 ){ level = 1; } + } + + return level; + } + public override bool IsHarmfulCriminal( Mobile target ) { if ( (Controlled && target == m_ControlMaster) || (Summoned && target == m_SummonMaster) )