Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
86
Scripts/Services/PVP Arena System/ArenaExitBanner.cs
Normal file
86
Scripts/Services/PVP Arena System/ArenaExitBanner.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Gumps;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.ArenaSystem
|
||||
{
|
||||
public class ArenaExitBanner : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return true; } }
|
||||
public override int LabelNumber { get { return 1116111; } } // Arena Exit Banner
|
||||
public override bool HandlesOnMovement { get { return true; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public PVPArena Arena { get; set; }
|
||||
|
||||
[Constructable]
|
||||
public ArenaExitBanner(int itemid, PVPArena arena)
|
||||
: base(itemid)
|
||||
{
|
||||
Arena = arena;
|
||||
Movable = false;
|
||||
Weight = 0;
|
||||
}
|
||||
|
||||
public override void OnMovement(Mobile m, Point3D oldLocation)
|
||||
{
|
||||
if (m is PlayerMobile && Arena != null && !m.Alive && m.InRange(Location, 2) && !m.HasGump(typeof(ResurrectGump)))
|
||||
{
|
||||
m.SendGump(new ResurrectGump(m, null, ResurrectMessage.Generic, false, 0.0, mob =>
|
||||
{
|
||||
Arena.RemovePlayer((PlayerMobile)mob);
|
||||
|
||||
if (mob.Corpse != null)
|
||||
mob.Corpse.MoveToWorld(mob.Location, mob.Map);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(Location, 3) || !from.InLOS(this) || !from.CanSee(this))
|
||||
{
|
||||
from.LocalOverheadMessage(Network.MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
}
|
||||
else if (Arena != null)
|
||||
{
|
||||
var duel = Arena.CurrentDuel;
|
||||
|
||||
if (duel != null && duel.InPreFight)
|
||||
{
|
||||
from.SendLocalizedMessage(1115968); // You cannot exit until this duel has started.
|
||||
return;
|
||||
}
|
||||
|
||||
from.SendGump(new ConfirmCallbackGump((PlayerMobile)from, 1115969, 1115970, null, null, (m, state) =>
|
||||
{
|
||||
Arena.RemovePlayer((PlayerMobile)m);
|
||||
|
||||
if (duel != null && !duel.Complete)
|
||||
{
|
||||
duel.OnPlayerLeave((PlayerMobile)m);
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
public ArenaExitBanner(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user