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

Results 1 to 4 of 4
  1. #1
    Member ptr0x is offline
    MemberRank
    Feb 2011 Join Date
    84Posts

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

    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.


  2. #2
    (づ。◕‿‿◕。) Natzugen is offline
    Alpha MaleRank
    Jun 2014 Join Date
    ElbelandLocation
    1,786Posts

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

    Maybe this would help you. Thought is for s8 item bmd
    https://github.com/Natzugen/zTeam-se.../MuBMD/Item.cs

  3. #3
    i myheart is online now
    True MemberRank
    Jun 2017 Join Date
    231Posts

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

    Quote Originally Posted by ptr0x View Post
    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;
    'Love' never die's

  4. #4
    Member ptr0x is offline
    MemberRank
    Feb 2011 Join Date
    84Posts

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

    Quote Originally Posted by myheart View Post
    /*+0*/ char name[30];
    /*+30*/ WORD twohand;


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

    /*+46*/ BYTE walkspeed;
    Thanks again @myheart you are very kind (:

    - - - Updated - - -

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

    - - - Updated - - -

    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
    };



Advertisement