Up to date vending packet

04/26/2011 02:33 InfamousNoone#1
Anyone have an up-to-date vending-item packet (0x454) with the latest patch? I'd appreciate as recent as possible.

Cheers.
04/26/2011 02:59 { Angelius }#2
its not (0x454) any more its a generalData subtype is 111
04/26/2011 03:49 InfamousNoone#3
A 0x271a is not big enough (let alone the suitable type) to hold vending-item info.

[Only registered and activated users can see links. Click Here To Register...]

Someone that knows what they're talking about?
04/26/2011 04:18 { Angelius }#4
Quote:
Originally Posted by InfamousNoone View Post
A 0x271a is not big enough (let alone the suitable type) to hold vending-item info.

[Only registered and activated users can see links. Click Here To Register...]

Someone that knows what they're talking about?
than you need the packet 2030

an im not giving you anymore info cus you just sounded like a (F*** *etard)
04/26/2011 04:45 _tao4229_#5
Quote:
Originally Posted by InfamousNoone View Post
A 0x271a is not big enough (let alone the suitable type) to hold vending-item info.

[Only registered and activated users can see links. Click Here To Register...]

Someone that knows what they're talking about?
it's now in an 0x434 packet.
04/26/2011 04:50 InfamousNoone#6
Quote:
Originally Posted by { Angelius } View Post
than you need the packet 2030

an im not giving you anymore info cus you just sounded like a (F*** *etard)
Yes, I definitely need a 2030 (0x7EE) packet. Oh wait, that's a Spawn NPC Entity packet! How someone can be so incompetent is a joke. I mean I'm fine with someone making a mistake, but when you start insulting the opposing the party, you better know what you're talking about.

Quote:
Originally Posted by _tao4229_ View Post
it's now in an 0x434 packet.
Bad trolling bro.
04/26/2011 05:06 _tao4229_#7
Quote:
Originally Posted by InfamousNoone View Post
Yes, I definitely need a 2030 (0x7EE) packet. Oh wait, that's a Spawn NPC Entity packet! How someone can be so incompetent is a joke. I mean I'm fine with someone making a mistake, but when you start insulting the opposing the party, you better know what you're talking about.


Bad trolling bro.
bet u get that packet sometime when ur vending!
04/26/2011 05:10 pro4never#8
To answer the question as to which packet it's using though...


0x454 is still used.

I have NO idea if this is the correct structure (it's a few patches old and I never tested. I just have it laying around my comp)

Length: 56 + 8

uint UID 4
uint BoothID 8
uint Cost 12
uint ID 16
ushort Dura 20
ushort MaxDura 22
uint Currency 24
byte gem1 32
byte gem2 33
byte plus 36
byte bless 27
byte enchant 29
uint progress 40
uint color 48
uint composition 52


Sorry about all the unknowns. I didn't structure it though.
04/26/2011 07:17 { Angelius }#9
FUCK i really need to start sleeping like a normal human again !

any ways my bad i dident pay attention to what you exactly asked for so sorry about that but still i dident like your answer lol

here is the right stru but without the refinery/w.e thing which im not sure if its included at this point .

Quote:
value | offset
UInt32(Item.UID, 4
UInt32(boothUID, 8
UInt32(Price, 12
UInt32(Item.ID, 16
UInt16(Item.Dura, 20
UInt16(Item.MaxDura, 22
Byte(moneytype, 24
UInt32(Item.Composition, 28
Byte(Item.Soc1, 32
Byte(Item.Soc2, 33
Byte(Item.Plus, 41
Byte(Item.Bless, 42
Byte(Item.Enchant, 44
UInt32(Item.Color, 56
UInt16(1, 72
04/26/2011 08:54 -impulse-#10
On version 5381 (no big update made recently by TQ) this packet works just fine for me:

PHP Code:
    public class BoothItem WriterInterfaces.IPacket
    
{
        
byte[] Buffer;

        public 
BoothItem(bool Create)
        {
            if (
Create)
            {
                
Buffer = new byte[92];
                
WriteUInt16(840Buffer);
                
WriteUInt16(11082Buffer);
            }
        }
        public 
uint UID
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }
        public 
uint BoothID
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }
        public 
uint Cost
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }
        public 
uint ID
        
{
            
get { return BitConverter.ToUInt32(Buffer16); }
            
set WriteUInt32(value16Buffer); }
        }
        public 
ushort Durability
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt16(value20Buffer); }
        }
        public 
ushort MaximDurability
        
{
            
get { return BitConverter.ToUInt16(Buffer22); }
            
set WriteUInt16(value22Buffer); }
        }
        public 
uint CostType
        
{
            
get { return BitConverter.ToUInt32(Buffer24); }
            
set WriteUInt32(value24Buffer); }
        }
        public 
uint SocketProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer28); }
            
set WriteUInt32(value28Buffer); }
        }
        public 
Enums.Gem SocketOne
        
{
            
get { return (Enums.Gem)Buffer[32]; }
            
set Buffer[32] = (byte)value; }
        }
        public 
Enums.Gem SocketTwo
        
{
            
get { return (Enums.Gem)Buffer[33]; }
            
set Buffer[33] = (byte)value; }
        }
        public 
Enums.ItemEffect Effect
        
{
            
get { return (Enums.ItemEffect)BitConverter.ToUInt16(Buffer34); }
            
set WriteUInt16((ushort)value34Buffer); }
        }
        public 
byte Plus
        
{
            
get { return Buffer[41]; }
            
set Buffer[41] = value; }
        }
        public 
byte Bless
        
{
            
get { return Buffer[42]; }
            
set Buffer[42] = value; }
        }
        public 
bool Bound
        
{
            
get { return Buffer[43] == false true; }
            
set Buffer[43] = (byte)(value 0); }
        }
        public 
byte Enchant
        
{
            
get { return Buffer[44]; }
            
set Buffer[44] = value; }
        }
        public 
bool Suspicious
        
{
            
get { return Buffer[53] == false true; }
            
set Buffer[53] = (byte)(value 0); }
        }
        public 
byte Lock
        
{
            
get { return Buffer[54]; }
            
set Buffer[54] = value; }
        }
        public 
Enums.Color Color
        
{
            
get { return (Enums.Color)BitConverter.ToUInt32(Buffer56); }
            
set WriteUInt32((uint)value56Buffer); }
        }
        public 
uint PlusProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer60); }
            
set WriteUInt32(value60Buffer); }
        }
        public 
ushort StackSize
        
{
            
get { return BitConverter.ToUInt16(Buffer72); }
            
set WriteUInt16(value72Buffer); }
        }
        public 
uint PurificationID
        
{
            
get { return BitConverter.ToUInt32(Buffer76); }
            
set WriteUInt32(value76Buffer); }
        }
        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }

        public 
void Send(Client.GameState client)
        {
            
client.Send(Buffer);
        }

        public 
override int GetHashCode()
        {
            return (int)
this.UID;
        }

        public 
void Fill(Game.ConquerStructures.BoothItem itemuint boothID)
        {
            
UID item.Item.UID;
            
BoothID boothID;
            
Cost item.Cost;
            
ID item.Item.ID;
            
Durability item.Item.Durability;
            
MaximDurability item.Item.MaximDurability;
            
CostType = (byte)item.Cost_Type;
            
SocketOne item.Item.SocketOne;
            
SocketTwo item.Item.SocketTwo;
            
Effect item.Item.Effect;
            
Plus item.Item.Plus;
            
Bless item.Item.Bless;
            
Enchant item.Item.Enchant;
            
SocketProgress item.Item.SocketProgress;
            
Color item.Item.Color;
            
PlusProgress item.Item.PlusProgress;
            
StackSize item.Item.StackSize;
            
PurificationID item.Item.Purification.PurificationItemID;
        }
        public 
