109 lines
2.2 KiB
C#
109 lines
2.2 KiB
C#
|
|
using System;
|
|
using Server;
|
|
using Server.Items;
|
|
using Server.Mobiles;
|
|
using System.Collections;
|
|
using Server.Network;
|
|
|
|
|
|
namespace Server.Items
|
|
{
|
|
|
|
public class DantesTeleporter : Item
|
|
{
|
|
private Point3D m_DestLoc;
|
|
private Map m_DestMap;
|
|
private bool m_AllowCreatures;
|
|
private bool m_TelePets;
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public Point3D Location
|
|
{
|
|
get { return m_DestLoc; }
|
|
set { m_DestLoc = value; InvalidateProperties(); }
|
|
}
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public Map Map
|
|
{
|
|
get { return m_DestMap; }
|
|
set { m_DestMap = value; InvalidateProperties(); }
|
|
}
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public bool AllowCreatures
|
|
{
|
|
get { return m_AllowCreatures; }
|
|
set { m_AllowCreatures = value; InvalidateProperties(); }
|
|
}
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public bool TelePets
|
|
{
|
|
get { return m_TelePets; }
|
|
set { m_TelePets = value; InvalidateProperties(); }
|
|
}
|
|
|
|
[Constructable]
|
|
public DantesTeleporter() : base( 3948 )
|
|
{
|
|
Visible = false;
|
|
Hue = 1;
|
|
Movable = false;
|
|
Weight = 0.0;
|
|
Name = "Dante's Teleporter";
|
|
}
|
|
|
|
public DantesTeleporter( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override bool OnMoveOver( Mobile m )
|
|
{
|
|
if( !m_AllowCreatures && !m.Player )
|
|
return true;
|
|
|
|
if( m.Backpack.ConsumeTotal( typeof( DantesBracelet ), 1 ) )
|
|
|
|
{
|
|
if( m_TelePets )
|
|
{
|
|
Server.Mobiles.BaseCreature.TeleportPets( m, m_DestLoc, m_DestMap );
|
|
}
|
|
|
|
m.PlaySound(0x1F7);
|
|
m.MoveToWorld( m_DestLoc, m_DestMap );
|
|
|
|
return false;
|
|
}
|
|
|
|
m.SendMessage( " You must have Dante's Bracelet if you wish to pass." );
|
|
return true;
|
|
}
|
|
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
writer.Write( (int) 0 ); // version
|
|
|
|
writer.Write( m_DestLoc );
|
|
writer.Write( m_DestMap );
|
|
writer.Write( m_AllowCreatures );
|
|
writer.Write( m_TelePets );
|
|
}
|
|
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
int version = reader.ReadInt();
|
|
|
|
m_DestLoc = reader.ReadPoint3D();
|
|
m_DestMap = reader.ReadMap();
|
|
m_AllowCreatures = reader.ReadBool();
|
|
m_TelePets = reader.ReadBool();
|
|
}
|
|
}
|
|
} |