From all I gathered this line should be codded right. But why when I try to compile it, it gives me this?
That line is incorrect. A StrRef is an integer (number) value, not a string. Valid arguments include 100, 10000, 12345. A string reference (StrRef) is simply an index to a string in the talk table (dialog.tlk).
Now, with
WeiDU, you can include a string value (enclosed in ~s or %s) that will cause
WeiDU to add the string to dialog.tlk and then replace the string with the tlk index (say it appended the string as @75000, it would then compile the script as DisplayStringHead(Myself,75000)). However, if you need this functionality, the script must be compiled with
WeiDU.
2. When I try to open the hand-written scripts with NE, in gives me this. Yep, I know I saved with mistakes, but I don't think it should be like this.
What is NE? If you mean Near Infinity, then a script cannot be compiled if it has errors (it will just compile garbage since it can't correctly parse the input), although you can force it to do so. If it tells you there are errors in the script when you're trying to compile, you should fix the errors before continuing.
In this instance, if that is what you're getting when viewing the script in
NI (it's decompiled from the actual BCS script on-the-fly), then the BCS is hopelessly corrupt (the script sources, the BAF files, are not saved when compiling and saving, so if you don't have a copy elsewhere, you'd have to recreate the entire script depending on how much is left in the BCS code).
RESPONCE#100 -> Missing parenthesis
The correct command is RESPONSE (with two S's and no C) followed by a space, the pound (#), and the numeric weight.
4. No exactly CutScene question: What are the *exact* lines I need to enter in WeiDU.exe in 'Enter arguments', to decompile .DLG files to .D files? I tried commands written in WeiDU documentation and PPG tutorials (with --out Override command), but the maximum I got is a Unknown 'weidu' file which displays 'file ---' in the 'Type' section.
You have to invoke
WeiDU with the executable name (if
WeiDU.exe is in your Baldur's Gate II folder, then you need to navigate to that folder in the DOS prompt and run
WeiDU.exe path\to\dialogue --options). If the dialogue is located in the keyfile (it's a vanilla dialogue from the game), then you can omit the path and use just the dialogue filename and have
WeiDU locate it on its own (as the readme example, "
WeiDU.exe SCSARLES.DLG --out Override" will work because
WeiDU will look for and find SCSARLES.DLG from the biffs if it can't otherwise be found, in this case unless there's a file named SCSARLES.DLG sitting directly in the Baldur's Gate II folder).
5. Why in 'Class.IDS' 'Mage' is typed properly but instead of 'MAGE_ALL' it's 'LONG_BOW'? ???
A script compiles largely to a series of numbers (you can open a BCS file in a text editor or view the code tab in Near Infinity to see). With BioWare's supplied CLASS.IDS, the value for MAGE_ALL and LONG_BOW are the same (202), so the compiler has to pick one of the symbols when resolving.
WeiDU will pick always the last symbol for a value in the IDS file, and Near Infinity will pick always the first (due to the way they parse and cache these files). You can add a "202 MAGE_ALL" line to the top and bottom of the file to ensure that they always decompile as MAGE_ALL, but MAGE_ALL and LONG_BOW will compile identically with the vanilla CLASS.IDS (they both compile to 202, so they're functionally equivalent).