- IPTable update when deleting accounts, so the creation IP address gets a new account spot.
- Added AdminGump option for removing account access IP addresses. - Firebombs now cancel the target properly when exploding. - Fixed item placement bug when creating firebombs. - Added criminal check option to Teleporter. - Fixed item placement bug when opening MIBs. - Made SOS flipable. - Opening an SOS will no longer close other SOS gumps. - Corrected Leafblade to be a Fencing weapon. - Meer mages no longer cast plagues on pets, only on players. - Corrected skills typo in CorruptedSoul. - Movement induced by angering a monster during taming will now respect movement timers. - Teleporting into keep walls is no longer possible. - Removed the ability to have line of sight under a house plot through house walls. - Added the Frozen mobile flag, providing clients with information on when they are frozen. (The client then disallows movement.) - Fix for character statue redeeding issues.
This commit is contained in:
parent
a3f8cb5fc6
commit
c52504151b
18 changed files with 309 additions and 122 deletions
|
|
@ -232,7 +232,7 @@ namespace Server.Mobiles
|
|||
|
||||
Frozen = true;
|
||||
|
||||
if( m_SculptedBy == null || Map == Map.Internal )
|
||||
if( m_SculptedBy == null || Map == Map.Internal ) // Remove preview statues
|
||||
{
|
||||
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( Delete ) );
|
||||
}
|
||||
|
|
@ -246,7 +246,7 @@ namespace Server.Mobiles
|
|||
InvalidateProperties();
|
||||
}
|
||||
|
||||
public void Demolish( Mobile by )
|
||||
public bool Demolish( Mobile by )
|
||||
{
|
||||
CharacterStatueDeed deed = new CharacterStatueDeed( null );
|
||||
|
||||
|
|
@ -260,11 +260,15 @@ namespace Server.Mobiles
|
|||
|
||||
if ( m_Plinth != null )
|
||||
m_Plinth.Delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
by.SendLocalizedMessage( 500720 ); // You don't have enough room in your backpack!
|
||||
deed.Delete();
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -602,6 +606,14 @@ namespace Server.Mobiles
|
|||
plinth.MoveToWorld( loc, map );
|
||||
statue.InvalidatePose();
|
||||
|
||||
/*
|
||||
* TODO: Previously the maker wasn't deleted until after statue
|
||||
* customization, leading to redeeding issues. Exact OSI behavior
|
||||
* needs looking into.
|
||||
*/
|
||||
m_Maker.Delete();
|
||||
statue.Sculpt( from );
|
||||
|
||||
from.CloseGump( typeof( CharacterStatueGump ) );
|
||||
from.SendGump( new CharacterStatueGump( m_Maker, statue, from ) );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ namespace Server.Gumps
|
|||
{
|
||||
private Item m_Maker;
|
||||
private CharacterStatue m_Statue;
|
||||
private Timer m_Timer;
|
||||
private Mobile m_Owner;
|
||||
|
||||
private enum Buttons
|
||||
|
|
@ -81,20 +80,6 @@ namespace Server.Gumps
|
|||
AddButton( 107, 294, 0xFAB, 0xFAD, (int) Buttons.Restore, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 142, 294, 80, 20, 1076193, 0x7FFF, false, false ); // Restore
|
||||
}
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 2.5 ), TimeSpan.FromSeconds( 2.5 ), new TimerCallback( CheckOnline ) );
|
||||
}
|
||||
|
||||
private void CheckOnline()
|
||||
{
|
||||
if ( m_Owner != null && m_Owner.NetState == null )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
if ( m_Statue != null && !m_Statue.Deleted )
|
||||
m_Statue.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
private int GetMaterialNumber( StatueType type, StatueMaterial material )
|
||||
|
|
@ -141,7 +126,7 @@ namespace Server.Gumps
|
|||
|
||||
public override void OnResponse( NetState state, RelayInfo info )
|
||||
{
|
||||
if ( m_Statue == null || m_Statue.Deleted || m_Maker == null || m_Maker.Deleted || !m_Maker.IsChildOf( state.Mobile.Backpack ) )
|
||||
if ( m_Statue == null || m_Statue.Deleted )
|
||||
return;
|
||||
|
||||
bool sendGump = false;
|
||||
|
|
@ -205,25 +190,13 @@ namespace Server.Gumps
|
|||
|
||||
sendGump = true;
|
||||
}
|
||||
else
|
||||
else // Close
|
||||
{
|
||||
m_Statue.Delete();
|
||||
sendGump = !m_Statue.Demolish( state.Mobile );
|
||||
}
|
||||
|
||||
if ( sendGump )
|
||||
state.Mobile.SendGump( new CharacterStatueGump( m_Maker, m_Statue, m_Owner ) );
|
||||
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
}
|
||||
|
||||
public override void OnServerClose( NetState owner )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
if ( m_Statue != null && !m_Statue.Deleted )
|
||||
m_Statue.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue