Beispiel #1
0
        public void LoadItems()
        {
            using (FileStream Stream = new FileStream(ITEMTYPE_LOCATION, FileMode.Open))
            {
                using (BinaryReader Reader = new BinaryReader(Stream))
                {
                    int Amount = Reader.ReadInt32();
                    ItemData = new Dictionary <uint, ItemDetail>(Amount);

                    Reader.BaseStream.Position += (Amount * 4);
                    for (int i = 0; i < Amount; i++)
                    {
                        ItemDetail Detail = new ItemDetail();
                        Detail.ID = Reader.ReadUInt32();
                        for (int j = 0; j < 16; j++)
                        {
                            Detail.Name += (char)Reader.ReadByte();
                        }
                        Detail.Name      = Detail.Name.Trim('\x00');
                        Detail.Class     = Reader.ReadByte();
                        Detail.Profiency = Reader.ReadByte();
                        Detail.Level     = Reader.ReadUInt16();
                        Detail.Vitality  = Reader.ReadUInt16();
                        Detail.Strength  = Reader.ReadUInt16();
                        Detail.Dexterity = Reader.ReadUInt16();
                        Detail.Spirit    = Reader.ReadUInt16();
                        Detail.TradeType = (byte)Reader.ReadUInt32();
                        Detail.Price     = Reader.ReadUInt32();


                        Reader.BaseStream.Position += 4;

                        Detail.MaxDamage         = Reader.ReadUInt16();
                        Detail.MinDamage         = Reader.ReadUInt16();
                        Detail.Defence           = Reader.ReadUInt16();
                        Detail.DexterityBonus    = Reader.ReadUInt16();
                        Detail.DodgeBonus        = Reader.ReadUInt16();
                        Detail.HitPointBonus     = Reader.ReadUInt16();
                        Detail.ManaPointBonus    = Reader.ReadUInt16();;
                        Detail.Durability        = Reader.ReadUInt16();
                        Detail.MaxDurability     = Reader.ReadUInt16();
                        Detail.MagicAttack       = Reader.ReadUInt16();
                        Detail.MagicDefenceBonus = Reader.ReadUInt16();

                        Reader.BaseStream.Position += 6;

                        Detail.Range     = (byte)Reader.ReadUInt16();
                        Detail.Frequency = Reader.ReadUInt16();

                        for (int x = 0; x < 16; x++)
                        {
                            Detail.Description += (char)Reader.ReadByte();
                        }

                        Detail.Description = Detail.Description.Trim('\x00');

                        if (!ItemData.ContainsKey(Detail.ID))
                        {
                            ItemData.Add(Detail.ID, Detail);
                        }
                        Reader.BaseStream.Position += 112;
                    }
                }
            }
        }
Beispiel #2
0
        public void LoadItems()
        {
            using (FileStream Stream = new FileStream(ITEMTYPE_LOCATION, FileMode.Open))
            {
                using (BinaryReader Reader = new BinaryReader(Stream))
                {
                    int Amount = Reader.ReadInt32();
                    ItemData = new Dictionary<uint, ItemDetail>(Amount);

                    Reader.BaseStream.Position += (Amount * 4);
                    for (int i = 0; i < Amount; i++)
                    {
                        ItemDetail Detail = new ItemDetail();
                        Detail.ID = Reader.ReadUInt32();
                        for (int j = 0; j < 16; j++)
                        {
                            Detail.Name += (char)Reader.ReadByte();
                        }
                        Detail.Name = Detail.Name.Trim('\x00');
                        Detail.Class = Reader.ReadByte();
                        Detail.Profiency = Reader.ReadByte();
                        Detail.Level = Reader.ReadUInt16();
                        Detail.Vitality = Reader.ReadUInt16();
                        Detail.Strength = Reader.ReadUInt16();
                        Detail.Dexterity = Reader.ReadUInt16();
                        Detail.Spirit = Reader.ReadUInt16();
                        Detail.TradeType = (byte)Reader.ReadUInt32();
                        Detail.Price = Reader.ReadUInt32();

                        Reader.BaseStream.Position += 4;

                        Detail.MaxDamage = Reader.ReadUInt16();
                        Detail.MinDamage = Reader.ReadUInt16();
                        Detail.Defence = Reader.ReadUInt16();
                        Detail.DexterityBonus = Reader.ReadUInt16();
                        Detail.DodgeBonus = Reader.ReadUInt16();
                        Detail.HitPointBonus = Reader.ReadUInt16();
                        Detail.ManaPointBonus = Reader.ReadUInt16(); ;
                        Detail.Durability = Reader.ReadUInt16();
                        Detail.MaxDurability = Reader.ReadUInt16();
                        Detail.MagicAttack = Reader.ReadUInt16();
                        Detail.MagicDefenceBonus = Reader.ReadUInt16();

                        Reader.BaseStream.Position += 6;

                        Detail.Range = (byte)Reader.ReadUInt16();
                        Detail.Frequency = Reader.ReadUInt16();

                        for (int x = 0; x < 16; x++)
                        {
                            Detail.Description += (char)Reader.ReadByte();
                        }

                        Detail.Description = Detail.Description.Trim('\x00');

                        if (!ItemData.ContainsKey(Detail.ID))
                        {
                            ItemData.Add(Detail.ID, Detail);

                        }
                        Reader.BaseStream.Position += 112;
                    }
                }
            }
        }