public override byte[] GetBuffer()
{
byte nNameLen = (byte)GameBase.Core.Coding.GetDefauleCoding().GetBytes(name).Length;
mMsgLen += nNameLen;
PacketOut outpack = new PacketOut(mKey);
outpack.WriteUInt16(mMsgLen);
outpack.WriteUInt16(mParam);
outpack.WriteInt32(time);
outpack.WriteUInt32(id);
outpack.WriteUInt32(item_id);
outpack.WriteUInt16(amount);
outpack.WriteUInt16(amount_limit);
outpack.WriteByte(tag);
outpack.WriteByte(status);
outpack.WriteByte(postion);
outpack.WriteByte(gem);
outpack.WriteByte(gem2);
outpack.WriteByte(magic);
outpack.WriteByte(magic2);
outpack.WriteByte(magic3);
outpack.WriteInt32(param3);
outpack.WriteInt32(lock_time);
outpack.WriteInt32(warghost_exp);
outpack.WriteInt32(param4);
outpack.WriteInt32(param5);
outpack.WriteByte(di_attack);
outpack.WriteByte(shui_attack);
outpack.WriteByte(huo_attack);
outpack.WriteByte(feng_attack);
outpack.WriteByte(add_eff);
outpack.WriteByte(param6);
outpack.WriteByte(param7);
outpack.WriteInt32(properties);
outpack.WriteInt16(param10);
outpack.WriteByte(gem3);
outpack.WriteInt32(god_strong);
outpack.WriteInt16(param12);
outpack.WriteInt32(god_exp);
outpack.WriteInt32(param8);
outpack.WriteInt32(param1);
outpack.WriteByte(pram9);
outpack.WriteString(name);
for (int i = 0; i < param2.Length; i++) outpack.WriteByte(param2[i]);
return outpack.Flush();
}