Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Script function for stopping a dialog running

Page: 1 of 1
 envida
02-06-2005, 6:39 PM
#1
I have dialog that runs when you open a container but I want it to run only once when you open the container the first time after that it stops.

I have everything working and the dialog runs after the container is closed but of course if I open and closed it again it will run again.

Is there a script function that I can put in the dialog that allow it run only once.

I saw in the script tutorials that there a functions for checking if a script has already run is there something similar for a dialog?
 RedHawke
02-06-2005, 7:45 PM
#2
Check this thread here. (http://www.lucasforums.com/showthread.php?s=&threadid=143536) It has examples of a script that runs only once. :D
 envida
02-06-2005, 9:12 PM
#3
I still don't get it....I assume I would have to have a script that runs when the dialog is run and also a script to run that I put in the box that determines if the dialog is available (kotor tool) right?

So if I use a script like the ones below what would go in what script? I assume that the first script will have to set a boolean value and the second script would check if it is set. Am I on the right track? And please don’t laugh of these scripts if am totally way of :p

Script to run when dialog is used:

void main()
{
int nBoolSlot = 6;

object oLocker = GetObjectByTag("footlker099");

SetLocalBoolean(oLocker, nBoolSlot, TRUE);
}

Script that determines if dialog is available:

void main()
{
int nBoolSlot = 6;

object oLocker = GetObjectByTag("footlker099");

int nCheck = GetLocalBoolean(GetFirstPC(), nBoolSlot);

if (nCheck) { return; } //exit if TRUE

}
 RedHawke
02-07-2005, 2:55 AM
#4
Here is a script to attach to the dialogue branch so it will spawn a placeable at specified coordinates and put some upgrade items into it;

void main() {

float x=0.00f;//These are where
float y=0.00f; //you enter the
float z=0.00f; //whereami coordinates
float r=0.00f; //placeable orientation N S E W
vector MyVec = Vector(x,y,z); //line 1
location MyLoc = Location(MyVec, r); //line 2
object oContainer=CreateObject(OBJECT_TYPE_PLACEABLE, "PutTagHere", MyLoc); //line3
CreateItemOnObject("g_i_upgrade001", oContainer);
CreateItemOnObject("g_i_upgrade002", oContainer);
CreateItemOnObject("g_i_upgrade003", oContainer);
CreateItemOnObject("g_i_upgrade004", oContainer);
CreateItemOnObject("g_i_upgrade005", oContainer);
CreateItemOnObject("g_i_upgrade006", oContainer);
CreateItemOnObject("g_i_upgrade007", oContainer);
CreateItemOnObject("g_i_upgrade008", oContainer);
CreateItemOnObject("g_i_upgrade009", oContainer);

SetLocalBoolean(oContainer,3,TRUE); //This line is the one that closes the door.
}

And here is the script you put in the dialogue branch to see if it is available;

int StartingConditional() {
return (!GetLocalBoolean(GetObjectByTag("PutTagHere"),3));
}

This is basically the same as tk102's Zaalbar finds items mod. Once the Local Boolean is set to a 3 the dialogue will not show again. :D

You don't have to use the number 3 you can use any number 1 to 7 I believe. ;)
Page: 1 of 1