Lankhmar_PRC8/_module/nss/ent_cnv_slsink1.nss
Jaysyn904 ebc0c6a9b2 Initial commit
Initial commit [v9.7]
2025-04-03 12:54:47 -04:00

72 lines
2.1 KiB
Plaintext

void main()
{
object oActor;
object oSpawn;
int nHench;
object oHench;
object oTarget;
// Get the creature who triggered this event.
object oPC = GetEnteringObject();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Abort if the PC does not have the item "ptnwtrfnl232".
if ( GetItemPossessedBy(oPC, "towerofangarngit") == OBJECT_INVALID )
return;
// Cutscene functions:
StopFade(oPC);
// Find the location to which to teleport.
oTarget = GetWaypointByTag("WP_SLSink1");
// Teleport the PC.
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, JumpToObject(oTarget));
// Also teleport associates.
oHench = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
oHench = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
// Support for multiple henchmen (includes horses).
nHench = 1;
oHench = GetHenchman(oPC, 1);
while ( oHench != OBJECT_INVALID )
{
AssignCommand(oHench, ClearAllActions());
AssignCommand(oHench, JumpToObject(oTarget));
// Next henchman.
oHench = GetHenchman(oPC, ++nHench);
}
// Cutscene functions:
FadeFromBlack(oPC);
// Spawn "slsink1".
oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "slsink1", GetLocation(oTarget));
// Cutscene functions:
SetCutsceneMode(oPC, TRUE);
// Have "slsink1" strike up a conversation with the PC.
oActor = GetNearestObjectByTag("slsink1", oPC);
DelayCommand(2.0, AssignCommand(oActor, ActionStartConversation(oPC)));
// Cutscene functions:
DelayCommand(2.5, SetCutsceneMode(oPC, FALSE));
}