Edit on GitHub

GameService Server Custom Asset Response

Summary

This packet provides information regarding a custom asset (i.e. user designed clothing).

It is a response to:

The response is an HTTP request to a public bucket for uploads. The resultant download (despite the extension) is a ZIP archive containing 3 RAW bitmaps of the custom textures.

In PangyaTH, it is http://203.107.140.35:50008/_Files/SelfDesign/(path), with the path being a concatenation of:

  • Uppercase first character of item_asset_id,
  • The string /,
  • Lower-case internal asset name of the blank design (Reference pangya_xx.iff/Part.iff with the item_id),
  • The string f01_,
  • Lower-case value of item_asset_id
  • The string .jpg.

To give an example, there is a red T-shirt with the Bat-Man logo on it for Nuri provided below with an item_id == 0x08006033 and item_asset_id == "77ECC3E7".

The item with item_id == 0x08006033, called "Blank Top 1 Dupe (N)", has an internal asset name of M_TS_u01.

Because the first character of item_asset_id is 7, the resultant URL should be http://203.107.140.35:50008/_Files/SelfDesign/7/m_ts_u01f01_77ecc3e7.jpg.

Structure

gameservice_server_012e_custom_asset_response

Name Type Summary
unknown_gss012e_a u1 Always 0x01?
item_id u4 From pangya_xx.iff/Part.iff.
unknown_gss012e_b u2 Always 0x0008? Possibly pstring length.
item_asset_id strz[9]
inventory_slot u4 Unconfirmed.
item_id_b u4 Duplicate. From pangya_xx.iff/Part.iff
unknown_gss012e_c bytes[15] All 0x00?
unknown_gss012e_d u4
unknown_gss012e_e bytes[13] All 0x00?
unknown_gss012e_f u1
item_display_name strz[41]
item_asset_id_b strz[9] Duplicate.
unknown_gss012e_g u1 Always 0x01?
unknown_gss012e_h u2
user_nickname strz[22] Asset creator's display name
unknown_gss012e_i bytes[72] All 0x00?
unknown_gss012e_j s4 Either 0 or -1.
unknown_gss012e_k bytes[4] All 0x00?

Definition

meta:
  id: gameservice_server_012e_custom_asset_response
  title: GameService Server Custom Asset Response
  encoding: ASCII
  endian: le
  imports:
    - ../../common/pstring
seq:
  - id: unknown_gss012e_a
    type: u1
  - id: item_id
    type: u4
  - id: unknown_gss012e_b
    type: u2
  - id: item_asset_id
    type: strz
    size: 9
  - id: inventory_slot
    type: u4
  - id: item_id_b
    type: u4
  - id: unknown_gss012e_c
    size: 15
  - id: unknown_gss012e_d
    type: u4
  - id: unknown_gss012e_e
    size: 13
  - id: unknown_gss012e_f
    type: u1
  - id: item_display_name
    type: strz
    size: 41
  - id: item_asset_id_b
    type: strz
    size: 9
  - id: unknown_gss012e_g
    type: u1
  - id: unknown_gss012e_h
    type: u2
  - id: user_nickname
    type: strz
    size: 22
  - id: unknown_gss012e_i
    size: 72
  - id: unknown_gss012e_j
    type: s4
  - id: unknown_gss012e_k
    size: 4

Examples

Agent: TH.R6.829.01
00000000 00000010 00000020 00000030 00000040 00000050 00000060 00000070 00000080 00000090 000000a0 000000b0 000000c0 000000d0
2e 01 01 33 60 00 08 08 00 37 37 33 43 43 33 45 37 00 b0 bd dc 50 33 60 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 42 41 5e 99 a0 4d 41 4e 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 37 33 43 43 33 45 37 00 01 0b 00 a0 aa 88 c7 88 b5 b7 88 bc ee e5 75 b9 e9 d3 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
...3`....773CC3E 7....P3`........ ................ ...........BA^.. MAN............. ................ ....773CC3E7.... ...........u...` ................ ................ ................ ................ ................ ......