Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

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


Akushi

Messages recommandés

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

 

Avant le fixe :

Pour avoir accès à cette image, merci de vous connecter.

 

Après le fixe :

Pour avoir accès à cette image, merci de vous connecter.

 

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

Pour avoir accès à ce lien, merci de vous connecter.

pour avoir écrit l'optimisation.

Lien à poster
Partager sur d’autres 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 ..

 

 

                                   

                                         

Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...