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 !

Commande View Inventory


Pouney

Messages recommandés

Bonjour, je vous fais un repost et une traduction d'un sujet que l'on m'a envoyé d'ailleur, merci @elfey

 

La commande vous permet de visualiser les inventaires des autres joueurs à travers le vôtre, tout en s'assurant que les articles ne peuvent être placés, échangés et échangés sur le marché. L'idée de cette commande provient de JayCustom, alors tous les crédits vont à lui pour cela. Prendre plaisir!

 

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

 

Créez d'abord une nouvelle commande et nommez le fichier "ViewInventoryCommand.cs" et copiez et collez ce code dans le fichier:

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;

using Plus.HabboHotel.GameClients;
using Plus.Communication.Packets.Outgoing.Inventory.Furni;

namespace Plus.HabboHotel.Rooms.Chat.Commands.Administrator
{
    class ViewInventoryCommand : IChatCommand
    {
        public string PermissionRequired
        {
            get { return "command_viewinventory"; }
        }

        public string Parameters
        {
            get { return ""; }
        }

        public string Description
        {
            get { return ""; }
        }

        public void Execute(GameClient Session, Room Room, string[] Params)
        {
            if (Session.GetHabbo().ViewInventory)
            {
                Session.SendMessage(new FurniListComposer(Session.GetHabbo().GetInventoryComponent().GetFloorItems().ToList(), Session.GetHabbo().GetInventoryComponent().GetWallItems()));
                Session.GetHabbo().ViewInventory = false;
                Session.SendWhisper("L'inventaire est de nouveau le votre.");
                return;
            }

            if (Params.Length == 1)
            {
                Session.SendWhisper("Merci d'entrer le pseudo de l'utilisateur à surveiller.");
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Une erreur s'est produite lors de la recherche de cet utilisateur, peut-être qu'il n'est pas en ligne.");
                return;
            }

            if (TargetClient.GetHabbo() == null)
            {
                Session.SendWhisper("Une erreur s'est produite lors de la recherche de cet utilisateur, peut-être qu'il n'est pas en ligne.");
                return;
            }
         
            Session.SendMessage(new FurniListComposer(TargetClient.GetHabbo().GetInventoryComponent().GetFloorItems().ToList(), TargetClient.GetHabbo().GetInventoryComponent().GetWallItems(), true));
            Session.GetHabbo().ViewInventory = true;

            Session.SendWhisper("La prochaine fois que vous ouvrirez votre inventaire, vous verrez l'inventaire de " + TargetClient.GetHabbo().Username + " !");
        }
    }
}

À l'intérieur de CommandManager.cs, ajoutez ces commandes ainsi que toute variation de votre choix:

this._commands.Add("viewinventory", new ViewInventoryCommand());
            this._commands.Add("inv", new ViewInventoryCommand());

À l'intérieur de FurniListComposer.cs, remplacez le code par ceci:

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;

using Plus.HabboHotel.Items;
using Plus.HabboHotel.Groups;
using Plus.HabboHotel.Users;
using Plus.HabboHotel.Catalog.Utilities;

namespace Plus.Communication.Packets.Outgoing.Inventory.Furni
{
    class FurniListComposer : ServerPacket
    {
        public FurniListComposer(List<Item> Items, ICollection<Item> Walls, bool StaffCheck = false)
            : base(ServerPacketHeader.FurniListMessageComposer)
        {
            base.WriteInteger(1);
            base.WriteInteger(1);

            base.WriteInteger(Items.Count + Walls.Count);
            foreach (Item Item in Items.ToList())
                WriteItem(Item, StaffCheck);

            foreach (Item Item in Walls.ToList())
                WriteItem(Item, StaffCheck);
        }

        private void WriteItem(Item Item, bool StaffCheck)
        {
            base.WriteInteger(Item.Id);
            base.WriteString(Item.GetBaseItem().Type.ToString().ToUpper());
            base.WriteInteger(Item.Id);
            base.WriteInteger(Item.GetBaseItem().SpriteId);
            ItemBehaviourUtility.GenerateExtradata(Item, this);
            base.WriteBoolean(StaffCheck ? false : Item.GetBaseItem().AllowEcotronRecycle);
            base.WriteBoolean(StaffCheck ? false : Item.GetBaseItem().AllowTrade);
            base.WriteBoolean(Item.LimitedNo == 0 ? Item.GetBaseItem().AllowInventoryStack : false);
            base.WriteBoolean(StaffCheck ? false : ItemUtility.IsRare(Item));
            base.WriteInteger(-1);//Seconds to expiration.
            base.WriteBoolean(true);
            base.WriteInteger(-1);//Item RoomId

            if (!Item.IsWallItem)
            {
                base.WriteString(string.Empty);
                base.WriteInteger(0);
            }
        }
    }
}

