#W# Added MoveToLoc script [movetoloc +100 -100. Tweaked [spawngen savebyhand to use SpawnID 99.

This commit is contained in:
WarrentyExpired 2026-07-11 14:22:39 -04:00
parent d802787ee2
commit eeab1c9664
4 changed files with 58 additions and 5 deletions

View file

@ -0,0 +1,53 @@
using System;
using Server;
using Server.Commands;
namespace Server.Commands
{
public class MoveToLocCommand
{
public static void Initialize()
{
// Registers the command. GMs and Admins can use it.
CommandSystem.Register( "MoveToLoc", AccessLevel.GameMaster, new CommandEventHandler( MoveToLoc_OnCommand ) );
}
[Usage( "MoveToLoc [+x/-x] [+y/-y] [+z/-z]" )]
public static void MoveToLoc_OnCommand( CommandEventArgs e )
{
Mobile from = e.Mobile;
if ( e.Length < 2 )
{
from.SendMessage( "Usage: [MoveToLoc [+x/-x] [+y/-y] [+z/-z]" );
return;
}
int currentX = from.X;
int currentY = from.Y;
int currentZ = from.Z;
int targetX = ParseCoordinate( e.GetString( 0 ), currentX );
int targetY = ParseCoordinate( e.GetString( 1 ), currentY );
int targetZ = ( e.Length >= 3 ) ? ParseCoordinate( e.GetString( 2 ), currentZ ) : currentZ;
from.MoveToWorld( new Point3D( targetX, targetY, targetZ ), from.Map );
}
private static int ParseCoordinate( string input, int currentVal )
{
if ( string.IsNullOrEmpty( input ) )
return currentVal;
// Check if it starts with a relative modification operator
if ( input.StartsWith( "+" ) || input.StartsWith( "-" ) )
{
int modifier = Utility.ToInt32( input );
return currentVal + modifier;
}
// Otherwise treat it as a standard absolute coordinate
return Utility.ToInt32( input );
}
}
}

View file

@ -261,7 +261,7 @@ namespace Server
foreach ( Item itemsave in World.Items.Values ) foreach ( Item itemsave in World.Items.Values )
{ {
if ( itemsave is PremiumSpawner && ((PremiumSpawner)itemsave).SpawnID == 1 ) if ( itemsave is PremiumSpawner && ((PremiumSpawner)itemsave).SpawnID == 99 )
{ {
itemtodo.Add( itemsave ); itemtodo.Add( itemsave );
count +=1; count +=1;
@ -643,4 +643,4 @@ namespace Server
m_Count++; m_Count++;
} }
} }
} }

View file

@ -391,7 +391,7 @@ command prompt instead:
[spawngen savebyhand [spawngen savebyhand
To save spawns done "by hand" ([add premiumspawner... all by hand premium To save spawns done "by hand" ([add premiumspawner... all by hand premium
spawners has SpawnID = 1). Spawns will be saved in "byhand.map" file in spawners has SpawnID = 99). Spawns will be saved in "byhand.map" file in
Data/Monsters folder. Data/Monsters folder.
[spawngen save x1 y1 x2 y2 [spawngen save x1 y1 x2 y2
@ -610,4 +610,4 @@ etc
You can place more then one cfg inside the same folder, and don't You can place more then one cfg inside the same folder, and don't
need to have the name Overseers.cfg. Files can have any name. You need to have the name Overseers.cfg. Files can have any name. You
can do a file "Graveyards.cfg" for all graveyards in a facet. Plus can do a file "Graveyards.cfg" for all graveyards in a facet. Plus
another called "Florests.cfg" for florests and open areas etc. another called "Florests.cfg" for florests and open areas etc.

View file

@ -101,7 +101,7 @@ namespace Server
private static Type[] FieldAnimals = new Type[] private static Type[] FieldAnimals = new Type[]
{ {
typeof( BrownBear ), typeof( Goat ), typeof( MountainGoat ), typeof( BrownBear ), typeof( Goat ), typeof( MountainGoat ),
typeof( Llama ), typeof( Cow ), typeof( Bull ), typeof( Horse ) typeof( Cow ), typeof( Bull )
}; };
private static Type[] SnowAnimals = new Type[] private static Type[] SnowAnimals = new Type[]