Script refuses to read description text from .msg

µlight

First time out of the vault
As per VTL's tutorials, I wrote a script,
Code:
#include "headers\define.h"

#define NAME                    SCRIPT_ZSWIRE

#include "headers\command.h"

procedure start;
procedure description_p_proc;
procedure look_at_p_proc;

procedure start begin
end

procedure description_p_proc begin
   script_overrides;
   display_msg(mstr(100));
end

procedure look_at_p_proc begin
   script_overrides;
   display_msg(mstr(101));
end
added it to SCRIPTS.H
Code:
#define SCRIPT_ZSWIRE	        (1304)
and SCRIPTS.lst,
Code:
zswire.int      ; Usermap cave wire script			    # local_vars=1
created a .msg with the same name as the .int in text/english/game
Code:
{100}{}{This ancient bundle of cables appears to have been attached to the cave ceiling at one point.}
{101}{}{This is a large bundle of cables.}
compiled it and copied the .int to fallout2/data/scripts, and loaded the map into mapper. The problem is that when I go into game mode, I get "Error" instead of the flavor text I wrote. What am I doing wrong?

Edit: Tried run_mapper_as_game=1. Still nothing.

Edit: SCRIPTS.lst and SCRIPTS.h do not line-for-line match. I'm using Killap's bug patch, the children patch, and the FO2 Official Patch. Going through .h and manually synching it up with .lst.

Edit: Even with SCRIPTS.h modified to include the following code:
Code:
#define SCRIPT_MIMIRDOR         (1304)  // mimirdor.int    ; Miria's Bedroom Door
#define SCRIPT_MIDAVDOR         (1305)  // MIDavDor.int    ; Davin's Bedroom Door
#define SCRIPT_SIPTBOX2         (1306)  // SIPtbox2.int    ; box where Merk hides your car trunk stuff
#define SCRIPT_SFSHUTL1         (1307)  // sfshutl1.int    ; map script to Hubologist entrance (shuttle)
#define SCRIPT_PATCHINF         (1308)  // patchinf.int    ; patchinf
#define SCRIPT_SCDMYMK          (1309)  // scdmymk.int     ; Dummy script for Merk and his guard
#define SCRIPT_KCVICDOR         (1310)  // kcvicdor.int    ; Door to Vic's house in Klamath
#define SCRIPT_SIMRKSTR         (1311)  // simrkstr.int    ; Script to stairs leading to Merk's basement
#define SCRIPT_ZSWIRE           (1312)  // ZSWIRE.int        ; Usermap cave entrance wires
the script still won't recognize the .msg, and I still get the Error.
 
Check your config file for the game and the mapper, make sure they point to the right folders(which should be DATA\SCRIPTS for scripts.lst and DATA\TEXT\ENGLISH\DIALOG for msg file) and make sure to get rid of patch000.dat
 
µlight said:
created a .msg with the same name as the .int in text/english/game
I would say your problem is that you didn't put your *.msg file into ...data\text\english\dialog.
 
Darek said:
µlight said:
created a .msg with the same name as the .int in text/english/game
I would say your problem is that you didn't put your *.msg file into ...data\text\english\dialog.

AhFuckYall, thanks for your help.

Darek, you were completely right. Since /english/game had pro_scen.msg, I assumed that's where a dialogue file for scenery would go. Thanks for solving this.

Also, would you (or anyone else reading this) happen to know if there are any drawbacks or unintended consequences to using a script on an existing prototype (like I just did with QIWires) as opposed to making a new prototype with the same FRMID but different ObjectID/TextID/ScriptID?
 
Not really, if you code the script right. Always do script-overrides for description and look so the script overrides the proto. But remember if you do it to a critter, to update scrname for names in battle. Just NEVER use a hero critter proto, male or female. It fucks with things. And remember that you need to make a new critter proto if you want it to have a specific Hp(I think, it's been a few years since I've actually scripted)
 
Back
Top