Sistema de page ID's en catalogo

  • 1 Respuestas
  • 592 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

*

Desconectado !Null

Sistema de page ID's en catalogo
« en: Marzo 03, 2019, 11:53:55 am »
Buenas forozone,
Les traigo esta edicion de emulador que puede servir bastante para cuando estas editando tu catalogo o arreglando furnis.

Imagen:

Facil de implementar.
Buscamos CatalogIndexComposer.cs
Selecionamos todo, lo borramos y pegamos este:
Codigo plus emu:

Código
using System.Collections.Generic;
using Plus.HabboHotel.Catalog;
using Plus.HabboHotel.GameClients;

namespace Plus.Communication.Packets.Outgoing.Catalog
{
    public class CatalogIndexComposer : ServerPacket
    {
        public CatalogIndexComposer(GameClient Session, ICollection<CatalogPage> Pages, string Mode, int Sub = 0)
            : base(ServerPacketHeader.CatalogIndexMessageComposer)
        {
            WriteRootIndex(Session, Pages);
            foreach (CatalogPage Parent in Pages)
            {
                if (Parent.ParentId != -1 || Parent.MinimumRank > Session.GetHabbo().Rank || (Parent.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                    continue;
                WritePage(Parent, CalcTreeSize(Session, Pages, Parent.Id), Session);
                foreach (CatalogPage child in Pages)
                {
                    if (child.ParentId != Parent.Id || child.MinimumRank > Session.GetHabbo().Rank || (child.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                        continue;
                    if (child.Enabled)
                        WritePage(child, CalcTreeSize(Session, Pages, child.Id), Session);
                    else
                        WriteNodeIndex(child, CalcTreeSize(Session, Pages, child.Id), Session);

                    foreach (CatalogPage SubChild in Pages)
                    {
                        if (SubChild.ParentId != child.Id || SubChild.MinimumRank > Session.GetHabbo().Rank)
                            continue;
                        WritePage(SubChild, 0, Session);
                    }
                }
            }
            base.WriteBoolean(false);
            base.WriteString(Mode);
        }

        public CatalogIndexComposer(GameClient Session, ICollection<BCCatalogPage> Pages, string Mode, int Sub = 0)
            : base(ServerPacketHeader.CatalogIndexMessageComposer)
        {
            WriteRootIndex(Session, Pages);
            foreach (BCCatalogPage Parent in Pages)
            {
                if (Parent.ParentId != -1 || Parent.MinimumRank > Session.GetHabbo().Rank || (Parent.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                    continue;
                WritePage(Parent, CalcTreeSize(Session, Pages, Parent.Id), Session);
                foreach (BCCatalogPage child in Pages)
                {
                    if (child.ParentId != Parent.Id || child.MinimumRank > Session.GetHabbo().Rank || (child.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                        continue;
                    if (child.Enabled)
                        WritePage(child, CalcTreeSize(Session, Pages, child.Id), Session);
                    else
                        WriteNodeIndex(child, CalcTreeSize(Session, Pages, child.Id), Session);

                    foreach (BCCatalogPage SubChild in Pages)
                    {
                        if (SubChild.ParentId != child.Id || SubChild.MinimumRank > Session.GetHabbo().Rank)
                            continue;
                        WritePage(SubChild, 0, Session);
                    }
                }
            }
            base.WriteBoolean(false);
            base.WriteString(Mode);
        }

        public void WriteRootIndex(GameClient session, ICollection<CatalogPage> pages)
        {
            base.WriteBoolean(true);
            base.WriteInteger(0);
            base.WriteInteger(-1);
            base.WriteString("root");
            base.WriteString(string.Empty);
            base.WriteInteger(0);
            base.WriteInteger(CalcTreeSize(session, pages, -1));
        }

        public void WriteNodeIndex(CatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(-1);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(0);
            base.WriteInteger(treeSize);
        }

        public void WritePage(CatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(page.Id);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(page.ItemOffers.Count);
            foreach (int i in page.ItemOffers.Keys)
            {
                base.WriteInteger(i);
            }
            base.WriteInteger(treeSize);
        }

        public int CalcTreeSize(GameClient Session, ICollection<CatalogPage> Pages, int ParentId)
        {
            int i = 0;
            foreach (CatalogPage Page in Pages)
            {
                if (Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId)
                    continue;
                if (Page.ParentId == ParentId)
                    i++;
            }
            return i;
        }

        public void WriteRootIndex(GameClient session, ICollection<BCCatalogPage> pages)
        {
            base.WriteBoolean(true);
            base.WriteInteger(0);
            base.WriteInteger(-1);
            base.WriteString("root");
            base.WriteString(string.Empty);
            base.WriteInteger(0);
            base.WriteInteger(CalcTreeSize(session, pages, -1));
        }

        public void WriteNodeIndex(BCCatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(-1);
            base.WriteString(page.PageLink);
            if(Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(0);
            base.WriteInteger(treeSize);
        }

        public void WritePage(BCCatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(page.Id);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(page.ItemOffers.Count);
            foreach (int i in page.ItemOffers.Keys)
            {
                base.WriteInteger(i);
            }
            base.WriteInteger(treeSize);
        }

        public int CalcTreeSize(GameClient Session, ICollection<BCCatalogPage> Pages, int ParentId)
        {
            int i = 0;
            foreach (BCCatalogPage Page in Pages)
            {
                if (Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId)
                    continue;
                if (Page.ParentId == ParentId)
                    i++;
            }
            return i;
        }
    }
}

Compilamos

CREDITOS:
- xRaymundo
- Spyro
« Última modificación: Marzo 03, 2019, 11:56:00 am por !Null »

Re:Sistema de page ID's en catalogo
« Respuesta #1 en: Mayo 12, 2019, 12:12:39 pm »
No tienes permiso para ver enlaces. Registrarme ó Logearme
Buenas forozone,
Les traigo esta edicion de emulador que puede servir bastante para cuando estas editando tu catalogo o arreglando furnis.

Imagen:

Facil de implementar.
Buscamos CatalogIndexComposer.cs
Selecionamos todo, lo borramos y pegamos este:
Codigo plus emu:

Código
using System.Collections.Generic;
using Plus.HabboHotel.Catalog;
using Plus.HabboHotel.GameClients;

namespace Plus.Communication.Packets.Outgoing.Catalog
{
    public class CatalogIndexComposer : ServerPacket
    {
        public CatalogIndexComposer(GameClient Session, ICollection<CatalogPage> Pages, string Mode, int Sub = 0)
            : base(ServerPacketHeader.CatalogIndexMessageComposer)
        {
            WriteRootIndex(Session, Pages);
            foreach (CatalogPage Parent in Pages)
            {
                if (Parent.ParentId != -1 || Parent.MinimumRank > Session.GetHabbo().Rank || (Parent.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                    continue;
                WritePage(Parent, CalcTreeSize(Session, Pages, Parent.Id), Session);
                foreach (CatalogPage child in Pages)
                {
                    if (child.ParentId != Parent.Id || child.MinimumRank > Session.GetHabbo().Rank || (child.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                        continue;
                    if (child.Enabled)
                        WritePage(child, CalcTreeSize(Session, Pages, child.Id), Session);
                    else
                        WriteNodeIndex(child, CalcTreeSize(Session, Pages, child.Id), Session);

                    foreach (CatalogPage SubChild in Pages)
                    {
                        if (SubChild.ParentId != child.Id || SubChild.MinimumRank > Session.GetHabbo().Rank)
                            continue;
                        WritePage(SubChild, 0, Session);
                    }
                }
            }
            base.WriteBoolean(false);
            base.WriteString(Mode);
        }

        public CatalogIndexComposer(GameClient Session, ICollection<BCCatalogPage> Pages, string Mode, int Sub = 0)
            : base(ServerPacketHeader.CatalogIndexMessageComposer)
        {
            WriteRootIndex(Session, Pages);
            foreach (BCCatalogPage Parent in Pages)
            {
                if (Parent.ParentId != -1 || Parent.MinimumRank > Session.GetHabbo().Rank || (Parent.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                    continue;
                WritePage(Parent, CalcTreeSize(Session, Pages, Parent.Id), Session);
                foreach (BCCatalogPage child in Pages)
                {
                    if (child.ParentId != Parent.Id || child.MinimumRank > Session.GetHabbo().Rank || (child.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
                        continue;
                    if (child.Enabled)
                        WritePage(child, CalcTreeSize(Session, Pages, child.Id), Session);
                    else
                        WriteNodeIndex(child, CalcTreeSize(Session, Pages, child.Id), Session);

                    foreach (BCCatalogPage SubChild in Pages)
                    {
                        if (SubChild.ParentId != child.Id || SubChild.MinimumRank > Session.GetHabbo().Rank)
                            continue;
                        WritePage(SubChild, 0, Session);
                    }
                }
            }
            base.WriteBoolean(false);
            base.WriteString(Mode);
        }

        public void WriteRootIndex(GameClient session, ICollection<CatalogPage> pages)
        {
            base.WriteBoolean(true);
            base.WriteInteger(0);
            base.WriteInteger(-1);
            base.WriteString("root");
            base.WriteString(string.Empty);
            base.WriteInteger(0);
            base.WriteInteger(CalcTreeSize(session, pages, -1));
        }

        public void WriteNodeIndex(CatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(-1);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(0);
            base.WriteInteger(treeSize);
        }

        public void WritePage(CatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(page.Id);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(page.ItemOffers.Count);
            foreach (int i in page.ItemOffers.Keys)
            {
                base.WriteInteger(i);
            }
            base.WriteInteger(treeSize);
        }

        public int CalcTreeSize(GameClient Session, ICollection<CatalogPage> Pages, int ParentId)
        {
            int i = 0;
            foreach (CatalogPage Page in Pages)
            {
                if (Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId)
                    continue;
                if (Page.ParentId == ParentId)
                    i++;
            }
            return i;
        }

        public void WriteRootIndex(GameClient session, ICollection<BCCatalogPage> pages)
        {
            base.WriteBoolean(true);
            base.WriteInteger(0);
            base.WriteInteger(-1);
            base.WriteString("root");
            base.WriteString(string.Empty);
            base.WriteInteger(0);
            base.WriteInteger(CalcTreeSize(session, pages, -1));
        }

        public void WriteNodeIndex(BCCatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(-1);
            base.WriteString(page.PageLink);
            if(Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(0);
            base.WriteInteger(treeSize);
        }

        public void WritePage(BCCatalogPage page, int treeSize, GameClient Session)
        {
            base.WriteBoolean(page.Visible);
            base.WriteInteger(page.Icon);
            base.WriteInteger(page.Id);
            base.WriteString(page.PageLink);
            if (Session.GetHabbo().GetPermissions().HasRight("pages_id"))
            {
                base.WriteString(page.Caption + " - " + page.Id);
            }
            else
            {
                base.WriteString(page.Caption);
            }
            base.WriteInteger(page.ItemOffers.Count);
            foreach (int i in page.ItemOffers.Keys)
            {
                base.WriteInteger(i);
            }
            base.WriteInteger(treeSize);
        }

        public int CalcTreeSize(GameClient Session, ICollection<BCCatalogPage> Pages, int ParentId)
        {
            int i = 0;
            foreach (BCCatalogPage Page in Pages)
            {
                if (Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId)
                    continue;
                if (Page.ParentId == ParentId)
                    i++;
            }
            return i;
        }
    }
}

Compilamos

CREDITOS:
- xRaymundo
- Spyro


Maravilloso, aunque ya lo tenia a la gente le gustara, gran Salu2.

 

Temas relacionados

  Asunto / Iniciado por Respuestas Último mensaje
11 Respuestas
982 Vistas
Último mensaje Octubre 16, 2016, 07:47:39 pm
por Shield
1 Respuestas
940 Vistas
Último mensaje Septiembre 03, 2016, 10:52:25 pm
por ๖ۣۜƵ⋀ɃɃ
12 Respuestas
1982 Vistas
Último mensaje Enero 04, 2017, 11:55:53 pm
por Skylake
1 Respuestas
365 Vistas
Último mensaje Febrero 21, 2017, 09:19:25 pm
por Kira
2 Respuestas
407 Vistas
Último mensaje Agosto 05, 2017, 01:30:59 am
por Pons