69 lines
1.6 KiB
Plaintext
69 lines
1.6 KiB
Plaintext
//Script Name: invroom_teleport
|
|
//////////////////////////////////////////
|
|
//Created by: Genisys / Guile
|
|
//ON: 7/29/08
|
|
/////////////////////////////////////////
|
|
/* **Notes**
|
|
|
|
This goes in the Action Taken, on the
|
|
conversation line which allow PC's to
|
|
organize thier inventory. This script
|
|
teleports them to the inventory room,
|
|
where they can quickly sort thier
|
|
inventory.
|
|
*/
|
|
//////////////////////////////////////////
|
|
string sDeny;
|
|
|
|
|
|
//Main Script
|
|
void main()
|
|
{
|
|
|
|
object oPC = GetPCSpeaker();
|
|
|
|
|
|
//If the system is in use, don't allow anyone to enter!
|
|
if (GetLocalInt(GetModule(), "INVUSE")== 1)
|
|
{
|
|
sDeny="Inventory Room In Use, Try again later.";
|
|
|
|
SendMessageToPC(oPC, sDeny);
|
|
|
|
return;
|
|
}
|
|
|
|
//Otherwise set that the room is in use!
|
|
//This allows the PC into the room!!
|
|
//Note this variable is removed when the PC leaves the area!
|
|
SetLocalInt(GetModule(), "INVUSE", 1);
|
|
|
|
|
|
//This allows the PC into the room!
|
|
//If the PC does not have this variable, they are automatically teleported out!
|
|
SetLocalInt(oPC, "INVROOMUSER", 1);
|
|
|
|
object oTarget;
|
|
location lTarget;
|
|
oTarget = GetWaypointByTag("isystemway");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
|
|
|
|
SetLocalLocation(oPC, "inv_loc", GetLocation(oPC));
|
|
|
|
AssignCommand(oPC, ClearAllActions());
|
|
|
|
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
|
|
|
|
oTarget = oPC;
|
|
|
|
int nInt;
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oTarget);
|
|
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oTarget));
|
|
|
|
}
|