View Single Post
Old 10-23-2007, 04:27 AM   #1 (permalink)
Alex21
Forum Expert
 
Alex21's Avatar
 
Join Date: Jul 2007
Location: Australia, Queensland, Sunshine Coast
Age: 17
Posts: 1,334
Send a message via MSN to Alex21
Default Serialize A Array.

I am working on a new more pvp guild like faction system, so far i have begun by trying to create the stone, it compiles but...

On the restart it says this:
Code:
World: Loading...An error was encountered while loading a saved object
 - Type: Server.Items.SunFactionStone
 - Serial: 0x40000215
Delete the object? (y/n)
i guess this mean my serialiaze method is wacked, can some one tell me how to serialize an array?

here is script:
Code:
using System;
using Server;
using Server.Gumps;
using Server.Items;
using Server.Mobiles;
using System.Collections;
using Server.Network;
using Server.Prompts;
using Server.Commands;
using Server.Targeting;

namespace Server.Items
{
    public class SunFactionStone : Item
    {

        private ArrayList members;
        private int totalmembers;
        private int points;
        private string name;

        [Constructable]
        public SunFactionStone()
            : base(0xEDC)
        {
            Movable = false;
        }

        public override void GetProperties(ObjectPropertyList list)
        {
            base.GetProperties(list);

            if (members != null)
            {
                totalmembers = members.Count;
            }
            else
            {
                totalmembers = 0;
            }

            name = "Faction Stone of Sun";

            //points = GetFactionPoints("Sun");

            list.Add(name);
            list.Add("Members: "+totalmembers);
            list.Add("Points: "+points);
        }

        public override void OnDoubleClick(Mobile from)
        {
            if (members == null)
            {
                members = new ArrayList();
                Console.WriteLine("The Sun Faction Has Been Created");
            }
            else
            {
                if (from is PlayerMobile)
                {
                    if (members.Contains(from))
                    {
                        from.SendGump(new SunJoinGump());
                    }
                    else
                    {
                        from.SendGump(new SunJoinGump());
                    }
                }
            }
        }

       public SunFactionStone(Serial serial)
            : base(serial)
        {
        }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write((int)0); // version

            if (members != null)
            {
                writer.WriteMobileList(members);
            }

        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            if (members != null)
            {
                members = reader.ReadMobileList();
            }

        }

    }
}
serialize problem lines are high lighted red.

thanks for all help.
__________________
Advertise Your Server On JoinUO!
JoinUO @ - joinuo.com
Alex21 is offline   Reply With Quote