D2CharItemStrc
Code: Select all
struct D2CharItemStrc
{
union
{
DWORD dwItemCode; //0x00
char szItemCode[4]; //0x00
};
char nBodyLoc; //0x04
char nItemCount; //0x05
WORD unk0x6; //0x06
};
Code: Select all
struct D2CubeInputItem
{
BYTE nInputFlags; //0x00
BYTE nItemType; //0x01
WORD wItem; //0x02
WORD wItemID; //0x04
BYTE nQuality; //0x06
BYTE nQuantity; //0x07
};
Code: Select all
struct D2CubeOutputItem
{
BYTE nItemFlags; //0x00
BYTE nItemType; //0x01
WORD wItem; //0x02
WORD wItemID; //0x04
BYTE nQuality; //0x06
BYTE nQuantity; //0x07
BYTE nType; //0x08
BYTE nLvl; //0x09
BYTE nPLvl; //0x0A
BYTE nILvl; //0x0B
WORD wPrefixId; //0x0C
WORD unk0x0E; //0x0E
WORD unk0x10; //0x10
WORD wSuffixId; //0x12
DWORD unk0x14; //0x14
struct
{
DWORD dwMod; //0x00
WORD wModParam; //0x04
WORD wModMin; //0x06
WORD wModMax; //0x08
WORD wModChance; //0x0A
} sMods[5]; //0x18
};
And now the Txt's:
Arena.txt
Code: Select all
struct D2ArenaTxt
{
DWORD dwSuicide; //0x00
DWORD dwPlayerKill; //0x04
DWORD dwPlayerKillPercent; //0x08
DWORD dwMonsterKill; //0x0C
DWORD dwPlayerDeath; //0x10
DWORD dwPlayerDeathPercent; //0x14
DWORD dwMonsterDeath; //0x18
};
Code: Select all
struct D2ArmTypeTxt
{
char szName[32]; //0x00
char szToken[20]; //0x20
};
Code: Select all
struct D2AutoMagicTxt
{
char* szName[32]; //0x00
WORD wTblIndex; //0x20
WORD wVersion; //0x22
DWORD dwMod1Code; //0x24
DWORD dwMod1Param; //0x28
DWORD dwMod1Min; //0x2C
DWORD dwMod1Max; //0x30
DWORD dwMod2Code; //0x34
DWORD dwMod2Param; //0x38
DWORD dwMod2Min; //0x3C
DWORD dwMod2Max; //0x40
DWORD dwMod3Code; //0x44
DWORD dwMod3Param; //0x48
DWORD dwMod3Min; //0x4C
DWORD dwMod3Max; //0x50
WORD wSpawnable; //0x54
WORD wTransformColor; //0x56
DWORD dwLevel; //0x58
DWORD dwGroup; //0x5C
DWORD dwMaxLevel; //0x60
BYTE nRare; //0x64
BYTE nLevelReq; //0x65
BYTE nClassSpecific; //0x66
BYTE nClass; //0x67
WORD wClassLevelReq; //0x68
WORD wIType1; //0x6A
WORD wIType2; //0x6C
WORD wIType3; //0x6E
WORD wIType4; //0x70
WORD wIType5; //0x72
WORD wIType6; //0x74
WORD wIType7; //0x76
WORD wEType1; //0x78
WORD wEType2; //0x7A
WORD wEType3; //0x7C
WORD wEType4; //0x7E
WORD wEType5; //0x80
WORD wFrequency; //0x82
DWORD dwDivide; //0x84
DWORD dwMultiply; //0x88
DWORD dwAdd; //0x8C
};
Code: Select all
struct D2AutomapTxt
{
char szLevelName[16]; //0x00
char szTileName[8]; //0x10
BYTE nStyle; //0x18
BYTE nStartSequence; //0x19
WORD wEndSequence; //0x1A
DWORD dwCel1; //0x1C
DWORD dwCel2; //0x20
DWORD dwCel3; //0x24
DWORD dwCel4; //0x28
};
Code: Select all
struct D2BeltsTxt
{
DWORD unk0x00; //0x00
DWORD dwNumBoxes; //0x04
DWORD dwBox1Left; //0x08
DWORD dwBox1Right; //0x0C
DWORD dwBox1Top; //0x10
DWORD dwBox1Bottom; //0x14
DWORD dwBox2Left; //0x18
DWORD dwBox2Right; //0x1C
DWORD dwBox2Top; //0x20
DWORD dwBox2Bottom; //0x24
DWORD dwBox3Left; //0x28
DWORD dwBox3Right; //0x2C
DWORD dwBox3Top; //0x30
DWORD dwBox3Bottom; //0x34
DWORD dwBox4Left; //0x38
DWORD dwBox4Right; //0x3C
DWORD dwBox4Top; //0x40
DWORD dwBox4Bottom; //0x44
DWORD dwBox5Left; //0x48
DWORD dwBox5Right; //0x4C
DWORD dwBox5Top; //0x50
DWORD dwBox5Bottom; //0x54
DWORD dwBox6Left; //0x58
DWORD dwBox6Right; //0x5C
DWORD dwBox6Top; //0x60
DWORD dwBox6Bottom; //0x64
DWORD dwBox7Left; //0x68
DWORD dwBox7Right; //0x6C
DWORD dwBox7Top; //0x70
DWORD dwBox7Bottom; //0x74
DWORD dwBox8Left; //0x78
DWORD dwBox8Right; //0x7C
DWORD dwBox8Top; //0x80
DWORD dwBox8Bottom; //0x84
DWORD dwBox9Left; //0x88
DWORD dwBox9Right; //0x8C
DWORD dwBox9Top; //0x90
DWORD dwBox9Bottom; //0x94
DWORD dwBox10Left; //0x98
DWORD dwBox10Right; //0x9C
DWORD dwBox10Top; //0xA0
DWORD dwBox10Bottom; //0xA4
DWORD dwBox11Left; //0xA8
DWORD dwBox11Right; //0xAC
DWORD dwBox11Top; //0xB0
DWORD dwBox11Bottom; //0xB4
DWORD dwBox12Left; //0xB8
DWORD dwBox12Right; //0xBC
DWORD dwBox12Top; //0xC0
DWORD dwBox12Bottom; //0xC4
DWORD dwBox13Left; //0xC8
DWORD dwBox13Right; //0xCC
DWORD dwBox13Top; //0xD0
DWORD dwBox13Bottom; //0xD4
DWORD dwBox14Left; //0xD8
DWORD dwBox14Right; //0xDC
DWORD dwBox14Top; //0xE0
DWORD dwBox14Bottom; //0xE4
DWORD dwBox15Left; //0xE8
DWORD dwBox15Right; //0xEC
DWORD dwBox15Top; //0xF0
DWORD dwBox15Bottom; //0xF4
DWORD dwBox16Left; //0xF8
DWORD dwBox16Right; //0xFC
DWORD dwBox16Top; //0x100
DWORD dwBox16Bottom; //0x104
};
Code: Select all
struct D2BodyLocsTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2BooksTxt
{
WORD wStr; //0x00
WORD wSpellIcon; //0x02
DWORD dwPSpell; //0x04
DWORD dwScrollSkillId; //0x08
DWORD dwBookSkillId; //0x0C
DWORD dwBaseCost; //0x10
DWORD dwCostPerCharge; //0x14
DWORD dwScrollICode; //0x18
DWORD dwBookICode; //0x1C
};
Code: Select all
struct D2CharStatsTxt
{
wchar_t wszName[16]; //0x00
char szName[16]; //0x20
BYTE nStr; //0x30
BYTE nDex; //0x31
BYTE nEne; //0x32
BYTE nVita; //0x33
BYTE nStamina; //0x34
BYTE nHpAdd; //0x35
BYTE nPercentStr; //0x36
BYTE nPercentInt; //0x37
BYTE nPercentDex; //0x38
BYTE nPercentVit; //0x39
BYTE nManaRecovery; //0x3A
BYTE unk0x3B; //0x3B
DWORD dwToHitFactor; //0x3C
BYTE nWalkSpeed; //0x40
BYTE nRunSpeed; //0x41
BYTE nRunDrain; //0x42
BYTE nLifePerLevel; //0x43
BYTE nStaminaPerLevel; //0x44
BYTE nManaPerLevel; //0x45
BYTE nLifePerVitality; //0x46
BYTE nStaminaPerVitality; //0x47
BYTE nManaPerMagic; //0x48
BYTE nBlockFactor; //0x49
WORD unk0x4A; //0x4A
DWORD dwWeaponClassCode; //0x4C
BYTE nStatsPerLevel; //0x50
BYTE unk0x51; //0x51
WORD wAllSkills; //0x52
WORD wSkillTab[3]; //0x54
WORD wClassSkills; //0x5A
D2CharItemStrc pItems[10]; //0x5C
WORD nStartSkill; //0xAC
WORD nBaseSkill[10]; //0xAE
WORD unk0xC2; //0xC2
};
Code: Select all
struct D2CharTemplateTxt
{
char szName[31]; //0x00
BYTE nLevel; //0x1F
BYTE nClass; //0x20
BYTE nStr; //0x21
BYTE nDex; //0x22
BYTE nInt; //0x23
BYTE nVit; //0x24
BYTE nMana; //0x25
BYTE nHitpoints; //0x26
BYTE nManaRegenBonus; //0x27
BYTE nVelocity; //0x28
BYTE nAttackRate; //0x29
BYTE nOtherRate; //0x2A
BYTE nRightSkill; //0x2B
DWORD unk0x2C; //0x2C
DWORD dwSkill[9]; //0x30
DWORD dwSkillLevel[9]; //0x54
D2CharItemStrc pItems[15]; //0x78
};
Code: Select all
struct D2ColorsTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2CompCodeTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2CompositTxt
{
char szName[32]; //0x00
char szToken[20]; //0x20
};
Code: Select all
struct D2CubeMainTxt
{
BYTE nEnabled; //0x00
BYTE nLadder; //0x01
BYTE nMindiff; //0x02
BYTE nClass; //0x03
DWORD dwOp; //0x04
DWORD dwParam; //0x08
DWORD dwValue; //0x0C
WORD wNumInputs; //0x10
WORD wVersion; //0x12
D2CubeInputItem pInputItem[7]; //0x14
D2CubeOutputItem pOutputItem[3]; //0x4C
};
Code: Select all
struct D2DifficultyLevelsTxt
{
DWORD dwResistPenalty; //0x00
DWORD dwDeathExpPenalty; //0x04
DWORD dwUberCodeOddsNorm; //0x08
DWORD dwUberCodeOddsGood; //0x0C
DWORD dwMonsterSkillBonus; //0x10
DWORD dwMonsterFreezeDiv; //0x14
DWORD dwMonsterColdDiv; //0x18
DWORD dwAiCurseDiv; //0x1C
DWORD dwUltraCodeOddsNorm; //0x20
DWORD dwUltraCodeOddsGood; //0x24
DWORD dwLifeStealDiv; //0x28
DWORD dwManaStealDiv; //0x2C
DWORD dwUniqueDmgBonus; //0x30
DWORD dwChampionDmgBonus; //0x34
DWORD dwHireableBossDmgPercent; //0x38
DWORD dwMonsterCEDmgPercent; //0x3C
DWORD dwStaticFieldMin; //0x40
DWORD dwGambleRare; //0x44
DWORD dwGambleSet; //0x48
DWORD dwGambleUniq; //0x4C
DWORD dwGambleUber; //0x50
DWORD dwGambleUltra; //0x54
};
Code: Select all
struct D2ElemTypesTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2EventsTxt
{
WORD wEvent; //0x00
};
Code: Select all
struct D2ExperienceTxt
{
DWORD dwAmazon; //0x00
DWORD dwSorceress; //0x04
DWORD dwNecromancer; //0x08
DWORD dwPaladin; //0x0C
DWORD dwBarbarian; //0x10
DWORD dwDruid; //0x14
DWORD dwAssassin; //0x18
DWORD dwExpRatio; //0x1C
};
Code: Select all
struct D2GambleTxt
{
char szItemCode[12]; //0x00
};
Code: Select all
struct D2GemsTxt
{
char szName[32]; //0x00
char szLetter[8]; //0x20
BYTE unk0x28[6]; //0x28
BYTE nNumMods; //0x2E
BYTE nTransForm; //0x2F
DWORD dwWeaponMod1Code; //0x30
DWORD dwWeaponMod1Param; //0x34
DWORD dwWeaponMod1Min; //0x38
DWORD dwWeaponMod1Max; //0x3C
DWORD dwWeaponMod2Code; //0x40
DWORD dwWeaponMod2Param; //0x44
DWORD dwWeaponMod2Min; //0x48
DWORD dwWeaponMod2Max; //0x4C
DWORD dwWeaponMod3Code; //0x50
DWORD dwWeaponMod3Param; //0x54
DWORD dwWeaponMod3Min; //0x58
DWORD dwWeaponMod3Max; //0x5C
DWORD dwHelmMod1Code; //0x60
DWORD dwHelmMod1Param; //0x64
DWORD dwHelmMod1Min; //0x68
DWORD dwHelmMod1Max; //0x6C
DWORD dwHelmMod2Code; //0x70
DWORD dwHelmMod2Param; //0x74
DWORD dwHelmMod2Min; //0x78
DWORD dwHelmMod2Max; //0x7C
DWORD dwHelmMod3Code; //0x80
DWORD dwHelmMod3Param; //0x84
DWORD dwHelmMod3Min; //0x88
DWORD dwHelmMod3Max; //0x8C
DWORD dwShieldMod1Code; //0x90
DWORD dwShieldMod1Param; //0x94
DWORD dwShieldMod1Min; //0x98
DWORD dwShieldMod1Max; //0x9C
DWORD dwShieldMod2Code; //0xA0
DWORD dwShieldMod2Param; //0xA4
DWORD dwShieldMod2Min; //0xA8
DWORD dwShieldMod2Max; //0xAC
DWORD dwShieldMod3Code; //0xB0
DWORD dwShieldMod3Param; //0xB4
DWORD dwShieldMod3Min; //0xB8
DWORD dwShieldMod3Max; //0xBC
};
Code: Select all
struct D2HireDescTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2HirelingTxt
{
DWORD dwVersion; //0x00
DWORD dwId; //0x04
DWORD dwClass; //0x08
DWORD dwAct; //0x0C
DWORD dwDifficulty; //0x10
DWORD dwSeller; //0x14
DWORD dwGold; //0x18
DWORD dwLevel; //0x1C
DWORD dwExpPerLvl; //0x20
DWORD dwHitpoints; //0x24
DWORD dwHitpointsPerLvl; //0x28
DWORD dwDefense; //0x2C
DWORD dwDefensePerLvl; //0x30
DWORD dwStr; //0x34
DWORD dwStrPerLvl; //0x38
DWORD dwDex; //0x3C
DWORD dwDexPerLvl; //0x40
DWORD dwAttackRate; //0x44
DWORD dwAttackRatePerLvl; //0x48
DWORD dwShare; //0x4C
DWORD dwDmgMin; //0x50
DWORD dwDmgMax; //0x54
DWORD dwDmgPerLvl; //0x58
DWORD dwResist; //0x5C
DWORD dwResistPerLvl; //0x60
DWORD dwDefaultChance; //0x64
DWORD dwHead; //0x68
DWORD dwTorso; //0x6C
DWORD dwWeapon; //0x70
DWORD dwShield; //0x74
DWORD dwSkill[6]; //0x78
DWORD dwChance[6]; //0x90
DWORD dwChancePerLvl[6]; //0xA8
BYTE nMode[6]; //0xC0
BYTE nLevel[6]; //0xC6
BYTE nLvlPerLvl[6]; //0xCC
BYTE nHireDesc; //0xD2
char szNameFirst[32]; //0xD3
char szNameLast[32]; //0xF3
BYTE unk0x113; //0x113
WORD wNameFirst; //0x114
WORD wNameLast; //0x116
};
Code: Select all
struct D2HitClassTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2InventoryTxt
{
DWORD dwInvLeft; //0x00
DWORD dwInvRight; //0x04
DWORD dwInvTop; //0x08
DWORD dwInvBottom; //0x0C
BYTE nGridX; //0x10
BYTE nGridY; //0x11
WORD unk0x12; //0x12
DWORD dwGridLeft; //0x14
DWORD dwGridRight; //0x18
DWORD dwGridTop; //0x1C
DWORD dwGridBottom; //0x20
BYTE nGridBoxWidth; //0x24
BYTE nGridBoxHeight; //0x25
WORD unk0x26; //0x26
DWORD dwRArmLeft; //0x28
DWORD dwRArmRight; //0x2C
DWORD dwRArmTop; //0x30
DWORD dwRArmBottom; //0x34
BYTE nRArmWidth; //0x38
BYTE nRArmHeight; //0x39
WORD unk0x3A; //0x3A
DWORD dwTorsoLeft; //0x3C
DWORD dwTorsoRight; //0x40
DWORD dwTorsoTop; //0x44
DWORD dwTorsoBottom; //0x48
BYTE nTorsoWidth; //0x4C
BYTE nTorsoHeight; //0x4D
WORD unk0x4E; //0x4E
DWORD dwLArmLeft; //0x50
DWORD dwLArmRight; //0x54
DWORD dwLArmTop; //0x58
DWORD dwLArmBottom; //0x5C
BYTE nLArmWidth; //0x60
BYTE nLArmHeight; //0x61
WORD unk0x62; //0x62
DWORD dwHeadLeft; //0x64
DWORD dwHeadRight; //0x68
DWORD dwHeadTop; //0x6C
DWORD dwHeadBottom; //0x70
BYTE nHeadWidth; //0x74
BYTE nHeadHeight; //0x75
WORD unk0x76; //0x76
DWORD dwNeckLeft; //0x78
DWORD dwNeckRight; //0x7C
DWORD dwNeckTop; //0x80
DWORD dwNeckBottom; //0x84
BYTE nNeckWidth; //0x88
BYTE nNeckHeight; //0x89
WORD unk0x8A; //0x8A
DWORD dwRHandLeft; //0x8C
DWORD dwRHandRight; //0x90
DWORD dwRHandTop; //0x94
DWORD dwRHandBottom; //0x98
BYTE nRHandWidth; //0x9C
BYTE nRHandHeight; //0x9D
WORD unk0x9E; //0x9E
DWORD dwLHandLeft; //0xA0
DWORD dwLHandRight; //0xA4
DWORD dwLHandTop; //0xA8
DWORD dwLHandBottom; //0xAC
BYTE nLHandWidth; //0xB0
BYTE nLHandHeight; //0xB1
WORD unk0xB2; //0xB2
DWORD dwBeltLeft; //0xB4
DWORD dwBeltRight; //0xB8
DWORD dwBeltTop; //0xBC
DWORD dwBeltBottom; //0xC0
BYTE nBeltWidth; //0xC4
BYTE nBeltHeight; //0xC5
WORD unk0xC6; //0xC6
DWORD dwFeetLeft; //0xC8
DWORD dwFeetRight; //0xCC
DWORD dwFeetTop; //0xD0
DWORD dwFeetBottom; //0xD4
BYTE nFeetWidth; //0xD8
BYTE nFeetHeight; //0xD9
WORD unk0xDA; //0xDA
DWORD dwGlovesLeft; //0xDC
DWORD dwGlovesRight; //0xE0
DWORD dwGlovesTop; //0xE4
DWORD dwGlovesBottom; //0xE8
BYTE nGlovesWidth; //0xEC
BYTE nGlovesHeight; //0xED
WORD unk0xEE; //0xEE
};
Code: Select all
struct D2ItemRatioTxt
{
DWORD dwUnique; //0x00
DWORD dwUniqueDivisor; //0x04
DWORD dwUniqueMin; //0x08
DWORD dwRare; //0x0C
DWORD dwRareDivisor; //0x10
DWORD dwRareMin; //0x14
DWORD dwSet; //0x18
DWORD dwSetDivisor; //0x1C
DWORD dwSetMin; //0x20
DWORD dwMagic; //0x24
DWORD dwMagicDivisor; //0x28
DWORD dwMagicMin; //0x2C
DWORD dwHiQuality; //0x30
DWORD dwHiQualityDivisor; //0x34
DWORD dwNormal; //0x38
DWORD dwNormalDivisor; //0x3C
WORD wVersion; //0x40
BYTE nClassSpecific; //0x42
BYTE nUber; //0x43
};
Code: Select all
struct D2ItemStatCostTxt
{
WORD wStatId; //0x00
WORD unk0x02; //0x02
WORD wItemStatFlags; //0x04
WORD unk0x06; //0x06
BYTE nSendBits; //0x08
BYTE nSendParamBits; //0x09
BYTE nCsvBits; //0x0A
BYTE nCsvParam; //0x0B
DWORD dwDivide; //0x0C
DWORD dwMultiply; //0x10
DWORD dwAdd; //0x14
BYTE nValShift; //0x18
BYTE nSaveBits; //0x19
BYTE n09SaveBits; //0x1A
BYTE unk0x1B; //0x1B
DWORD dwSaveAdd; //0x1C
DWORD dw09SaveAdd; //0x20
DWORD dwSaveParamBits; //0x24
DWORD unk0x28; //0x28
DWORD dwMinAccr; //0x2C
BYTE nEncode; //0x30
BYTE unk0x31; //0x31
WORD wMaxAtat; //0x32
WORD wDescPriority; //0x34
BYTE nDescFunc; //0x36
BYTE nDescVal; //0x37
WORD wDescStrPos; //0x38
WORD wDescStrNeg; //0x3A
WORD wDescStr2; //0x3C
WORD wDGrp; //0x3E
BYTE nDGrpFunc; //0x40
BYTE nDGrpVal; //0x41
WORD wDGrpStrPos; //0x42
WORD wDGrpStrNeg; //0x44
WORD wDGrpStr2; //0x46
WORD wItemEvent1; //0x48
WORD wItemEvent2; //0x4A
WORD wItemEventFunc1; //0x4C
WORD wItemEventFunc2; //0x4E
DWORD dwKeepZero; //0x50
BYTE nOp; //0x54
BYTE nOpParam; //0x55
WORD wOpBase; //0x56
WORD wOpStat1; //0x58
WORD wOpStat2; //0x5A
WORD wOpStat3; //0x5C
BYTE _Stuff[230]; //0x5E
};
Code: Select all
struct D2ItemsTxt
{
char szFlippyFile[32]; //0x00
char szInvFile[32]; //0x20
char szUniqueInvFile[32]; //0x40
char szSetInvFile[32]; //0x60
union
{
DWORD dwCode; //0x80
char szCode[4]; //0x80
};
DWORD dwNormCode; //0x84
DWORD dwUberCode; //0x88
DWORD dwUltraCode; //0x8C
DWORD dwAlternateGfx; //0x90
DWORD dwPSpell; //0x94
WORD wState; //0x98
WORD wCState1; //0x9A
WORD wCState2; //0x9C
WORD wStat1; //0x9E
WORD wStat2; //0xA0
WORD wStat3; //0xA2
DWORD dwCalc1; //0xA4
DWORD dwCalc2; //0xA8
DWORD dwCalc3; //0xAC
DWORD dwLen; //0xB0
WORD wSpellDesc; //0xB4
WORD wSpellDescStr; //0xB6
DWORD dwSpellDescCalc; //0xB8
DWORD dwBetterGem; //0xBC
DWORD dwWClass; //0xC0
DWORD dw2HandedWClass; //0xC4
DWORD dwTMogType; //0xC8
DWORD dwMinAc; //0xCC
DWORD dwMaxAc; //0xD0
DWORD dwGambleCost; //0xD4
DWORD dwSpeed; //0xD8
DWORD dwBitfield1; //0xDC
DWORD dwCost; //0xE0
DWORD dwMinStack; //0xE4
DWORD dwMaxStack; //0xE8
DWORD dwSpawnStack; //0xEC
DWORD dwGemOffset; //0xF0
WORD wNameStr; //0xF4
WORD wVersion; //0xF6
WORD wAutoPrefix; //0xF8
WORD wMissileType; //0xFA
BYTE bRarity; //0xFC
BYTE bLevel; //0xFD
BYTE bMinDam; //0xFE
BYTE bMaxDam; //0xFF
BYTE bMinMisDam; //0x100
BYTE bMaxMisDam; //0x101
BYTE b2HandMinDam; //0x102
BYTE b2HandMaxDam; //0x103
WORD bRangeAdder; //0x104
WORD wStrBonus; //0x106
WORD wDexBonus; //0x108
WORD wReqStr; //0x10A
WORD wReqDex; //0x10C
BYTE bAbsorbs; //0x10E
BYTE bInvWidth; //0x10F
BYTE bInvHeight; //0x110
BYTE bBlock; //0x111
BYTE bDurability; //0x112
BYTE bNoDurability; //0x113
BYTE bMissile; //0x114
BYTE bComponent; //0x115
BYTE bRArm; //0x116
BYTE bLArm; //0x117
BYTE bTorso; //0x118
BYTE bLegs; //0x119
BYTE bRSPad; //0x11A
BYTE bLSPad; //0x11B
BYTE b2Handed; //0x11C
BYTE bUseable; //0x11D
WORD wType; //0x11E
WORD wType2; //0x120
WORD bSubType; //0x122
WORD wDropSound; //0x124
WORD wUseSound; //0x126
BYTE bDropSfxFrame; //0x128
BYTE bUnique; //0x129
BYTE bQuest; //0x12A
BYTE bQuestDiffCheck; //0x12B
BYTE bTransparent; //0x12C
BYTE bTransTbl; //0x12D
BYTE pad0x12E; //0x12E
BYTE bLightRadius; //0x12F
BYTE bBelt; //0x130
BYTE bAutoBelt; //0x131
BYTE bStackable; //0x132
BYTE bSpawnable; //0x133
BYTE bSpellIcon; //0x134
BYTE bDurWarning; //0x135
BYTE bQntWarning; //0x136
BYTE bHasInv; //0x137
BYTE bGemSockets; //0x138
BYTE bTransmogrify; //0x139
BYTE bTMogMin; //0x13A
BYTE bTMogMax; //0x13B
BYTE bHitClass; //0x13C
BYTE b1or2Handed; //0x13D
BYTE bGemApplyType; //0x13E
BYTE bLevelReq; //0x13F
BYTE bMagicLvl; //0x140
BYTE bTransform; //0x141
BYTE bInvTrans; //0x142
BYTE bCompactSave; //0x143
BYTE bSkipName; //0x144
BYTE bNameable; //0x145
BYTE bAkaraMin; //0x146
BYTE bGheedMin; //0x147
BYTE bCharsiMin; //0x148
BYTE bFaraMin; //0x149
BYTE bLysanderMin; //0x14A
BYTE bDrognanMin; //0x14B
BYTE bHraltiMin; //0x14C
BYTE bAlkorMin; //0x14D
BYTE bOrmusMin; //0x14E
BYTE bElzixMin; //0x14F
BYTE bAshearaMin; //0x150
BYTE bCainMin; //0x151
BYTE bHalbuMin; //0x152
BYTE bJamellaMin; //0x153
BYTE bMalahMin; //0x154
BYTE bLarzukMin; //0x155
BYTE bDrehyaMin; //0x156
BYTE bAkaraMax; //0x157
BYTE bGheedMax; //0x158
BYTE bCharsiMax; //0x159
BYTE bFaraMax; //0x15A
BYTE bLysanderMax; //0x15B
BYTE bDrognanMax; //0x15C
BYTE bHraltiMax; //0x15D
BYTE bAlkorMax; //0x15E
BYTE bOrmusMax; //0x15F
BYTE bElzixMax; //0x160
BYTE bAshearaMax; //0x161
BYTE bCainMax; //0x162
BYTE bHalbuMax; //0x163
BYTE bJamellaMax; //0x164
BYTE bMalahMax; //0x165
BYTE bLarzukMax; //0x166
BYTE bDrehyaMax; //0x167
BYTE bAkaraMagicMin; //0x168
BYTE bGheedMagicMin; //0x169
BYTE bCharsiMagicMin; //0x16A
BYTE bFaraMagicMin; //0x16B
BYTE bLysanderMagicMin; //0x16C
BYTE bDrognanMagicMin; //0x16D
BYTE bHraltiMagicMin; //0x16E
BYTE bAlkorMagicMin; //0x16F
BYTE bOrmusMagicMin; //0x170
BYTE bElzixMagicMin; //0x171
BYTE bAshearaMagicMin; //0x172
BYTE bCainMagicMin; //0x173
BYTE bHalbuMagicMin; //0x174
BYTE bJamellaMagicMin; //0x175
BYTE bMalahMagicMin; //0x176
BYTE bLarzukMagicMin; //0x177
BYTE bDrehyaMagicMin; //0x178
BYTE bAkaraMagicMax; //0x179
BYTE bGheedMagicMax; //0x17A
BYTE bCharsiMagicMax; //0x17B
BYTE bFaraMagicMax; //0x17C
BYTE bLysanderMagicMax; //0x17D
BYTE bDrognanMagicMax; //0x17E
BYTE bHraltiMagicMax; //0x17F
BYTE bAlkorMagicMax; //0x180
BYTE bOrmusMagicMax; //0x181
BYTE bElzixMagicMax; //0x182
BYTE bAshearaMagicMax; //0x183
BYTE bCainMagicMax; //0x184
BYTE bHalbuMagicMax; //0x185
BYTE bJamellaMagicMax; //0x186
BYTE bMalahMagicMax; //0x187
BYTE bLarzukMagicMax; //0x188
BYTE bDrehyaMagicMax; //0x189
BYTE bAkaraMagicLvl; //0x18A
BYTE bGheedMagicLvl; //0x18B
BYTE bCharsiMagicLvl; //0x18C
BYTE bFaraMagicLvl; //0x18D
BYTE bLysanderMagicLvl; //0x18E
BYTE bDrognanMagicLvl; //0x18F
BYTE bHraltiMagicLvl; //0x190
BYTE bAlkorMagicLvl; //0x191
BYTE bOrmusMagicLvl; //0x192
BYTE bElzixMagicLvl; //0x193
BYTE bAshearaMagicLvl; //0x194
BYTE bCainMagicLvl; //0x195
BYTE bHalbuMagicLvl; //0x196
BYTE bJamellaMagicLvl; //0x197
BYTE bMalahMagicLvl; //0x198
BYTE bLarzukMagicLvl; //0x199
BYTE bDrehyaMagicLvl; //0x19A
BYTE pad0x19B; //0x19B
DWORD dwNightmareUpgrade; //0x19C
DWORD dwHellUpgrade; //0x1A0
BYTE bPermStoreItem; //0x1A4
BYTE bMultibuy; //0x1A5
WORD pad0x1A6; //0x1A6
};
Code: Select all
struct D2ItemTypesTxt
{
char szCode[4]; //0x00
WORD wEquiv1; //0x04
WORD wEquiv2; //0x06
BYTE nRepair; //0x08
BYTE nBody; //0x09
BYTE nBodyLoc1; //0x0A
BYTE nBodyLoc2; //0x0B
WORD wShoots; //0x0C
WORD wQuiver; //0x0E
BYTE nThrowable; //0x10
BYTE nReload; //0x11
BYTE nReEquip; //0x12
BYTE nAutoStack; //0x13
BYTE nMagic; //0x14
BYTE nRare; //0x15
BYTE nNormal; //0x16
BYTE nCharm; //0x17
BYTE nGem; //0x18
BYTE nBeltable; //0x19
BYTE nMaxSock1; //0x1A
BYTE nMaxSock25; //0x1B
BYTE nMaxSock40; //0x1C
BYTE nTreasureClass; //0x1D
BYTE nRarity; //0x1E
BYTE nStaffMods; //0x1F
BYTE nCostFormula; //0x20
BYTE nClass; //0x21
BYTE nStorePage; //0x22
BYTE nVarInvGfx; //0x23
char szInvGfx1[32]; //0x24
char szInvGfx2[32]; //0x44
char szInvGfx3[32]; //0x64
char szInvGfx4[32]; //0x84
char szInvGfx5[32]; //0xA4
char szInvGfx6[32]; //0xC4
};
Code: Select all
struct D2LevelDefBin
{
DWORD dwQuestFlag; //0x00
DWORD dwQuestFlagEx; //0x04
DWORD dwLayer; //0x08
DWORD dwSizeX; //0x0C
DWORD dwSizeX_N; //0x10
DWORD dwSizeX_H; //0x14
DWORD dwSizeY; //0x18
DWORD dwSizeY_N; //0x1C
DWORD dwSizeY_H; //0x20
DWORD dwOffsetX; //0x24
DWORD dwOffsetY; //0x28
DWORD dwDepend; //0x2C
DWORD dwDrlgType; //0x30
DWORD dwLevelType; //0x34
DWORD dwSubType; //0x38
DWORD dwSubTheme; //0x3C
DWORD dwSubWaypoint; //0x40
DWORD dwSubShrine; //0x44
DWORD dwVis0; //0x48
DWORD dwVis1; //0x4C
DWORD dwVis2; //0x50
DWORD dwVis3; //0x54
DWORD dwVis4; //0x58
DWORD dwVis5; //0x5C
DWORD dwVis6; //0x60
DWORD dwVis7; //0x64
DWORD dwWarp0; //0x68
DWORD dwWarp1; //0x6C
DWORD dwWarp2; //0x70
DWORD dwWarp3; //0x74
DWORD dwWarp4; //0x78
DWORD dwWarp5; //0x7C
DWORD dwWarp6; //0x80
DWORD dwWarp7; //0x84
BYTE nIntensity; //0x88
BYTE nRed; //0x89
BYTE nGreen; //0x8A
BYTE nBlue; //0x8B
DWORD dwPortal; //0x8C
DWORD dwPosition; //0x90
DWORD dwSaveMonsters; //0x94
DWORD dwLOSDraw; //0x98
};
Code: Select all
struct D2LevelsTxt
{
WORD wLevelNo; //0x00
BYTE nPal; //0x02
BYTE nAct; //0x03
BYTE nTeleport; //0x04
BYTE nRain; //0x05
BYTE nMud; //0x06
BYTE nNoPer; //0x07
BYTE nIsInside; //0x08
BYTE nDrawEdges; //0x09
WORD unk0x0A; //0x0A
DWORD dwWarpDist; //0x0C
WORD wMonLvl1; //0x10
WORD wMonLvl2; //0x12
WORD wMonLvl3; //0x14
WORD wMonLvl1Ex; //0x16
WORD wMonLvl2Ex; //0x18
WORD wMonLvl3Ex; //0x1A
DWORD dwMonDen[3]; //0x1C
BYTE nMonUMin[3]; //0x28
BYTE nMonUMax[3]; //0x2B
BYTE nMonWndr; //0x2E
BYTE nMonSpcWalk; //0x2F
BYTE nQuest; //0x30
BYTE nRangedSpawn; //0x31
DWORD dwNumMon; //0x32
WORD wMon[25]; //0x36
WORD wNMon[25]; //0x68
WORD wUMon[25]; //0x9A
WORD wCMon[4]; //0xCC
WORD wCPct[4]; //0xD4
WORD wCAmt[4]; //0xDC
BYTE nWaypoint; //0xE4
BYTE nObjGroup[8]; //0xE5
BYTE nObjPrb[8]; //0xED
char szLevelName[40]; //0xF5
char szLevelWarp[40]; //0x11D
char szEntryFile[41]; //0x145
wchar_t wszLevelName[40]; //0x16E
wchar_t wszLevelWarp[41]; //0x1BE
DWORD dwThemes; //0x210
DWORD dwFloorFilter; //0x214
DWORD dwBlankScreen; //0x218
DWORD dwSoundEnv; //0x21C
};
Code: Select all
struct D2LowQualityItems
{
char szName[32]; //0x00
WORD wTblId; //0x20
};
Code: Select all
struct D2LvlMazeTxt
{
DWORD dwLevelId; //0x00
DWORD dwRooms[3]; //0x04
DWORD dwSizeX; //0x10
DWORD dwSizeY; //0x14
DWORD dwMerge; //0x18
};
Code: Select all
struct D2LvlPrestTxt
{
DWORD dwDef; //0x00
DWORD dwLevelId; //0x04
DWORD dwPopulate; //0x08
DWORD dwLogicals; //0x0C
DWORD dwOutdoors; //0x10
DWORD dwAnimate; //0x14
DWORD dwKillEdge; //0x18
DWORD dwFillBlanks; //0x1C
DWORD dwExpansion; //0x20
DWORD unk; //0x24
DWORD dwSizeX; //0x28
DWORD dwSizeY; //0x2C
DWORD dwAutoMap; //0x30
DWORD dwScan; //0x34
DWORD dwPops; //0x38
DWORD dwPopPad; //0x3C
DWORD dwFiles; //0x40
char szFile1[60]; //0x44
char szFile2[60]; //0x80
char szFile3[60]; //0xBC
char szFile4[60]; //0xF8
char szFile5[60]; //0x134
char szFile6[60]; //0x170
DWORD dwDt1Mask; //0x1AC
};
Code: Select all
struct D2LvlSubTxt
{
DWORD dwType; //0x00
char* szFile[60]; //0x04
DWORD dwCheckAll; //0x40
DWORD dwBordType; //0x44
DWORD dwDt1Mask; //0x48
DWORD dwGridSize; //0x4C
DWORD unk[204]; //0x50
DWORD dwProb[5]; //0x11C
DWORD dwTrials[5]; //0x130
DWORD dwMax[5]; //0x144
DWORD dwExpansion; //0x158
};
Code: Select all
struct D2LvlTypesTxt
{
char szFile1[60]; //0x00
char szFile2[60]; //0x3C
char szFile3[60]; //0x78
char szFile4[60]; //0xB4
char szFile5[60]; //0xF0
char szFile6[60]; //0x12C
char szFile7[60]; //0x168
char szFile8[60]; //0x1A4
char szFile9[60]; //0x1E0
char szFile10[60]; //0x21C
char szFile11[60]; //0x258
char szFile12[60]; //0x294
char szFile13[60]; //0x2D0
char szFile14[60]; //0x30C
char szFile15[60]; //0x348
char szFile16[60]; //0x384
char szFile17[60]; //0x3C0
char szFile18[60]; //0x3FC
char szFile19[60]; //0x438
char szFile20[60]; //0x474
char szFile21[60]; //0x4B0
char szFile22[60]; //0x4EC
char szFile23[60]; //0x528
char szFile24[60]; //0x564
char szFile25[60]; //0x5A0
char szFile26[60]; //0x5DC
char szFile27[60]; //0x618
char szFile28[60]; //0x654
char szFile29[60]; //0x690
char szFile30[60]; //0x6CC
char szFile31[60]; //0x708
char szFile32[60]; //0x744
DWORD dwAct; //0x780
DWORD dwExpansion; //0x784
};
Code: Select all
struct D2LvlWarpTxt
{
DWORD dwLevelId; //0x00
DWORD dwSelectX; //0x04
DWORD dwSelectY; //0x08
DWORD dwSelectDX; //0x0C
DWORD dwSelectDY; //0x10
DWORD dwExitWalkX; //0x14
DWORD dwExitWalkY; //0x18
DWORD dwOffsetX; //0x1C
DWORD dwOffsetY; //0x20
DWORD dwLitVersion; //0x24
DWORD dwTiles; //0x28
DWORD dwDirection; //0x30
};
Code: Select all
struct D2MissCalcTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2MissilesTxt
{
DWORD dwId; //0x00
DWORD dwMissileFlags; //0x04
WORD wCltDoFunc; //0x08
WORD wCltHitFunc; //0x0A
WORD wSrvDoFunc; //0x0C
WORD wSrvHitFunc; //0x0E
WORD wSrvDmgFunc; //0x10
WORD wTravelSound; //0x12
WORD wHitSound; //0x14
WORD wExplosionMissile; //0x16
WORD wSubMissile[3]; //0x18
WORD wCltSubMissile[3]; //0x1E
WORD wHitSubMissile[4]; //0x24
WORD wCltHitSubMissile[4]; //0x2C
WORD wProgSound; //0x34
WORD wProgOverlay; //0x36
DWORD dwParam[5]; //0x38
DWORD dwHitPar[3]; //0x4C
DWORD dwCltParam[5]; //0x58
DWORD dwCltHitPar[3]; //0x6C
DWORD dwDmgParam[2]; //0x78
DWORD dwSrvCalc; //0x80
DWORD dwCltCalc; //0x84
DWORD dwHitCalc; //0x88
DWORD dwCltHitCalc; //0x8C
DWORD dwDmgCalc; //0x90
WORD wHitClass; //0x94
WORD wRange; //0x96
WORD wLevRange; //0x98
BYTE nVel; //0x9A
BYTE nVelLev; //0x9B
WORD wMaxVel; //0x9C
WORD wAccel; //0x9E
WORD wAnimRate; //0xA0
WORD wXoffset; //0xA2
WORD wYoffset; //0xA4
WORD wZoffset; //0xA6
DWORD dwHitFlags; //0xA8
WORD wResultFlags; //0xAC
WORD wKnockBack; //0xAE
DWORD dwMinDamage; //0xB0
DWORD dwMaxDamage; //0xB4
DWORD dwMinLevDam[5]; //0xB8
DWORD dwMaxLevDam[5]; //0xCC
DWORD dwDmgSymPerCalc; //0xE0
DWORD dwElemType; //0xE4
DWORD dwElemMin; //0xE8
DWORD dwElemMax; //0xEC
DWORD dwMinElemLev[5]; //0xF0
DWORD dwMaxElemLev[5]; //0x104
DWORD dwElemDmgSymPerCalc; //0x118
DWORD dwElemLen; //0x11C
DWORD dwElemLevLen[3]; //0x120
BYTE unk0x12C; //0x12C
BYTE nSrcDamage; //0x12D
BYTE nSrcMissDmg; //0x12E
BYTE nHoly; //0x12F
BYTE nLight; //0x130
BYTE nFlicker; //0x131
BYTE nRGB[3]; //0x132
BYTE nInitSteps; //0x135
BYTE nActivate; //0x136
BYTE nLoopAnim; //0x137
char szCelFile[64]; //0x138
DWORD dwAnimLen; //0x178
DWORD dwRandStart; //0x17C
BYTE nSubLoop; //0x180
BYTE nSubStart; //0x181
BYTE nSubStop; //0x182
BYTE nCollideType; //0x183
BYTE nCollision; //0x184
BYTE nClientCol; //0x185
BYTE nCollideKill; //0x186
BYTE nCollideFriend; //0x187
BYTE nNextHit; //0x188
BYTE nNextDelay; //0x189
BYTE nSize; //0x18A
BYTE nToHit; //0x18B
BYTE nAlwaysExplode; //0x18C
BYTE nTrans; //0x18D
WORD wQty; //0x18E
DWORD dwSpecialSetup; //0x190
WORD wSkill; //0x194
BYTE nHitShift; //0x196
BYTE unk0x197[5]; //0x197
DWORD dwDamageRate; //0x19C
BYTE nNumDirections; //0x1A0
BYTE nAnimSpeed; //0x1A1
BYTE nLocalBlood; //0x1A2
BYTE unk; //0x1A3
};
Code: Select all
struct D2MonAiTxt
{
WORD wAi; //0x00
};
Code: Select all
struct D2MonEquipTxt
{
//to do
};
Code: Select all
struct D2MonItemPercentTxt
{
//to do
};
Code: Select all
struct D2MonLvlTxt
{
//to do
};
Code: Select all
struct D2MonModeTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2MonPlaceTxt
{
//to do
};
Code: Select all
struct D2MonPresetTxt
{
//to do
};
Code: Select all
struct D2MonPropTxt
{
//to do
};
Code: Select all
struct D2MonSeqTxt
{
//to do
};
Code: Select all
struct D2MonSoundsTxt
{
//to do
};
Code: Select all
struct D2MonStatsTxt
{
WORD wId; //0x00
WORD wBaseId; //0x02
WORD wNextInClass; //0x04
WORD wNameStr; //0x06
WORD wDescStr; //0x08
WORD unk0x0A; //0x0A
DWORD dwMonStatsFlags; //0x0C
DWORD dwCode; //0x10
WORD wMonSound; //0x14
WORD wUMonSound; //0x16
WORD wMonStatsEx; //0x18
WORD wMonProp; //0x1A
WORD wMonType; //0x1C
WORD wAI; //0x1E
WORD wSpawn; //0x20
BYTE bSpawnX; //0x22
BYTE bSpawnY; //0x23
WORD bSpawnMode; //0x24
WORD wMinion1; //0x26
WORD wMinion2; //0x28
WORD unk0x2A; //0x2A
BYTE bPartyMin; //0x2C
BYTE bPartyMax; //0x2D
BYTE bRarity; //0x2E
BYTE bMinGrp; //0x2F
BYTE bMaxGrp; //0x30
BYTE bSparsePopulate; //0x31
WORD wVelocity; //0x32
WORD wRun; //0x34
WORD unk0x36; //0x36
WORD unk0x38; //0x38
WORD wMissA1; //0x3A
WORD wMissA2; //0x3C
WORD wMissS1; //0x3E
WORD wMissS2; //0x40
WORD wMissS3; //0x42
WORD wMissS4; //0x44
WORD wMissC; //0x46
WORD wMissSQ; //0x48
WORD unk0x4A; //0x4A
BYTE bAlign; //0x4C
BYTE bTransLvl; //0x4D
BYTE bThreat; //0x4E
BYTE bAIdel; //0x4F
BYTE bAIdel_N; //0x50
BYTE bAIdel_H; //0x51
BYTE bAiDist; //0x52
BYTE bAiDist_N; //0x53
WORD bAiDist_H; //0x54
WORD wAiP1; //0x56
WORD wAiP1_N; //0x58
WORD wAiP1_H; //0x5A
WORD wAiP2; //0x5C
WORD wAiP2_N; //0x5E
WORD wAiP2_H; //0x60
WORD wAiP3; //0x62
WORD wAiP3_N; //0x64
WORD wAiP3_H; //0x66
WORD wAiP4; //0x68
WORD wAiP4_N; //0x6A
WORD wAiP4_H; //0x6C
WORD wAiP5; //0x6E
WORD wAiP5_N; //0x70
WORD wAiP5_H; //0x72
WORD wAiP6; //0x74
WORD wAiP6_N; //0x76
WORD wAiP6_H; //0x78
WORD wAiP7; //0x7A
WORD wAiP7_N; //0x7C
WORD wAiP7_H; //0x7E
WORD wAiP8; //0x80
WORD wAiP8_N; //0x82
WORD wAiP8_H; //0x84
WORD wTreasureClass1; //0x86
WORD wTreasureClass2; //0x88
WORD wTreasureClass3; //0x8A
WORD wTreasureClass4; //0x8C
WORD wTreasureClass1_N; //0x8E
WORD wTreasureClass2_N; //0x90
WORD wTreasureClass3_N; //0x92
WORD wTreasureClass4_N; //0x94
WORD wTreasureClass1_H; //0x96
WORD wTreasureClass2_H; //0x98
WORD wTreasureClass3_H; //0x9A
WORD wTreasureClass4_H; //0x9C
BYTE bTCQuestId; //0x9E
BYTE bTCQuestCP; //0x9F
BYTE bDrain; //0xA0
BYTE bDrain_N; //0xA1
BYTE bDrain_H; //0xA2
BYTE bToBlock; //0xA3
BYTE bToBlock_N; //0xA4
BYTE bToBlock_H; //0xA5
WORD bCrit; //0xA6
WORD wSkillDamage; //0xA8
WORD wLevel; //0xAA
WORD wLevel_N; //0xAC
WORD wLevel_H; //0xAE
WORD wMinHP; //0xB0
WORD wMinHP_N; //0xB2
WORD wMinHP_H; //0xB4
WORD wMaxHP; //0xB6
WORD wMaxHP_N; //0xB8
WORD wMaxHP_H; //0xBA
WORD wAC; //0xBC
WORD wAC_N; //0xBE
WORD wAC_H; //0xC0
WORD wA1TH; //0xC2
WORD wA1TH_N; //0xC4
WORD wA1TH_H; //0xC6
WORD wA2TH; //0xC8
WORD wA2TH_N; //0xCA
WORD wA2TH_H; //0xCC
WORD wS1TH; //0xCE
WORD wS1TH_N; //0xD0
WORD wS1TH_H; //0xD2
WORD wExp; //0xD4
WORD wExp_N; //0xD6
WORD wExp_H; //0xD8
WORD wA1MinD; //0xDA
WORD wA1MinD_N; //0xDC
WORD wA1MinD_H; //0xDE
WORD wA1MaxD; //0xE0
WORD wA1MaxD_N; //0xE2
WORD wA1MaxD_H; //0xE4
WORD wA2MinD; //0xE6
WORD wA2MinD_N; //0xE8
WORD wA2MinD_H; //0xEA
WORD wA2MaxD; //0xEC
WORD wA2MaxD_N; //0xEE
WORD wA2MaxD_H; //0xF0
WORD wS1MinD; //0xF2
WORD wS1MinD_N; //0xF4
WORD wS1MinD_H; //0xF6
WORD wS1MaxD; //0xF8
WORD wS1MaxD_N; //0xFA
WORD wS1MaxD_H; //0xFC
BYTE bEl1Mode; //0xFE
BYTE bEl2Mode; //0xFF
BYTE bEl3Mode; //0x100
BYTE bEl1Type; //0x101
BYTE bEl2Type; //0x102
BYTE bEl3Type; //0x103
BYTE bEl1Pct; //0x104
BYTE bEl1Pct_N; //0x105
BYTE bEl1Pct_H; //0x106
BYTE bEl2Pct; //0x107
BYTE bEl2Pct_N; //0x108
BYTE bEl2Pct_H; //0x109
BYTE bEl3Pct; //0x10A
BYTE bEl3Pct_N; //0x10B
BYTE bEl3Pct_H; //0x10C
BYTE unk0x10D; //0x10D
WORD wEl1MinD; //0x10E
WORD wEl1MinD_N; //0x110
WORD wEl1MinD_H; //0x112
WORD wEl2MinD; //0x114
WORD wEl2MinD_N; //0x116
WORD wEl2MinD_H; //0x118
WORD wEl3MinD; //0x11A
WORD wEl3MinD_N; //0x11C
WORD wEl3MinD_H; //0x11E
WORD wEl1MaxD; //0x120
WORD wEl1MaxD_N; //0x122
WORD wEl1MaxD_H; //0x124
WORD wEl2MaxD; //0x126
WORD wEl2MaxD_N; //0x128
WORD wEl2MaxD_H; //0x12A
WORD wEl3MaxD; //0x12C
WORD wEl3MaxD_N; //0x12E
WORD wEl3MaxD_H; //0x130
WORD wEl1Dur; //0x132
WORD wEl1Dur_N; //0x134
WORD wEl1Dur_H; //0x136
WORD wEl2Dur; //0x138
WORD wEl2Dur_N; //0x13A
WORD wEl2Dur_H; //0x13C
WORD wEl3Dur; //0x13E
WORD wEl3Dur_N; //0x140
WORD wEl3Dur_H; //0x142
WORD wResDmg; //0x144
WORD wResDmg_N; //0x146
WORD wResDmg_H; //0x148
WORD wResMagic; //0x14A
WORD wResMagic_N; //0x14C
WORD wResMagic_H; //0x14E
WORD wResFire; //0x150
WORD wResFire_N; //0x152
WORD wResFire_H; //0x154
WORD wResLight; //0x156
WORD wResLight_N; //0x158
WORD wResLight_H; //0x15A
WORD wResCold; //0x15C
WORD wResCold_N; //0x15E
WORD wResCold_H; //0x160
WORD wResPoison; //0x162
WORD wResPoison_N; //0x164
WORD wResPoiosn_H; //0x166
BYTE bColdEffect; //0x168
BYTE bColdEffect_N; //0x169
WORD bColdEffect_H; //0x16A
DWORD dwSendSkills; //0x16C
WORD wSkill1; //0x170
WORD wSkill2; //0x172
WORD wSkill3; //0x174
WORD wSkill4; //0x176
WORD wSkill5; //0x178
WORD wSkill6; //0x17A
WORD wSkill7; //0x17C
WORD wSkill8; //0x17E
DWORD unk0x180[6]; //0x180
BYTE bSk1lvl; //0x198
BYTE bSk2lvl; //0x199
BYTE bSk3lvl; //0x19A
BYTE bSk4lvl; //0x19B
BYTE bSk5lvl; //0x19C
BYTE bSk6lvl; //0x19D
BYTE bSk7lvl; //0x19E
BYTE bSk8lvl; //0x19F
DWORD dwDamageRegen; //0x1A0
BYTE bSplEndDeath; //0x1A4
BYTE bSplGetModeChart; //0x1A5
BYTE bSplEndGeneric; //0x1A6
BYTE bSplClientEnd; //0x1A7
};
Code: Select all
struct D2MonStats2Txt
{
//to do
};
Code: Select all
struct D2MonTypeTxt
{
//to do
};
Code: Select all
struct D2MonUModTxt
{
//to do
};
Code: Select all
struct D2NpcTxt
{
DWORD dwNpc; //0x00
DWORD dwSellMult; //0x04
DWORD dwBuyMult; //0x08
DWORD dwRepMult; //0x0C
DWORD dwQuestflagA; //0x10
DWORD dwQuestFlagB; //0x14
DWORD dwQuestFlagC; //0x18
DWORD dwQuestSellMultA; //0x1C
DWORD dwQuestSellMultB; //0x20
DWORD dwQuestSellMultC; //0x24
DWORD dwQuestBuyMultA; //0x28
DWORD dwQuestBuyMultB; //0x2C
DWORD dwQuestBuyMultC; //0x30
DWORD dwQuestRepMultA; //0x34
DWORD dwQuestRepMultB; //0x38
DWORD dwQuestRepMultC; //0x3C
DWORD dwMaxBuy; //0x40
DWORD dwMaxBuy_N; //0x44
DWORD dwMaxBuy_H; //0x48
};
Code: Select all
struct D2ObjectsTxt
{
char szName[64]; //0x00
wchar_t wszName[64]; //0x40
char szToken[2]; //0xC0
WORD wSpawnMax; //0xC2
BYTE nSelectable[8]; //0xC4
DWORD dwTrapProb; //0xCC
DWORD dwSizeX; //0xD0
DWORD dwSizeY; //0xD4
BYTE pad0xD8; //0xD8
DWORD dwFrameCnt[7]; //0xD9
WORD wFrameCnt7; //0xF5
BYTE pad0xF7; //0xF7
WORD wFrameDelta[8]; //0xF8
BYTE nCycleAnim[8]; //0x108
BYTE nLit[8]; //0x110
BYTE nBlocksLight[8]; //0x118
BYTE nHasCollision[8]; //0x120
BYTE nIsAttackable0; //0x128
BYTE nStart[8]; //0x129
BYTE nOrderFlag[8]; //0x131
BYTE nEnvEffect; //0x139
BYTE nIsDoor; //0x13A
BYTE nBlocksVis; //0x13B
BYTE nOrientation; //0x13C
BYTE nPreOperate; //0x13D
BYTE nTrans; //0x13E
BYTE nMode[8]; //0x13F
BYTE pad0x147; //0x147
DWORD dwXOffset; //0x148
DWORD dwYOffset; //0x14C
BYTE nDraw; //0x150
BYTE nHD; //0x151
BYTE nTR; //0x152
BYTE nLG; //0x153
BYTE nRA; //0x154
BYTE nLA; //0x155
BYTE nRH; //0x156
BYTE nLH; //0x157
BYTE nSH; //0x158
BYTE nS1; //0x159
BYTE nS2; //0x15A
BYTE nS3; //0x15B
BYTE nS4; //0x15C
BYTE nS5; //0x15D
BYTE nS6; //0x15E
BYTE nS7; //0x15F
BYTE nS8; //0x160
BYTE nTotalPieces; //0x161
BYTE nXSpace; //0x162
BYTE nYSpace; //0x163
BYTE nRed; //0x164
BYTE nGreen; //0x165
BYTE nBlue; //0x166
BYTE nSubClass; //0x167
DWORD dwNameOffset; //0x168
BYTE pad0x16C; //0x16C
BYTE nMonsterOK; //0x16D
BYTE nOperateRange; //0x16E
BYTE nShrineFunction; //0x16F
BYTE nAct; //0x170
BYTE nLockable; //0x171
BYTE nGore; //0x172
BYTE nRestore; //0x173
BYTE nRestoreVirgins; //0x174
WORD wSync; //0x175
BYTE pad0x177; //0x177
DWORD dwParm[8]; //0x178
BYTE nTgtFX; //0x198
BYTE nTgtFY; //0x199
BYTE nTgtBX; //0x19A
BYTE nTgtBY; //0x19B
BYTE nDamage; //0x19C
BYTE nCollisionSubst; //0x19D
WORD pad0x19E; //0x19E
DWORD dwLeft; //0x1A0
DWORD dwTop; //0x1A4
DWORD dwWidth; //0x1A8
DWORD dwHeight; //0x1AC
BYTE nBeta; //0x1B0
BYTE nInitFn; //0x1B1
BYTE nPopulateFn; //0x1B2
BYTE nOperateFn; //0x1B3
BYTE nClientFn; //0x1B4
BYTE nOverlay; //0x1B5
BYTE nBlockMissile; //0x1B6
BYTE nDrawUnder; //0x1B7
DWORD dwOpenWarp; //0x1B8
DWORD dwAutomap; //0x1BC
};
Code: Select all
struct D2ObjGroupTxt
{
//to do
};
Code: Select all
struct D2ObjModeTxt
{
char szName[32]; //0x00
char szToken[20]; //0x20
};
Code: Select all
struct D2ObjTypeTxt
{
char szName[32]; //0x00
char szToken[20]; //0x20
};
Code: Select all
struct D2OverlayTxt
{
WORD wOverlay; //0x00
char szFilename[64]; //0x02
WORD wVersion; //0x42
DWORD dwFrames; //0x44
DWORD dwPreDraw; //0x48
DWORD dw1ofN; //0x4C
BYTE nDir; //0x50
BYTE nOpen; //0x51
WORD wBeta; //0x52
DWORD dwXoffset; //0x54
DWORD dwYoffset; //0x58
DWORD dwHeight1; //0x5C
DWORD dwHeight2; //0x60
DWORD dwHeight3; //0x64
DWORD dwHeight4; //0x68
DWORD dwAnimRate; //0x6C
DWORD dwInitRadius; //0x70
DWORD dwRadius; //0x74
DWORD dwLoopWaitTime; //0x78
BYTE nTrans; //0x7C
BYTE nRed; //0x7D
BYTE nGreen; //0x7E
BYTE nBlue; //0x7F
BYTE nNumDirections; //0x80
BYTE nLocalBlood; //0x81
WORD unk; //0x82
};
Code: Select all
struct D2PetTypeTxt
{
DWORD dwHcIdx; //0x00
DWORD dwPetFlags; //0x04
WORD wGroup; //0x08
WORD wBaseMax; //0x0A
WORD wNameStr; //0x0C
BYTE nIconType; //0x0E
char szIcon[5][32]; //0x10
DWORD unk0xAF; //0xAF
WORD wClass[4]; //0xB2
};
Code: Select all
struct D2PlayerClassTxt
{
union
{
DWORD dwCode; //0x00
char szCode[4]; //0x00
};
};
Code: Select all
struct D2PlrModeTxt
{
DWORD dwCode; //0x00
};
Code: Select all
struct D2PlrTypeTxt
{
char szName[32]; //0x00
char szToken[20]; //0x20
};
Code: Select all
struct D2PropertiesTxt
{
WORD wProp; //0x00
BYTE nSet[8]; //0x02
WORD wVal[7]; //0x0A
BYTE nFunc[8]; //0x18
WORD wStat[7]; //0x20
};
Code: Select all
struct D2QualityItemsTxt
{
//to do
};
Code: Select all
struct D2RarePrefixTxt
{
//to do
};
Code: Select all
struct D2RareSuffixTxt
{
//to do
};
Code: Select all
struct D2RunesTxt
{
char szName[64]; //0x00
char szRuneName[64]; //0x40
BYTE nComplete; //0x80
DWORD dwServer; //0x81
BYTE unk; //0x85
WORD dwIType1; //0x86
WORD dwIType2; //0x88
WORD dwIType3; //0x8A
WORD dwIType4; //0x8C
WORD dwIType5; //0x8E
WORD dwIType6; //0x90
WORD dwEType1; //0x92
WORD dwEType2; //0x94
WORD dwEType3; //0x96
DWORD dwRune1; //0x98
DWORD dwRune2; //0x9C
DWORD dwRune3; //0xA0
DWORD dwRune4; //0xA4
DWORD dwRune5; //0xA8
DWORD dwRune6; //0xAC
DWORD dwT1Code1; //0xB0
DWORD dwT1Param1; //0xB4
DWORD dwT1Min1; //0xB8
DWORD dwT1Max1; //0xBC
DWORD dwT1Code2; //0xC0
DWORD dwT1Param2; //0xC4
DWORD dwT1Min2; //0xC8
DWORD dwT1Max2; //0xCC
DWORD dwT1Code3; //0xD0
DWORD dwT1Param3; //0xD4
DWORD dwT1Min3; //0xD8
DWORD dwT1Max3; //0xDC
DWORD dwT1Code4; //0xE0
DWORD dwT1Param4; //0xE4
DWORD dwT1Min4; //0xE8
DWORD dwT1Max4; //0xEC
DWORD dwT1Code5; //0xF0
DWORD dwT1Param5; //0xF4
DWORD dwT1Min5; //0xF8
DWORD dwT1Max5; //0xFC
DWORD dwT1Code6; //0x100
DWORD dwT1Param6; //0x104
DWORD dwT1Min6; //0x108
DWORD dwT1Max6; //0x10C
DWORD dwT1Code7; //0x110
DWORD dwT1Param7; //0x114
DWORD dwT1Min7; //0x118
DWORD dwT1Max7; //0x11C
};
Code: Select all
struct D2SetItemsTxt
{
WORD wSetItemId; //0x00
char szName[32]; //0x02
WORD pad0x22; //0x22
DWORD dwTblIndex; //0x24
char szItemCode[4]; //0x28
DWORD pad0x2C; //0x2C
WORD wLvl; //0x30
WORD wLvlReq; //0x32
DWORD dwRarity; //0x34
DWORD dwCostMult; //0x38
DWORD dwCostAdd; //0x3C
BYTE nChrTransform; //0x40
BYTE nInvTransform; //0x41
char szFlippyFile[32]; //0x42
char szInvFile[32]; //0x62
WORD wDropSound; //0x82
WORD wUseSound; //0x84
BYTE nDropSfxFrame; //0x86
BYTE nAddFunc; //0x87
DWORD dwProp1; //0x88
DWORD dwPar1; //0x8C
DWORD dwMin1; //0x90
DWORD dwMax1; //0x94
DWORD dwProp2; //0x98
DWORD dwPar2; //0x9C
DWORD dwMin2; //0xA0
DWORD dwMax2; //0xA4
DWORD dwProp3; //0xA8
DWORD dwPar3; //0xAC
DWORD dwMin3; //0xB0
DWORD dwMax3; //0xB4
DWORD dwProp4; //0xB8
DWORD dwPar4; //0xBC
DWORD dwMin4; //0xC0
DWORD dwMax4; //0xC4
DWORD dwProp5; //0xC8
DWORD dwPar5; //0xCC
DWORD dwMin5; //0xD0
DWORD dwMax5; //0xD4
DWORD dwProp6; //0xD8
DWORD dwPar6; //0xDC
DWORD dwMin6; //0xE0
DWORD dwMax6; //0xE4
DWORD dwProp7; //0xE8
DWORD dwPar7; //0xEC
DWORD dwMin7; //0xF0
DWORD dwMax7; //0xF4
DWORD dwProp8; //0xF8
DWORD dwPar8; //0xFC
DWORD dwMin8; //0x100
DWORD dwMax8; //0x104
DWORD dwProp9; //0x108
DWORD dwPar9; //0x10C
DWORD dwMin9; //0x110
DWORD dwMax9; //0x114
DWORD dwAProp1a; //0x118
DWORD dwAPar1a; //0x11C
DWORD dwAMin1a; //0x120
DWORD dwAMax1a; //0x124
DWORD dwAProp1b; //0x128
DWORD dwAPar1b; //0x12C
DWORD dwAMin1b; //0x130
DWORD dwAMax1b; //0x134
DWORD dwAProp2a; //0x138
DWORD dwAPar2a; //0x13C
DWORD dwAMin2a; //0x140
DWORD dwAMax2a; //0x144
DWORD dwAProp2b; //0x148
DWORD dwAPar2b; //0x14C
DWORD dwAMin2b; //0x150
DWORD dwAMax2b; //0x154
DWORD dwAProp3a; //0x158
DWORD dwAPar3a; //0x15C
DWORD dwAMin3a; //0x160
DWORD dwAMax3a; //0x164
DWORD dwAProp3b; //0x168
DWORD dwAPar3b; //0x16C
DWORD dwAMin3b; //0x170
DWORD dwAMax3b; //0x174
DWORD dwAProp4a; //0x178
DWORD dwAPar4a; //0x17C
DWORD dwAMin4a; //0x180
DWORD dwAMax4a; //0x184
DWORD dwAProp4b; //0x188
DWORD dwAPar4b; //0x18C
DWORD dwAMin4b; //0x190
DWORD dwAMax4b; //0x194
DWORD dwAProp5a; //0x198
DWORD dwAPar5a; //0x19C
DWORD dwAMin5a; //0x1A0
DWORD dwAMax5a; //0x1A4
DWORD dwAProp5b; //0x1A8
DWORD dwAPar5b; //0x1AC
DWORD dwAMin5b; //0x1B0
DWORD dwAMax5b; //0x1B4
};
Code: Select all
struct D2SetsTxt
{
WORD wSetId; //0x00
WORD wTblIndex; //0x02
DWORD dwVersion; //0x04
DWORD unk0x08; //0x08
DWORD dwSetItems; //0x0C
DWORD dwPCode2a; //0x10
DWORD dwPPar2a; //0x14
DWORD dwPMin2a; //0x18
DWORD dwPMax2a; //0x1C
DWORD dwPCode2b; //0x20
DWORD dwPPar2b; //0x24
DWORD dwPMin2b; //0x28
DWORD dwPMax2b; //0x2C
DWORD dwPCode3a; //0x30
DWORD dwPPar3a; //0x34
DWORD dwPMin3a; //0x38
DWORD dwPMax3a; //0x3C
DWORD dwPCode3b; //0x40
DWORD dwPPar3b; //0x44
DWORD dwPMin3b; //0x48
DWORD dwPMax3b; //0x4C
DWORD dwPCode4a; //0x50
DWORD dwPPar4a; //0x54
DWORD dwPMin4a; //0x58
DWORD dwPMax4a; //0x5C
DWORD dwPCode4b; //0x60
DWORD dwPPar4b; //0x64
DWORD dwPMin4b; //0x68
DWORD dwPMax4b; //0x6C
DWORD dwPCode5a; //0x70
DWORD dwPPar5a; //0x74
DWORD dwPMin5a; //0x78
DWORD dwPMax5a; //0x7C
DWORD dwPCode5b; //0x80
DWORD dwPPar5b; //0x84
DWORD dwPMin5b; //0x88
DWORD dwPMax5b; //0x8C
DWORD dwFCode1; //0x90
DWORD dwFPar1; //0x94
DWORD dwFMin1; //0x98
DWORD dwFMax1; //0x9C
DWORD dwFCode2; //0xA0
DWORD dwFPar2; //0xA4
DWORD dwFMin2; //0xA8
DWORD dwFMax2; //0xAC
DWORD dwFCode3; //0xB0
DWORD dwFPar3; //0xB4
DWORD dwFMin3; //0xB8
DWORD dwFMax3; //0xBC
DWORD dwFCode4; //0xC0
DWORD dwFPar4; //0xC4
DWORD dwFMin4; //0xC8
DWORD dwFMax4; //0xCC
DWORD dwFCode5; //0xD0
DWORD dwFPar5; //0xD4
DWORD dwFMin5; //0xD8
DWORD dwFMax5; //0xDC
DWORD dwFCode6; //0xE0
DWORD dwFPar6; //0xE4
DWORD dwFMin6; //0xE8
DWORD dwFMax6; //0xEC
DWORD dwFCode7; //0xF0
DWORD dwFPar7; //0xF4
DWORD dwFMin7; //0xF8
DWORD dwFMax7; //0xFC
DWORD dwFCode8; //0x100
DWORD dwFPar8; //0x104
DWORD dwFMin8; //0x108
DWORD dwFMax8; //0x10C
D2SetItemsTxt* pSetItem1; //0x110
D2SetItemsTxt* pSetItem2; //0x114
D2SetItemsTxt* pSetItem3; //0x118
D2SetItemsTxt* pSetItem4; //0x11C
D2SetItemsTxt* pSetItem5; //0x120
D2SetItemsTxt* pSetItem6; //0x124
};