Ejemplo n.º 1
0
        private static void RemoveItem(string pvItemName, string pvID, string pvPlayerName)
        {
            string      lvCharXml = Global.CharacterFolder + String.Format(@"\{0}.xml", pvPlayerName);
            bool        lvFound   = false;
            XmlDocument xDoc      = new XmlDocument();

            xDoc.Load(lvCharXml);

            XPathNavigator    xNav      = xDoc.CreateNavigator().SelectSingleNode("Character/Equipment");
            XPathNodeIterator xNodeIter = xNav.SelectChildren(XPathNodeType.All);

            while (xNodeIter.MoveNext())
            {
                if (lvFound)
                {
                    break;
                }

                XPathNodeIterator xTypeIter = xNodeIter.Current.SelectChildren(XPathNodeType.All);

                while (xTypeIter.MoveNext())
                {
                    if (xTypeIter.Current.SelectSingleNode("@ID") != null && xTypeIter.Current.SelectSingleNode("@ID").Value.ToLower() == pvID)
                    {
                        xTypeIter.Current.DeleteSelf();
                        lvFound = true;
                        break;
                    }
                }
            }

            ChatboxMessages.PlayerRemoveLostItem(pvPlayerName, pvItemName);

            while (Global.IsFileLocked(lvCharXml))
            {
                Thread.Sleep(1000);
            }
            FileStream lvFS = new FileStream(lvCharXml, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite);

            xDoc.Save(lvFS);
            lvFS.Close();
        }