void Fill(ConquerItem itemuint boothID)
        {
            
UID item.UID;
            
BoothID boothID;
            
ID item.ID;
            
Durability item.Durability;
            
MaximDurability item.MaximDurability;
            
Buffer[24] = (byte)4
            
Buffer[26] = (byte)item.Position
            
SocketOne item.SocketOne;
            
SocketTwo item.SocketTwo;
            
Effect item.Effect;
            
Plus item.Plus;
            
Bound item.Bound;
            
Bless item.Bless;
            
Enchant item.Enchant;
            
Lock item.Lock;
            
SocketProgress item.SocketProgress;
            
Color item.Color;
            
PlusProgress item.PlusProgress;
            
StackSize item.StackSize;
            
PurificationID item.Purification.PurificationItemID;
        }
    } 
Still, the item effect offset changed and I couldn't find it ... yet.
04/26/2011 13:44 iStefan#11
Quote:
Originally Posted by -impulse- View Post
On version 5381 (no big update made recently by TQ) this packet works just fine for me:

PHP Code:
    public class BoothItem WriterInterfaces.IPacket
    
{
        
byte[] Buffer;

        public 
BoothItem(bool Create)
        {
            if (
Create)
            {
                
Buffer = new byte[92];
                
WriteUInt16(840Buffer);
                
WriteUInt16(11082Buffer);
            }
        }
        public 
uint UID
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }
        public 
uint BoothID
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }
        public 
uint Cost
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }
        public 
uint ID
        
{
            
get { return BitConverter.ToUInt32(Buffer16); }
            
set WriteUInt32(value16Buffer); }
        }
        public 
ushort Durability
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt16(value20Buffer); }
        }
        public 
ushort MaximDurability
        
{
            
get { return BitConverter.ToUInt16(Buffer22); }
            
set WriteUInt16(value22Buffer); }
        }
        public 
uint CostType
        
{
            
get { return BitConverter.ToUInt32(Buffer24); }
            
set WriteUInt32(value24Buffer); }
        }
        public 
uint SocketProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer28); }
            
set WriteUInt32(value28Buffer); }
        }
        public 
Enums.Gem SocketOne
        
{
            
get { return (Enums.Gem)Buffer[32]; }
            
set Buffer[32] = (byte)value; }
        }
        public 
Enums.Gem SocketTwo
        
{
            
get { return (Enums.Gem)Buffer[33]; }
            
set Buffer[33] = (byte)value; }
        }
        public 
Enums.ItemEffect Effect
        
{
            
get { return (Enums.ItemEffect)BitConverter.ToUInt16(Buffer34); }
            
set WriteUInt16((ushort)value34Buffer); }
        }
        public 
byte Plus
        
{
            
get { return Buffer[41]; }
            
set Buffer[41] = value; }
        }
        public 
byte Bless
        
{
            
get { return Buffer[42]; }
            
set Buffer[42] = value; }
        }
        public 
bool Bound
        
{
            
get { return Buffer[43] == false true; }
            
set Buffer[43] = (byte)(value 0); }
        }
        public 
byte Enchant
        
{
            
get { return Buffer[44]; }
            
set Buffer[44] = value; }
        }
        public 
bool Suspicious
        
{
            
get { return Buffer[53] == false true; }
            
set Buffer[53] = (byte)(value 0); }
        }
        public 
byte Lock
        
{
            
get { return Buffer[54]; }
            
set Buffer[54] = value; }
        }
        public 
Enums.Color Color
        
{
            
get { return (Enums.Color)BitConverter.ToUInt32(Buffer56); }
            
set WriteUInt32((uint)value56Buffer); }
        }
        public 
uint PlusProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer60); }
            
set WriteUInt32(value60Buffer); }
        }
        public 
ushort StackSize
        
{
            
get { return BitConverter.ToUInt16(Buffer72); }
            
set WriteUInt16(value72Buffer); }
        }
        public 
uint PurificationID
        
{
            
get { return BitConverter.ToUInt32(Buffer76); }
            
set WriteUInt32(value76Buffer); }
        }
        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }

        public 
void Send(Client.GameState client)
        {
            
client.Send(Buffer);
        }

        public 
