Upgrades spawners to have parameters/properties and optimized timers (#6)
Upgrades spawners to have: - [X] Parameter support - [X] Property support - [X] Optimized timers - [X] Support for Proximity Spawners - [X] Probabilities
This commit is contained in:
parent
20ae1b3989
commit
1030bb7675
14 changed files with 1043 additions and 735 deletions
|
|
@ -454,7 +454,7 @@ namespace Server.Commands
|
|||
int indexOf = m_Params[i].IndexOf( '=' );
|
||||
|
||||
if ( indexOf >= 0 )
|
||||
sp.SpawnNames.Add( m_Params[i].Substring( ++indexOf ) );
|
||||
sp.AddEntry( m_Params[i].Substring( ++indexOf ), 100, 1 );
|
||||
}
|
||||
else if ( m_Params[i].StartsWith( "MinDelay" ) )
|
||||
{
|
||||
|
|
@ -482,7 +482,11 @@ namespace Server.Commands
|
|||
int indexOf = m_Params[i].IndexOf( '=' );
|
||||
|
||||
if ( indexOf >= 0 )
|
||||
{
|
||||
sp.Count = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) );
|
||||
for ( int se = 0;se < sp.Entries.Count; se++ )
|
||||
sp.Entries[se].SpawnedMaxCount = sp.Count;
|
||||
}
|
||||
}
|
||||
else if ( m_Params[i].StartsWith( "Team" ) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -451,7 +451,7 @@ namespace Server.Commands
|
|||
int indexOf = m_Params[i].IndexOf( '=' );
|
||||
|
||||
if ( indexOf >= 0 )
|
||||
sp.SpawnNames.Add( m_Params[i].Substring( ++indexOf ) );
|
||||
sp.AddEntry( m_Params[i].Substring( ++indexOf ), 100, 1 );
|
||||
}
|
||||
else if ( m_Params[i].StartsWith( "MinDelay" ) )
|
||||
{
|
||||
|
|
@ -479,7 +479,11 @@ namespace Server.Commands
|
|||
int indexOf = m_Params[i].IndexOf( '=' );
|
||||
|
||||
if ( indexOf >= 0 )
|
||||
{
|
||||
sp.Count = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) );
|
||||
for ( int se = 0;se < sp.Entries.Count; se++ )
|
||||
sp.Entries[se].SpawnedMaxCount = sp.Count;
|
||||
}
|
||||
}
|
||||
else if ( m_Params[i].StartsWith( "Team" ) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -74,8 +74,6 @@ namespace Server.Commands
|
|||
Register( "Light", AccessLevel.Counselor, new CommandEventHandler( Light_OnCommand ) );
|
||||
Register( "Stats", AccessLevel.Counselor, new CommandEventHandler( Stats_OnCommand ) );
|
||||
|
||||
Register( "ReplaceBankers", AccessLevel.Administrator, new CommandEventHandler( ReplaceBankers_OnCommand ) );
|
||||
|
||||
Register( "SpeedBoost", AccessLevel.Counselor, new CommandEventHandler( SpeedBoost_OnCommand ) );
|
||||
}
|
||||
|
||||
|
|
@ -334,46 +332,6 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
public static void ReplaceBankers_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
List<Mobile> list = new List<Mobile>();
|
||||
|
||||
foreach ( Mobile m in World.Mobiles.Values )
|
||||
if ( (m is Banker) && !(m is BaseCreature) )
|
||||
list.Add( m );
|
||||
|
||||
foreach ( Mobile m in list )
|
||||
{
|
||||
Map map = m.Map;
|
||||
|
||||
if ( map != null )
|
||||
{
|
||||
bool hasBankerSpawner = false;
|
||||
|
||||
foreach ( Item item in m.GetItemsInRange( 0 ) )
|
||||
{
|
||||
if ( item is Spawner )
|
||||
{
|
||||
Spawner spawner = (Spawner)item;
|
||||
|
||||
for ( int i = 0; !hasBankerSpawner && i < spawner.SpawnNames.Count; ++i )
|
||||
hasBankerSpawner = Insensitive.Equals( (string)spawner.SpawnNames[i], "banker" );
|
||||
|
||||
if ( hasBankerSpawner )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !hasBankerSpawner )
|
||||
{
|
||||
Spawner spawner = new Spawner( 1, 1, 5, 0, 4, "banker" );
|
||||
|
||||
spawner.MoveToWorld( m.Location, map );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class ViewEqTarget : Target
|
||||
{
|
||||
public ViewEqTarget() : base( -1, false, TargetFlags.None )
|
||||
|
|
@ -1015,4 +973,4 @@ namespace Server.Commands
|
|||
e.Mobile.SendMessage( "Items: {0}", World.Items.Count );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue