1D 23 6D E4 DA 7A 00 3F 00 B8 00 00 00 00 00 00
mình không chỉ full cho bạn, mà chỉ cho bạn các làm thế nào để phân biệt được các offset nào chứa các option nào.
Bây giờ bạn kiếm 1 source GS season 6 (zTeam chẳng hạn). Bạn xem function DbItemSetInByte hoặc DGGetWarehouseList.
với SS6 thì Size của 1 item luôn luôn = 16, còn các version nhỏ hơn thì có thể khác.
và mình có 1 đoạn thế này:
Code:
if(ItemDbByte == 16)
{
itype |= (lpMsg->dbInventory[n*ItemDbByte+9] & 0xF0) * 32;
itype |= (lpMsg->dbInventory[n*ItemDbByte+7] & 0x80) * 2;
_type = itype;
}
_type ItemID. ItemID được tính theo công thứ ItemID = ItemType*512+ItemIndex. khi bạn đã lấy được _type thì bạn có thể dùng công thức trên để tính type và index là bao nhiêu. tất nhiên có cách nhanh hơn nhưng mình sẽ không nói ở đây.
lpMsg->dbInventory[n*ItemDbByte+
9] ở đây chính là offset thứ 9 trong dãy hex DB item ở trên.
tiếp theo mình cũng có 1 đoạn
Code:
item.m_Level = DBI_GET_LEVEL(lpMsg->dbInventory[n*ItemDbByte+1]);
đoạn này lấy ra Level của item. Level item nằm ở offset 1.
Code:
#define DBI_GET_LEVEL(x) ( ((x)>>3) & 0xF)
hay viết cách khác Level = (Offset[1]>>3) & 0xF)
cứ như thế, bạn chỉ cần xem GS viết thế nào, từ đó bạn suy ra. Tất nhiên đây là ngôn ngữ C++, khi qua ngôn ngữ khác như C#, VB.NET hoặc PHP chẳng hạn, thì bạn phải biết các toán tử &, |, >> của các ngôn ngữ kia là gì, có hỗ trợ hay ko
.
Bên dưới mình liệt kê các các offset chứa những option nào.
Bạn cũng có thể download code NBB web về xem cách làm của họ cũng được
. Cách nào miễn khi mình sử dụng mà GS load đúng theo ý của mình là ok
.
[0] 1D: Item Index
[1] 23: Level, Skill, Luck, 28 option
[2] 6D: Durability
[3,4,5,6] E4 DA 7A 00: Serial Item
[7] 3F: Option Data (các option excellent)
[8] 00: Set option
[9] B8: Type item, 380 option, Period Option.
[10] 00: Yellow option (luu ý, nếu là socket item, thì sẽ ko có yellow op, mà thay vào đó là socket + thêm)
[11,12,13,14,15] 00 00 00 00 00 00: Socket item
--- Chế độ gộp bài viết ---
version cũ chỉ khác nhau về kích thước DB thôi. nhưng cách tính cũng na ná nhau