override int GetHashCode()
        {
            return (int)
this.UID;
        }

        public 
void Fill(Game.ConquerStructures.BoothItem itemuint boothID)
        {
            
UID item.Item.UID;
            
BoothID boothID;
            
Cost item.Cost;
            
ID item.Item.ID;
            
Durability item.Item.Durability;
            
MaximDurability item.Item.MaximDurability;
            
CostType = (byte)item.Cost_Type;
            
SocketOne item.Item.SocketOne;
            
SocketTwo item.Item.SocketTwo;
            
Effect item.Item.Effect;
            
Plus item.Item.Plus;
            
Bless item.Item.Bless;
            
Enchant item.Item.Enchant;
            
SocketProgress item.Item.SocketProgress;
            
Color item.Item.Color;
            
PlusProgress item.Item.PlusProgress;
            
StackSize item.Item.StackSize;
            
PurificationID item.Item.Purification.PurificationItemID;
        }
        public 
void Fill(ConquerItem itemuint boothID)
        {
            
UID item.UID;
            
BoothID boothID;
            
ID item.ID;
            
Durability item.Durability;
            
MaximDurability item.MaximDurability;
            
Buffer[24] = (byte)4
            
Buffer[26] = (byte)item.Position
            
SocketOne item.SocketOne;
            
SocketTwo item.SocketTwo;
            
Effect item.Effect;
            
Plus item.Plus;
            
Bound item.Bound;
            
Bless item.Bless;
            
Enchant item.Enchant;
            
Lock item.Lock;
            
SocketProgress item.SocketProgress;
            
Color item.Color;
            
PlusProgress item.PlusProgress;
            
StackSize item.StackSize;
            
PurificationID item.Purification.PurificationItemID;
        }
    } 
Still, the item effect offset changed and I couldn't find it ... yet.

What Bound Item has to do with this packet geez? What use of having bound item in this Packet when it can't be put due to client check? is TQ really f*cking stupid or this is your mistake?
04/26/2011 13:54 _Emme_#12
Quote:
Originally Posted by iStefan View Post
What Bound Item has to do with this packet geez? What use of having bound item in this Packet when it can't be put due to client check? is TQ really f*cking stupid or this is your mistake?
Because boothitem packet structure is used for other features as well and not only vending, for example equipment viewing.
04/26/2011 14:07 iStefan#13
Quote:
Originally Posted by EmmeTheCoder View Post
Because boothitem packet structure is used for other features as well and not only vending, for example equipment viewing.
I see Thanks.
04/26/2011 18:08 _DreadNought_#14
Hail the almighty InfamousNoone.

#Offtopic
You planning on making a server by any chance? :)
04/26/2011 21:45 InfamousNoone#15
Quote:
Originally Posted by _DreadNought_ View Post
Hail the almighty InfamousNoone.

#Offtopic
You planning on making a server by any chance? :)
Nope.

Quote:
Originally Posted by -impulse- View Post
On version 5381 (no big update made recently by TQ) this packet works just fine for me:

PHP Code:
    public class BoothItem WriterInterfaces.IPacket
    
{
        
byte[] Buffer;

        public 
BoothItem(bool Create)
        {
            if (
Create)
            {
                
Buffer = new byte[92];
                
WriteUInt16(840Buffer);
                
WriteUInt16(11082Buffer);
            }
        }
        public 
uint UID
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }
        public 
uint BoothID
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }
        public 
uint Cost
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }
        public 
uint ID
        
{
            
get { return BitConverter.ToUInt32(Buffer16); }
            
set WriteUInt32(value16Buffer); }
        }
        public 
ushort Durability
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt16(value20Buffer); }
        }
        public 
ushort MaximDurability
        
{
            
get { return BitConverter.ToUInt16(Buffer22); }
            
set WriteUInt16(value22Buffer); }
        }
        public 
uint CostType
        
{
            
get { return BitConverter.ToUInt32(Buffer24); }
            
set WriteUInt32(value24Buffer); }
        }
        public 
uint SocketProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer28); }
            
