Você não está conectado. Conecte-se ou registre-se

Power Pixel » Jogos » Habbo Hotel » Utilitários » Outros Utilitários » [FIX CALENDARIO DE ADVENTO PLUS] Calendario de advento [FIX CALENDARIO DE ADVENTO PLUS]

[FIX CALENDARIO DE ADVENTO PLUS] Calendario de advento [FIX CALENDARIO DE ADVENTO PLUS]

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

xjoao

Membro Mestre


xjoao
ola eu ia deixar esse fix Privado mas vou dar ele para vocês !

Vá em Gameclient.cs e procure por:
Código:
_habbo.InitProcess();


Acima disso adicione :
Código:
if (PlusStaticGameSettings.CampaignCalendarEnabled)
SendMessage(new CampaignCalendarDataComposer(_habbo.GetStats().openedGifts));

Adicione no topo da gameclient.cs
Código:
using Plus.Communication.Packets.Outgoing.Campaigns;

Em seguida, abra PlusStaticGameSettings.cs procure por:
Código:
public const bool NewUserTutorialBotEnabled = true;

em baixo coloque:
Código:
public const bool CampaignCalendarEnabled = true;

crie agora na Outgoing uma pasta chamada campaigns 
depois crie uma classe.cs chamada CampaignCalendarDataComposer.cs e cole:

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plus.Communication.Packets.Outgoing.Campaigns
{
    class CampaignCalendarDataComposer : ServerPacket
    {
        public CampaignCalendarDataComposer(List<int> OpenedGifts)
            : base(ServerPacketHeader.CampaignCalendarDataMessageComposer)
        {
            int currentDate = DateTime.Now.Day - 1;

            base.WriteString("xmas16"); //eventTrigger
            base.WriteString(string.Empty); //idk? same as habbo ;P
            base.WriteInteger(currentDate); //currentDate
            base.WriteInteger(25); //totalAmountOfDays

            base.WriteInteger(OpenedGifts.Count); //countOpenGifts
            foreach (int Opened in OpenedGifts)
            {
                base.WriteInteger(Opened); //giftDay
            }

            List<int> MissedGifts = Enumerable.Range(0, (currentDate - 2)).Where(Day => !OpenedGifts.Contains(Day)).ToList();

            base.WriteInteger(MissedGifts.Count); //countMissedGifts
            foreach (int Missed in MissedGifts)
            {
                base.WriteInteger(Missed); //giftDay
            }
        }
    }



Vá em ServerPacketHeader.cs e adicione :
Código:
public const int CampaignCalendarDataMessageComposer = 2740;

Depois vá em Packets>Incoming>LandingView 
Crie uma classe dentro chamada OpenCalendarBoxEvent.cs e cole o código :

Código:
using Plus.Communication.Packets.Outgoing.Inventory.Furni;
using Plus.Communication.Packets.Outgoing.LandingView;
using Plus.Database.Interfaces;
using Plus.HabboHotel.Items;
using Plus.HabboHotel.Users;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plus.Communication.Packets.Incoming.LandingView
{
    class OpenCalendarBoxEvent : IPacketEvent
    {
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            string eventName = Packet.PopString();
            int giftDay = Packet.PopInt();

            HabboStats habboStats = Session?.GetHabbo()?.GetStats();

            int currentDay = DateTime.Now.Day - 1;

            if (!PlusStaticGameSettings.CampaignCalendarEnabled || habboStats == null ||
                habboStats.openedGifts.Contains(giftDay) || giftDay < (currentDay-2) ||
                giftDay > currentDay || eventName != "xmas16")
            {
                return;
            }



Depois vá em Packets>Incoming>LandingView 
Crie uma classe dentro chamada CampaignCalendarGiftComposer.cs  e cole o código :

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plus.Communication.Packets.Outgoing.LandingView
{
    class CampaignCalendarGiftComposer : ServerPacket
    {
        public CampaignCalendarGiftComposer(string iconName = "throne")
            : base(ServerPacketHeader.CampaignCalendarGiftMessageComposer)
        {
            base.WriteBoolean(true); // never bothered to check
            base.WriteString("xmas14_starfish"); //productName
            base.WriteString(""); //customImage
            base.WriteString(iconName); //iconName
        }
    }
}

Vá agora para LandingViewManager.cs e adicione esta função :

Código:
public bool GenerateCalendarItem(Habbo Habbo, string eventName, int eventDate, out Item newItem)
        {
            newItem = null;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `item_id` FROM `campaign_calendar_gifts` WHERE `event_name` = @eventName AND `base_id` = @dayId LIMIT 1");
                dbClient.AddParameter("eventName", eventName);
                dbClient.AddParameter("dayId", eventDate);

                DataRow row = dbClient.getRow();
                ItemData itemData = null;

                if (row?["item_id"] != null &&
                    PlusEnvironment.GetGame().GetItemManager().GetItem((string)row["item_id"], out itemData))
                {
                    newItem = ItemFactory.CreateSingleItemNullable(itemData, Habbo, "", "");
                    return newItem != null;
                }

                return false;
            }
        }


Abra ItemDataManager.cs  procure por :

Código:
public bool GetItem(int Id, out ItemData Item)

Acima disso, coloque isso:

Código:
public bool GetItem(string itemName, out ItemData item)
        {
            item = this._items.Values.Where(x => x.ItemName == itemName).FirstOrDefault();
            return item != null;
        }



SQL para a Database:
[Você precisa estar registrado e conectado para ver este link.]

Print de como vai ficar :
[Você precisa estar registrado e conectado para ver este link.]

Obs: Se não souber não faça 

Créditos:
Do meu amigo StackOverflow-
Esse código será usado no Nouget server !

Erno

Membro Ouro


Erno
Olá joão, o conteúdo é bom mano. 
Mas o número do Packet varia de versões para versões, então o correto seria você especificar para qual PRODUCTION serve esse utilitário.

http://www.habblek.com

xjoao

Membro Mestre


xjoao
sim erno ! cada production é outra ID

impeachment™

Membro Bronze


impeachment™
Você não tem escolha de deixar ele privado ou não, não foi você quem criou e ele foi publicado na DevBest '-'

arfeu

Membro Bronze


arfeu
[Você precisa estar registrado e conectado para ver este link.] escreveu:
Olá joão, o conteúdo é bom mano. 
Mas o número do Packet varia de versões para versões, então o correto seria você especificar para qual PRODUCTION serve esse utilitário.
Não é bem uma correção ele (Stack|Core) fez boa parte do código para adicionar o calendário na PRODUCTION-201612121204-107735592 ou na PRODUCTION-201610312204-296063264 mas usar o addon é atoa essa produção não está 100% pelo menos as que conseguiram crackear e postar em outros fórums, as trocas entre os usuários, bots, pets e alguns outros itens dão dc nos usuários Smile

http://www.csgocodesfree.com

xjoao

Membro Mestre


xjoao
[Você precisa estar registrado e conectado para ver este link.] escreveu:Você não tem escolha de deixar ele privado ou não, não foi você quem criou e ele foi publicado na DevBest '-'

mesmo assim a packet é diferente e eu ia colocar z.z

Aladim.

Membro Bronze


Aladim.
Algumas linhas estão faltando ... pra quem não sabe adiciona-la tera problemas ....

paulohenriquee7

Novato


paulohenriquee7
[Você precisa estar registrado e conectado para ver este link.] escreveu:Algumas linhas estão faltando ... pra quem não sabe adiciona-la tera problemas ....
aladim preciso falar com voce tem skype?

xjoao

Membro Mestre


xjoao
sim aladim tem que acabar de adicionar códigos

paulohenriquee7

Novato


paulohenriquee7
joao qual seu skype?

Brytch

Membro Platina


Brytch
"Fix Próprio'' Gostei bastante, créditos @DevBest kk
@OFF Bom conteúdo...

Conteúdo patrocinado



Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum