87 lines
3.3 KiB
Plaintext
87 lines
3.3 KiB
Plaintext
//::////////////////////////////////////////////////////////////////////////////
|
|
//::
|
|
//:: Script Name: tele_handler_e
|
|
//::
|
|
//:: Use: This script is used as a teleportation system handler whereas the
|
|
//:: player will be teleported to multiple places defined by the variable on
|
|
//:: the placeable used to teleport the player. This eliminates the need for
|
|
//:: a custom teleportation script for each teleportation. This script is based
|
|
//:: on conversational teleportation, there is another script "teleport_handler"
|
|
//:: based on teleportation from an OnUsed event from a placeable, etc. This
|
|
//:: script is based on player OnEnter event, "tele_handler_c" is based on
|
|
//:: GetPCSpeaker event.
|
|
//::
|
|
//:: Created By: Birdman076
|
|
//::
|
|
//:: Created On: July 27, 2009
|
|
//::
|
|
//:: Note: This script will check for a variable defined on the trigger used
|
|
//:: to teleport the player to a waypoint. If the variable is not defined on
|
|
//:: the placeable nothing will happen. This will only work for a player, not a
|
|
//:: whole party.
|
|
//::
|
|
//::////////////////////////////////////////////////////////////////////////////
|
|
string sSayThis;
|
|
int iTalkVolume = TALKVOLUME_TALK;
|
|
int iTalkFlag = 0;
|
|
#include "nw_i0_tool"
|
|
location lTarget;
|
|
object oTarget;
|
|
//Put this script on conversation
|
|
void main()
|
|
{
|
|
object oPC = GetEnteringObject();
|
|
|
|
//check to make sure we are a player
|
|
if (!GetIsPC(oPC)) return;
|
|
|
|
//Start of 1st set of conditions.
|
|
//This first set of conditions will do the following: check for an integer stored
|
|
//On the placeable in question. It will then get the waypoint by tag which we have
|
|
//created and placed in the area we wish to send the player. It will verify it is valid
|
|
//if it is valid we will then clear all actions of the player and jump them to the
|
|
//location with some visual effects, in this case the "unsummon" effect.
|
|
if (GetLocalInt(OBJECT_SELF, "UNDER_WP2_TELE")== 1)
|
|
{
|
|
oTarget = GetWaypointByTag("UNDER_WP2");
|
|
lTarget = GetLocation(oTarget);
|
|
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
|
|
AssignCommand(oPC, ClearAllActions());
|
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
|
DelayCommand(1.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
|
|
//End 1st set of conditions
|
|
|
|
//Start 2nd set of conditions same template as 1st
|
|
}
|
|
else if (GetLocalInt(OBJECT_SELF, "SOMEVAR")== 1)
|
|
{
|
|
if (GetNearestObjectByTag("TAER_PRLCHPRT", OBJECT_SELF) == OBJECT_INVALID){
|
|
|
|
if((!HasItem(GetEnteringObject(), "TAER_CRUWL")) == FALSE){
|
|
object oItemToTake = GetItemPossessedBy(GetEnteringObject(), "TAER_CRUWL");
|
|
DestroyObject(oItemToTake);
|
|
DestroyObject(oItemToTake);
|
|
DestroyObject(oItemToTake);
|
|
object oTarget = GetObjectByTag("LCPORTCRT");
|
|
object oPC = GetEnteringObject();
|
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
|
CreateObject(OBJECT_TYPE_PLACEABLE, "lichportalz", GetLocation(oTarget), TRUE);
|
|
}
|
|
|
|
else {
|
|
object oPC = GetEnteringObject();
|
|
sSayThis = "I sense great power here. I wonder how I can release it?";
|
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
|
AssignCommand(oPC, ActionSpeakString(sSayThis, iTalkVolume));}}
|
|
|
|
else {
|
|
object oItemToTake = GetItemPossessedBy(GetEnteringObject(), "TAER_CRUWL");
|
|
DestroyObject(oItemToTake);
|
|
DestroyObject(oItemToTake);
|
|
DestroyObject(oItemToTake);}
|
|
//End 2nd set of conditions
|
|
}
|
|
}
|
|
|