.NTF - nbreeze/closers-rev GitHub Wiki
Introduction
.NTF is a file format that holds an array of a specific structure of data. The data structure can contain different data types.
No, it does not mean National Imagery Transmission Format. It's also not the Lotus Note Template format. I don't even know what the extension stands for, but it's definitely not something you can find off of a Google search.
All of the .NTF files used here have been decoded and decrypted for demonstration purposes.
Types
The following data types have been identified:
enum {
NTF_DATA_TYPE_CHAR = 2,
NTF_DATA_TYPE_INT = 5,
NTF_DATA_TYPE_UNICODE_STRING = 8,
NTF_DATA_TYPE_FLOAT = 9
}
Header
In this example, we'll use a file called ENCHANT_GRADE_FACTOR.NTF
. This file contains values of a multiplier that is applied directly to the enchantment bonus of an item.
02 00 00 00 08 00 00 00 09 00 00 00 05 00 00 00 ................
09 00 00 00 49 00 47 00 5F 00 4E 00 4F 00 52 00 ....I.G._.N.O.R.
4D 00 41 00 4C 00 CD CC 4C 3F 08 00 00 00 49 00 M.A.L.MLL?....I.
47 00 5F 00 4D 00 41 00 47 00 49 00 43 00 66 66 G._.M.A.G.I.C.ff
66 3F 07 00 00 00 49 00 47 00 5F 00 52 00 41 00 f?....I.G._.R.A.
52 00 45 00 00 00 80 3F 08 00 00 00 49 00 47 00 R.E....?....I.G.
5F 00 45 00 4C 00 49 00 54 00 45 00 00 00 A0 3F _.E.L.I.T.E....?
09 00 00 00 49 00 47 00 5F 00 4C 00 45 00 47 00 ....I.G._.L.E.G.
45 00 4E 00 44 00 66 66 A6 3F 2A 00 00 00 42 00 E.N.D.ff&?*...B.
00 00 58 00 00 00 70 00 00 00 8A 00 00 00
It begins with an array that defines the layout of the data struct
. This array contains a list of data type enumerations that the struct
defines in order. It starts with a int32
, indicating the size of the array.
Analyzing the file, we have 02 00 00 00
which is 2
. Reading the type array, we have the values 08 00 00 00
and 09 00 00 00
, which correspond to NTF_DATA_TYPE_UNICODE_STRING
and NTF_DATA_TYPE_FLOAT
. Therefore, the structure we have can be defined as:
{
wchar_t * str;
float fl1;
}
After the array, there is another int32
that defines how many instances of our struct
is stored in the file. In this file, this value is 05 00 00 00
, which is 5
.
Footer
Because strings can have variable lengths, the .NTF file format also stores the ending file pointers of each struct
stored in an int32
array. This array can be reached by using the following method:
unsigned OFFSET_ARRAY_POS = FILE_SIZE - (structCount * 4)
...where FILE_SIZE
is the total size of the file.
OFFSET_ARRAY
is an array of file offsets that indicate the ending offset of each element. It can also be used to quickly traverse to a random struct
element stored in the file.
Looking at the end of our file, we can see that this offset array is defined as:
{
0x0000002a, // 2A 00 00 00
0x00000042, // 42 00 00 00
0x00000058, // 58 00 00 00
0x00000070, // 70 00 00 00
0x0000008a // 8A 00 00 00
}
Data
After the structCount
integer is the actual raw data.
:warning: When it comes to reading a unicode wide string, the member variable starts with a
int32
that specifies how many characters (not bytes!) the string has before the string ofwchar_t
's. For wide strings, each character is 2 bytes long. The string is also not always null-terminated.
Iterating through the data, our file comes out as:
{ 9, L"IG_NORMAL", 0.8f },
{ 8, L"IG_MAGIC", 0.9f },
{ 7, L"IG_RARE", 1.0f },
{ 8, L"IG_ELITE", 1.25f },
{ 9, L"IG_LEGEND", 1.3f }
Remarks
As far as the format itself is concerned, it does have its benefits.
- Well-suited for storing an array of flat, multi-variable structures. Clearly this was the purpose in mind for this format, and of course, it does this well.
- Random access to different structure elements in the file.
This is made possible by using the
OFFSET_ARRAY
.
There are a few issues with it, though.
- Not suitable with nested structures. It has been done, but it involves storing each nested structure as a string. Although the string itself can be parsed normally, it's preferred to use a LUA file or another environment instead where nested structures are supported natively.
- No random access to a structure's member variable. If you want to access a certain variable within a structure, you would have to traverse the data type array, and this becomes even more crucial when the structure has a variable-length member like a string. This isn't an issue with structures that don't have a lot of members, but if a structure has a lot of members, consider using something else or caching.
Appendix
ENCHANT_ITEM_LEVEL.NTF
A.1. This file contains the item level bonus per enhancement level. Each short
member specifies the item level bonus for a gear item type, which are Cores, Modules, Trinkets, and Receivers, respectively.
Raw:
05 00 00 00 02 00 00 00 04 00 00 00 04 00 00 00 ................
04 00 00 00 04 00 00 00 1E 00 00 00 01 00 00 00 ................
00 00 00 00 00 02 00 00 00 00 00 00 00 00 03 01 ................
00 01 00 01 00 01 00 04 01 00 01 00 01 00 01 00 ................
05 01 00 01 00 01 00 01 00 06 02 00 02 00 02 00 ................
02 00 07 02 00 02 00 02 00 02 00 08 02 00 02 00 ................
02 00 02 00 09 03 00 03 00 03 00 03 00 0A 03 00 ................
03 00 03 00 03 00 0B 04 00 04 00 04 00 04 00 0C ................
05 00 05 00 05 00 05 00 0D 09 00 09 00 09 00 09 ................
00 0E 0E 00 0E 00 0E 00 0E 00 0F 14 00 14 00 14 ................
00 14 00 10 1A 00 1A 00 1A 00 1A 00 11 20 00 20 ................
00 20 00 20 00 12 26 00 26 00 26 00 26 00 13 2C ......&.&.&.&..,
00 2C 00 2C 00 2C 00 14 32 00 32 00 32 00 32 00 .,.,.,..2.2.2.2.
15 32 00 32 00 32 00 32 00 16 32 00 32 00 32 00 .2.2.2.2..2.2.2.
32 00 17 32 00 32 00 32 00 32 00 18 32 00 32 00 2..2.2.2.2..2.2.
32 00 32 00 19 32 00 32 00 32 00 32 00 1A 32 00 2.2..2.2.2.2..2.
32 00 32 00 32 00 1B 32 00 32 00 32 00 32 00 1C 2.2.2..2.2.2.2..
32 00 32 00 32 00 32 00 1D 32 00 32 00 32 00 32 2.2.2.2..2.2.2.2
00 1E 32 00 32 00 32 00 32 00 25 00 00 00 2E 00 ..2.2.2.2.%.....
00 00 37 00 00 00 40 00 00 00 49 00 00 00 52 00 [email protected].
00 00 5B 00 00 00 64 00 00 00 6D 00 00 00 76 00 ..[...d...m...v.
00 00 7F 00 00 00 88 00 00 00 91 00 00 00 9A 00 ................
00 00 A3 00 00 00 AC 00 00 00 B5 00 00 00 BE 00 ..#...,...5...>.
00 00 C7 00 00 00 D0 00 00 00 D9 00 00 00 E2 00 ..G...P...Y...b.
00 00 EB 00 00 00 F4 00 00 00 FD 00 00 00 06 01 ..k...t...}.....
00 00 0F 01 00 00 18 01 00 00 21 01 00 00 2A 01 ..........!...*.
00 00
struct
Info:
Member count: 5 (05 00 00 00
)
{
char; // 2
short; // 4
short; // 4
short; // 4
short; // 4
}
Total struct
elements: 30 (1E 00 00 00
)
Data:
{ 1, 0, 0, 0, 0 },
{ 2, 0, 0, 0, 0 },
{ 3, 1, 1, 1, 1 },
{ 4, 1, 1, 1, 1 },
{ 5, 1, 1, 1, 1 },
{ 6, 2, 2, 2, 2 },
{ 7, 2, 2, 2, 2 },
{ 8, 2, 2, 2, 2 },
{ 9, 3, 3, 3, 3 },
{ 10, 3, 3, 3, 3 },
{ 11, 4, 4, 4, 4 },
{ 12, 5, 5, 5, 5 },
{ 13, 9, 9, 9, 9 },
{ 14, 14, 14, 14, 14 },
{ 15, 20, 20, 20, 20 },
{ 16, 26, 26, 26, 26 },
{ 17, 32, 32, 32, 32 },
{ 18, 38, 38, 38, 38 },
{ 19, 44, 44, 44, 44 },
{ 20, 50, 50, 50, 50 },
{ 21, 50, 50, 50, 50 },
{ 22, 50, 50, 50, 50 },
{ 23, 50, 50, 50, 50 },
{ 24, 50, 50, 50, 50 },
{ 25, 50, 50, 50, 50 },
{ 26, 50, 50, 50, 50 },
{ 27, 50, 50, 50, 50 },
{ 28, 50, 50, 50, 50 },
{ 29, 50, 50, 50, 50 },
{ 30, 50, 50, 50, 50 }
ENCHANT_ITEM_FACTOR.NTF
A.2. Raw:
05 00 00 00 05 00 00 00 09 00 00 00 09 00 00 00 ................
09 00 00 00 09 00 00 00 14 00 00 00 01 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ................
00 00 A0 40 00 00 20 40 33 33 53 40 00 00 00 00 ...@...@33S@....
06 00 00 00 00 00 C0 40 00 00 60 40 66 66 96 40 ......@@..`@ff.@
00 00 00 00 07 00 00 00 00 00 E0 40 00 00 90 40 ..........`@...@
00 00 C0 40 00 00 00 00 08 00 00 00 00 00 10 41 ..@@...........A
00 00 B0 40 9A 99 E9 40 00 00 00 00 09 00 00 00 [email protected]@........
00 00 30 41 00 00 D0 40 33 33 0B 41 00 00 00 00 [email protected]....
0A 00 00 00 00 00 60 41 00 00 F0 40 00 00 20 41 ......`[email protected]
00 00 00 00 0B 00 00 00 00 00 88 41 00 00 08 41 ...........A...A
CD CC 34 41 00 00 00 00 0C 00 00 00 00 00 A0 41 ML4A...........A
00 00 18 41 33 33 4B 41 00 00 00 00 0D 00 00 00 ...A33KA........
00 00 B8 41 00 00 28 41 00 00 60 41 00 00 00 00 ..8A..(A..`A....
0E 00 00 00 00 00 D0 41 00 00 38 41 CD CC 74 41 ......PA..8AMLtA
00 00 00 00 0F 00 00 00 00 00 F0 41 00 00 48 41 ..........pA..HA
9A 99 85 41 00 00 00 00 10 00 00 00 00 00 08 42 ...A...........B
00 00 58 41 00 00 90 41 00 00 00 00 11 00 00 00 ..XA...A........
00 00 18 42 00 00 68 41 66 66 9A 41 00 00 00 00 ...B..hAff.A....
12 00 00 00 00 00 28 42 00 00 78 41 9A 99 A5 41 ......(B..xA..%A
00 00 00 00 13 00 00 00 00 00 38 42 00 00 84 41 ..........8B...A
00 00 B0 41 00 00 00 00 14 00 00 00 00 00 48 42 ..0A..........HB
00 00 8C 41 66 66 BA 41 00 00 00 00 30 00 00 00 ...Aff:A....0...
44 00 00 00 58 00 00 00 6C 00 00 00 80 00 00 00 D...X...l.......
94 00 00 00 A8 00 00 00 BC 00 00 00 D0 00 00 00 ....(...<...P...
E4 00 00 00 F8 00 00 00 0C 01 00 00 20 01 00 00 d...x...........
34 01 00 00 48 01 00 00 5C 01 00 00 70 01 00 00 4...H...\...p...
84 01 00 00 98 01 00 00 AC 01 00 00 ........,...
struct
Info:
Member count: 5 (05 00 00 00
)
{
int; // 5
float; // 9
float; // 9
float; // 9
float; // 9
}
Total struct
elements: 20 (14 00 00 00
)
Data:
{ 1, 0f, 0f, 0f, 0f },
{ 2, 0f, 0f, 0f, 0f },
{ 3, 0f, 0f, 0f, 0f },
{ 4, 0f, 0f, 0f, 0f },
{ 5, 5f, 2.5f, 3.3f, 0f },
{ 6, 6f, 3.5f, 4.7f, 0f },
{ 7, 7f, 4.5f, 6f, 0f },
{ 8, 9f, 5.5f, 7.3f, 0f },
{ 9, 11f, 6.5f, 8.7f, 0f },
{ 10, 14f, 7.5f, 10f, 0f },
{ 11, 17f, 8.5f, 11.3f, 0f },
{ 12, 20f, 9.5f, 12.7f, 0f },
{ 13, 23f, 10.5f, 14f, 0f },
{ 14, 26f, 11.5f, 15.3f, 0f },
{ 15, 30f, 12.5f, 16.7f, 0f },
{ 16, 34f, 13.5f, 18f, 0f },
{ 17, 38f, 14.5f, 19.3f, 0f },
{ 18, 42f, 15.5f, 20.7f, 0f },
{ 19, 46f, 16.5f, 22f, 0f },
{ 20, 50f, 17.5f, 23.3f, 0f }
ENCHANT_DEFAULT_STAT.NTF
A.3. This file contains the base value of the enchantment bonus. The base value is determined by the item's type and required level.
Raw:
05 00 00 00 05 00 00 00 09 00 00 00 09 00 00 00 ................
09 00 00 00 09 00 00 00 63 00 00 00 01 00 00 00 ........c.......
00 00 D0 41 00 00 20 41 00 00 00 43 00 00 00 00 ..PA...A...C....
02 00 00 00 00 00 18 42 00 00 50 41 00 00 08 43 .......B..PA...C
00 00 00 00 03 00 00 00 00 00 40 42 00 00 88 41 [email protected]
00 00 08 43 00 00 00 00 04 00 00 00 00 00 68 42 ...C..........hB
00 00 A8 41 00 00 10 43 00 00 00 00 05 00 00 00 ..(A...C........
00 00 88 42 00 00 C0 41 00 00 18 43 00 00 00 00 [email protected]....
06 00 00 00 00 00 9C 42 00 00 E0 41 00 00 18 43 .......B..`A...C
00 00 00 00 07 00 00 00 00 00 B4 42 00 00 00 42 ..........4B...B
00 00 20 43 00 00 00 00 08 00 00 00 00 00 C8 42 ...C..........HB
00 00 10 42 00 00 28 43 00 00 00 00 09 00 00 00 ...B..(C........
00 00 DC 42 00 00 20 42 00 00 28 43 00 00 00 00 ..\B...B..(C....
0A 00 00 00 00 00 F4 42 00 00 30 42 00 00 30 43 ......tB..0B..0C
00 00 00 00 0B 00 00 00 00 00 04 43 00 00 3C 42 ...........C..<B
00 00 38 43 00 00 00 00 0C 00 00 00 00 00 10 43 ..8C...........C
00 00 4C 42 00 00 38 43 00 00 00 00 0D 00 00 00 ..LB..8C........
00 00 1C 43 00 00 5C 42 00 00 40 43 00 00 00 00 ...C..\B..@C....
0E 00 00 00 00 00 26 43 00 00 6C 42 00 00 40 43 ......&C..lB..@C
00 00 00 00 0F 00 00 00 00 00 32 43 00 00 7C 42 ..........2C..|B
00 00 48 43 00 00 00 00 10 00 00 00 00 00 3E 43 ..HC..........>C
00 00 88 42 00 00 50 43 00 00 00 00 11 00 00 00 ...B..PC........
00 00 48 43 00 00 90 42 00 00 50 43 00 00 A0 40 ..HC...B..PC...@
12 00 00 00 00 00 54 43 00 00 98 42 00 00 58 43 ......TC...B..XC
00 00 A0 41 13 00 00 00 00 00 60 43 00 00 A0 42 ...A......`C...B
00 00 60 43 00 00 0C 42 14 00 00 00 00 00 6C 43 ..`C...B......lC
00 00 A8 42 00 00 60 43 00 00 48 42 15 00 00 00 ..(B..`C..HB....
00 00 78 43 00 00 B2 42 00 00 68 43 00 00 82 42 ..xC..2B..hC...B
16 00 00 00 00 00 82 43 00 00 BA 42 00 00 70 43 .......C..:B..pC
00 00 A0 42 17 00 00 00 00 00 88 43 00 00 C2 42 ...B.......C..BB
00 00 70 43 00 00 BE 42 18 00 00 00 00 00 8E 43 ..pC..>B.......C
00 00 CC 42 00 00 78 43 00 00 DC 42 19 00 00 00 ..LB..xC..\B....
00 00 94 43 00 00 D4 42 00 00 80 43 00 00 FA 42 ...C..TB...C..zB
1A 00 00 00 00 00 9B 43 00 00 DC 42 00 00 80 43 .......C..\B...C
00 00 0C 43 1B 00 00 00 00 00 A1 43 00 00 E6 42 ...C......!C..fB
00 00 84 43 00 00 1B 43 1C 00 00 00 00 00 A7 43 ...C...C......'C
00 00 F0 42 00 00 84 43 00 00 2A 43 1D 00 00 00 ..pB...C..*C....
00 00 AE 43 00 00 F8 42 00 00 88 43 00 00 39 43 ...C..xB...C..9C
1E 00 00 00 00 00 B4 43 00 00 01 43 00 00 8C 43 ......4C...C...C
00 00 48 43 1F 00 00 00 00 00 BB 43 00 00 05 43 ..HC......;C...C
00 00 8C 43 00 00 57 43 20 00 00 00 00 00 C1 43 ...C..WC......AC
00 00 0A 43 00 00 90 43 00 00 66 43 21 00 00 00 ...C...C..fC!...
00 00 C8 43 00 00 0F 43 00 00 94 43 00 00 75 43 ..HC...C...C..uC
22 00 00 00 00 00 CF 43 00 00 14 43 00 00 94 43 ".....OC...C...C
00 00 82 43 23 00 00 00 00 00 D6 43 00 00 19 43 ...C#.....VC...C
00 00 98 43 00 80 89 43 24 00 00 00 00 00 DC 43 ...C...C$.....\C
00 00 1D 43 00 00 9C 43 00 00 91 43 25 00 00 00 ...C...C...C%...
00 00 E3 43 00 00 22 43 00 00 9C 43 00 80 98 43 ..cC.."C...C...C
26 00 00 00 00 00 EA 43 00 00 27 43 00 00 A0 43 &.....jC..'C...C
00 00 A0 43 27 00 00 00 00 00 F1 43 00 00 2C 43 ...C'.....qC..,C
00 00 A4 43 00 80 A7 43 28 00 00 00 00 00 F8 43 ..$C..'C(.....xC
00 00 31 43 00 00 A4 43 00 00 AF 43 29 00 00 00 ..1C..$C../C)...
00 00 00 44 00 00 37 43 00 00 A8 43 00 80 B6 43 ...D..7C..(C..6C
2A 00 00 00 00 80 03 44 00 00 3C 43 00 00 A8 43 *......D..<C..(C
00 00 BE 43 2B 00 00 00 00 00 07 44 00 00 41 43 ..>C+......D..AC
00 00 AC 43 00 80 C5 43 2C 00 00 00 00 00 0B 44 ..,C..EC,......D
00 00 46 43 00 00 B0 43 00 00 CD 43 2D 00 00 00 ..FC..0C..MC-...
00 80 0E 44 00 00 4C 43 00 00 B0 43 00 80 D4 43 ...D..LC..0C..TC
2E 00 00 00 00 80 12 44 00 00 51 43 00 00 B4 43 .......D..QC..4C
00 00 DC 43 2F 00 00 00 00 00 16 44 00 00 56 43 ..\C/......D..VC
00 00 B8 43 00 80 E3 43 30 00 00 00 00 00 1A 44 ..8C..cC0......D
00 00 5C 43 00 00 B8 43 00 00 EB 43 31 00 00 00 ..\C..8C..kC1...
00 00 1E 44 00 00 61 43 00 00 BC 43 00 80 F2 43 ...D..aC..<C..rC
32 00 00 00 00 80 21 44 00 00 67 43 00 00 C0 43 2.....!D..gC..@C
00 00 FA 43 33 00 00 00 00 80 25 44 00 00 6D 43 ..zC3.....%D..mC
00 00 C0 43 00 C0 00 44 34 00 00 00 00 80 29 44 ..@[email protected].....)D
00 00 72 43 00 00 C4 43 00 80 04 44 35 00 00 00 ..rC..DC...D5...
00 80 2D 44 00 00 78 43 00 00 C8 43 00 40 08 44 [email protected]
36 00 00 00 00 00 32 44 00 00 7E 43 00 00 C8 43 6.....2D..~C..HC
00 00 0C 44 37 00 00 00 00 00 36 44 00 00 82 43 ...D7.....6D...C
00 00 CC 43 00 C0 0F 44 38 00 00 00 00 00 3A 44 [email protected].....:D
00 00 85 43 00 00 CC 43 00 80 13 44 39 00 00 00 ...C..LC...D9...
00 80 3E 44 00 00 88 43 00 00 D0 43 00 40 17 44 ..>[email protected]
3A 00 00 00 00 80 42 44 00 00 8B 43 00 00 D4 43 :.....BD...C..TC
00 00 1B 44 3B 00 00 00 00 00 47 44 00 00 8E 43 ...D;.....GD...C
00 00 D4 43 00 C0 1E 44 3C 00 00 00 00 00 4B 44 [email protected]<.....KD
00 00 91 43 00 00 D8 43 00 80 22 44 3D 00 00 00 ...C..XC.."D=...
00 80 4F 44 00 00 94 43 00 00 DC 43 00 00 26 44 ..OD...C..\C..&D
3E 00 00 00 00 00 54 44 00 80 97 43 00 00 DC 43 >.....TD...C..\C
00 C0 29 44 3F 00 00 00 00 80 58 44 00 80 9A 43 .@)D?.....XD...C
00 00 E0 43 00 40 2D 44 40 00 00 00 00 00 5D 44 ..`C.@-D@.....]D
00 00 9E 43 00 00 E4 43 00 00 31 44 41 00 00 00 ...C..dC..1DA...
00 80 61 44 00 00 A1 43 00 00 E4 43 00 80 34 44 ..aD..!C..dC..4D
42 00 00 00 00 00 66 44 00 80 A4 43 00 00 E8 43 B.....fD..$C..hC
00 00 38 44 43 00 00 00 00 00 6B 44 00 00 A8 43 ..8DC.....kD..(C
00 00 EC 43 00 00 3C 44 44 00 00 00 00 80 6F 44 ..lC..<DD.....oD
00 00 AB 43 00 00 EC 43 00 C0 3F 44 45 00 00 00 ..+C..lC.@?DE...
00 80 74 44 00 80 AE 43 00 00 F0 43 00 C0 43 44 ..tD...C..pC.@CD
46 00 00 00 00 00 79 44 00 00 B2 43 00 00 F0 43 F.....yD..2C..pC
00 40 47 44 47 00 00 00 00 00 7E 44 00 80 B5 43 .@GDG.....~D..5C
00 00 F4 43 00 40 4B 44 48 00 00 00 00 80 81 44 [email protected]
00 00 B9 43 00 00 F8 43 00 40 4F 44 49 00 00 00 ..9C..xC.@ODI...
00 00 84 44 00 80 BC 43 00 00 F8 43 00 40 53 44 ...D..<C..xC.@SD
4A 00 00 00 00 80 86 44 00 00 C0 43 00 00 FC 43 J......D..@C..|C
00 40 57 44 4B 00 00 00 00 00 89 44 00 00 C4 43 [email protected]
00 00 00 44 00 40 5B 44 4C 00 00 00 00 C0 8B 44 ...D.@[[email protected]
00 80 C7 43 00 00 00 44 00 C0 5F 44 4D 00 00 00 ..GC...D.@_DM...
00 40 8E 44 00 80 CB 43 00 00 02 44 00 C0 63 44 [email protected].@cD
4E 00 00 00 00 00 91 44 00 00 CF 43 00 00 04 44 N......D..OC...D
00 00 68 44 4F 00 00 00 00 C0 93 44 00 00 D3 43 [email protected]
00 00 04 44 00 80 6C 44 50 00 00 00 00 40 96 44 [email protected]
00 00 D7 43 00 00 06 44 00 80 70 44 51 00 00 00 ..WC...D..pDQ...
00 00 99 44 00 80 DA 43 00 00 08 44 00 00 75 44 ...D..ZC...D..uD
52 00 00 00 00 C0 9B 44 00 80 DE 43 00 00 08 44 [email protected]..^C...D
00 40 79 44 53 00 00 00 00 C0 9E 44 00 80 E2 43 .@[email protected]
00 00 0A 44 00 00 7E 44 54 00 00 00 00 80 A1 44 ...D..~DT.....!D
00 80 E6 43 00 00 0A 44 00 40 81 44 55 00 00 00 [email protected]...
00 40 A4 44 00 00 EB 43 00 00 0C 44 00 80 83 44 .@$D..kC...D...D
56 00 00 00 00 40 A7 44 00 00 EF 43 00 00 0E 44 V....@'D..oC...D
00 E0 85 44 57 00 00 00 00 40 AA 44 00 00 F3 43 .`.DW....@*D..sC
00 00 0E 44 00 40 88 44 58 00 00 00 00 40 AD 44 [email protected]....@-D
00 80 F7 43 00 00 10 44 00 A0 8A 44 59 00 00 00 ..wC...D...DY...
00 40 B0 44 00 00 FC 43 00 00 12 44 00 00 8D 44 .@0D..|C...D...D
5A 00 00 00 00 40 B3 44 00 00 00 44 00 00 12 44 [email protected]
00 80 8F 44 5B 00 00 00 00 80 B6 44 00 40 02 44 ...D[[email protected]
00 00 14 44 00 00 92 44 5C 00 00 00 00 80 B9 44 ...D...D\.....9D
00 80 04 44 00 00 16 44 00 80 94 44 5D 00 00 00 ...D...D...D]...
00 C0 BC 44 00 C0 06 44 00 00 16 44 00 00 97 44 .@<[email protected]
5E 00 00 00 00 00 C0 44 00 00 09 44 00 00 18 44 ^[email protected]
00 A0 99 44 5F 00 00 00 00 40 C3 44 00 80 0B 44 [email protected]
00 00 1A 44 00 40 9C 44 60 00 00 00 00 80 C6 44 [email protected]`.....FD
00 C0 0D 44 00 00 1A 44 00 E0 9E 44 61 00 00 00 [email protected].`.Da...
00 C0 C9 44 00 40 10 44 00 00 1C 44 00 80 A1 44 .@[email protected]..!D
62 00 00 00 00 40 CD 44 00 80 12 44 00 00 1C 44 [email protected]
00 40 A4 44 63 00 00 00 00 80 D0 44 00 00 15 44 .@$Dc.....PD...D
00 00 1E 44 00 E0 A6 44 30 00 00 00 44 00 00 00 ...D.`&D0...D...
58 00 00 00 6C 00 00 00 80 00 00 00 94 00 00 00 X...l...........
A8 00 00 00 BC 00 00 00 D0 00 00 00 E4 00 00 00 (...<...P...d...
F8 00 00 00 0C 01 00 00 20 01 00 00 34 01 00 00 x...........4...
48 01 00 00 5C 01 00 00 70 01 00 00 84 01 00 00 H...\...p.......
98 01 00 00 AC 01 00 00 C0 01 00 00 D4 01 00 00 ....,[email protected]...
E8 01 00 00 FC 01 00 00 10 02 00 00 24 02 00 00 h...|.......$...
38 02 00 00 4C 02 00 00 60 02 00 00 74 02 00 00 8...L...`...t...
88 02 00 00 9C 02 00 00 B0 02 00 00 C4 02 00 00 ........0...D...
D8 02 00 00 EC 02 00 00 00 03 00 00 14 03 00 00 X...l...........
28 03 00 00 3C 03 00 00 50 03 00 00 64 03 00 00 (...<...P...d...
78 03 00 00 8C 03 00 00 A0 03 00 00 B4 03 00 00 x...........4...
C8 03 00 00 DC 03 00 00 F0 03 00 00 04 04 00 00 H...\...p.......
18 04 00 00 2C 04 00 00 40 04 00 00 54 04 00 00 ....,[email protected]...
68 04 00 00 7C 04 00 00 90 04 00 00 A4 04 00 00 h...|.......$...
B8 04 00 00 CC 04 00 00 E0 04 00 00 F4 04 00 00 8...L...`...t...
08 05 00 00 1C 05 00 00 30 05 00 00 44 05 00 00 ........0...D...
58 05 00 00 6C 05 00 00 80 05 00 00 94 05 00 00 X...l...........
A8 05 00 00 BC 05 00 00 D0 05 00 00 E4 05 00 00 (...<...P...d...
F8 05 00 00 0C 06 00 00 20 06 00 00 34 06 00 00 x...........4...
48 06 00 00 5C 06 00 00 70 06 00 00 84 06 00 00 H...\...p.......
98 06 00 00 AC 06 00 00 C0 06 00 00 D4 06 00 00 ....,[email protected]...
E8 06 00 00 FC 06 00 00 10 07 00 00 24 07 00 00 h...|.......$...
38 07 00 00 4C 07 00 00 60 07 00 00 74 07 00 00 8...L...`...t...
88 07 00 00 9C 07 00 00 B0 07 00 00 C4 07 00 00 ........0...D...
D8 07 00 00 X...
struct
Info:
Member count: 5 (05 00 00 00
)
{
int; // 5
float; // 9
float; // 9
float; // 9
float; // 9
}
Total struct
elements: 99 (63 00 00 00
)
Data:
{ 1 , 26.0 , 10.0 , 128.0 , 0.0 },
{ 2 , 38.0 , 13.0 , 136.0 , 0.0 },
{ 3 , 48.0 , 17.0 , 136.0 , 0.0 },
{ 4 , 58.0 , 21.0 , 144.0 , 0.0 },
{ 5 , 68.0 , 24.0 , 152.0 , 0.0 },
{ 6 , 78.0 , 28.0 , 152.0 , 0.0 },
{ 7 , 90.0 , 32.0 , 160.0 , 0.0 },
{ 8 , 100.0 , 36.0 , 168.0 , 0.0 },
{ 9 , 110.0 , 40.0 , 168.0 , 0.0 },
{ 10 , 122.0 , 44.0 , 176.0 , 0.0 },
{ 11 , 132.0 , 47.0 , 184.0 , 0.0 },
{ 12 , 144.0 , 51.0 , 184.0 , 0.0 },
{ 13 , 156.0 , 55.0 , 192.0 , 0.0 },
{ 14 , 166.0 , 59.0 , 192.0 , 0.0 },
{ 15 , 178.0 , 63.0 , 200.0 , 0.0 },
{ 16 , 190.0 , 68.0 , 208.0 , 0.0 },
{ 17 , 200.0 , 72.0 , 208.0 , 5.0 },
{ 18 , 212.0 , 76.0 , 216.0 , 20.0 },
{ 19 , 224.0 , 80.0 , 224.0 , 35.0 },
{ 20 , 236.0 , 84.0 , 224.0 , 50.0 },
{ 21 , 248.0 , 89.0 , 232.0 , 65.0 },
{ 22 , 260.0 , 93.0 , 240.0 , 80.0 },
{ 23 , 272.0 , 97.0 , 240.0 , 95.0 },
{ 24 , 284.0 , 102.0 , 248.0 , 110.0 },
{ 25 , 296.0 , 106.0 , 256.0 , 125.0 },
{ 26 , 310.0 , 110.0 , 256.0 , 140.0 },
{ 27 , 322.0 , 115.0 , 264.0 , 155.0 },
{ 28 , 334.0 , 120.0 , 264.0 , 170.0 },
{ 29 , 348.0 , 124.0 , 272.0 , 185.0 },
{ 30 , 360.0 , 129.0 , 280.0 , 200.0 },
{ 31 , 374.0 , 133.0 , 280.0 , 215.0 },
{ 32 , 386.0 , 138.0 , 288.0 , 230.0 },
{ 33 , 400.0 , 143.0 , 296.0 , 245.0 },
{ 34 , 414.0 , 148.0 , 296.0 , 260.0 },
{ 35 , 428.0 , 153.0 , 304.0 , 275.0 },
{ 36 , 440.0 , 157.0 , 312.0 , 290.0 },
{ 37 , 454.0 , 162.0 , 312.0 , 305.0 },
{ 38 , 468.0 , 167.0 , 320.0 , 320.0 },
{ 39 , 482.0 , 172.0 , 328.0 , 335.0 },
{ 40 , 496.0 , 177.0 , 328.0 , 350.0 },
{ 41 , 512.0 , 183.0 , 336.0 , 365.0 },
{ 42 , 526.0 , 188.0 , 336.0 , 380.0 },
{ 43 , 540.0 , 193.0 , 344.0 , 395.0 },
{ 44 , 556.0 , 198.0 , 352.0 , 410.0 },
{ 45 , 570.0 , 204.0 , 352.0 , 425.0 },
{ 46 , 586.0 , 209.0 , 360.0 , 440.0 },
{ 47 , 600.0 , 214.0 , 368.0 , 455.0 },
{ 48 , 616.0 , 220.0 , 368.0 , 470.0 },
{ 49 , 632.0 , 225.0 , 376.0 , 485.0 },
{ 50 , 646.0 , 231.0 , 384.0 , 500.0 },
{ 51 , 662.0 , 237.0 , 384.0 , 515.0 },
{ 52 , 678.0 , 242.0 , 392.0 , 530.0 },
{ 53 , 694.0 , 248.0 , 400.0 , 545.0 },
{ 54 , 712.0 , 254.0 , 400.0 , 560.0 },
{ 55 , 728.0 , 260.0 , 408.0 , 575.0 },
{ 56 , 744.0 , 266.0 , 408.0 , 590.0 },
{ 57 , 762.0 , 272.0 , 416.0 , 605.0 },
{ 58 , 778.0 , 278.0 , 424.0 , 620.0 },
{ 59 , 796.0 , 284.0 , 424.0 , 635.0 },
{ 60 , 812.0 , 290.0 , 432.0 , 650.0 },
{ 61 , 830.0 , 296.0 , 440.0 , 664.0 },
{ 62 , 848.0 , 303.0 , 440.0 , 679.0 },
{ 63 , 866.0 , 309.0 , 448.0 , 693.0 },
{ 64 , 884.0 , 316.0 , 456.0 , 708.0 },
{ 65 , 902.0 , 322.0 , 456.0 , 722.0 },
{ 66 , 920.0 , 329.0 , 464.0 , 736.0 },
{ 67 , 940.0 , 336.0 , 472.0 , 752.0 },
{ 68 , 958.0 , 342.0 , 472.0 , 767.0 },
{ 69 , 978.0 , 349.0 , 480.0 , 783.0 },
{ 70 , 996.0 , 356.0 , 480.0 , 797.0 },
{ 71 , 1016.0 , 363.0 , 488.0 , 813.0 },
{ 72 , 1036.0 , 370.0 , 496.0 , 829.0 },
{ 73 , 1056.0 , 377.0 , 496.0 , 845.0 },
{ 74 , 1076.0 , 384.0 , 504.0 , 861.0 },
{ 75 , 1096.0 , 392.0 , 512.0 , 877.0 },
{ 76 , 1118.0 , 399.0 , 512.0 , 895.0 },
{ 77 , 1138.0 , 407.0 , 520.0 , 911.0 },
{ 78 , 1160.0 , 414.0 , 528.0 , 928.0 },
{ 79 , 1182.0 , 422.0 , 528.0 , 946.0 },
{ 80 , 1202.0 , 430.0 , 536.0 , 962.0 },
{ 81 , 1224.0 , 437.0 , 544.0 , 980.0 },
{ 82 , 1246.0 , 445.0 , 544.0 , 997.0 },
{ 83 , 1270.0 , 453.0 , 552.0 , 1016.0 },
{ 84 , 1292.0 , 461.0 , 552.0 , 1034.0 },
{ 85 , 1314.0 , 470.0 , 560.0 , 1052.0 },
{ 86 , 1338.0 , 478.0 , 568.0 , 1071.0 },
{ 87 , 1362.0 , 486.0 , 568.0 , 1090.0 },
{ 88 , 1386.0 , 495.0 , 576.0 , 1109.0 },
{ 89 , 1410.0 , 504.0 , 584.0 , 1128.0 },
{ 90 , 1434.0 , 512.0 , 584.0 , 1148.0 },
{ 91 , 1460.0 , 521.0 , 592.0 , 1168.0 },
{ 92 , 1484.0 , 530.0 , 600.0 , 1188.0 },
{ 93 , 1510.0 , 539.0 , 600.0 , 1208.0 },
{ 94 , 1536.0 , 548.0 , 608.0 , 1229.0 },
{ 95 , 1562.0 , 558.0 , 616.0 , 1250.0 },
{ 96 , 1588.0 , 567.0 , 616.0 , 1271.0 },
{ 97 , 1614.0 , 577.0 , 624.0 , 1292.0 },
{ 98 , 1642.0 , 586.0 , 624.0 , 1314.0 },
{ 99 , 1668.0 , 596.0 , 632.0 , 1335.0 }
ENCHANT_DEFAULT_STAT_FACTOR.NTF
A.4. This file contains a multiplicative factor that is multiplied directly to the enchantment bonus base value. This factor is subtracted by 1 before applied to the base value.
Raw:
05 00 00 00 05 00 00 00 09 00 00 00 09 00 00 00 ................
09 00 00 00 09 00 00 00 1E 00 00 00 01 00 00 00 ................
66 66 86 3F 66 66 86 3F CD CC 8C 3F C3 F5 88 3F ff.?ff.?ML.?Cu.?
02 00 00 00 1F 85 8B 3F 1F 85 8B 3F 33 33 93 3F .......?...?33.?
7B 14 8E 3F 03 00 00 00 E1 7A 94 3F E1 7A 94 3F {..?....az.?az.?
A4 70 9D 3F 3D 0A 97 3F 04 00 00 00 B8 1E A5 3F $p.?=..?....8.%?
B8 1E A5 3F 7B 14 AE 3F 14 AE A7 3F 05 00 00 00 8.%?{..?..'?....
71 3D AA 3F C3 F5 A8 3F 33 33 B3 3F 1F 85 AB 3F q=*?Cu(?333?..+?
06 00 00 00 29 5C AF 3F CD CC AC 3F 9A 99 B9 3F ....)\/?ML,?..9?
29 5C AF 3F 07 00 00 00 8F C2 B5 3F 85 EB B1 3F )\/?.....B5?.k1?
00 00 C0 3F E1 7A B4 3F 08 00 00 00 A4 70 BD 3F ..@?az4?....$p=?
3D 0A B7 3F 14 AE C7 3F 9A 99 B9 3F 09 00 00 00 =.7?..G?..9?....
7B 14 CE 3F B8 1E C5 3F D7 A3 D0 3F 14 AE C7 3F {.N?8.E?W#P?..G?
0A 00 00 00 0A D7 E3 3F 3D 0A D7 3F 48 E1 DA 3F .....Wc?=.W?HaZ?
9A 99 D9 3F 0B 00 00 00 D7 A3 00 40 7B 14 EE 3F ..Y?....W#.@{.n?
66 66 E6 3F D7 A3 F0 3F 0C 00 00 00 B8 1E 15 40 fff?W#p?....8..@
3D 0A 07 40 E1 7A F4 3F EC 51 08 40 0D 00 00 00 =..@azt?lQ.@....
85 EB 31 40 CD CC 1C 40 5C 8F 02 40 7B 14 1E 40 .k1@ML.@\..@{..@
0E 00 00 00 1F 85 4B 40 33 33 33 40 F6 28 0C 40 ......K@333@v(.@
E1 7A 34 40 0F 00 00 00 CD CC 6C 40 AE 47 51 40 [email protected]@.GQ@
14 AE 17 40 5C 8F 52 40 10 00 00 00 66 66 76 40 ...@\[email protected]@
7B 14 5E 40 B8 1E 25 40 29 5C 5F 40 11 00 00 00 {.^@8.%@)\_@....
EC 51 80 40 F6 28 6C 40 8F C2 35 40 7B 14 6E 40 lQ.@v([email protected]@{.n@
12 00 00 00 5C 8F 82 40 33 33 73 40 9A 99 49 40 ....\..@[email protected]@
7B 14 7E 40 13 00 00 00 CD CC 84 40 71 3D 7A 40 {[email protected].@q=z@
85 EB 61 40 00 00 88 40 14 00 00 00 3D 0A 87 40 .ka@...@....=..@
D7 A3 80 40 00 00 80 40 71 3D 92 40 15 00 00 00 W#.@...@q=.@....
AE 47 89 40 F6 28 84 40 3D 0A 8F 40 E1 7A 9C 40 .G.@v(.@=..@az.@
16 00 00 00 1F 85 8B 40 14 AE 87 40 7B 14 9E 40 .......@...@{..@
52 B8 A6 40 17 00 00 00 8F C2 8D 40 33 33 8B 40 R8&@.....B.@33.@
B8 1E AD 40 C3 F5 B0 40 18 00 00 00 00 00 90 40 8.-@Cu0@.......@
52 B8 8E 40 F6 28 BC 40 33 33 BB 40 19 00 00 00 R8.@v(<@33;@....
85 EB 91 40 AE 47 91 40 33 33 CB 40 A4 70 C5 40 [email protected].@33K@$pE@
1A 00 00 00 F6 28 94 40 CD CC 94 40 71 3D DA 40 ....v(.@ML.@q=Z@
14 AE CF 40 1B 00 00 00 66 66 96 40 EC 51 98 40 [email protected].@lQ.@
AE 47 E9 40 85 EB D9 40 1C 00 00 00 D7 A3 98 40 [email protected]@....W#.@
0A D7 9B 40 EC 51 F8 40 F6 28 E4 40 1D 00 00 00 .W.@lQx@v(d@....
48 E1 9A 40 29 5C 9F 40 14 AE 03 41 66 66 EE 40 Ha.@)\[email protected]@
1E 00 00 00 B8 1E 9D 40 48 E1 A2 40 33 33 0B 41 ....8..@Ha"@33.A
D7 A3 F8 40 30 00 00 00 44 00 00 00 58 00 00 00 W#[email protected]...
6C 00 00 00 80 00 00 00 94 00 00 00 A8 00 00 00 l...........(...
BC 00 00 00 D0 00 00 00 E4 00 00 00 F8 00 00 00 <...P...d...x...
0C 01 00 00 20 01 00 00 34 01 00 00 48 01 00 00 ........4...H...
5C 01 00 00 70 01 00 00 84 01 00 00 98 01 00 00 \...p...........
AC 01 00 00 C0 01 00 00 D4 01 00 00 E8 01 00 00 ,[email protected]...
FC 01 00 00 10 02 00 00 24 02 00 00 38 02 00 00 |.......$...8...
4C 02 00 00 60 02 00 00 74 02 00 00 L...`...t...
struct
Info:
Member count: 5 (05 00 00 00
)
{
int; // 5
float; // 9
float; // 9
float; // 9
float; // 9
}
Total struct
elements: 30 (1E 00 00 00
)
Data:
{ 1 , 1.05 , 1.045 , 1.1 , 1.07 },
{ 2 , 1.09 , 1.09 , 1.15 , 1.11 },
{ 3 , 1.16 , 1.16 , 1.23 , 1.18 },
{ 4 , 1.29 , 1.29 , 1.36 , 1.31 },
{ 5 , 1.33 , 1.32 , 1.4 , 1.34 },
{ 6 , 1.37 , 1.35 , 1.45 , 1.37 },
{ 7 , 1.42 , 1.39 , 1.5 , 1.41 },
{ 8 , 1.48 , 1.43 , 1.56 , 1.45 },
{ 9 , 1.61 , 1.54 , 1.63 , 1.56 },
{ 10 , 1.78 , 1.68 , 1.71 , 1.7 },
{ 11 , 2.01 , 1.86 , 1.8 , 1.88 },
{ 12 , 2.33 , 2.11 , 1.91 , 2.13 },
{ 13 , 2.78 , 2.45 , 2.04 , 2.47 },
{ 14 , 3.18 , 2.8 , 2.19 , 2.82 },
{ 15 , 3.70 , 3.27 , 2.37 , 3.29 },
{ 16 , 3.85 , 3.47 , 2.58 , 3.49 },
{ 17 , 4.01 , 3.69 , 2.84 , 3.72 },
{ 18 , 4.08 , 3.8 , 3.15 , 3.97 },
{ 19 , 4.15 , 3.91 , 3.53 , 4.25 },
{ 20 , 4.22 , 4.02 , 4.0 , 4.57 },
{ 21 , 4.29 , 4.13 , 4.47 , 4.89 },
{ 22 , 4.36 , 4.24 , 4.94 , 5.21 },
{ 23 , 4.43 , 4.35 , 5.41 , 5.53 },
{ 24 , 4.5 , 4.46 , 5.88 , 5.85 },
{ 25 , 4.56 , 4.54 , 6.35 , 6.17 },
{ 26 , 4.63 , 4.65 , 6.82 , 6.49 },
{ 27 , 4.7 , 4.76 , 7.29 , 6.81 },
{ 28 , 4.77 , 4.87 , 7.76 , 7.13 },
{ 29 , 4.84 , 4.98 , 8.23 , 7.45 },
{ 30 , 4.91 , 5.09 , 8.7 , 7.77 }