NearInfinity: Attributes marked as "Unknown"
ljbo
Member Posts: 177
There are many entries marked as "Unknown" in NearInfinity (I'm using version 1.33 beta 20). For example, opening the form for the "Seeking Sword" (SW1HSEEK.ITM), I see one of the "Global Effects" is "Modify Attacks per Round (1)". Clicking "View/Edit", I get another form featuring 4 "Unknown" attributes, and those Unknowns seem to be those containing the information about the modified attacks per round. Is it because NearInfinity is not fully compatible with BG:EE? Or have I missed a step when installing/launching NearInfinity?
0
Comments
Sorry, I thought I found the correct one.... use the one from the thread linked below.
I was trying to customize a splint mail armor, so I made a copy of ICHAN04.ITM and started editing it.
Dear God.
It took me a while to understand the AC bonuses. The basic bonus and then the modifiers vs the different type of weaponry (slashing, etc...). That's all in the unknown fields.
Even editing the name and description was not so easy. NI would sometimes not let me create new name StringRef #, so I had to override some that I deemed useless in the game.
And then I was trying to play around and associated with the armor, both a spell effect while equipped and a spell ability via quick slot. I still have not managed. I started creating "new ability" and it completely messed up my effects fields, I had to start all over again. So I have abandonned the idea of having a special spell cast ability associated with the armor for now. But even "spell while equipped", I cannnot figure out how to make it work. For instance "Chant while equipped", I can see the Chant selection (131) in the effect list, I set probability 1 to 100, the timing mode to Instant while equipped (2) and all other fields untouched - it does not work.
If anyone can provide a few tips. I am quite sure I have to fiddle with some of the Unknown fields but have no clue how.
NI is very poorly suited for editing file structures (adding and removing bytes/abilities/effects/etc). I also would not stare myself blind on a field just because it is labelled "unknown" in NI. Given that modding the Infinity engine is an exercise in reverse engineering, "unknown" generally means that no use has been found for the field, which today mostly means the field is not used by the engine. There are some exceptions, where NI can sometimes label e.g., the parameter fields of an effect "unknown" but that does mostly does not happen.
If you want to make items with a GUI program, I would suggest DLTCEP. For adding a description, you should use WeiDU (DLTCEP can probably write to the TLK as well, but WeiDU is much more suited for the job, especially since a new patch overwrites any local changes you have made). I'll be covering how to do this with WeiDU in a forth-coming sequel to this.
It is all much more complex and time consuming than I had originally assumed, even when creating a simple single item. I might just leave it to people for whom all this is so naturally easier.
In short, if you make a copy of "Baldur.exe" in the 00766 folder and rename it "bgconfig.exe", NI will be able somehow to get more labels.
For example, before doing that the proficiencies were shown as hexadecimal codes instead of meaningful names.
However, github has done away with file uploads, so I'll settle for attaching a new build here.
Thanks for this updated version!
I create an item. I edit its "Identified Name" field. For this I need a StringRef#. Not wanting to erase an already used StringRef#, I create a new one (#32048 in this case). All is properly saved and set in NI, so I then CLUA the item in game -> blank Item Name. However, I tested using an existing StringRef# (I tried with #32030) and the Identified Name displays properly in-game.
It seems that the game does not recognizes newly created StringRef# under NI. In which files are they stored?
Adding custom names/descriptions in game requires modification of the dialog.tlk file. For that, as indicated in a previous post of @Wisp in this thread, it is better to use DLTCEP or even better WEIDU. Check his post above for the links.
BG2 is detected by the presence of baldur.exe and bgconfig.exe, while BGEE is detected by baldur.exe and "movies/deathand.wbm".
I haven't yet used DLTCEP or WEIDU myself, so take my words with caution, but, if I understand correctly,
1) WEIDU requires coding in order to automatise the changes. This approach makes possible to handle several mods affecting the same files (e.g. dialog.tlk) at once. It also makes things easier when a new patch is released.
2) If you're looking for something more user friendly, maybe you can try DLTCEP. The only problem is that you will likely have to manually redo your modifications to files like dialog.tlk each time a new patch is released or a third party mod is installed.
In NearInfinity, go to Edit->Dialog.tlk. NI will recommend that you make a backup of your dialog.tlk, it is best to do so! Now at the bottom of the window, click the "Add" button. A new StrRef will be added to the end of your Dialog.tlk file. You will probably want the "Entry type" under Attributes set to "Standard message (3)". Now add whatever text you want. Take note of the StrRef number at the top left, because you will need set your item to use this vale, and then click the "Save" button.
Think of WeiDU as a command line compiler and patcher, while DLTCEP is an IDE - if you know program developing terms.
Is there a way to save it without distorting it?