PlusEMU trading

Status
Not open for further replies.

Blasteh

big tits
Apr 3, 2013
1,156
521
So recently, I noticed that trading doesn't work on my PlusEMU that is updated.

When you go to trade a user, you can both confirm the trade, but then it will say "Modify Trade" and wont do anything even if you click it.
You must be registered for see images attach


On the other end of the trade, it does the same. But, you cannot see what the person is trading unless you hover over the item.
You must be registered for see images attach
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
Looks like a packet issue, if I remember rightly there is two trading headers with the same packet IDs.

TradingAcceptMessageComposer
TradingConfirmedMessageComposer

Must have the same packet IDs.
 

Blasteh

big tits
Apr 3, 2013
1,156
521
Looks like a packet issue, if I remember rightly there is two trading headers with the same packet IDs.

TradingAcceptMessageComposer
TradingConfirmedMessageComposer

Must have the same packet IDs.
They are the exact same.
Code:
public const int TradingConfirmedMessageComposer = 2457; // PRODUCTION-201610052203-260805057

public const int TradingAcceptMessageComposer = 2457; // PRODUCTION-201610052203-260805057
 

Blasteh

big tits
Apr 3, 2013
1,156
521
Not too sure in that case. Might be another trade related packet.
Wait, would it be incoming packets? Because they are different in the incoming.
Code:
public const int TradingAcceptMessageEvent = 2526; // PRODUCTION-201610052203-260805057
public const int TradingConfirmMessageEvent = 1987; // PRODUCTION-201610052203-260805057
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
Wait, would it be incoming packets? Because they are different in the incoming.
Code:
public const int TradingAcceptMessageEvent = 2526; // PRODUCTION-201610052203-260805057
public const int TradingConfirmMessageEvent = 1987; // PRODUCTION-201610052203-260805057

Those two are correct, just checked them (used my headers to update to yours). Paste the rest of your trading ones and I'll give them a check.
 

Core

Member
Nov 10, 2016
356
138
Your packet headers are wrong. Manually update them:p auto updater gets wrong one or make it get the second reference; not the first
 

JayC

Always Learning
Aug 8, 2013
5,504
1,401
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
}
}
}
 

Blasteh

big tits
Apr 3, 2013
1,156
521
Those two are correct, just checked them (used my headers to update to yours). Paste the rest of your trading ones and I'll give them a check.
Outgoing:
Incoming:

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
}
}
}
Didn't work.
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
So what you're saying is it's the wrong packet header?

Which is what I said in my earlier posts. I've found the wrong one, I've not looked further - but this one is 100% wrong.

PHP:
public const int TradingFinishMessageComposer = 1500; // PRODUCTION-201610052203-260805057

It should be:

PHP:
public const int TradingFinishMessageComposer = 3056; // PRODUCTION-201610052203-260805057

Fun fact, if you have one wrong chances are you have a couple more wrong - which may not be an issue now, but could be in the future.
 

Blasteh

big tits
Apr 3, 2013
1,156
521
Which is what I said in my earlier posts. I've found the wrong one, I've not looked further - but this one is 100% wrong.

PHP:
public const int TradingFinishMessageComposer = 1500; // PRODUCTION-201610052203-260805057

It should be:

PHP:
public const int TradingFinishMessageComposer = 3056; // PRODUCTION-201610052203-260805057

Fun fact, if you have one wrong chances are you have a couple more wrong - which may not be an issue now, but could be in the future.
Any idea what headers could be causing the issue? I don't really wanna go through every single one on the list..

But, I used the AHU from RZ to check a packet. The two packets where you said that should be the same, come up with a different ID then what I showed you.
You must be registered for see images attach
 

JayC

Always Learning
Aug 8, 2013
5,504
1,401
Server Packet Header
Code:
public const int TradingFinishMessageComposer = 1976;

Client Packer Header
Code:
public const int TradingAcceptMessageEvent = 2937;
Code:
public const int TradingConfirmMessageEvent = 1215;

This is the production I am currently on - I believe its 08

These might be wrong for your prod :( But I hope it helps <3
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
Any idea what headers could be causing the issue? I don't really wanna go through every single one on the list..

But, I used the AHU from RZ to check a packet. The two packets where you said that should be the same, come up with a different ID then what I showed you.
You must be registered for see images attach

Is it still happening? Did you change the header ID I said to above?
 
Server Packet Header
Code:
public const int TradingFinishMessageComposer = 1976;

Client Packer Header
Code:
public const int TradingAcceptMessageEvent = 2937;
Code:
public const int TradingConfirmMessageEvent = 1215;

This is the production I am currently on - I believe its 08

These might be wrong for your prod :( But I hope it helps <3

Will not work for him. As different revision.
 
But, I used the AHU from RZ to check a packet. The two packets where you said that should be the same, come up with a different ID then what I showed you.
You must be registered for see images attach

Feel free to try that, however I'm pretty sure that they're right. You need to change the TradingFinishMessageComposer.
 

Blasteh

big tits
Apr 3, 2013
1,156
521
Is it still happening? Did you change the header ID I said to above?
 


Will not work for him. As different revision.
 


Feel free to try that, however I'm pretty sure that they're right. You need to change the TradingFinishMessageComposer.
Yes, I have changed it, but it still does not seem to work :(
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
Okay, found another. Try this?

PHP:
public const int TradingCompleteMessageComposer = 648; // PRODUCTION-201610052203-260805057
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,198
3,914
Hey, it worked! Thanks for your help Sledmore. Helpful and efficient as always.

No problem! Just be cautious about using packet updaters - I made my own, and even then sometimes it can throw me the wrong result out.

Also, I replied to your RevCMS news comments thread with some code - not sure if you've seen it yet.

Thread closed.
 
Status
Not open for further replies.

Users who are viewing this thread

Top