BritainKnights/Scripts/Commands/Admin/TargetLog.cs

82 lines
No EOL
2.2 KiB
C#

using System;
using Server;
using System.Collections;
using System.Collections.Generic;
using Server.Misc;
using Server.Items;
using Server.Network;
using Server.Commands;
using Server.Commands.Generic;
using Server.Mobiles;
using Server.Accounting;
using Server.Regions;
using System.IO;
using Server.Targeting;
namespace Server.Scripts.Commands
{
public class TargetLog
{
public static void Initialize()
{
CommandSystem.Register("TargetLog", AccessLevel.Counselor, new CommandEventHandler( TargetLogs ));
}
[Usage("TargetLog")]
[Description("Records the x, y, and z coordinates of the caller...along with the map they are in.")]
public static void TargetLogs( CommandEventArgs e )
{
e.Mobile.SendMessage( "What target do you want to log?" );
e.Mobile.Target = new InternalTarget();
}
private class InternalTarget : Target
{
public InternalTarget() : base ( 8, false, TargetFlags.None )
{
}
protected override void OnTarget( Mobile from, object targeted )
{
string sX = "";
string sY = "";
string sZ = "";
string sItem = "";
if ( targeted is Item )
{
sX = ((Item)targeted).X.ToString();
sY = ((Item)targeted).Y.ToString();
sZ = ((Item)targeted).Z.ToString();
sItem = ((Item)targeted).ItemID.ToString();
}
else if ( targeted is StaticTarget )
{
sX = ((StaticTarget)targeted).X.ToString();
sY = ((StaticTarget)targeted).Y.ToString();
sZ = ((StaticTarget)targeted).Z.ToString();
sItem = ((StaticTarget)targeted).ItemID.ToString();
}
string sRegion = from.Region.Name;
string sMap = "Map.Britannia";
if ( from.Map == Map.Underworld ){ sMap = "Map.Underworld"; }
if ( sX != "" )
{
StreamWriter w = File.AppendText("targets.txt");
w.WriteLine( sRegion + "\t" + sItem + "\t" + sX + "\t" + sY + "\t" + sZ + "\t" + sMap );
w.Close();
from.SendMessage( sRegion + " " + sItem + " " + sX + " " + sY + " " + sZ + " " + sMap );
}
else
{
from.SendMessage( "Target failed to log!" );
}
}
}
}
}