Jump to content
  • Please do not post a message for the purpose of insulting, incitement to hatred, sexual remarks and any other which does not respect our terms of use !

[Fixe] Optimisation de l'insertion des mobis dans la bdd


Akushi

Recommended Posts

Salut, inshare donc je partage ce fixe trouvé sur un forum espagnol

 

Avant le fixe :

To access this image, please log in.

 

Après le fixe :

To access this image, please log in.

 

Donc voilà le fixe :

Dans ItemFactory.cs , remplacez la méthode CreateMultipleItems par ce qui suit:

public static List<Item> CreateMultipleItems(ItemData Data, Habbo Habbo, string ExtraData, int Amount, int GroupId = 0)
        {
            if (Data == null) throw new InvalidOperationException("Data cannot be null.");
 
            List<Item> Items = new List<Item>();
 
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                // lets build the query
                StringBuilder query = new StringBuilder();
                query.Append("INSERT INTO `items` (base_item,user_id,room_id,x,y,z,wall_pos,rot,extra_data) VALUES(@did,@uid,@rid,@x,@y,@z,@wallpos,@rot,@flags)");
                for(int i = 0; i < Amount - 1; i++)
                {
                    query.Append(",(@did,@uid,@rid,@x,@y,@z,@wallpos,@rot,@flags)");
                }
                query.Append(";");
               
                dbClient.SetQuery(query.ToString());
                dbClient.AddParameter("did", Data.Id);
                dbClient.AddParameter("uid", Habbo.Id);
                dbClient.AddParameter("rid", 0);
                dbClient.AddParameter("x", 0);
                dbClient.AddParameter("y", 0);
                dbClient.AddParameter("z", 0);
                dbClient.AddParameter("wallpos", "");
                dbClient.AddParameter("rot", 0);
                dbClient.AddParameter("flags", ExtraData);
                //execute query
                int firstItemId = Convert.ToInt32(dbClient.InsertQuery());
                for (int i = firstItemId; i < firstItemId + Amount; i++)
                {
                    Items.Add(new Item(i, 0, Data.Id, ExtraData, 0, 0, 0, 0, Habbo.Id, GroupId, 0, 0, ""));
                    if (GroupId > 0)
                    {
                        dbClient.SetQuery("INSERT INTO `items_groups` (`id`, `group_id`) VALUES (@id, @gid)");
                        dbClient.AddParameter("id",Items[i - firstItemId].Id);
                        dbClient.AddParameter("gid", GroupId);
                        dbClient.RunQuery();
                    }
                }
            }
            return Items;
        }

Et normalement tout devrait fonctionner

 

Crédits:

Forozone

To access this link, please log in.

pour avoir écrit l'optimisation.

Link to post
Share on other sites

Merci de ton mini partage ;) 

Ancien Responsable des modérateurs

Mon discord : Nagasaki#5318
 
16 août 2017   ->  16 février 2020
Je m'en vais ..

 

 

                                   

                                         

Link to post
Share on other sites

Le 07/12/2017 à 19:16, Joackim a dit :

Merci pour ceux qui ne l'ont pas :p

Peut de petit rétro l'ont et c'est vraiment utile pour l'achat de mobis en grande quantité :D

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...