Example #1
0
        internal static void send_Attack(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	uint src_handle = " + stream.ReadUInt32());
            str.AppendLine("	uint dst_handle = " + stream.ReadUInt32());
            str.AppendLine("	ushort attack_speed = " + stream.ReadInt16());
            str.AppendLine("	ushort attack_delay = " + stream.ReadInt16());
            str.AppendLine("	byte attack_action = " + stream.ReadByte());
            str.AppendLine("	byte attack_flag = " + stream.ReadByte());
            int count = stream.ReadByte();
            str.AppendLine("	byte count = " + count);
            for (int i = 0; i < count; i++)
            {
                str.AppendLine("	uint hp_damage = " + stream.ReadUInt32());
                str.AppendLine("	uint mp_damage = " + stream.ReadUInt32());
                str.AppendLine("	byte flag = " + stream.ReadByte());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint new_dst_hp = " + stream.ReadUInt32());
                str.AppendLine("	uint new_dst_mp = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint unknown = " + stream.ReadUInt32());
                str.AppendLine("	uint new_src_hp = " + stream.ReadUInt32());
                str.AppendLine("	uint new_src_mp = " + stream.ReadUInt32());
            }
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #2
0
        internal static void send_CharList(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	Int16 unknown = " + stream.ReadInt16());
            str.AppendLine("	Int32 unknown = " + stream.ReadInt32());
            short count = stream.ReadInt16();
            str.AppendLine("	Int16 char_count = " + count);	/* 6 */
            str.AppendLine("	struct character[char_count]");
            str.AppendLine("	{");
            for (int i = 0; i < count; i++)
            {
                str.AppendLine("		{");
                str.AppendLine("			Int32 sex = " + stream.ReadInt32());				/* 8 */
                str.AppendLine("			Int32 race = " + stream.ReadInt32());				/* 12 */
                str.AppendLine("			Int32 model00 = " + stream.ReadInt32());			/* 16 */
                str.AppendLine("			Int32 model01 = " + stream.ReadInt32());			/* 20 */
                str.AppendLine("			Int32 model02 = " + stream.ReadInt32());			/* 24 */
                str.AppendLine("			Int32 model03 = " + stream.ReadInt32());			/* 28 */
                str.AppendLine("			Int32 model04 = " + stream.ReadInt32());			/* 32 */
                str.AppendLine("			Int32 hair_color = " + stream.ReadInt32());		/* 36 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());		/* 40 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());		/* 44 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());		/* 48 */
                str.AppendLine("			Int32 right_hand = " + stream.ReadInt32());		/* 52 */
                str.AppendLine("			Int32 left_hand = " + stream.ReadInt32());		/* 54 */
                str.AppendLine("			Int32 armor_id = " + stream.ReadInt32());			/* 58 */
                str.AppendLine("			Int32 cap_id = " + stream.ReadInt32());			/* 62 */
                str.AppendLine("			Int32 hand_id = " + stream.ReadInt32()); 			/* 66 */
                str.AppendLine("			Int32 feet_id = " + stream.ReadInt32());			/* 70 */
                str.AppendLine("			Int32 belt_id = " + stream.ReadInt32());			/* 74 */
                str.AppendLine("			Int32 cape_id = " + stream.ReadInt32());			/* 78 */
                str.AppendLine("			Int32 necklace_id = " + stream.ReadInt32());		/* 82 */
                str.AppendLine("			Int32 ring1 = " + stream.ReadInt32());			/* 86 */
                str.AppendLine("			Int32 ring2 = " + stream.ReadInt32());			/* 90 */
                str.AppendLine("			Int32 earring = " + stream.ReadInt32());			/* 94 */
                str.AppendLine("			Int32 mask_id = " + stream.ReadInt32());			/* 98 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());			/* 102 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());			/* 106 */
                str.AppendLine("			Int32 deco_shield_id = " + stream.ReadInt32());	/* 110 */
                str.AppendLine("			Int32 deco_costume_id = " + stream.ReadInt32());	/* 114 */
                str.AppendLine("			Int32 deco_head_id = " + stream.ReadInt32());		/* 118 */
                str.AppendLine("			Int32 deco_gloves_id = " + stream.ReadInt32());	/* 122 */
                str.AppendLine("			Int32 deco_shoes_id = " + stream.ReadInt32());	/* 126 */
                str.AppendLine("			Int32 deco_cloak_id = " + stream.ReadInt32());	/* 130 */
                str.AppendLine("			Int32 deco_bag_id = " + stream.ReadInt32());		/* 134 */
                str.AppendLine("			Int32 mount_id = " + stream.ReadInt32());			/* 138 */
                str.AppendLine("			Int32 bag_id = " + stream.ReadInt32());			/* 142 */
                str.AppendLine("			Int32 level = " + stream.ReadInt32());			/* 146 */
                str.AppendLine("			Int32 job = " + stream.ReadInt32());				/* 150 */
                str.AppendLine("			Int32 job_level = " + stream.ReadInt32());		/* 154 */
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());
                str.AppendLine("			Int32 unknown = " + stream.ReadInt32());
                str.AppendLine("			Byte unknown = " + stream.ReadByte());
                str.AppendLine("			String(19) char_name = " + stream.ReadString(0, 19));	/* 175 */
                str.AppendLine("			Int32 skin_color = " + stream.ReadInt32());		/* 194 */
                str.AppendLine("			String(30) create_date = " + stream.ReadString(0, 30));	/* 198 */
                str.AppendLine("			String(30) delete_date = " + stream.ReadString(0, 30));
                for (int j = 0; j < 312; j += 4)
                    str.AppendLine("			Int32 unknown = " + stream.ReadInt32());
                str.AppendLine("		}");
            }
            str.AppendLine("	}");
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #3
0
        internal static void parse_WearChange(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 item_handle = " + stream.ReadUInt32());
            str.AppendLine("	Int16 wear_type = " + stream.ReadInt16());
            str.AppendLine("	UInt32 player_handle = " + stream.ReadUInt32());
            str.AppendLine("	Byte item_enhance = " + stream.ReadByte());
            str.AppendLine("	2B Unknown = " + stream.ReadInt16());
            str.AppendLine("	2B Unknown = " + stream.ReadInt16());
            str.AppendLine("	2B Unknown = " + stream.ReadInt16());
            str.AppendLine("	2B Unknown = " + stream.ReadInt16());
            str.AppendLine("}");

            Form1.PacketSend('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #4
0
        internal static void send_194(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32());
            str.AppendLine("	2B unknown = " + stream.ReadInt16());
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #5
0
        internal static void parse_PCMoveReq(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 player_handle = " + stream.ReadUInt32());
            str.AppendLine("	Single from_x = " + stream.ReadFloat());
            str.AppendLine("	Single from_y = " + stream.ReadFloat());
            str.AppendLine("	UInt32 move_time = " + stream.ReadUInt32());
            str.AppendLine("	Byte speed_sync = " + stream.ReadByte());
            short c = stream.ReadInt16();
            str.AppendLine("	Int16 move_count = " + c);
            str.AppendLine("	struct move_positions[move_count]");
            str.AppendLine("	{");
            for (int i = 0; i < c; i++)
            {
                str.AppendLine("		{");
                str.AppendLine("			Single to_x = " + stream.ReadFloat());
                str.AppendLine("			Single to_y = " + stream.ReadFloat());
                str.AppendLine("		}");
            }
            str.AppendLine("	}");
            str.AppendLine("}");

            Form1.PacketSend('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #6
0
        internal static void parse_Scripts(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	String(21) msg_type = " + stream.ReadString(0, 21));
            short size = stream.ReadInt16();
            str.AppendLine("	Int16 size = " + size);
            str.AppendLine("	String(size) = " + stream.ReadString(0, size));
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #7
0
        internal static void parse_DialOpt(ref PacketStream stream)
        {
            short size = stream.ReadInt16();
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	Int16 size = " + size);
            str.AppendLine("	String(size) Function = " + stream.ReadString(0, size));
            str.AppendLine("}");

            Form1.PacketSend('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #8
0
        internal static void send_LoginResult(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	Int16 result = " + stream.ReadInt16());
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32());
            str.AppendLine("	float x = " + stream.ReadFloat());
            str.AppendLine("	float y = " + stream.ReadFloat());
            str.AppendLine("	float z = " + stream.ReadFloat());
            str.AppendLine("	Byte layer = " + stream.ReadByte());
            str.AppendLine("	float face = " + stream.ReadFloat());
            str.AppendLine("	Int32 region_size = " + stream.ReadInt32());
            str.AppendLine("	Int32 hp = " + stream.ReadInt32());
            str.AppendLine("	Int32 mp = " + stream.ReadInt32());
            str.AppendLine("	Int32 max_hp = " + stream.ReadInt32());
            str.AppendLine("	Int32 max_mp = " + stream.ReadInt32());
            str.AppendLine("	Int32 havoc = " + stream.ReadInt32());
            str.AppendLine("	Int32 max_havoc = " + stream.ReadInt32());
            str.AppendLine("	Int32 sex = " + stream.ReadInt32());
            str.AppendLine("	Int32 race = " + stream.ReadInt32());
            str.AppendLine("	Int32 skin_color = " + stream.ReadInt32());
            str.AppendLine("	Int32 face_id = " + stream.ReadInt32());
            str.AppendLine("	Int32 hair_id = " + stream.ReadInt32());
            str.AppendLine("	string(19) char_name = " + stream.ReadString(0, 19));
            str.AppendLine("	Int32 cell_size = " + stream.ReadInt32());
            str.AppendLine("	Int32 guild_id = " + stream.ReadInt32());

            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #9
0
        internal static void send_UrlList(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            short size = stream.ReadInt16();
            str.AppendLine("	Int16 string_length = " + size);
            str.AppendLine("	String(string_length) url_list = " + stream.ReadString(0, size));
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #10
0
        internal static void send_WeatherInfo(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	Int32 local_id = " + stream.ReadInt32());
            str.AppendLine("	Int16 Weather = " + stream.ReadInt16());
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #11
0
        internal static void send_UpdateStatus(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32()); /* 0 */
            str.AppendLine("	Int16 unknown1 = " + stream.ReadInt16());
            str.AppendLine("	Int16 strenght = " + stream.ReadInt16()); /* 6 */
            str.AppendLine("	Int16 vitality = " + stream.ReadInt16()); /* 8 */
            str.AppendLine("	Int16 dexterity = " + stream.ReadInt16()); /* 10 */
            str.AppendLine("	Int16 agility = " + stream.ReadInt16()); /* 12 */
            str.AppendLine("	Int16 int = " + stream.ReadInt16()); /* 14 */
            str.AppendLine("	Int16 wisdom = " + stream.ReadInt16()); /* 16 */
            str.AppendLine("	Int16 luck = " + stream.ReadInt16()); /* 18 */
            str.AppendLine("	Int16 crit_rate = " + stream.ReadInt16()); /* 20 */
            str.AppendLine("	Int16 crit_power = " + stream.ReadInt16()); /* 22 */
            str.AppendLine("	Int16 p_atk_right = " + stream.ReadInt16()); /* 24 */
            str.AppendLine("	Int16 p_atk_left = " + stream.ReadInt16()); /* 26 */
            str.AppendLine("	Int16 p_def = " + stream.ReadInt16());/* 28 */
            str.AppendLine("	Int16 block_def = " + stream.ReadInt16());/* 30 */
            str.AppendLine("	Int16 matk = " + stream.ReadInt16());/* 32 */
            str.AppendLine("	Int16 mdef = " + stream.ReadInt16());/* 34 */
            str.AppendLine("	Int16 accuracy_right = " + stream.ReadInt16());/* 36 */
            str.AppendLine("	Int16 accuracy_left = " + stream.ReadInt16()); /* 38 */
            str.AppendLine("	Int16 m_accuracy = " + stream.ReadInt16()); /* 40 */
            str.AppendLine("	Int16 evasion = " + stream.ReadInt16()); /* 42 */
            str.AppendLine("	Int16 m_res = " + stream.ReadInt16()); /* 44 */
            str.AppendLine("	Int16 block_per = " + stream.ReadInt16()); /* 46 */
            str.AppendLine("	Int16 mov_spd = " + stream.ReadInt16()); /* 48 */
            str.AppendLine("	Int16 atk_spd = " + stream.ReadInt16()); /* 50 */
            str.AppendLine("	Int16 unknown2 = " + stream.ReadInt16());
            str.AppendLine("	Int16 max_weight = " + stream.ReadInt16()); /* 54 */
            str.AppendLine("	Int16 unknown4 = " + stream.ReadInt16());
            str.AppendLine("	Int16 cast_spd = " + stream.ReadInt16());  /* 58 */
            str.AppendLine("	Int16 recast_spd = " + stream.ReadInt16());  /* 60 */
            str.AppendLine("	Int16 unknown5 = " + stream.ReadInt16());
            str.AppendLine("	Int16 hp_regen = " + stream.ReadInt16()); /* 64 */
            str.AppendLine("	Int16 hp_recov = " + stream.ReadInt16()); /* 66 */
            str.AppendLine("	Int16 mp_regen = " + stream.ReadInt16()); /* 68 */
            str.AppendLine("	Int16 mp_recov = " + stream.ReadInt16()); /* 70 */
            str.AppendLine("	Int16 perf_block = " + stream.ReadInt16()); /* 72 */
            str.AppendLine("	Int16 m_ignore = " + stream.ReadInt16()); /* 74 */
            str.AppendLine("	Int16 m_ignore_perc = " + stream.ReadInt16()); /* 76 */
            str.AppendLine("	Int16 p_ignore = " + stream.ReadInt16()); /* 78 */
            str.AppendLine("	Int16 p_ignore_perc = " + stream.ReadInt16()); /* 80 */
            str.AppendLine("	Int16 m_pierce = " + stream.ReadInt16()); /* 82 */
            str.AppendLine("	Int16 m_pierce_perc = " + stream.ReadInt16()); /* 84 */
            str.AppendLine("	Int16 p_pierce = " + stream.ReadInt16()); /* 86 */
            str.AppendLine("	Int16 p_pierce_perc = " + stream.ReadInt16()); /* 88 */
            str.AppendLine("	Byte is_temporary = " + stream.ReadByte()); /* 90 */
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #12
0
        internal static void send_SkillList(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32());
            short count = stream.ReadInt16();
            str.AppendLine("	Int16 count = " + count);
            str.AppendLine("	Byte unknown = " + stream.ReadByte());
            str.AppendLine("	struct skill_info[count]");
            str.AppendLine("	{");
            for (int i = 0; i < count; i++)
            {
                str.AppendLine("		{");
                str.AppendLine("			Int32 skill_id = " + stream.ReadInt32());
                str.AppendLine("			Byte skill_lv = " + stream.ReadByte());
                str.AppendLine("			Byte skill_lv = " + stream.ReadByte());
                str.AppendLine("			UInt32 cooldown = " + stream.ReadInt32());
                str.AppendLine("			UInt32 unknown = " + stream.ReadInt32());
                str.AppendLine("		}");
            }
            str.AppendLine("	}");
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #13
0
        internal static void send_PCMove(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 time = " + stream.ReadUInt32());		/* 0 */
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32());		/* 4 */
            str.AppendLine("	Byte layer = " + stream.ReadByte());			/* 8 */
            str.AppendLine("	Byte move_speed = " + stream.ReadByte());	/* 9 */
            short pcount = stream.ReadInt16();
            str.AppendLine("	Int16 point_count = " + pcount);	/* 10 */
            str.AppendLine("	struct move_positions[point_count]");
            str.AppendLine("	{");
            for (int i = 0; i < pcount; i++)
            {
                str.AppendLine("		{");
                str.AppendLine("			Single to_x = " + stream.ReadFloat());	/* 12 */
                str.AppendLine("			Single to_y = " + stream.ReadFloat());	/* 16 */
                str.AppendLine("		}");
            }
            str.AppendLine("	}");
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #14
0
        internal static void send_Chat(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	uint src_handle = " + stream.ReadUInt32());
            short size = stream.ReadInt16();
            str.AppendLine("	short size = " + size);
            str.AppendLine("	String(size) message = " + stream.ReadString(0, size));
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #15
0
        internal static void parse_LearnSkill(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	UInt32 handle = " + stream.ReadUInt32());
            str.AppendLine("	Int32 skill_id = " + stream.ReadInt32());
            str.AppendLine("	Int16 target_level = " + stream.ReadInt16());
            str.AppendLine("}");

            Form1.PacketSend('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #16
0
        internal static void send_Dialog(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            str.AppendLine("	Int32 dialog_type = " + stream.ReadInt32());
            str.AppendLine("	UInt32 npc_handle = " + stream.ReadUInt32());
            short titleLen = stream.ReadInt16();
            short textLen = stream.ReadInt16();
            short menuLen = stream.ReadInt16();
            str.AppendLine("	Int16 TitleLen = " + titleLen);
            str.AppendLine("	Int16 TextLen = " + textLen);
            str.AppendLine("	Int16 MenuLen = " + menuLen);
            str.AppendLine("	String(TitleLen) Title = " + stream.ReadString(0, titleLen));
            str.AppendLine("	String(TextLen) Text = " + stream.ReadString(0, textLen));
            str.AppendLine("	struct menu_option[MenuLen]");
            str.AppendLine("	{");
            str.AppendLine("		{");
            // TODO
            str.AppendLine("		}");
            str.AppendLine("	}");
            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }
Example #17
0
        internal static void send_InventoryList(ref PacketStream stream)
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("struct " + GetPacketName(stream.GetId()) + " [" + stream.GetId() + "]");
            stream.ReadByte();

            str.AppendLine("{");
            short count = stream.ReadInt16();
            str.AppendLine("	Int16 count = " + count);
            str.AppendLine("	struct Item[count]");
            str.AppendLine("	{");
            for (int i = 0; i < count; i++)
            {
                str.AppendLine("		{");
                str.AppendLine("			UInt32 item_handle = " + stream.ReadUInt32());
                str.AppendLine("			Int32 item_id = " + stream.ReadInt32());
                str.AppendLine("			Int64 item_uid = " + stream.ReadInt64());
                str.AppendLine("			Int64 count = " + stream.ReadInt64());
                str.AppendLine("			4B unknown = " + stream.ReadInt32());
                str.AppendLine("			4B unknown = " + stream.ReadInt32());
                str.AppendLine("			Byte enhance = " + stream.ReadByte());
                str.AppendLine("			Byte level = " + stream.ReadByte());
                str.AppendLine("			1B unknown = " + stream.ReadByte());
                for (int j = 0; j < 80; j+=4)
                    str.AppendLine("			4B unknown = " + stream.ReadInt32());
                str.AppendLine("			Int32 wear_info = " + stream.ReadInt32());
                str.AppendLine("			Int16 unknown // 0 = " + stream.ReadInt16());
                str.AppendLine("			Int32 idx = " + stream.ReadInt32());
                str.AppendLine("		}");
            }

            str.AppendLine("}");

            Form1.PacketRecv('G', GetPacketName(stream.GetId()), stream, str.ToString());
        }