Files
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

121 lines
4.4 KiB
C#

/**************************************
*Script Name: Staff Runebook *
*Author: Joeku *
*For use with RunUO 2.0 RC2 *
*Client Tested with: 6.0.9.2 *
*Version: 1.10 *
*Initial Release: 11/25/07 *
*Revision Date: 02/04/09 *
**************************************/
using System;
using System.IO;
using System.Xml;
using Server;
namespace Joeku.SR
{
public class SR_Load
{
public static void ReadData(string filePath)
{
if (!File.Exists(filePath))
return;
Console.WriteLine();
Console.WriteLine("Joeku's Staff Runebook: Loading...");
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlElement root = doc["StaffRunebook"];
int version = Utility.ToInt32(root.GetAttribute("Version"));
if (root.HasChildNodes)
{
foreach (XmlElement a in root.GetElementsByTagName("RuneAccount"))
{
try
{
ReadAccountNode(a);
}
catch
{
Console.WriteLine(" Warning: Staff Runebook load failed.");
}
}
}
Console.WriteLine();
}
public static void ReadAccountNode(XmlElement parent)
{
Console.Write(" Account: {0}... ", parent.GetAttribute("Username"));
try
{
SR_RuneAccount acc = new SR_RuneAccount(parent.GetAttribute("Username"));
if (parent.HasChildNodes)
{
XmlElement child = parent.FirstChild as XmlElement;
acc.AddRune(ReadRuneNode(child));
while (child.NextSibling != null)
{
child = child.NextSibling as XmlElement;
acc.AddRune(ReadRuneNode(child));
}
/*foreach( XmlElement child in parent.GetElementsByTagName("Runebook") )
if( child != null )
acc.AddRune(ReadRunebookNode(child));
foreach( XmlElement child in parent.GetElementsByTagName("Rune") )
if( child != null )
acc.AddRune(ReadRuneNode(child));*/
}
}
catch
{
Console.WriteLine("failed.");
}
Console.WriteLine("done.");
}
public static SR_Rune ReadRuneNode(XmlElement parent)
{
if (parent.LocalName == "Runebook")
{
SR_Rune runebook = new SR_Rune(parent.GetAttribute("Name"), true);
if (parent.HasChildNodes)
{
XmlElement child = parent.FirstChild as XmlElement;
runebook.AddRune(ReadRuneNode(child));
while (child.NextSibling != null)
{
child = child.NextSibling as XmlElement;
runebook.AddRune(ReadRuneNode(child));
}
}
return runebook;
}
//else if( parent.LocalName == "Rune" )
return new SR_Rune(parent.GetAttribute("Name"), Map.Parse(parent.GetAttribute("TargetMap")), new Point3D(Utility.ToInt32(parent.GetAttribute("X")),Utility.ToInt32(parent.GetAttribute("Y")),Utility.ToInt32(parent.GetAttribute("Z"))));
}
/*public static SR_Rune ReadRunebookNode( XmlElement parent )
{
SR_Rune rune = new SR_Rune(parent.GetAttribute("Name"), true);
if( parent.HasChildNodes )
{
foreach( XmlElement child in parent.GetElementsByTagName("Runebook") )
if( child != null )
rune.AddRune(ReadRunebookNode(child));
foreach( XmlElement child in parent.GetElementsByTagName("Rune") )
if( child != null )
rune.AddRune(ReadRuneNode(child));
}
return rune;
}
public static SR_Rune ReadRuneNode( XmlElement rune )
{
return new SR_Rune(rune.GetAttribute("Name"), Map.Parse(rune.GetAttribute("TargetMap")), new Point3D(Utility.ToInt32(rune.GetAttribute("X")),Utility.ToInt32(rune.GetAttribute("Y")),Utility.ToInt32(rune.GetAttribute("Z"))) );
}*/
}
}