82 lines
1.9 KiB
C#
82 lines
1.9 KiB
C#
using System;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Engines.Quests
|
|
{
|
|
public abstract class DynamicTeleporter : Item
|
|
{
|
|
public DynamicTeleporter()
|
|
: this(0x1822, 0x482)
|
|
{
|
|
}
|
|
|
|
public DynamicTeleporter(int itemID, int hue)
|
|
: base(itemID)
|
|
{
|
|
this.Movable = false;
|
|
this.Hue = hue;
|
|
}
|
|
|
|
public DynamicTeleporter(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override int LabelNumber
|
|
{
|
|
get
|
|
{
|
|
return 1049382;
|
|
}
|
|
}// a magical teleporter
|
|
public virtual int NotWorkingMessage
|
|
{
|
|
get
|
|
{
|
|
return 500309;
|
|
}
|
|
}// Nothing Happens.
|
|
public abstract bool GetDestination(PlayerMobile player, ref Point3D loc, ref Map map);
|
|
|
|
public override bool OnMoveOver(Mobile m)
|
|
{
|
|
PlayerMobile pm = m as PlayerMobile;
|
|
|
|
if (pm != null)
|
|
{
|
|
Point3D loc = Point3D.Zero;
|
|
Map map = null;
|
|
|
|
if (this.GetDestination(pm, ref loc, ref map))
|
|
{
|
|
BaseCreature.TeleportPets(pm, loc, map);
|
|
|
|
pm.PlaySound(0x1FE);
|
|
pm.MoveToWorld(loc, map);
|
|
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
pm.SendLocalizedMessage(this.NotWorkingMessage);
|
|
}
|
|
}
|
|
|
|
return base.OnMoveOver(m);
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
|
|
writer.Write((int)0); // version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
} |