Anyone have an up-to-date vending-item packet (0x454) with the latest patch? I'd appreciate as recent as possible.
Cheers.
Cheers.
than you need the packet 2030Quote:
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.Quote:
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?
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:
than you need the packet 2030
an im not giving you anymore info cus you just sounded like a (F*** *etard)
Bad trolling bro.Quote:
it's now in an 0x434 packet.
bet u get that packet sometime when ur vending!Quote:
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.
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
public class BoothItem : Writer, Interfaces.IPacket
{
byte[] Buffer;
public BoothItem(bool Create)
{
if (Create)
{
Buffer = new byte[92];
WriteUInt16(84, 0, Buffer);
WriteUInt16(1108, 2, Buffer);
}
}
public uint UID
{
get { return BitConverter.ToUInt32(Buffer, 4); }
set { WriteUInt32(value, 4, Buffer); }
}
public uint BoothID
{
get { return BitConverter.ToUInt32(Buffer, 8); }
set { WriteUInt32(value, 8, Buffer); }
}
public uint Cost
{
get { return BitConverter.ToUInt32(Buffer, 12); }
set { WriteUInt32(value, 12, Buffer); }
}
public uint ID
{
get { return BitConverter.ToUInt32(Buffer, 16); }
set { WriteUInt32(value, 16, Buffer); }
}
public ushort Durability
{
get { return BitConverter.ToUInt16(Buffer, 20); }
set { WriteUInt16(value, 20, Buffer); }
}
public ushort MaximDurability
{
get { return BitConverter.ToUInt16(Buffer, 22); }
set { WriteUInt16(value, 22, Buffer); }
}
public uint CostType
{
get { return BitConverter.ToUInt32(Buffer, 24); }
set { WriteUInt32(value, 24, Buffer); }
}
public uint SocketProgress
{
get { return BitConverter.ToUInt32(Buffer, 28); }
set { WriteUInt32(value, 28, Buffer); }
}
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(Buffer, 34); }
set { WriteUInt16((ushort)value, 34, Buffer); }
}
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] == 0 ? false : true; }
set { Buffer[43] = (byte)(value ? 1 : 0); }
}
public byte Enchant
{
get { return Buffer[44]; }
set { Buffer[44] = value; }
}
public bool Suspicious
{
get { return Buffer[53] == 0 ? false : true; }
set { Buffer[53] = (byte)(value ? 1 : 0); }
}
public byte Lock
{
get { return Buffer[54]; }
set { Buffer[54] = value; }
}
public Enums.Color Color
{
get { return (Enums.Color)BitConverter.ToUInt32(Buffer, 56); }
set { WriteUInt32((uint)value, 56, Buffer); }
}
public uint PlusProgress
{
get { return BitConverter.ToUInt32(Buffer, 60); }
set { WriteUInt32(value, 60, Buffer); }
}
public ushort StackSize
{
get { return BitConverter.ToUInt16(Buffer, 72); }
set { WriteUInt16(value, 72, Buffer); }
}
public uint PurificationID
{
get { return BitConverter.ToUInt32(Buffer, 76); }
set { WriteUInt32(value, 76, Buffer); }
}
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 item, uint 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 item, uint 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;
}
}
Quote:
On version 5381 (no big update made recently by TQ) this packet works just fine for me:
Still, the item effect offset changed and I couldn't find it ... yet.PHP Code:public class BoothItem : Writer, Interfaces.IPacket
{
byte[] Buffer;
public BoothItem(bool Create)
{
if (Create)
{
Buffer = new byte[92];
WriteUInt16(84, 0, Buffer);
WriteUInt16(1108, 2, Buffer);
}
}
public uint UID
{
get { return BitConverter.ToUInt32(Buffer, 4); }
set { WriteUInt32(value, 4, Buffer); }
}
public uint BoothID
{
get { return BitConverter.ToUInt32(Buffer, 8); }
set { WriteUInt32(value, 8, Buffer); }
}
public uint Cost
{
get { return BitConverter.ToUInt32(Buffer, 12); }
set { WriteUInt32(value, 12, Buffer); }
}
public uint ID
{
get { return BitConverter.ToUInt32(Buffer, 16); }
set { WriteUInt32(value, 16, Buffer); }
}
public ushort Durability
{
get { return BitConverter.ToUInt16(Buffer, 20); }
set { WriteUInt16(value, 20, Buffer); }
}
public ushort MaximDurability
{
get { return BitConverter.ToUInt16(Buffer, 22); }
set { WriteUInt16(value, 22, Buffer); }
}
public uint CostType
{
get { return BitConverter.ToUInt32(Buffer, 24); }
set { WriteUInt32(value, 24, Buffer); }
}
public uint SocketProgress
{
get { return BitConverter.ToUInt32(Buffer, 28); }
set { WriteUInt32(value, 28, Buffer); }
}
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(Buffer, 34); }
set { WriteUInt16((ushort)value, 34, Buffer); }
}
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] == 0 ? false : true; }
set { Buffer[43] = (byte)(value ? 1 : 0); }
}
public byte Enchant
{
get { return Buffer[44]; }
set { Buffer[44] = value; }
}
public bool Suspicious
{
get { return Buffer[53] == 0 ? false : true; }
set { Buffer[53] = (byte)(value ? 1 : 0); }
}
public byte Lock
{
get { return Buffer[54]; }
set { Buffer[54] = value; }
}
public Enums.Color Color
{
get { return (Enums.Color)BitConverter.ToUInt32(Buffer, 56); }
set { WriteUInt32((uint)value, 56, Buffer); }
}
public uint PlusProgress
{
get { return BitConverter.ToUInt32(Buffer, 60); }
set { WriteUInt32(value, 60, Buffer); }
}
public ushort StackSize
{
get { return BitConverter.ToUInt16(Buffer, 72); }
set { WriteUInt16(value, 72, Buffer); }
}
public uint PurificationID
{
get { return BitConverter.ToUInt32(Buffer, 76); }
set { WriteUInt32(value, 76, Buffer); }
}
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 item, uint 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 item, uint 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;
}
}
Because boothitem packet structure is used for other features as well and not only vending, for example equipment viewing.Quote:
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?
Nope.Quote:
Hail the almighty InfamousNoone.
#Offtopic
You planning on making a server by any chance? :)
Cheers. :)Quote:
On version 5381 (no big update made recently by TQ) this packet works just fine for me:
Still, the item effect offset changed and I couldn't find it ... yet.PHP Code:public class BoothItem : Writer, Interfaces.IPacket
{
byte[] Buffer;
public BoothItem(bool Create)
{
if (Create)
{
Buffer = new byte[92];
WriteUInt16(84, 0, Buffer);
WriteUInt16(1108, 2, Buffer);
}
}
public uint UID
{
get { return BitConverter.ToUInt32(Buffer, 4); }
set { WriteUInt32(value, 4, Buffer); }
}
public uint BoothID
{
get { return BitConverter.ToUInt32(Buffer, 8); }
set { WriteUInt32(value, 8, Buffer); }
}
public uint Cost
{
get { return BitConverter.ToUInt32(Buffer, 12); }
set { WriteUInt32(value, 12, Buffer); }
}
public uint ID
{
get { return BitConverter.ToUInt32(Buffer, 16); }
set { WriteUInt32(value, 16, Buffer); }
}
public ushort Durability
{
get { return BitConverter.ToUInt16(Buffer, 20); }
set { WriteUInt16(value, 20, Buffer); }
}
public ushort MaximDurability
{
get { return BitConverter.ToUInt16(Buffer, 22); }
set { WriteUInt16(value, 22, Buffer); }
}
public uint CostType
{
get { return BitConverter.ToUInt32(Buffer, 24); }
set { WriteUInt32(value, 24, Buffer); }
}
public uint SocketProgress
{
get { return BitConverter.ToUInt32(Buffer, 28); }
set { WriteUInt32(value, 28, Buffer); }
}
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(Buffer, 34); }
set { WriteUInt16((ushort)value, 34, Buffer); }
}
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] == 0 ? false : true; }
set { Buffer[43] = (byte)(value ? 1 : 0); }
}
public byte Enchant
{
get { return Buffer[44]; }
set { Buffer[44] = value; }
}
public bool Suspicious
{
get { return Buffer[53] == 0 ? false : true; }
set { Buffer[53] = (byte)(value ? 1 : 0); }
}
public byte Lock
{
get { return Buffer[54]; }
set { Buffer[54] = value; }
}
public Enums.Color Color
{
get { return (Enums.Color)BitConverter.ToUInt32(Buffer, 56); }
set { WriteUInt32((uint)value, 56, Buffer); }
}
public uint PlusProgress
{
get { return BitConverter.ToUInt32(Buffer, 60); }
set { WriteUInt32(value, 60, Buffer); }
}
public ushort StackSize
{
get { return BitConverter.ToUInt16(Buffer, 72); }
set { WriteUInt16(value, 72, Buffer); }
}
public uint PurificationID
{
get { return BitConverter.ToUInt32(Buffer, 76); }
set { WriteUInt32(value, 76, Buffer); }
}
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 item, uint 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 item, uint 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;
}
}