Files
abysmal-isle/Scripts/Scripts-master/Quests/DantesQuest/DantesTeleporter.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

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();
}
}
}