PDA

View Full Version : [TSL]Make a certain dialog node be accesable once


Mindtwistah
07-23-2007, 01:10 PM
How do I make that? For example, if I want a dialog node to be accesable in Miras dialog file that she uses on Ebon Hawk. I want to tell her something and after that she will never want to speak of it again. So it will only be accesable once. How do I do that?

swfan28
07-23-2007, 04:23 PM
For TSL the best way to do this would be by using local booleans. This tutorial (http://www.lucasforums.com/showthread.php?t=173587) contains instructions about using them. For KotOR you'll have to use global booleans. Use a starting conditional that makes the node available only if the boolean is false and use a script that changes it to true when the node is played. TSL contains some handy scripts for handling local variables in dialog.

Leviathan
07-23-2007, 05:39 PM
Fine, although I have never acquainted myself with specificities up to Star Wars™ : Knights of the Old Republic II® - The Sith Lords' Scripting Heritage, I presume the undermentioned Neverwinter Nights Source Scripts could get your plan to work expectedly. Nonetheless, please do not forget that these ones must be logically linked to the Dialogue file(s) you are working on, which merely intends that the first *.NSS Script have to be enabled while selecting a definite dialog option, whereas the next one must determine whether this same entry is viewable. Furthermore, the Boolean Values you might introduce can have to be defined inside particular 2D Array files – Because of the fact the current method is above all aiming the very first Star Wars™ : Knights of the Old Republic® Title -, but I assume other LucasForums© members will appear way more helpful to you with this than I. In the meanwhile, here they are :

Script having to be executed with the proper dialog option :

main void()
{
SetGlobalBoolean("[Your Boolean's Label]", TRUE);
}


Script verifying whether the willed condition is still valid :

int StartingConditional()
{
return(GetGlobalBoolean("[Your Boolean's Label]") == FALSE);
}