Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Help] S6 Client's item.bmd struct?

Junior Spellweaver
Joined
Feb 18, 2011
Messages
108
Reaction score
41
Hi,

I'm developing a converter for item.bmd because I will change the S6 item.txt for a XML pattern and there is no item.xml->item.bmd S6 converter.

I already found the decryption algorithm and got almost all offsets of the item.bmd struct in client. There are some offsets I couldn't relate to anything.

Code:
struct BMD_ITEM_INFO
{
	char Name[32]; // 0
	short ItemLevel; // 32
	short Slot; // 34
	short Skill; // 36
	char Width; // 38
	char Height; // 39
	unsigned char DmgMin; // 40
	unsigned char DmgMax; // 41

	char Offset_42; // 42
	char Offset_43; // 43
	char Offset_44; // 44

	char Speed; // 45

	char Offset_46; // 46

	char Durability; // 47
	char MagicDur; // 48
	char MagicPwr; // 49

	short ReqSTR; // 50
	short ReqAGI; // 52
	short ReqENE; // 54
	short ReqVIT; // 56
	short ReqCMD; // 58
	short ReqLevel; // 60

	short Offset_62; // 62

	int Offset_64; // 64

	char Type; // 68

	char ReqDW; // 69
	char ReqDK; // 70
	char ReqElf; // 71
	char ReqMG; // 72
	char ReqDL; // 73
	char ReqSUM; // 74
	char ReqRF; // 75

	char Offset_76[4]; // 76
	char Offset_80[4]; // 80
	// 84
};

Could you help me with those "Offset_N" fields? Do you know what they represent?

Thanks in advance.
 
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
561
Hi,

I'm developing a converter for item.bmd because I will change the S6 item.txt for a XML pattern and there is no item.xml->item.bmd S6 converter.

I already found the decryption algorithm and got almost all offsets of the item.bmd struct in client. There are some offsets I couldn't relate to anything.
[/CODE]

Could you help me with those "Offset_N" fields? Do you know what they represent?

Thanks in advance.

/*+0*/ char name[30];
/*+30*/ WORD twohand;


/*+42*/ BYTE successfulblocking;
/*+43*/ BYTE Defense;

/*+46*/ BYTE walkspeed;
 
Upvote 0
Junior Spellweaver
Joined
Feb 18, 2011
Messages
108
Reaction score
41
/*+0*/ char name[30];
/*+30*/ WORD twohand;


/*+42*/ BYTE successfulblocking;
/*+43*/ BYTE Defense;

/*+46*/ BYTE walkspeed;

Thanks again myheart you are very kind :)



I just discovered the Offset_64. It is the "Price". The type was right tho, it is a dword.



I found the other informations. There is just the offset 44 to be found but it have value 0 in all the items in the file, so I have no idea what this can be.
Above my complete struct:

Code:
struct BMD_ITEM_INFO
{
	enum REQ_STAT
	{
		REQ_STR = 0,
		REQ_AGI = 1,
		REQ_ENE = 2,
		REQ_VIT = 3,
		REQ_CMD = 4,
		REQ_LVL = 5,

		REQ_STAT_LEN
	};

	enum REQ_CLASS
	{
		REQ_DW = 0,
		REQ_DK = 1,
		REQ_ELF = 2,
		REQ_MG = 3,
		REQ_DL = 4,
		REQ_SUM = 5,
		REQ_RF = 6,

		REQ_CLASS_LEN
	};

	enum RESIST_ELEMENT
	{
		RESIST_ICE = 0,
		RESIST_POISON = 1,
		RESIST_LIGHT = 2,
		RESIST_FIRE = 3,
		RESIST_EARTH = 4,
		RESIST_WIND = 5,
		RESIST_WATER = 6,
		RESIST_NONE = 7,

		RESIST_ELEMENT_LEN
	};

	char Name[30]; // 0

	short TwoHand; // 30

	short ItemLevel; // 32

	short Slot; // 34

	short Skill; // 36

	char Width; // 38

	char Height; // 39

	unsigned char DmgMin; // 40

	unsigned char DmgMax; // 41

	char SuccessBlocking; // 42

	char Defense; // 43

	char _Offset_44; // 44 - Always 0x0

	char Speed; // 45

	char WalkSpeed; // 46

	unsigned char Durability; // 47

	char MagicDur; // 48

	char MagicPwr; // 49

	short RequiredStats[REQ_STAT_LEN]; // 50

	short MaxAmount; // 62

	int Price; // 64

	char Type; // 68

	char RequiredClass[REQ_CLASS_LEN]; // 69

	char ResistenceElements[RESIST_ELEMENT_LEN]; // 76

	// 84
};
 
Upvote 0
Back
Top