#W# Added Knives TownHouses. Also wrote my own static house system that is configured with a cfg file.
This commit is contained in:
parent
3132211847
commit
dc5e0577fd
31 changed files with 7009 additions and 11 deletions
106
Scripts/Items/Houses/StaticHouse.cs
Normal file
106
Scripts/Items/Houses/StaticHouse.cs
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
|
||||
namespace Server.Custom.StaticHousing
|
||||
{
|
||||
public class StaticHouse : BaseHouse
|
||||
{
|
||||
private Rectangle2D m_CustomArea;
|
||||
private int m_MinZ;
|
||||
private int m_MaxZ;
|
||||
private int m_CustomLockdowns;
|
||||
private int m_CustomSecures;
|
||||
|
||||
public override Rectangle2D[] Area
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Rectangle2D[] { new Rectangle2D(0, 0, m_CustomArea.Width, m_CustomArea.Height) };
|
||||
}
|
||||
}
|
||||
|
||||
public override Point3D BaseBanLocation
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Sign != null)
|
||||
return new Point3D(Sign.X, Sign.Y + 1, Sign.Z);
|
||||
|
||||
return Point3D.Zero;
|
||||
}
|
||||
}
|
||||
|
||||
public override double BonusStorageScalar { get { return 1.0; } }
|
||||
|
||||
public StaticHouse(Mobile owner, Rectangle2D area, int minZ, int maxZ, int locks, int secures, int price)
|
||||
: base(0xA28, owner, locks, secures)
|
||||
{
|
||||
RestrictDecay = true;
|
||||
|
||||
m_CustomArea = area;
|
||||
m_MinZ = minZ;
|
||||
m_MaxZ = maxZ;
|
||||
|
||||
m_CustomLockdowns = locks;
|
||||
m_CustomSecures = secures;
|
||||
|
||||
MaxLockDowns = locks;
|
||||
MaxSecures = secures;
|
||||
|
||||
Price = price;
|
||||
|
||||
Components.Resize(area.Width, area.Height);
|
||||
Components.Add(0x520, area.Width - 1, area.Height - 1, -5);
|
||||
|
||||
SetSign(0, 0, 0);
|
||||
}
|
||||
|
||||
public StaticHouse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int GetAosMaxLockdowns() { return m_CustomLockdowns; }
|
||||
public override int GetAosMaxSecures() { return m_CustomSecures; }
|
||||
|
||||
public override bool IsInside(Point3D p, int height)
|
||||
{
|
||||
if (Deleted) return false;
|
||||
|
||||
if (!m_CustomArea.Contains(new Point2D(p.X, p.Y)))
|
||||
return false;
|
||||
|
||||
if (p.Z >= m_MinZ && (p.Z + height) <= m_MaxZ)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
|
||||
writer.Write(m_CustomArea);
|
||||
writer.Write(m_MinZ);
|
||||
writer.Write(m_MaxZ);
|
||||
writer.Write(m_CustomLockdowns);
|
||||
writer.Write(m_CustomSecures);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_CustomArea = reader.ReadRect2D();
|
||||
m_MinZ = reader.ReadInt();
|
||||
m_MaxZ = reader.ReadInt();
|
||||
m_CustomLockdowns = reader.ReadInt();
|
||||
m_CustomSecures = reader.ReadInt();
|
||||
|
||||
Components.Resize(m_CustomArea.Width, m_CustomArea.Height);
|
||||
Components.Add(0x520, m_CustomArea.Width - 1, m_CustomArea.Height - 1, -5);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue