Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[packets & swf] production-201602082203-712976078

Junior Spellweaver
Joined
Dec 22, 2012
Messages
143
Reaction score
47
PlusEMU update version PRODUCTION-201602082203-712976078

Download link EMU and SWF:

Fixes:
  • Fix for new trading (Thanks to cabeludo007!)
 
Last edited:
Junior Spellweaver
Joined
Dec 6, 2009
Messages
133
Reaction score
131
I Loved the amount input <3


As i am not bad, i'll share the fix for new trading with you :love:
If you know how to fix, you'll know where to put it.
Don't ask me how to fix, or some problem with fix, plz.
Code:
using System;using System.Linq;
using System.Text;
using System.Collections.Generic;


using Plus.HabboHotel.Rooms.Trading;
using Plus.HabboHotel.Items;


namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
{
    class TradingUpdateComposer : ServerPacket
    {
        public TradingUpdateComposer(Trade Trade)
            : base(ServerPacketHeader.TradingUpdateMessageComposer)
        {


            if (Trade.Users.Count() < 2)
                return;


            var User1 = Trade.Users.First();
            var User2 = Trade.Users.Last();


            base.WriteInteger(User1.GetClient().GetHabbo().Id);
            SerializeUserItems(User1);
            


            base.WriteInteger(0);
            base.WriteInteger(0);
            base.WriteInteger(1);


            SerializeUserItems(User2);




            base.WriteInteger(0);
            base.WriteInteger(0);






            /*base.WriteInteger(User.GetClient().GetHabbo().Id);
            base.WriteInteger(User.OfferedItems.Count);


            foreach (Item Item in User.OfferedItems.ToList())
            {
                base.WriteInteger(Item.Id);
               base.WriteString(Item.GetBaseItem().Type.ToString().ToLower());
                base.WriteInteger(Item.Id);
                base.WriteInteger(Item.Data.SpriteId);
                base.WriteInteger(0);//Not sure.
                if (Item.LimitedNo > 0)
                {
                    base.WriteBoolean(false);//Stackable
                    base.WriteInteger(256);
                   base.WriteString("");
                    base.WriteInteger(Item.LimitedNo);
                    base.WriteInteger(Item.LimitedTot);
                }
                else
                {
                    base.WriteBoolean(true);//Stackable
                    base.WriteInteger(0);
                   base.WriteString("");
                }


                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(0);


                if (Item.GetBaseItem().Type == 's')
                    base.WriteInteger(0);


                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(-1);*/
        }
        private void SerializeUserItems(TradeUser User)
        {
            base.WriteInteger(User.OfferedItems.Count);//While
            foreach (Item Item in User.OfferedItems.ToList())
            {
                base.WriteInteger(Item.Id);
                base.WriteString(Item.Data.Type.ToString().ToUpper());
                base.WriteInteger(Item.Id);
                base.WriteInteger(Item.Data.SpriteId);
                base.WriteInteger(1);
                base.WriteBoolean(true);


                //Func called _SafeStr_15990
                base.WriteInteger(0);
                base.WriteString("");


                //end Func called
                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(0);
                if (Item.Data.Type.ToString().ToUpper() == "S")
                    base.WriteInteger(0);
            }
            //End of while
        }
    }
}

base.WriteInteger(1);
base.WriteBoolean(true);

//Func called _SafeStr_15990
base.WriteInteger(0);
base.WriteString("");

//end Func called
base.WriteInteger(0);
base.WriteInteger(0);
base.WriteInteger(0);
Random, random and... random
 
Junior Spellweaver
Joined
Dec 6, 2009
Messages
133
Reaction score
131
Please, would you like to search what are the values mean? (Or of you have time making a tutorial-that would be nicer) So we don't need to put random values in the structure.

Well .. I quickly started I would finish later if I have time.

Code:
=== Structure ===
[B]Int[/B] | first user id
[B]Int[/B] | first user offered items count
[B][COLOR="#FF0000"]// start loop[/COLOR][/B] | first user offered items
refer to '[B]Block serialize offer item[/B]'
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[B]Int[/B] | first user offered items count
[B]Int[/B] | first user offered items creditvalue
[B]Int[/B] | second user id
[B]Int[/B] | second user offered items count
[B][COLOR="#FF0000"]// start loop[/COLOR][/B] | second user offered items
refer to '[B]Block serialize offer item[/B]'
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[B]Int[/B] | second user offered items count
[B]Int[/B] | second user offered items creditvalue

== [B]Block serialize offer item[/B] ==
[B]Int[/B] | item id
[B]String[/B] | item type (ex: S,I)
[B]Int[/B] | ref
[B]Int[/B] | sprite id
[B]Int[/B] | item category
[B]Boolean[/B] | is groupable
[B]Int[/B] | [COLOR="#008000"][B]data type[/B][/COLOR] (0 = _SafeStr_2430 - ??, 1 = MapStuffData, 2 = StringArrayStuffData, 3 = _SafeStr_3678 - ??, 4 = _SafeStr_4694 - ??, 5 = IntArrayStuffData, 6 = HighScoreStuffData, 7 = _SafeStr_4695 - ?? )
[LIST]
[*][B][COLOR="#008000"]/ if data type == 0[/COLOR][/B]
[B]String[/B] | legacy string
[*][COLOR="#008000"][B]/ if data type == 1[/B][/COLOR]
[B]Int[/B] | map item count
[COLOR="#FF0000"][B]// start loop[/B][/COLOR]
[B]String[/B] | state
[B]String[/B] | rarity
[B][COLOR="#FF0000"]// end loop[/COLOR][/B]
[*][COLOR="#008000"][B]/ if data type == 2[/B][/COLOR]
[B]Int[/B] | String Array item count
[COLOR="#FF0000"][B]// start loop[/B][/COLOR]
[B]String[/B] | value
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[*][COLOR="#008000"][B]/ if data type == 3[/B][/COLOR]
[B]String[/B] | legacy string
[B]Int[/B] | result
[*][COLOR="#008000"][B]/ if data type == 4[/B][/COLOR]
nothing
[*][COLOR="#008000"][B]/ if data type == 5[/B][/COLOR]
[B]Int[/B] | Int Array item count
[COLOR="#FF0000"][B]// start loop[/B][/COLOR]
[B]Int[/B] | value
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[*][COLOR="#008000"][B]/ if data type == 6[/B][/COLOR]
[B]String[/B] | legacy string
[B]Int[/B] | score type: 0 = "perteam",  1 = "mostwins", 2 = "classic"
[B]Int[/B] | clear type: 0 = "alltime", 1 = "daily", 2 = "weekly", 3 = "monthly"
[B]Int[/B] | item count
[COLOR="#FF0000"][B]// start loop[/B][/COLOR]
[B]Int[/B] | score
[B]Int[/B] | users count
[COLOR="#FF0000"][B]// start loop[/B][/COLOR]
[B]String[/B] | username
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[COLOR="#FF0000"][B]// end loop[/B][/COLOR]
[*][COLOR="#008000"][B]/ if data type == 7[/B][/COLOR]
[B]String[/B] | furniture_crackable_state
[B]Int[/B] | furniture_crackable_hits
[B]Int[/B] | furniture_crackable_target
[COLOR="#008000"][B]endif[/B][/COLOR]
[/LIST]
[B]Int[/B] | related to rent date ??
[B]Int[/B] | related to rent date ??
[B]Int[/B] | related to rent date ??
[LIST]
[*][COLOR="#008000"][B]if item type == "S"[/B][/COLOR]
[B]Int[/B] | ??
[COLOR="#008000"][B]endif[/B][/COLOR]
[/LIST]
================================
 
Last edited:
Newbie Spellweaver
Joined
Feb 10, 2016
Messages
93
Reaction score
73
I have seen that the ID for the Bonus Rare are not present, so I have them here:

Incoming: 2947
Outgoing: 2904

These are just the ID's!
 
Newbie Spellweaver
Joined
Dec 12, 2015
Messages
5
Reaction score
0
I Loved the amount input <3


As i am not bad, i'll share the fix for new trading with you :love:
If you know how to fix, you'll know where to put it.
Don't ask me how to fix, or some problem with fix, plz.
Code:
using System;using System.Linq;
using System.Text;
using System.Collections.Generic;


using Plus.HabboHotel.Rooms.Trading;
using Plus.HabboHotel.Items;


namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
{
    class TradingUpdateComposer : ServerPacket
    {
        public TradingUpdateComposer(Trade Trade)
            : base(ServerPacketHeader.TradingUpdateMessageComposer)
        {


            if (Trade.Users.Count() < 2)
                return;


            var User1 = Trade.Users.First();
            var User2 = Trade.Users.Last();


            base.WriteInteger(User1.GetClient().GetHabbo().Id);
            SerializeUserItems(User1);
            


            base.WriteInteger(0);
            base.WriteInteger(0);
            base.WriteInteger(1);


            SerializeUserItems(User2);




            base.WriteInteger(0);
            base.WriteInteger(0);






            /*base.WriteInteger(User.GetClient().GetHabbo().Id);
            base.WriteInteger(User.OfferedItems.Count);


            foreach (Item Item in User.OfferedItems.ToList())
            {
                base.WriteInteger(Item.Id);
               base.WriteString(Item.GetBaseItem().Type.ToString().ToLower());
                base.WriteInteger(Item.Id);
                base.WriteInteger(Item.Data.SpriteId);
                base.WriteInteger(0);//Not sure.
                if (Item.LimitedNo > 0)
                {
                    base.WriteBoolean(false);//Stackable
                    base.WriteInteger(256);
                   base.WriteString("");
                    base.WriteInteger(Item.LimitedNo);
                    base.WriteInteger(Item.LimitedTot);
                }
                else
                {
                    base.WriteBoolean(true);//Stackable
                    base.WriteInteger(0);
                   base.WriteString("");
                }


                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(0);


                if (Item.GetBaseItem().Type == 's')
                    base.WriteInteger(0);


                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(-1);*/
        }
        private void SerializeUserItems(TradeUser User)
        {
            base.WriteInteger(User.OfferedItems.Count);//While
            foreach (Item Item in User.OfferedItems.ToList())
            {
                base.WriteInteger(Item.Id);
                base.WriteString(Item.Data.Type.ToString().ToUpper());
                base.WriteInteger(Item.Id);
                base.WriteInteger(Item.Data.SpriteId);
                base.WriteInteger(1);
                base.WriteBoolean(true);


                //Func called _SafeStr_15990
                base.WriteInteger(0);
                base.WriteString("");


                //end Func called
                base.WriteInteger(0);
                base.WriteInteger(0);
                base.WriteInteger(0);
                if (Item.Data.Type.ToString().ToUpper() == "S")
                    base.WriteInteger(0);
            }
            //End of while
        }
    }
}

You can do this for azure emulator?
I use emulator azure and I upgraded to this release have a problem with trade,

trade error, will not let me put furnis

Picture:
Yf86ePi - [packets & swf] production-201602082203-712976078 - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Nov 5, 2013
Messages
147
Reaction score
57
You can do this for azure emulator?
I use emulator azure and I upgraded to this release have a problem with trade,

trade error, will not let me put furnis

Picture:
Yf86ePi - [packets & swf] production-201602082203-712976078 - RaGEZONE Forums
Sorry, i don't work with Azure anymore xd, it's very complicated...:$:
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Jan 29, 2016
Messages
26
Reaction score
2
Help i did everything as it said on the topic but the emu said its 1 user on and the client just keep loading
wesley66101 - [packets & swf] production-201602082203-712976078 - RaGEZONE Forums
 
Back
Top