The data for a/0/2/4 was pretty much all done out a while back.
price = reader.ReadUInt16()
if game == "bw":
price *= 10
battleuse = reader.ReadByte()
gain = reader.ReadByte()
berrytag = reader.ReadByte()#this is idk.
flingeffect = reader.ReadByte()
flingpow = reader.ReadByte()
naturalgiftpow = reader.ReadByte()#flag&0x1F is type
flag = reader.ReadByte()#access, toss, idk
"""
0x1F -> fling type (or 0x1F for none)
0x20 -> cannot throw away
0x40 -> can be registered
0x80 -> can be used outside of battle (doesn't include stones, repels, and others) (so... incomplete)
"""
pocket = reader.ReadByte()#flag.. not sure what 1 does
itemtype = reader.ReadByte()
itemcategory = reader.ReadByte()#holds itemtype?
u0 = reader.ReadByte()
u1 = reader.ReadByte()
u2 = reader.ReadByte()
if game == "bw":
index = reader.ReadByte()#for sorting, no need
antiindex = reader.ReadByte()#??, no need
u3 = reader.ReadByte()
u4 = reader.ReadByte()
u5 = reader.ReadByte()
u6 = reader.ReadByte()
u7 = reader.ReadByte()
u8 = reader.ReadByte()
evs = []
for e in range(6):
evs.append(str(reader.ReadInt8()))
#evs = [reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8(),reader.ReadInt8()]
hprestore = reader.ReadByte()
pprestore = reader.ReadByte()
happy1 = reader.ReadInt8()#happiness is 0-99
happy2 = reader.ReadInt8()#happiness is 100-199
happy3 = reader.ReadInt8()#happiness is 200-255