set WriteUInt32(value28Buffer); }
        }
        public 
Enums.Gem SocketOne
        
{
            
get { return (Enums.Gem)Buffer[32]; }
            
set Buffer[32] = (byte)value; }
        }
        public 
Enums.Gem SocketTwo
        
{
            
get { return (Enums.Gem)Buffer[33]; }
            
set Buffer[33] = (byte)value; }
        }
        public 
Enums.ItemEffect Effect
        
{
            
get { return (Enums.ItemEffect)BitConverter.ToUInt16(Buffer34); }
            
set WriteUInt16((ushort)value34Buffer); }
        }
        public 
byte Plus
        
{
            
get { return Buffer[41]; }
            
set Buffer[41] = value; }
        }
        public 
byte Bless
        
{
            
get { return Buffer[42]; }
            
set Buffer[42] = value; }
        }
        public 
bool Bound
        
{
            
get { return Buffer[43] == false true; }
            
set Buffer[43] = (byte)(value 0); }
        }
        public 
byte Enchant
        
{
            
get { return Buffer[44]; }
            
set Buffer[44] = value; }
        }
        public 
bool Suspicious
        
{
            
get { return Buffer[53] == false true; }
            
set Buffer[53] = (byte)(value 0); }
        }
        public 
byte Lock
        
{
            
get { return Buffer[54]; }
            
set Buffer[54] = value; }
        }
        public 
Enums.Color Color
        
{
            
get { return (Enums.Color)BitConverter.ToUInt32(Buffer56); }
            
set WriteUInt32((uint)value56Buffer); }
        }
        public 
uint PlusProgress
        
{
            
get { return BitConverter.ToUInt32(Buffer60); }
            
set WriteUInt32(value60Buffer); }
        }
        public 
ushort StackSize
        
{
            
get { return BitConverter.ToUInt16(Buffer72); }
            
set WriteUInt16(value72Buffer); }
        }
        public 
uint PurificationID
        
{
            
get { return BitConverter.ToUInt32(Buffer76); }
            
set WriteUInt32(value76Buffer); }
        }
        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }

        public 
void Send(Client.GameState client)
        {
            
client.Send(Buffer);
        }

        public 
override int GetHashCode()
        {
            return (int)
this.UID;
        }

        public 
void Fill(Game.ConquerStructures.BoothItem itemuint boothID)
        {
            
UID item.Item.UID;
            
BoothID boothID;
            
Cost item.Cost;
            
ID item.Item.ID;
            
Durability item.Item.Durability;
            
MaximDurability item.Item.MaximDurability;
            
CostType = (byte)item.Cost_Type;
            
SocketOne item.Item.SocketOne;
            
SocketTwo item.Item.SocketTwo;
            
Effect item.Item.Effect;
            
Plus item.Item.Plus;
            
Bless item.Item.Bless;
            
Enchant item.Item.Enchant;
            
SocketProgress item.Item.SocketProgress;
            
Color item.Item.Color;
            
PlusProgress item.Item.PlusProgress;
            
StackSize item.Item.StackSize;
            
PurificationID item.Item.Purification.PurificationItemID;
        }
        public 
void Fill(ConquerItem itemuint boothID)
        {
            
UID item.UID;
            
BoothID boothID;
            
ID item.ID;
            
Durability item.Durability;
            
MaximDurability item.MaximDurability;
            
Buffer[24] = (byte)4
            
Buffer[26] = (byte)item.Position
            
SocketOne item.SocketOne;
            
SocketTwo item.SocketTwo;
            
Effect item.Effect;
            
Plus item.Plus;
            
Bound item.Bound;
            
Bless item.Bless;
            
Enchant item.Enchant;
            
Lock item.Lock;
            
SocketProgress item.SocketProgress;
            
Color item.Color;
            
PlusProgress item.PlusProgress;
            
StackSize item.StackSize;
            
PurificationID item.Purification.PurificationItemID;
        }
    } 
Still, the item effect offset changed and I couldn't find it ... yet.
Cheers. :)