PRC8/trunk/scripts/prc_telep_mrkloc.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

66 lines
2.2 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Mark location for teleporting
//:: prc_telep_mrkloc
//:://////////////////////////////////////////////
/** @file
Script for storing the user's current location
as a teleport target location.
*/
//:://////////////////////////////////////////////
//:: Created By: Ornedan
//:: Created On: 19.06.2005
//:://////////////////////////////////////////////
#include "prc_alterations"
//#include "prc_inc_listener"
#include "prc_inc_chat"
#include "prc_inc_teleport"
void Aux(object oPC, location lToStore);
void main()
{
object oPC = OBJECT_SELF;
// To simplify the code and in order to be able avoid the "Aargh! Concurrency!"-effect, do not allow the user to
// mark one location while the name query for another is still pending.
if(GetLocalInt(oPC, "PRC_Teleport_MarkingLocation"))
{
SendMessageToPCByStrRef(oPC, 16825296); // "A location is already being marked, please wait."
return;
}
location lToStore = GetLocation(oPC);
float fTime = GetLocalFloat(oPC, "PRC_Teleport_NamingListenerDuration");
if(fTime > 0.0f)
{
//SpawnListener("prc_telep_lname", lToStore, "**", oPC, fTime);
AddChatEventHook(oPC, "prc_telep_lname", fTime);
DelayCommand(fTime, Aux(oPC, lToStore));
}
else
{
DelayCommand(0.0f, Aux(oPC, lToStore));
}
// Set the name of the location to be "Unnamed". If the user speaks a name, it will override this.
SetLocalString(oPC, "PRC_Teleport_LocationBeingStored_Name", GetStringByStrRef(16825297)); // "Unnamed"
}
void Aux(object oPC, location lToStore)
{
string sName = GetLocalString(oPC, "PRC_Teleport_LocationBeingStored_Name");
DeleteLocalString(oPC, "PRC_Teleport_LocationBeingStored_Name");
struct metalocation mlocToStore = LocationToMetalocation(lToStore, sName);
if(GetLocalInt(oPC, PRC_TELEPORT_CREATE_MAP_PINS))
CreateMapPinFromMetalocation(mlocToStore, oPC);
AddTeleportTargetLocationAsMeta(oPC, mlocToStore);
// Tell the user the location was added
// "Added teleport location: "
SendMessageToPC(oPC, GetStringByStrRef(16825303) + " "+ MetalocationToString(mlocToStore));
}