Jump to content

Item Proto

The Item Proto is a crypted file that contains all informations about the items included in the game. This file is both present in the client and the server.

In the server, this file is used to process all the item (such as when you equip an item, if you can actually equip it).

In the client, this file is used to perform several client-side checks (in order to reduce the amount of data sent to the server) and what actually is displayed in the item information.

The Item proto must be in one of this two formats, MIPX format or MIPT format.

Although the client is able to load a MIPT Item Proto (as references exists in the binary), no MIPT proto has ever been found.

 

MIPX format

.png

Bytes in red: FourCC (MIPX)
Bytes in blue: Version of the item proto (Generally 1)
Bytes in green: Stride (Size of the structure that contains the items)
Bytes in black: Number of elements
Bytes in gray: Size of the Crypted Object data
Bytes in orange: Begin of Crypted Object data

 

MIPT format

While references of this file format still exists in the executable, no public client that ships a MIPT proto has ever surfaced. It might have been used during development of Metin2 or in very old clients (like 2004 or 2003). The CryptedObject format is the same as a MIPX proto.

.png

Bytes in red: FourCC (MIPT)
Bytes in blue: Number of elements
Bytes in gray: Size of the Crypted Object data
Bytes in orange: Begin of Crypted Object data

 

Structure: Generic 40k (Stride: 163)

// Item Proto applies and limits are the same.
typedef stuct Limits {
uint8 type;
int32 value;
} Applies;

 

Item table

//// Size: 163

uint32 id; // vnum
uint32 range;
char indexName[25];
char translatedName[25];
uint8 type;
uint8 subtype;
uint8 weight;
uint8 size;
uint32 antiflags;
uint32 flags;
uint32 wearflags;
uint32 immuneflags;
uint32 buyprice; 
uint32 sellprice;
Limits limits[2];
Applies apply[3];
int32 values[6];
int32 sockets[3];
uint32 refineditemid; //refinedvnum
int16 refineset;
uint8 altermagicvalues; //altertomagic
uint8 specular;
uint8 altersocketpercentage; //gainsocket
Id Number of the item (ie. Sword+0 = 10)
Range The range is used to associate a certain item id range to one item in the item proto table.
Index name Internally used in the game (such as in parsing server side tables)
Translated name Actual name displayed in the client or in quests
Type Type of the item, see List of known Item types
Subtype Extra information which tells the item what it is based from the item type, see List of known Item types
Weight Unused?
Size How many cells does the item take
Antiflags Bitflag that defines what you can't do without the item, see List of known Item flags
Flags Bitflag that defines extra informations in what the item can be used for, see List of known Item flags
Wearflags Bitflag that defines where you can equip the item, see List of known Item flags
Immuneflag Unused?
buyprice Price that you can buy the item
sellprice Price that you can sell the item
limits Limits certain usage of the item (Time expire for example)
applies Standard bonuses that the item have
values The usage of values vary from the type of item
sockets The usage of sockets vary from the type of item
refineditemid ID of the item that will evolve once it's refined (example: from Sword+0 to Sword+1, refineditemid will be 11)
refineset Unused?
altermagicvalues Unused?
specular Sets the intensity of how the item will shine (The effect that +9 weapons have)
altersocketpercentage Unused?

  Report Doc

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.