FANDOM


Description Edit

I had an area in a module where I needed to do something similar to the end of the Charwood quest, but I wanted a clean and simple script to do it. I found using an Area Transition trigger easier than using a door transition for this, although the programmer in me wants to work on that.

Notes Edit

Use these scripts if:

  • you have a puzzle in an area and want to change the appearance of the area
  • but, you don't want the player to be able to re-enter the old area once they've solved the puzzle
  • yet you don't care if they re-enter the new area.

You first build the old area, then make a copy of it and name it something different. Then put a unique waypoint in the old area (WP_AT_OLDAREA), and another one in the copied and modified area (WP_AT_NEWAREA). Although of course you can name them anything you want -- just make sure the scripts accurately reflect the waypoints.

To use them, have the puzzle set the variable to the module.

The Scripts Edit

On Click script of the Area Transition Edit

//
// Script: cond_area_trans1.nss
// Author: Trinity
// Date: 20 November 2002
//
// This script goes into the On Click script for the 
// area transition trigger. Some people click on
// AT triggers.
//
void main()
{
// Assign the variables
object oPC = GetClickingObject();
object oWP = GetWaypointByTag("WP_AT_NEWAREA");
object oWP1 = GetWaypointByTag("WP_AT_OLDAREA");
int iVar1 = GetLocalInt(GetModule(), "iVar");
// Now we test to make sure at iVar1 is what you need to
// go into the new area. If it isn't, you go to the old.
if (iVar1 != number)
{
    AssignCommand(oPC, JumpToObject(oWP1));
}
else
{
    AssignCommand(oPC, JumpToObject(oWP));
}
}

The On Enter script slot of the area transition Edit

//
// Script: cond_area_trans2.nss
// Author: Trinity
// Date: 20 November 2002
//
// This script goes into the On Enter script for the 
// area transition trigger. Some people just enter 
// AT triggers.
//
void main()
{
// Assign the variables.
object oPC = GetEnteringObject();
object oWP = GetWaypointByTag("WP_AT_NEWAREA");
object oWP1 = GetWaypointByTag("WP_AT_OLDAREA");
int iVar1 = GetLocalInt(GetModule(), "iVar");
// Now we test to make sure at iVar1 is what you need to
// go into the new area. If it isn't, you go to the old.
if (iVar1 != number)
{
    AssignCommand(oPC, JumpToObject(oWP1));
}
else
{
    AssignCommand(oPC, JumpToObject(oWP));
}
}

Trinity

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.