Code:
typedef enum
{
ITEMTYPE_WEAPON = 0,
ITEMTYPE_CLOTHES,
ITEMTYPE_BOOK,
ITEMTYPE_POTION,
ITEMTYPE_CONSUMING,
ITEMTYPE_ELIXIR,
ITEMTYPE_COUNTERACT,
ITEMTYPE_RESOURCE,
ITEMTYPE_QUEST,
ITEMTYPE_ACCESSORY,
ITEMTYPE_LIFE,
ITEMTYPE_MUSIC,
ITEMTYPE_PASS,
ITEMTYPE_MONEY,
ITEMTYPE_SOCKET,
ITEMTYPE_WEAPON2,
ITEMTYPE_CLOTHES2,
ITEMTYPE_BOX,
ITEMTYPE_BOXKEY,
ITEMTYPE_WEAPON3,
ITEMTYPE_CLOTHES3, // 20
ITEMTYPE_UNUSED1,
ITEMTYPE_UNUSED2,
ITEMTYPE_UNUSED3, // 23
ITEMTYPE_MAXCOUNT, // 24
} ITEMTYPE;
typedef struct
{
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME; // msdn systemtime
typedef struct
{
wchar_t toolName[ 24 ];
short version1;
short version2;
SYSTEMTIME systemTime;
wchar_t user_name[ 8 ];
wchar_t com_name[ 10 ];
} ITEMTABLE_HEADER;
typedef struct
{
char objType;
unsigned int size;
short count;
short maxIndex;
} TABLEOBJECT_HEADER;
typedef struct
{
float x;
float y;
float z;
} ITEMPOSITION;
typedef struct
{
float x;
float y;
float z;
} CENTER;
// some variables used in various item properties
typedef struct
{
unsigned short addSEID; // ?
unsigned short addValue; // ?
unsigned char addProb; // ?
unsigned char apType; // ?
unsigned short apPer; // ?
} IDKWTFTHISIS;
// some variables used in various item properties
typedef struct
{
unsigned short specialID; // ?
unsigned short specialTime1; // ?
unsigned char specialTime2; // ?
unsigned char applyType; // ?
unsigned short specialProb; // ?
} SPECIALSTUFF;
typedef struct
{
unsigned char caseData; // might be ID
short caseProb;
} BOXDATA;
typedef struct
{
char objType;
char objType2;
short objID;
short prefixID; // StringDB ( .XSD ) ID Reference
short addTo;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 0 )
char objType3;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 0 )
short minPower;
short maxPower;
unsigned short durability;
char balance;
char attackRate;
short criticalRate;
char speed;
char strength;
char range;
char nature;
short reqLevel;
short reqSim;
short reqJung;
short sUnk1;
short sUnk2;
short sUnk3;
char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
short sUnk4;
short sUnk5;
char cUnk1;
char rank;
short hiddenID;
char hiddenValue;
unsigned char maxSocket;
char repairProb;
short modelIndex;
short iconNo;
unsigned short itemRank;
short gGroup;
short gCase;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
ITEMPOSITION itemPosition[ 4 ];
IDKWTFTHISIS wtfisthis[ 5 ];
SPECIALSTUFF specialthings[ 4 ];
short group;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk2;
short sUnk6;
short sUnk7;
char cUnk3;
short sUnk8;
short sUnk9;
short sUnk10;
char cUnk4;
short sUnk11;
short sUnk12;
char cUnk5;
char cUnk6;
} WEAPONPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
short gGroup;
short gCase;
char grade;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 10000 )
char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
short sUnk1;
short sUnk2;
unsigned short prefixID; // StringDB ( .XSD ) ID Reference ( Subtract 0 )
unsigned short addTo;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 10000 )
char precedence;
char clanID;
unsigned char characGrade;
char sexType;
short group;
char classID;
char repairProb;
unsigned char quality;
unsigned char quality2;
char rank;
CENTER center;
short hiddenID;
char hiddenValue;
short defense;
short stamina;
char warm;
char coolResistance;
char hotResistance;
char spiritResistance;
char bodyResistance;
unsigned short durability;
char strength;
IDKWTFTHISIS wtfisthis[ 5 ];
short reqLevel;
short reqSim;
short reqJung;
char pocket;
SPECIALSTUFF specialthings[ 4 ];
unsigned char maxSocket;
char attackRate;
char evasionRate;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk3;
short sUnk4;
char cUnk2;
short sUnk5;
short sUnk6;
short sUnk7;
char cUnk3;
short sUnk8;
char cUnk4;
} CLOTHPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 20000 )
char objType3;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 20000 )
unsigned short skillID;
unsigned char value;
unsigned char skillGroup;
unsigned char skillClass;
char skillStep;
unsigned char skillLevel;
unsigned short abilityID;
unsigned short questID;
unsigned char clanID;
unsigned char characGrade;
unsigned char classID;
unsigned short reqSkill1;
char reqSkill1Step;
unsigned short reqSkill2;
char reqSkill2Step;
unsigned short reqSkill3;
char reqSkill3Step;
unsigned short reqAbility;
char reqAbilityStep;
unsigned short hiddenID;
char prob;
unsigned short delay;
unsigned char del;
unsigned int applyTime;
unsigned short coolDown;
unsigned char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
short sUnk1;
short sUnk2;
char cUnk1;
unsigned short itemRank;
unsigned char quality;
unsigned char quality2;
unsigned short levelRequirement;
unsigned short strengthRequirement;
unsigned short forceRequirement;
unsigned short intellRequirement;
unsigned short constRequirement;
unsigned short dexterityRequirement;
unsigned short life;
unsigned short force;
unsigned short concept;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk2;
short sUnk3;
short sUnk4;
char cUnk3;
short sUnk5;
short sUnk6;
short sUnk7;
} BOOKPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 25000 )
char applyClan;
int iUnk1; // ? clan contrib 1?
int iUnk2; // ? clan contrib 2?
unsigned int price;
short sUnk1;
int iUnk4;
short sUnk2;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 25000 )
char clanID;
short applyValue;
char applyType;
short effectID;
short incEffectID;
short visualEffID;
unsigned char quality;
unsigned char quality2;
short cooldown;
short reqLevel;
short simGi;
short jungGi;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
byte cUnk1;
short sUnk3;
short sUnk4;
byte cUnk2;
short sUnk5;
short sUnk6;
short sUnk7;
} POTIONPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned short prefixID; // StringDB ( .XSD ) ID Reference
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 30000 )
char objType3;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned int descriptionID; // // StringDB ( .XSD ) ID Reference ( Subtract 30000 )
char clanID;
char sexType;
char classID;
short seid;
short time;
unsigned char quality;
unsigned char quality2;
char speed;
char strength;
char range;
IDKWTFTHISIS wtfisthis[ 5 ];
short reqLevel;
short reqSimki;
short reqJungki;
char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
char dump;
char userTrade;
char npcTrade;
char fame;
char cashCheck;
char cUnk1;
short sUnk1;
short sUnk2;
char cUnk2;
short sUnk3;
short sUnk4;
short sUnk5;
} CONSUMINGPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 35000 )
char objType3;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 35000 )
unsigned char step;
unsigned char reqLevel;
unsigned short minValue;
unsigned short maxValue;
unsigned short cooldown;
unsigned short successRate;
short body_type[ 8 ];
unsigned char addiction;
unsigned char visualEffect;
short temp[ 4 ];
char applyClan;
int iUnk1;
int iUnk2;
unsigned int price;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk1;
short sUnk2;
char cUnk2;
short sUnk3;
short sUnk4;
short sUnk5;
} ELIXIRPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 75000 )
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 75000 )
char applyClan;
int iUnk1;
int iUnk2;
unsigned int price; // price?
char dump; // dump?
char userTrade; // userTrade?
char npcTrade; // npcTrade?
unsigned char fame; // fame?
char cashCheck; // cashCheck?
char cUnk1;
short sUnk1;
short sUnk2;
char cUnk2;
short sUnk3;
short sUnk4;
short sUnk5;
} COUNTERACTPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 50000 )
unsigned char quality;
unsigned char quality2;
char applyClan;
int iUnk1; // clanpoint ?
int iUnk2; // clanpoint2 ?
unsigned int price;
short sUnk1;
int iUnk3;
short sUnk2;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 50000 )
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk3;
short sUnk4;
char cUnk2;
short sUnk5;
short sUnk6;
short sUnk7;
short sUnk8;
short sUnk9;
} RESOURCEPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 40000 )
char applyClan;
int iUnk1;
int iUnk2;
unsigned int price;
short questID;
unsigned short seid;
unsigned short value;
unsigned short delay;
short effectID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 40000 )
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk1;
short sUnk2;
char cUnk2;
short sUnk3;
short sUnk4;
short sUnk5;
} QUESTPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
short gGroup;
short gCase;
unsigned char grade;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 45000 )
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 45000 )
char pack;
char clanID;
char rank;
unsigned short durability;
unsigned char quality;
unsigned char quality2;
IDKWTFTHISIS wtfisthis[ 5 ];
short reqLevel;
short reqDex;
short reqStr;
short reqHealth; // constitution?
short reqJingi; // essence?
short reqInt;
char applyClan;
int iUnk1; // clanpoint 1?
int iUnk2; // clanpoint2 ?
unsigned int price;
short sUnk1;
int iUnk3;
short sUnk2;
SPECIALSTUFF specialthings[ 4 ];
unsigned char maxSocket;
short group;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk3;
short sUnk4;
char cUnk2;
short sUnk5;
short sUnk6;
short sUnk7;
} ACCESSORYPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 55000 )
char objType3;
char clanID;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 55000 )
unsigned short durability;
unsigned char count;
char balance;
char prob;
char luck;
char strength;
char applyClan;
int iUnk1; // clanpoint1 ?
int iUnk2; // clanpoint2 ?
unsigned int price;
char rank;
unsigned short abilityID;
unsigned char maxMerge;
char repairProb;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk1;
short sUnk2;
char cUnk2;
short sUnk3;
short sUnk4;
short sUnk5;
char cUnk3;
} LIFEPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
} MUSICPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
} PASSPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
unsigned char objType3;
short skillEffectID1;
unsigned short skillDescID1; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
char type1;
short value1;
char prob1;
char apType1;
short apPer1;
short apCount1;
short skillEffectID2;
unsigned short skillDescID2; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
char type2;
short value2;
char prob2;
char apType2;
short apPer2;
short apCount2;
short skillEffectID3;
unsigned short skillDescID3; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
char type3;
short value3;
char prob3;
char apType3;
short apPer3;
short apCount3;
short skillEffectID4;
unsigned short skillDescID4; // StringDB ( .XSD ) ID Reference ( Subtract 60000 )
char type4;
short value4;
char prob4;
char apType4;
short apPer4;
short apCount4;
unsigned char quality;
unsigned char quality2;
char applyClan;
int iUnk1; // clan point 1 ?
int iUnk2; // clan point 2 ?
unsigned int price;
short sUnk1;
int iUnk3;
short sUnk2;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk3;
short sUnk4;
char cUnk2;
short sUnk5;
short sUnk6;
short sUnk7;
} SOCKETPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 65000 )
char objType3;
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 65000 )
unsigned short sUnk1;
BOXDATA boxData[ 10 ];
unsigned char visualEffectID;
unsigned short sUnk2;
unsigned short sUnk3;
unsigned short sUnk4;
unsigned short sUnk5;
char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk6;
short sUnk7;
char cUnk2;
short sUnk8;
short sUnk9;
short sUnk10;
} BOXPROPERTY;
typedef struct
{
char objType;
char objType2;
short objID;
unsigned int nameID; // StringDB ( .XSD ) ID Reference ( Subtract 70000 )
short modelIndex;
short iconNo;
unsigned short itemRank;
unsigned char grade;
unsigned char quality;
unsigned char quality2;
unsigned int descriptionID; // StringDB ( .XSD ) ID Reference ( Subtract 70000 )
unsigned char probWeapon;
unsigned char probClothes;
unsigned char probEtc;
unsigned short sUnk1;
unsigned short sUnk2;
unsigned short sUnk3;
unsigned short sUnk4;
char applyClan;
int iUnk1; // clan contrib 1?
int iUnk2; // clan contrib 2?
unsigned int price;
char dump;
char userTrade;
char npcTrade;
unsigned char fame;
char cashCheck;
char cUnk1;
short sUnk5;
short sUnk6;
char cUnk2;
short sUnk7;
short sUnk8;
short sUnk9;
} BOXKEYPROPERTY;
struct ITEMTABLE
{
ITEMTABLE_HEADER table;
TABLEOBJECT_HEADER wpnHdr;
WEAPONPROPERTY pWeaponProperty[ wpnHdr.count ];
TABLEOBJECT_HEADER clthHdr;
CLOTHPROPERTY pClothProperty[ clthHdr.count ];
TABLEOBJECT_HEADER bookHdr;
BOOKPROPERTY pBookProperty[ bookHdr.count ];
TABLEOBJECT_HEADER potHdr;
POTIONPROPERTY pPotionProperty[ potHdr.count ];
TABLEOBJECT_HEADER conHdr;
CONSUMINGPROPERTY pConsumingProperty[ conHdr.count ];
TABLEOBJECT_HEADER elixHdr;
ELIXIRPROPERTY pElixirProperty[ elixHdr.count ];
TABLEOBJECT_HEADER cntrHdr;
COUNTERACTPROPERTY pCounteractProperty[ cntrHdr.count ];
TABLEOBJECT_HEADER resHdr;
RESOURCEPROPERTY pResourceProperty[ resHdr.count ];
TABLEOBJECT_HEADER qstHdr;
QUESTPROPERTY pQuestProperty[ qstHdr.count ];
TABLEOBJECT_HEADER accHdr;
ACCESSORYPROPERTY pAccessoryProperty[ accHdr.count ];
TABLEOBJECT_HEADER lifeHdr;
LIFEPROPERTY pLifeProperty[ lifeHdr.count ];
TABLEOBJECT_HEADER mscHdr;
MUSICPROPERTY pMusicProperty[ mscHdr.count ];
TABLEOBJECT_HEADER passHdr;
PASSPROPERTY pPassProperty[ passHdr.count ];
TABLEOBJECT_HEADER sktHdr;
SOCKETPROPERTY pSocketProperty[ sktHdr.count ];
TABLEOBJECT_HEADER wpn2Hdr;
WEAPONPROPERTY pWeapon2Property[ wpn2Hdr.count ];
TABLEOBJECT_HEADER clth2Hdr;
CLOTHPROPERTY pCloth2Property[ clth2Hdr.count ];
TABLEOBJECT_HEADER boxHdr;
BOXPROPERTY pBoxProperty[ boxHdr.count ];
TABLEOBJECT_HEADER boxkeyHdr;
BOXKEYPROPERTY pBoxKeyProperty[ boxkeyHdr.count ];
TABLEOBJECT_HEADER wpn3Hdr;
WEAPONPROPERTY pWeapon3Property[ wpn3Hdr.count ];
TABLEOBJECT_HEADER clth3Hdr;
CLOTHPROPERTY pCloth3Property[ clth3Hdr.count ];
TABLEOBJECT_HEADER unused1Hdr;
TABLEOBJECT_HEADER unused2Hdr;
TABLEOBJECT_HEADER unused3Hdr;
} itemTable;