C'est ce qui empêche l'utilisateur de vendre l'objet sur le cata


À l'intérieur de PlaceObjectEvent.cs sous cette ligne:

if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom)
                return;

Ajoutez ceci :

if (Session.GetHabbo().ViewInventory)
            {
                Session.SendMessage(new RoomNotificationComposer("furni_placement_error", "message", "This item doesn't belong to you. Are you currently viewing someone elses inventory?"));
                return;
            }

Dans Habbo.cs en haut, ajoutez ceci:

private bool _ViewInventory;

Encore dans Habbo.cs dans la méthode Habbo, ajoutez ceci:

this._ViewInventory = false;

Enfin, dans Habbo.cs en bas, ajoutez ceci:

public bool ViewInventory
        {
            get { return this._ViewInventory; }
            set { this._ViewInventory = value; }
        }

 

Voilà, j'espère avoir traduit correctement, Google traduction ne fais pas très bien le taff !

 

Crédits :

GuruGuru, JayCustom, Core, et Damien.

 

PS : Commande traduite !

:bloggif_595b78fd3fb48: PAS D'AIDE EN MP :bloggif_595b78fd3fb48:

Sites Webs :

- HostRetro.com

- Ado-Lite.fr

- Alls-Heberg.fr

 

 

 

Hr_Ban.png

  • J'aime 1
Lien à poster
Partager sur d’autres sites

il y a une heure, Brandon a dit :

Elle ai disponible depuis un petit moment déjà x) 
Sympa mais tu aurais pu traduire en plus les phrases dans les commandes :facher:

Bah pas sur hdev, et tout le monde ne va pas sur les autres forums, surtout les non français.

 

Je le ferais plus tard j'ai reshare le sujet en 10 minutes par manque de temps, c'étais prévu.

:bloggif_595b78fd3fb48: PAS D'AIDE EN MP :bloggif_595b78fd3fb48:

Sites Webs :

- HostRetro.com

- Ado-Lite.fr

- Alls-Heberg.fr

 

 

 

Hr_Ban.png

Lien à poster
Partager sur d’autres sites

5 hours ago, Pouney said:

Bah pas sur hdev, et tout le monde ne va pas sur les autres forums, surtout les non français.

 

Je le ferais plus tard j'ai reshare le sujet en 10 minutes par manque de temps, c'étais prévu.

 

Sur le même forum ou tu as trouver la commande, il y a la commande view mp si jamais tu veux la mettre :p 

Lien à poster
Partager sur d’autres sites

il y a 43 minutes, Fox a dit :

 

Sur le même forum ou tu as trouver la commande, il y a la commande view mp si jamais tu veux la mettre :p 

Si tu peux m'envoyer le lien en PV (pour pas pub) je suis pour, comme ça je fais le topic et je l'ajoute aux fix plus emu !

Merci d'avance !

:bloggif_595b78fd3fb48: PAS D'AIDE EN MP :bloggif_595b78fd3fb48:

Sites Webs :

- HostRetro.com

- Ado-Lite.fr

- Alls-Heberg.fr

 

 

 

Hr_Ban.png

Lien à poster
Partager sur d’autres sites

J'ai un bug pour ma part dans la commande.

 

C'est dans le fichier : RequestFurniInventoryEvent.cs

Une image de l'erreur :

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

 

Merci de ton aide, et as tu tester la commande avant de la partager? 

Lien à poster
Partager sur d’autres sites

il y a 11 minutes, Fox a dit :

J'ai un bug pour ma part dans la commande.

 

C'est dans le fichier : RequestFurniInventoryEvent.cs

Une image de l'erreur :

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

 

Merci de ton aide, et as tu tester la commande avant de la partager? 

Tu as quel prod de PlusEmu ?


 

Lien à poster
Partager sur d’autres sites

2 hours ago, Brandon said:

Ton soucis c'est que tu as une valeur INT est il faut du bool apparemment donc à toi de modifier ça ?

 

Je sais pas modifier ça mais c'est pas grave je ne vais pas la rajouter a mon emulateur ^^'

Lien à poster
Partager sur d’autres sites

  • 2 semaines plus tard...
Le 26/04/2017 à 10:29, Cipher a dit :

elle, fonctionne pour toute productions, et dis d'ou quelle source elle provient #DEVBEST.

Je ne dis pas d'où elle vient pour pas pub, je crédite celui qui a fais le sujet ailleur.

:bloggif_595b78fd3fb48: PAS D'AIDE EN MP :bloggif_595b78fd3fb48:

Sites Webs :

- HostRetro.com

- Ado-Lite.fr

- Alls-Heberg.fr

 

 

 

Hr_Ban.png

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...