AvatarsConquest/Scripts/Engines/Spawner/PremiumSpawnerGumps.cs

419 lines
No EOL
13 KiB
C#

// Engine r117
using System;
using System.Collections;
using System.IO;
using Server;
using Server.Mobiles;
using Server.Items;
using Server.Commands;
using Server.Network;
using Server.Gumps;
using Server.Regions;
namespace Server.Commands
{
public class OptionsGumps
{
public OptionsGumps()
{
}
public static void Initialize()
{
CommandSystem.Register( "GumpSaveRegion", AccessLevel.Administrator, new CommandEventHandler( OptionsGumps1_OnCommand ) );
CommandSystem.Register( "GumpSaveCoordinate", AccessLevel.Administrator, new CommandEventHandler( OptionsGumps2_OnCommand ) );
CommandSystem.Register( "GumpRemoveID", AccessLevel.Administrator, new CommandEventHandler( OptionsGumps3_OnCommand ) );
CommandSystem.Register( "GumpRemoveCoordinate", AccessLevel.Administrator, new CommandEventHandler( OptionsGumps4_OnCommand ) );
CommandSystem.Register( "GumpRemoveRegion", AccessLevel.Administrator, new CommandEventHandler( OptionsGumps5_OnCommand ) );
}
[Usage( "[GumpSaveRegion" )]
[Description( "Gump to Save inside Region" )]
private static void OptionsGumps1_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new GumpSaveRegion( e ) );
}
[Usage( "[GumpSaveCoordinate" )]
[Description( "Gump to save by coordinates" )]
private static void OptionsGumps2_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new GumpSaveCoordinate( e ) );
}
[Usage( "[GumpRemoveID" )]
[Description( "Gump to remove by ID" )]
private static void OptionsGumps3_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new GumpRemoveID( e ) );
}
[Usage( "[GumpRemoveCoordinate" )]
[Description( "Gump to remove by coordinates" )]
private static void OptionsGumps4_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new GumpRemoveCoordinate( e ) );
}
[Usage( "[GumpRemoveRegion" )]
[Description( "Gump to remove inside region" )]
private static void OptionsGumps5_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new GumpRemoveRegion( e ) );
}
}
}
namespace Server.Gumps
{
public class GumpSaveRegion : Gump
{
private CommandEventArgs m_CommandEventArgs;
public GumpSaveRegion( CommandEventArgs e ) : base( 50,50 )
{
m_CommandEventArgs = e;
Closable = true;
Dragable = true;
Mobile from = e.Mobile;
AddPage(1);
//x, y, width, hight
AddBackground( 0, 0, 232, 210, 5054 );
AddImageTiled( 15, 30, 120, 20, 3004 );
AddTextEntry( 15, 30, 120, 20, 0, 0, @"region to save");
AddLabel( 15, 10, 52, "Enter a Region:" );
AddButton( 140, 32, 0x15E1, 0x15E5, 101, GumpButtonType.Reply, 0 );
AddLabel( 15, 60, 52, "Tip:" );
AddHtml( 15, 80, 200, 110, "This will SAVE the spawners, in a specified region, to Data/Spawns/'region name'.map. Type [where if you don't know the region you are. Copy to the text box the name of the region. You also can open Data/Regions.xml to a full list of regions.<BR>Example: you type [where and appear 'your region is town of Britain'. Type 'Britain' in text box.", true, true );
}
public override void OnResponse(NetState state, RelayInfo info)
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: // close the gump
{
break;
}
case 101:
{
TextRelay oRegion = info.GetTextEntry( 0 );
string sRegion = oRegion.Text;
if( sRegion != "" )
{
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}Spawngen save {1}", prefix, sRegion ) );
}
else
{
from.SendMessage( "You must specify a region!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpSaveRegion", prefix ) );
}
break;
}
}
}
}
public class GumpRemoveRegion : Gump
{
private CommandEventArgs m_CommandEventArgs;
public GumpRemoveRegion( CommandEventArgs e ) : base( 50,50 )
{
m_CommandEventArgs = e;
Closable = true;
Dragable = true;
Mobile from = e.Mobile;
AddPage(1);
AddBackground( 0, 0, 232, 210, 5054 );
AddImageTiled( 15, 30, 120, 20, 3004 );
AddTextEntry( 15, 30, 120, 20, 0, 0, @"region to remove");
AddLabel( 15, 10, 52, "Enter a Region:" );
AddButton( 140, 32, 0x15E1, 0x15E5, 101, GumpButtonType.Reply, 0 );
AddLabel( 15, 60, 52, "Tip:" );
AddHtml( 15, 80, 200, 110, "This will REMOVE the spawners, in a specified region. Type [where if you don't know the region you are. Copy to the text box the name of the region. You also can open Data/Regions.xml to a full list of regions.<BR>Example: you type [where and appear 'your region is town of Britain'. Type 'Britain' in text box.", true, true );
}
public override void OnResponse(NetState state, RelayInfo info)
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: // close the gump
{
break;
}
case 101:
{
TextRelay oRegion = info.GetTextEntry( 0 );
string sRegion = oRegion.Text;
if( sRegion != "" )
{
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}Spawngen remove {1}", prefix, sRegion ) );
}
else
{
from.SendMessage( "You must specify a region!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpRemoveRegion", prefix ) );
}
break;
}
}
}
}
public class GumpRemoveID : Gump
{
private CommandEventArgs m_CommandEventArgs;
public GumpRemoveID( CommandEventArgs e ) : base( 50,50 )
{
m_CommandEventArgs = e;
Closable = true;
Dragable = true;
Mobile from = e.Mobile;
AddPage(1);
AddBackground( 0, 0, 232, 210, 5054 );
AddImageTiled( 15, 30, 120, 20, 3004 );
AddTextEntry( 15, 30, 120, 20, 0, 0, @"SpawnID to remove");
AddLabel( 15, 10, 52, "Enter a SpawnID:" );
AddButton( 140, 32, 0x15E1, 0x15E5, 101, GumpButtonType.Reply, 0 );
AddLabel( 15, 60, 52, "Tip:" );
AddHtml( 15, 80, 200, 110, "This command was made to UNLOAD your own custom maps. This will REMOVE the spawners with the specified ID. Type '[get spawnid' in a spawner to know your ID. Remember: 'By Hand' spawns, i.e., those done with '[add premiumspawner' have ID = 1.", true, true );
}
public override void OnResponse(NetState state, RelayInfo info)
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: // close the gump
{
break;
}
case 101:
{
TextRelay oID = info.GetTextEntry( 0 );
string sID = oID.Text;
if( sID != "" )
{
try
{
int UnloadID = Convert.ToInt32( sID );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}Spawngen unload {1}", prefix, UnloadID ) );
}
catch
{
from.SendMessage( "SpawnID must be a number!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpRemoveID", prefix ) );
}
}
else
{
from.SendMessage( "You must specify an SpawnID!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpRemoveID", prefix ) );
}
break;
}
}
}
}
public class GumpSaveCoordinate : Gump
{
private CommandEventArgs m_CommandEventArgs;
public GumpSaveCoordinate( CommandEventArgs e ) : base( 50,50 )
{
m_CommandEventArgs = e;
Closable = true;
Dragable = true;
Mobile from = e.Mobile;
AddPage(1);
AddBackground( 0, 0, 232, 235, 5054 );
AddImageTiled( 15, 30, 37, 20, 3004 );
AddTextEntry( 15, 30, 37, 20, 0, 0, @"X1");
AddImageTiled( 57, 30, 37, 20, 3004 );
AddTextEntry( 57, 30, 37, 20, 0, 1, @"Y1");
AddImageTiled( 15, 55, 37, 20, 3004 );
AddTextEntry( 15, 55, 37, 20, 0, 2, @"X2");
AddImageTiled( 57, 55, 37, 20, 3004 );
AddTextEntry( 57, 55, 37, 20, 0, 3, @"Y2");
AddLabel( 15, 10, 52, "Enter Coordinates:" );
AddButton( 140, 32, 0x15E1, 0x15E5, 101, GumpButtonType.Reply, 0 );
AddLabel( 15, 85, 52, "Tip:" );
AddHtml( 15, 105, 200, 110, "This will SAVE spawners inside specified coordinates. You can use [where in the first point and again [where in the second point to get the X and Y coordinates. You need 2: X1, Y1 for first point and X2, Y2 for the second point. The objective is determine a 'box'. This command will save all spawners inside this box.", true, true );
}
public override void OnResponse(NetState state, RelayInfo info)
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: // close the gump
{
break;
}
case 101:
{
TextRelay oX1 = info.GetTextEntry( 0 );
TextRelay oY1 = info.GetTextEntry( 1 );
TextRelay oX2 = info.GetTextEntry( 2 );
TextRelay oY2 = info.GetTextEntry( 3 );
string sX1 = oX1.Text;
string sY1 = oY1.Text;
string sX2 = oX2.Text;
string sY2 = oY2.Text;
if( sX1 != "" && sY1 != "" && sX2 != "" && sY2 != "" )
{
try
{
int iX1 = Convert.ToInt32( sX1 );
int iY1 = Convert.ToInt32( sY1 );
int iX2 = Convert.ToInt32( sX2 );
int iY2 = Convert.ToInt32( sY2 );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}Spawngen save {1} {2} {3} {4}", prefix, iX1, iY1, iX2, iY2 ) );
}
catch
{
from.SendMessage( "Coordinates must be numbers!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpSaveCoordinate", prefix ) );
}
}
else
{
from.SendMessage( "You must specify all coordinates!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpSaveCoordinate", prefix ) );
}
break;
}
}
}
}
public class GumpRemoveCoordinate : Gump
{
private CommandEventArgs m_CommandEventArgs;
public GumpRemoveCoordinate( CommandEventArgs e ) : base( 50,50 )
{
m_CommandEventArgs = e;
Closable = true;
Dragable = true;
Mobile from = e.Mobile;
AddPage(1);
AddBackground( 0, 0, 232, 235, 5054 );
AddImageTiled( 15, 30, 37, 20, 3004 );
AddTextEntry( 15, 30, 37, 20, 0, 0, @"X1");
AddImageTiled( 57, 30, 37, 20, 3004 );
AddTextEntry( 57, 30, 37, 20, 0, 1, @"Y1");
AddImageTiled( 15, 55, 37, 20, 3004 );
AddTextEntry( 15, 55, 37, 20, 0, 2, @"X2");
AddImageTiled( 57, 55, 37, 20, 3004 );
AddTextEntry( 57, 55, 37, 20, 0, 3, @"Y2");
AddLabel( 15, 10, 52, "Enter Coordinates:" );
AddButton( 140, 32, 0x15E1, 0x15E5, 101, GumpButtonType.Reply, 0 );
AddLabel( 15, 85, 52, "Tip:" );
AddHtml( 15, 105, 200, 110, "This will REMOVE spawners inside specified coordinates. You can use [where in the first point and again [where in the second point to get the X and Y coordinates. You need 2: X1, Y1 for first point and X2, Y2 for the second point. The objective is determine a 'box'. This command will remove all spawners inside this box.", true, true );
}
public override void OnResponse(NetState state, RelayInfo info)
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: // close the gump
{
break;
}
case 101:
{
TextRelay oX1 = info.GetTextEntry( 0 );
TextRelay oY1 = info.GetTextEntry( 1 );
TextRelay oX2 = info.GetTextEntry( 2 );
TextRelay oY2 = info.GetTextEntry( 3 );
string sX1 = oX1.Text;
string sY1 = oY1.Text;
string sX2 = oX2.Text;
string sY2 = oY2.Text;
if( sX1 != "" && sY1 != "" && sX2 != "" && sY2 != "" )
{
try
{
int iX1 = Convert.ToInt32( sX1 );
int iY1 = Convert.ToInt32( sY1 );
int iX2 = Convert.ToInt32( sX2 );
int iY2 = Convert.ToInt32( sY2 );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}Spawngen remove {1} {2} {3} {4}", prefix, iX1, iY1, iX2, iY2 ) );
}
catch
{
from.SendMessage( "Coordinates must be numbers!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpRemoveCoordinate", prefix ) );
}
}
else
{
from.SendMessage( "You must specify all coordinates!" );
string prefix = Server.Commands.CommandSystem.Prefix;
CommandSystem.Handle( from, String.Format( "{0}GumpRemoveCoordinate", prefix ) );
}
break;
}
}
}
}
}