Runic sewing kits will no longer apply durability
http://www.uodemise.com/forum/showthread.php?t=133757 Vendor Look/Browse/View will now work properly http://www.uodemise.com/forum/showthread.php?t=135531 Stacked Eggbombs will now unstack correctly http://www.uodemise.com/forum/showthread.php?t=134321 Unbonded pets should logout too http://www.uodemise.com/forum/showthread.php?t=119262 Paragon chests placed on player vendors will now behave correctly http://www.uodemise.com/forum/showthread.php?t=116864 Proper party fame/karma sharing http://www.uodemise.com/forum/showthread.php?t=122749 Guild Alliance/War update bug fixed http://www.uodemise.com/forum/showthread.php?t=115236 Fukiya properties updates and loading bug fixed http://www.uodemise.com/forum/showthread.php?t=136042 Shuriken, same problems as fukiya http://www.uodemise.com/forum/showthread.php?t=120212 greater mongbats will now be recognised as quest objectives http://www.uodemise.com/forum/showthread.php?t=128072 divine fury sound tweaks. http://www.uodemise.com/forum/showthread.php?t=136489 pet stat gains fix http://www.uodemise.com/forum/showthread.php?t=134820 Pets follow speed corrected http://www.uodemise.com/forum/showthread.php?t=124774 E-fields no longer block in trammel rulesets. http://www.uodemise.com/forum/showthread.php?t=116680 Disguise kit timer fix http://www.uodemise.com/forum/showthread.php?t=133913 Meer Mage special abilities fixes. http://www.uodemise.com/forum/showthread.php?t=122134 Missing food property if eggs, in animal lore gump http://www.uodemise.com/forum/showthread.php?t=135258 Pets will follow after an attack is completed. http://www.uodemise.com/forum/showthread.php?t=135962 Hides should not be scissored whilst still on the corpse http://www.uodemise.com/forum/showthread.php?t=118799 Pet bonding changed to include jewelry skill adjustments. http://www.uodemise.com/forum/showthread.php?t=121060 Skinning knife can be used to cut corpses http://www.uodemise.com/forum/showthread.php?t=115248 PlayerVendors will correctly send update packets to the client when hair is changed http://www.uodemise.com/forum/showthread.php?t=120216 Corrections to house sign gump http://www.uodemise.com/forum/showthread.php?t=134406 pet "guarding" system message added http://www.uodemise.com/forum/showthread.php?t=134091 Giant toads should be aggressive http://www.uodemise.com/forum/showthread.php?t=133984 bardiche and halberds are axe tools. http://www.uodemise.com/forum/showthread.php?t=122739
This commit is contained in:
parent
d688c9e0f3
commit
208acafd7e
37 changed files with 1058 additions and 226 deletions
|
|
@ -224,44 +224,13 @@ namespace Server.Items
|
|||
|
||||
m_From.SendGump( new DisguiseGump( m_From, m_Kit, hair, true ) );
|
||||
|
||||
StopTimer( m_From );
|
||||
|
||||
m_Timers[m_From] = Timer.DelayCall( TimeSpan.FromHours( 2.0 ), new TimerStateCallback( OnDisguiseExpire ), m_From );
|
||||
DisguiseTimers.RemoveTimer( m_From );
|
||||
|
||||
DisguiseTimers.CreateTimer( m_From, TimeSpan.FromHours( 2.0 ) );
|
||||
DisguiseTimers.StartTimer( m_From );
|
||||
}
|
||||
}
|
||||
|
||||
public static void OnDisguiseExpire( object state )
|
||||
{
|
||||
Mobile m = (Mobile)state;
|
||||
|
||||
StopTimer( m );
|
||||
|
||||
m.NameMod = null;
|
||||
|
||||
if ( m is PlayerMobile )
|
||||
((PlayerMobile)m).SetHairMods( -1, -1 );
|
||||
}
|
||||
|
||||
public static bool IsDisguised( Mobile m )
|
||||
{
|
||||
return m_Timers.Contains( m );
|
||||
}
|
||||
|
||||
public static bool StopTimer( Mobile m )
|
||||
{
|
||||
Timer t = (Timer)m_Timers[m];
|
||||
|
||||
if ( t != null )
|
||||
{
|
||||
t.Stop();
|
||||
m_Timers.Remove( m );
|
||||
}
|
||||
|
||||
return ( t != null );
|
||||
}
|
||||
|
||||
private static Hashtable m_Timers = new Hashtable();
|
||||
|
||||
private static DisguiseEntry[] m_HairEntries = new DisguiseEntry[]
|
||||
{
|
||||
new DisguiseEntry( 8251, 50700, 0, 5, 1011052 ), // Short
|
||||
|
|
@ -306,4 +275,98 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class DisguiseTimers
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
new DisguisePersistance();
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private Mobile m_Player;
|
||||
|
||||
public InternalTimer( Mobile m, TimeSpan delay ) : base( delay )
|
||||
{
|
||||
m_Player = m;
|
||||
Priority = TimerPriority.OneMinute;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Player.NameMod = null;
|
||||
|
||||
if ( m_Player is PlayerMobile )
|
||||
((PlayerMobile)m_Player).SetHairMods( -1, -1 );
|
||||
|
||||
DisguiseTimers.RemoveTimer( m_Player );
|
||||
}
|
||||
}
|
||||
|
||||
public static void CreateTimer( Mobile m, TimeSpan delay )
|
||||
{
|
||||
if ( m != null )
|
||||
if ( !m_Timers.Contains( m ) )
|
||||
m_Timers[m] = new InternalTimer( m, delay );
|
||||
}
|
||||
|
||||
public static void StartTimer( Mobile m )
|
||||
{
|
||||
Timer t = (Timer)m_Timers[m];
|
||||
|
||||
if ( t != null )
|
||||
t.Start();
|
||||
}
|
||||
|
||||
public static bool IsDisguised( Mobile m )
|
||||
{
|
||||
return m_Timers.Contains( m );
|
||||
}
|
||||
|
||||
public static bool StopTimer( Mobile m )
|
||||
{
|
||||
Timer t = (Timer)m_Timers[m];
|
||||
|
||||
if ( t != null )
|
||||
{
|
||||
t.Delay = t.Next - DateTime.Now;
|
||||
t.Stop();
|
||||
}
|
||||
|
||||
return ( t != null );
|
||||
}
|
||||
|
||||
public static bool RemoveTimer( Mobile m )
|
||||
{
|
||||
Timer t = (Timer)m_Timers[m];
|
||||
|
||||
if ( t != null )
|
||||
{
|
||||
t.Stop();
|
||||
m_Timers.Remove( m );
|
||||
}
|
||||
|
||||
return ( t != null );
|
||||
}
|
||||
|
||||
public static TimeSpan TimeRemaining( Mobile m )
|
||||
{
|
||||
Timer t = (Timer)m_Timers[m];
|
||||
|
||||
if ( t != null )
|
||||
{
|
||||
return t.Next - DateTime.Now;
|
||||
}
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
private static Hashtable m_Timers = new Hashtable();
|
||||
|
||||
public static Hashtable Timers
|
||||
{
|
||||
get { return m_Timers; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue