I have a script written for some dialog. I attach it to a character, go to talk to them, and get:
Error
Error
Error
Error
Error being where the text should be. This is obviosly caused by the script not being able to find the .msg file with the text in it.
How are these two files connected? At first I thought it was the name, and the .msg had to have the same name, but I don't think thats right. Any help?
The connection between *.ssl and *.msg
- Foot Soldier
- SDF!
- Posts: 5
- Joined: Thu Oct 14, 2004 8:02 pm
This usually happens when your dialog parameters point to the wrong script ID or the text parameter points to an invalid line number.
If the script is new, you need to find the ID number which corresponds to the script. Second in the dialog, you have to change the script ID parameter to it's corresponding ID. For example:
I have a complete list of all the scripts with their corresponding IDs somewhere, I'll see if I can dig it up and post it when I find it.
If the script is new, you need to find the ID number which corresponds to the script. Second in the dialog, you have to change the script ID parameter to it's corresponding ID. For example:
Here 50 corresponds to the script ID, if you look at script.lst under data/scripts you'll find this corresponds to Vic.int.op_gsay_reply(50, 192);
op_giq_option(4, 50, 193, @Node994, 50);
I have a complete list of all the scripts with their corresponding IDs somewhere, I'll see if I can dig it up and post it when I find it.
- Foot Soldier
- SDF!
- Posts: 5
- Joined: Thu Oct 14, 2004 8:02 pm
I am using macros for conversation. In the Reply() macro, it uses NAME as the line number for the msg file, which is defined as SCRIPT_BLAH, which in turn is defined in SCRIPTS.H as 1304.
Now looking at the .lst file, the msg file is actually on line number 1309, but neither defining the script in SCRIPTS.H as 1304 or 1309 changes it. I still get error where the text should be.
Edit: Also, I see no .msg files mentioned anywhere is the script or headers. How does it know what msg file to load?
Edit2: With some tinkering, I got it to work. I am not sure WHY it worked, so some insight on my origional problem would still be good.
What I did, was in the macro NOption(x, y, z) I had the last varible set as 004. In the definition, this is IQ level or something. When I change this to 001, it worked. Why is this?
Now looking at the .lst file, the msg file is actually on line number 1309, but neither defining the script in SCRIPTS.H as 1304 or 1309 changes it. I still get error where the text should be.
Edit: Also, I see no .msg files mentioned anywhere is the script or headers. How does it know what msg file to load?
Edit2: With some tinkering, I got it to work. I am not sure WHY it worked, so some insight on my origional problem would still be good.
What I did, was in the macro NOption(x, y, z) I had the last varible set as 004. In the definition, this is IQ level or something. When I change this to 001, it worked. Why is this?
Last edited by Foot Soldier on Thu Oct 14, 2004 9:53 pm, edited 1 time in total.
I've never used macros for conversation so I can't really help you there, I find the giq dialog command more useful.Foot Soldier wrote:I am using macros for conversation. In the Reply() macro, it uses NAME as the line number for the msg file, which is defined as SCRIPT_BLAH, which in turn is defined in SCRIPTS.H as 1304.
Now looking at the .lst file, the msg file is actually on line number 1309, but neither defining the script in SCRIPTS.H as 1304 or 1309 changes it. I still get error where the text should be.
Edit: Also, I see no .msg files mentioned anywhere is the script or headers. How does it know what msg file to load?
Edit2: With some tinkering, I got it to work. I am not sure WHY it worked, so some insight on my origional problem would still be good.
What I did, was in the macro NOption(x, y, z) I had the last varible set as 004. In the definition, this is IQ level or something. When I change this to 001, it worked. Why is this?
As to how it knows what msg file to load; you were right about msg files being named after the script files, what you didn't know is that the script ID is used as the identifier for the msg file as well. So in the example I provided earlier: 50 corresponds to Vic.int, this means it will use Vic.msg as the text file.
- Foot Soldier
- SDF!
- Posts: 5
- Joined: Thu Oct 14, 2004 8:02 pm