AvatarsConquest/Scripts/Regions/UnderworldEntrance.cs

77 lines
No EOL
1.8 KiB
C#

using System;
using System.IO;
using System.Collections;
using Server;
using Server.Regions;
namespace Server
{
public class UnderworldEntrance : BaseRegion
{
private const int Range = 10; // No house may be placed within 5 tiles of the entrances
public UnderworldEntrance( int x, int y, Map map ): base( null, map, Region.DefaultPriority, new Rectangle2D( x - Range, y - Range, 1 + (Range * 2), 1 + (Range * 2) ) )
{
GoLocation = new Point3D( x, y, map.GetAverageZ( x, y ) );
Register();
}
public static void Initialize()
{
string filePath = Path.Combine( Core.BaseDirectory, "Data/Config/entrances.cfg" );
int i = 0, x = 0, y = 0;
if ( File.Exists( filePath ) )
{
using ( StreamReader ip = new StreamReader( filePath ) )
{
string line;
while ( (line = ip.ReadLine()) != null )
{
i++;
try
{
string[] split = line.Split( ' ' );
x = Convert.ToInt32( split[0] );
y = Convert.ToInt32( split[1] );
try
{
new UnderworldEntrance( x, y, Map.Britannia );
}
catch ( Exception e )
{
Console.WriteLine( "{0} {1} {2} {3}", i, x, y, e );
}
}
catch
{
Console.WriteLine( "Warning: Error in Line '{0}' of Data/Config/treasure.cfg", line );
}
}
}
}
}
public override bool AllowHousing( Mobile from, Point3D p )
{
return false;
}
public override void OnEnter( Mobile m )
{
if ( m.AccessLevel > AccessLevel.Player )
m.SendMessage( "You have entered a protected underworld entrance area." );
}
public override void OnExit( Mobile m )
{
if ( m.AccessLevel > AccessLevel.Player )
m.SendMessage( "You have left a protected underworld entrance area." );
}
}
}