Id Tool 6.3_02 (Hotfix) by IceTrailer
Instruction
This tool offers an efficient way to generate id lists from your .NOS files. It is possible to produce lists containing act descriptions, items, maps, monsters (NPCs) and skills.
The upcoming version is currently under development in C# .NET and will go
open source when its progress is far enough and when most things are implemented.
The GUI version will not be maintained anymore since it will be replaced with the upcoming version release but you can still download and use it.
It is considered to start a new GUI project on top of the CLI tool.
How to use
To get started, configure the
preferred language (English/German) and
design layout (light/dark) initially. Once you configured, switch over to the
"List creator" page and select
the desired id list type (e. g.
"Item").
Now you have
two ways to continue. If you
only like to generate usual id lists
(with the scheme "<id> <translation>"), just
click "Extract". But you may also
try out the new personalization tool, just pick
any items you would like to add to scheme from the
right element box or if you would like to get any supported information, click
"Add all" button. Now click
"Extract" and wait some time.
The generating duration depends on the id list type you selected and your computer specs. On my computer it normally takes 1-2 seconds maximum.
Download (x64)
The download is located below the thread, as attachment.
Put content of Qt_Required_Files.zip into the folder of the extracted Nt_Id_Tool_XX.zip.
To run this software, Visual C++ 2017 x64 Redistributable is needed, it can be found [Only registered and activated users can see links. Click Here To Register...].
- Added new item element to extract: level requirement!
- Fixed filter bug
- Added new filter for item types (beta, better filter system now) please report bugs here!
- some performance improvements
- reimplemented sorting
- Added new file output options (now txt, csv, html) - ([Only registered and activated users can see links. Click Here To Register...])
- possibility to change ui language
- kind of AI for detecting .NOS files
- new UI, light and dark design
- already decrypted data are not needed anymore (see Instruction)
- personalized extraction and changing the output format
Upcoming features
New CLI version
- new C# .NET Core console project (will replace GUI), good for automation tasks
- custom parsing definitions with if then conditions (input e.g. via types/item.json*)
- .NOS file caching
- open source access with option to contribute (following soon!)
new item editor - will do later
*
Custom parsing definitions (with conditions) example
If there are values inside a
.dat file of
NSgtdData.NOS, you can define this as parsing definition inside the dedicated file types/<type>.json. This currently works for the types item, map_id, map_point and monster.
The parameter is
never zero and will hereby start with 1.
Default parsing definition
The default parsing definition looks like the following JSON string, e.g. file types/item.json
Code:
{
"Identifier": "isUnisex",
"Name": "IsUnisex",
"Description": "Represents the boolean value whether the item is unisex",
"LineHeader": "FLAG",
"Parameter": 16
},
which means, translated to human language:
Quote:
|
If the parser reaches a line, beginning with <LineHeader> (FLAG), take the 16th parameter of it as value for a new parsing definition with identifier "isUnisex".
|
Simple If Then parsing definition
The
simple If Then parsing definition looks like the following JSON string, inside e.g. file types/item.json
Code:
{
"Identifier": "equipmentType",
"Name": "EquipmentType",
"Description": "Represents the equipment type of the item e.g. 0 = MainWeapon",
"LineHeader": "INDEX",
"Parameter": 3,
"Condition": {
"IfValue": "-1",
"ThenValue": "0"
}
}
which means, translated to human language:
Quote:
If the parser reaches a line, beginning with <LineHeader> (INDEX), take the third parameter of it as value for a new parsing definition with identifier "equipmentType".
If the value is "-1", then use value "0" instead.
|
Enhanced If Then parsing definition
The
enhanced If Then parsing definition looks like the following JSON string, inside e.g. file types/item.json
Code:
{
"Identifier": "sex",
"Name": "Sex",
"Description": "Represents the value sex requirement with Male=0, Female=1, Unisex=2",
"LineHeader": "FLAG",
"Parameter": 21,
"Condition": {
"Identifier": "isUnisex",
"IfValue": "1",
"ThenValue": "2"
}
}
which means, translated to human language:
Quote:
If the parser reaches a line, beginning with <LineHeader> (FLAG), take the 21th parameter of it as value for a new parsing definition with identifier "sex".
If the value of (another) parsing definition with identifier "isUnisex" is "1", then use value "2" instead.
|
Allowed Values parsing definition
The
Allowed Values parsing definition looks like the following JSON string, inside e.g. file types/item.json
Code:
{
"Identifier": "levelMinimum",
"Name": "LevelMinimum",
"Description": "Represents the level minimum to use the item e.g. 85",
"LineHeader": "DATA",
"Parameter": 1,
"Condition": {
"Identifier": "itemType",
"AllowedValues": [ "0", "1", "2", "3" ],
"DefaultValue": "0"
}
}
which means, translated to human language:
Quote:
If the parser reaches a line, beginning with <LineHeader> (DATA), take the first parameter of it as value for a new parsing definition with identifier "levelMinimum".
If the value of (another) parsing definition with identifier "itemType" is not in [ 0, 1, 2, 3 ], then use default value 0 instead.
|
Notes:
One goal of the project is to find the meaning of any .dat file parameter.
So, the upcoming releasees will contain predefined custom parsing definitions.
Currently, the following
.dat files do support custom parsing definitions
Item, MapIdData, MapPointData, Monster.
Contributions are welcome and I will inform you as soon as you can do something for the project.
Ideas, suggestions can then be created as issue in the code repo.
Currently, if you have any idea or suggestions, feel free to send me or post it as thread answer. :)