PC welcome Sign
From NWNWiki
Contents |
[edit] PC welcome Sign
[edit] What it Does
This little script I use in the OnUsed part of a Welcome Sign in the Module Entry Area so that my players will have an introduction to the module.
It speaks in Floating text to make the impression that the reader is in fact reading out loud. The ShowFactionMembers part will make it possible to withhold parts of the read text so that the player can - in effect - mumble or whisper to herself.
I use FloatingTxt because the effect of someone speaking out loud is so much better than in the other ways of displaying text. Also I don't have any anoying brackets or names of speakers.
I use short lines to make it easier to read and when read in zoomed out conditions it works great.
I also use this code to have several NPC's talking amongst themselves. Changing the creature tag makes the floating text appear above the appropriate speaker
[edit] The Script
// script name p_welcome_sign
// is put in the OnUsed on a sign object
// in the prelude area of a module
//
// Created by Ayath The Loafer
// august 2002
//
void Ftxt(object oCreature, string sTextToFloat, float fSeconds, int bShowFaction=TRUE)
// this function displays floating text (sTextToFloat)
// above a creatures (oCreature) head where it fades out.
// Will it show to faction members? (sShowFaction) TRUE or FALSE
// How long pause after the text for next action (fSeconds)
{
ActionDoCommand(FloatingTextStringOnCreature(sTextToFloat,oCreature,bShowFaction));
ActionWait(fSeconds);
}
// function Ftxt ends here
void main()
{
object oSp = GetLastUsedBy();
// object oSP=GetObjectByTag("xxx");
// the above inserted somewhere in the text should make it possible
// to have NPC's speak some of the texts.
// remember to change back to
// object oSp = GetLastUsedBy();
// to get the PC to speak the next line
ActionDoCommand(Ftxt(oSp,"This module has been created by",1.0,TRUE));
ActionDoCommand(Ftxt(oSp,"Ayath The Loafer and Taygrin The Dwarf",1.0,TRUE));
ActionDoCommand(Ftxt(oSp,"during the fall of 2002",2.5,TRUE));
ActionDoCommand(Ftxt(oSp,"The module is based on",1.0,TRUE));
ActionDoCommand(Ftxt(oSp,"The Tale of Three-Fingers",1.0,TRUE));
ActionDoCommand(Ftxt(oSp,"a book by",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"T. D. Joy",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Published in 1993",2.5,TRUE));
ActionDoCommand(Ftxt(oSp,"(whispers) Ah, this part is interesting",1.0,FALSE));
ActionDoCommand(Ftxt(oSp,"The following people (amongst others)",1.0,TRUE));
ActionDoCommand(Ftxt(oSp,"have supplied help, inspiration and scripts:",2.0,TRUE));
ActionDoCommand(Ftxt(oSp,"The guys at Bioware",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Timo (Lord Gsox) Bischoff",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Celowin aka James Foxglove",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Don Moar",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Ralf Schemmann",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Dscaper",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"Brett Lathrope (aka Zinderin)",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"and",1.5,TRUE));
ActionDoCommand(Ftxt(oSp,"James A Beggs",2.5,TRUE));
}
[edit] Footnote
All in all. It works for me. Hope it works for you.
The plan is now to get the camera to shift towards the speaking creature. If a way is found to delay the actual disapperance of the individual line or even make the FloatTxtPath a bit longer it would be really great.
