Пример #1
0
        private static void LoadToons()
        {
            var query  = "SELECT * from toons";
            var cmd    = new SQLiteCommand(query, DBManager.Connection);
            var reader = cmd.ExecuteReader();

            if (!reader.HasRows)
            {
                return;
            }

            while (reader.Read())
            {
                var itemCreate = new Dictionary <uint, Item>();
                var databaseId = (ulong)reader.GetInt64(0);
                //TODO: Move this to toon class only create a toon with id and call load from DB
                var toon = new Toon(databaseId, reader.GetString(1), (int)reader.GetInt32(6), reader.GetByte(2), reader.GetByte(3), reader.GetByte(4), reader.GetInt64(5), (uint)reader.GetInt32(7), (int)reader.GetInt32(8), null);
                //add visual equipment
                //TODO: Load all visualEquipment at once
                D3.Hero.VisualItem[] visualItems = new D3.Hero.VisualItem[8];
                var vItemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot <> -1", databaseId);
                var itemCmd    = new SQLiteCommand(vItemQuery, DBManager.Connection);
                var itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    while (itemReader.Read())
                    {
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        visualItems[slot] = D3.Hero.VisualItem.CreateBuilder()
                                            .SetGbid(gbid)
                                            .SetEffectLevel(0)
                                            .Build();
                    }

                    toon.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
                }

                //add inventory items
                var itemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot = -1", databaseId);
                itemCmd    = new SQLiteCommand(itemQuery, DBManager.Connection);
                itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    uint count = 0;
                    toon.ItemsTable = new Dictionary <uint, KeyValuePair <ItemTable, Vector2D> >();
                    while (itemReader.Read())
                    {
                        var       x    = (int)itemReader.GetInt64(1);
                        var       y    = (int)itemReader.GetInt64(2);
                        var       slot = (int)itemReader.GetInt64(3);
                        var       gbid = (int)itemReader.GetInt64(4);
                        ItemTable it   = ItemGenerator.GetItemDefinition(gbid);
                        Vector2D  v2d  = new Vector2D(x, y);
                        toon.ItemsTable.Add((uint)gbid, new KeyValuePair <ItemTable, Vector2D>(it, v2d));
                        count++;
                    }

                    toon.Items = itemCreate;
                }


                Toons.Add(databaseId, toon);
            }
        }
Пример #2
0
        private static void LoadToons()
        {
            var query = "SELECT * from toons";
            var cmd = new SQLiteCommand(query, DBManager.Connection);
            var reader = cmd.ExecuteReader();

            if (!reader.HasRows) return;

            while (reader.Read())
            {
                var itemCreate = new Dictionary<uint, Item>();
                var databaseId = (ulong)reader.GetInt64(0);
                //TODO: Move this to toon class only create a toon with id and call load from DB
                var toon = new Toon(databaseId, reader.GetString(1), (int)reader.GetInt32(6), reader.GetByte(2), reader.GetByte(3), reader.GetByte(4), reader.GetInt64(5), (uint)reader.GetInt32(7), (int)reader.GetInt32(8),null);
                //add visual equipment
                //TODO: Load all visualEquipment at once
                D3.Hero.VisualItem[] visualItems = new D3.Hero.VisualItem[8];
                var vItemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot <> -1", databaseId);
                var itemCmd = new SQLiteCommand(vItemQuery, DBManager.Connection);
                var itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    while (itemReader.Read())
                    {
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        visualItems[slot] = D3.Hero.VisualItem.CreateBuilder()
                            .SetGbid(gbid)
                            .SetEffectLevel(0)
                            .Build();
                    }

                    toon.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
                }

                //add inventory items
                var itemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot = -1", databaseId);
                itemCmd = new SQLiteCommand(itemQuery, DBManager.Connection);
                itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    uint count = 0;
                    toon.ItemsTable = new Dictionary<uint, KeyValuePair<ItemTable, Vector2D>>();
                    while (itemReader.Read())
                    {
                        var x = (int)itemReader.GetInt64(1);
                        var y = (int)itemReader.GetInt64(2);
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        ItemTable it = ItemGenerator.GetItemDefinition(gbid);
                        Vector2D v2d = new Vector2D(x,y);
                        toon.ItemsTable.Add((uint)gbid,new KeyValuePair<ItemTable, Vector2D>(it,v2d));
                        count++;
                    }

                    toon.Items = itemCreate;
                }


                Toons.Add(databaseId, toon);
            }
        }
Пример #3
0
        private static void LoadToons()
        {
            var query = "SELECT * from toons";
            var cmd = new SQLiteCommand(query, DBManager.Connection);
            var reader = cmd.ExecuteReader();

            if (!reader.HasRows) return;

            while (reader.Read())
            {
                var databaseId = (ulong)reader.GetInt64(0);
                //TODO: Move this to toon class only create a toon with id and call load from DB
                var toon = new Toon(databaseId, reader.GetString(1), (int)reader.GetInt32(6), reader.GetByte(2), reader.GetByte(3), reader.GetByte(4), reader.GetInt64(5), (uint)reader.GetInt32(7), (int)reader.GetInt32(8));
                //add visual equipment
                //TODO: Load all visualEquipment at once
                D3.Hero.VisualItem[] visualItems = new D3.Hero.VisualItem[8];
                var itemQuery = string.Format("SELECT * from inventory WHERE toon_id = {0}", databaseId);
                var itemCmd = new SQLiteCommand(itemQuery, DBManager.Connection);
                var itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    while (itemReader.Read())
                    {
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        visualItems[slot] = D3.Hero.VisualItem.CreateBuilder()
                            .SetGbid(gbid)
                            .SetEffectLevel(0)
                            .Build();
                    }

                    toon.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
                }


                Toons.Add(databaseId, toon);
            }
        }