#W# New genteleporter script.

This commit is contained in:
WarrentyExpired 2026-07-08 20:35:02 -04:00
parent f3ed632fd7
commit 15bb7a4751
2 changed files with 199 additions and 0 deletions

View file

@ -0,0 +1,93 @@
using System;
using System.IO;
using Server;
using Server.Items;
using Server.Commands;
namespace Server.Misc
{
public class GenTeleporters
{
public static void Initialize()
{
CommandSystem.Register( "GenTeleporters", AccessLevel.Administrator, new CommandEventHandler( GenTeleporters_OnCommand ) );
}
[Usage( "GenTeleporters" )]
[Description( "Generates teleporters from Data/Config/teleporters.cfg" )]
public static void GenTeleporters_OnCommand( CommandEventArgs e )
{
e.Mobile.SendMessage( "Generating teleporters..." );
string filePath = Path.Combine( Core.BaseDirectory, "Data/Config/teleporters.cfg" );
int count = 0;
if ( File.Exists( filePath ) )
{
using ( StreamReader ip = new StreamReader( filePath ) )
{
string line;
while ( (line = ip.ReadLine()) != null )
{
line = line.Trim();
// Skip empty lines and comments
if ( line.Length == 0 || line.StartsWith( "#" ) )
continue;
string[] split = line.Split( ' ' );
// We need at least 8 parameters: Map1 X1 Y1 Z1 Map2 X2 Y2 Z2
if ( split.Length >= 8 )
{
try
{
Map map1 = Map.Parse( split[0] );
int x1 = Convert.ToInt32( split[1] );
int y1 = Convert.ToInt32( split[2] );
int z1 = Convert.ToInt32( split[3] );
Map map2 = Map.Parse( split[4] );
int x2 = Convert.ToInt32( split[5] );
int y2 = Convert.ToInt32( split[6] );
int z2 = Convert.ToInt32( split[7] );
// Default to two-way unless false is explicitly stated
bool twoWay = true;
if ( split.Length >= 9 && split[8].ToLower() == "false" )
{
twoWay = false;
}
Point3D loc1 = new Point3D( x1, y1, z1 );
Point3D loc2 = new Point3D( x2, y2, z2 );
// Create Teleporter A (Location 1 -> Location 2)
Teleporter tele1 = new Teleporter( loc2, map2 );
tele1.MoveToWorld( loc1, map1 );
count++;
// Conditionally Create Teleporter B (Location 2 -> Location 1)
if ( twoWay )
{
Teleporter tele2 = new Teleporter( loc1, map1 );
tele2.MoveToWorld( loc2, map2 );
count++;
}
}
catch
{
Console.WriteLine( "Warning: Error parsing teleporter line: {0}", line );
}
}
}
}
e.Mobile.SendMessage( "{0} teleporters generated successfully.", count );
}
else
{
e.Mobile.SendMessage( "Error: Could not find Data/Config/teleporters.cfg" );
}
}
}
}