Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,113 @@
using Server.Commands;
using System;
using System.Collections;
using Server;
namespace Server.Commands
{
/// <summary>
/// Summary description for AFK.
/// </summary>
public class AFK : Timer
{
private static Hashtable m_AFK = new Hashtable();
private Mobile who;
private Point3D where;
private DateTime when;
public string what="";
public static void Initialize()
{
CommandSystem.Register( "afk", AccessLevel.Player, new CommandEventHandler( AFK_OnCommand ) );
EventSink.Logout += new LogoutEventHandler( OnLogout );
EventSink.Speech += new SpeechEventHandler( OnSpeech );
EventSink.PlayerDeath += new PlayerDeathEventHandler( OnDeath);
}
public static void OnDeath( PlayerDeathEventArgs e )
{
if ( m_AFK.Contains( e.Mobile.Serial.Value ) )
{
AFK afk=(AFK)m_AFK[e.Mobile.Serial.Value];
if (afk==null)
{
e.Mobile.SendMessage("Afk object missing!");
return;
}
e.Mobile.PlaySound( e.Mobile.Female ? 814 : 1088 );
afk.wakeUp();
}
}
public static void OnLogout( LogoutEventArgs e )
{
if ( m_AFK.Contains( e.Mobile.Serial.Value ) )
{
AFK afk=(AFK)m_AFK[e.Mobile.Serial.Value];
if (afk==null)
{
e.Mobile.SendMessage("Afk object missing!");
return;
}
afk.wakeUp();
}
}
public static void OnSpeech( SpeechEventArgs e )
{
if ( m_AFK.Contains( e.Mobile.Serial.Value ) )
{
AFK afk=(AFK)m_AFK[e.Mobile.Serial.Value];
if (afk==null)
{
e.Mobile.SendMessage("Afk object missing!");
return;
}
afk.wakeUp();
}
}
public static void AFK_OnCommand( CommandEventArgs e )
{
if ( m_AFK.Contains( e.Mobile.Serial.Value ) )
{
AFK afk=(AFK)m_AFK[e.Mobile.Serial.Value];
if (afk==null)
{
e.Mobile.SendMessage("Afk object missing!");
return;
}
afk.wakeUp();
}
else
{
m_AFK.Add( e.Mobile.Serial.Value,new AFK(e.Mobile,e.ArgString.Trim()) );
e.Mobile.SendMessage( "AFK enabled." );
}
}
public void wakeUp()
{
m_AFK.Remove( who.Serial.Value );
who.Emote("*is no longer AFK*");
who.SendMessage( "AFK deactivated." );
this.Stop();
}
public AFK(Mobile afker, string message) : base(TimeSpan.FromSeconds(60),TimeSpan.FromSeconds (60))
{
if ((message==null)||(message=="")) message="is AFK";
what=message;
who=afker;
when=DateTime.UtcNow;
where=who.Location;
this.Start();
}
protected override void OnTick()
{
if (!(who.Location==where) )
{
this.wakeUp();
return;
}
who.Say("zZz");
TimeSpan ts=DateTime.UtcNow.Subtract(when);
who.Emote("*{0} ({1}:{2}:{3})*",what,ts.Hours,ts.Minutes,ts.Seconds);
who.PlaySound( who.Female ? 819 : 1093);
}
}
}