81 lines
2.3 KiB
C#
81 lines
2.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using Server.Items;
|
|
|
|
namespace Server.Commands
|
|
{
|
|
public class ExportCommand
|
|
{
|
|
private const string ExportFile = @"C:\Uo\WorldForge\items.wsc";
|
|
public static void Initialize()
|
|
{
|
|
CommandSystem.Register("ExportWSC", AccessLevel.Administrator, new CommandEventHandler(Export_OnCommand));
|
|
}
|
|
|
|
public static void Export_OnCommand(CommandEventArgs e)
|
|
{
|
|
StreamWriter w = new StreamWriter(ExportFile);
|
|
ArrayList remove = new ArrayList();
|
|
int count = 0;
|
|
|
|
e.Mobile.SendMessage("Exporting all static items to \"{0}\"...", ExportFile);
|
|
e.Mobile.SendMessage("This will delete all static items in the world. Please make a backup.");
|
|
|
|
foreach (Item item in World.Items.Values)
|
|
{
|
|
if ((item is Static || item is BaseFloor || item is BaseWall) &&
|
|
item.RootParent == null)
|
|
{
|
|
w.WriteLine("SECTION WORLDITEM {0}", count);
|
|
w.WriteLine("{");
|
|
w.WriteLine("SERIAL {0}", item.Serial);
|
|
w.WriteLine("NAME #");
|
|
w.WriteLine("NAME2 #");
|
|
w.WriteLine("ID {0}", item.ItemID);
|
|
w.WriteLine("X {0}", item.X);
|
|
w.WriteLine("Y {0}", item.Y);
|
|
w.WriteLine("Z {0}", item.Z);
|
|
w.WriteLine("COLOR {0}", item.Hue);
|
|
w.WriteLine("CONT -1");
|
|
w.WriteLine("TYPE 0");
|
|
w.WriteLine("AMOUNT 1");
|
|
w.WriteLine("WEIGHT 255");
|
|
w.WriteLine("OWNER -1");
|
|
w.WriteLine("SPAWN -1");
|
|
w.WriteLine("VALUE 1");
|
|
w.WriteLine("}");
|
|
w.WriteLine("");
|
|
|
|
count++;
|
|
remove.Add(item);
|
|
w.Flush();
|
|
}
|
|
}
|
|
|
|
w.Close();
|
|
|
|
foreach (Item item in remove)
|
|
item.Delete();
|
|
|
|
e.Mobile.SendMessage("Export complete. Exported {0} statics.", count);
|
|
}
|
|
}
|
|
}
|
|
/*SECTION WORLDITEM 1
|
|
{
|
|
SERIAL 1073741830
|
|
NAME #
|
|
NAME2 #
|
|
ID 1709
|
|
X 1439
|
|
Y 1613
|
|
Z 20
|
|
CONT -1
|
|
TYPE 12
|
|
AMOUNT 1
|
|
WEIGHT 25500
|
|
OWNER -1
|
|
SPAWN -1
|
|
VALUE 1
|
|
}*/ |