Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 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 !
Sign in to follow this  
Pouney

 plusemu Commande View Inventory

Recommended Posts

Vétéran

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!

 

2631898Y0HlHCrPC.gif

 

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 !

Share this post


Link to post
Share on other sites
VIP

Share this post


Link to post
Share on other sites
Vétéran

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

Share this post


Link to post
Share on other sites
Vétéran
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.

Share this post


Link to post
Share on other sites
VIP
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 

Share this post


Link to post
Share on other sites
Vétéran
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 !

Share this post


Link to post
Share on other sites
Vétéran

Commande traduite ! @Brandon

Share this post


Link to post
Share on other sites
VIP

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

 

C'est dans le fichier : RequestFurniInventoryEvent.cs

Une image de l'erreur :

Please login or register to see this link.

 

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

Share this post


Link to post
Share on other sites
Vétéran
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 :

Please login or register to see this link.

 

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

Tu as quel prod de PlusEmu ?

Share this post


Link to post
Share on other sites
VIP
45 minutes ago, Brandon said:

Tu as quel prod de PlusEmu ?

 

J'utilise la prod : PRODUCTION-201701242205-837386173

Share this post


Link to post
Share on other sites
Premium

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

Share this post


Link to post
Share on other sites
Vétéran
Il y a 10 heures, Fox a dit :

 

J'utilise la prod : PRODUCTION-201701242205-837386173

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

Share this post


Link to post
Share on other sites
VIP
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 ^^'

Share this post


Link to post
Share on other sites
Vétéran
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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...