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

93 lines
3.4 KiB
Plaintext

#include "x0_i0_partywide"
void ClearAndJumpToObject(object oDestination);
void ClearAndJumpToObject(object oDestination)
{
ClearAllActions();
JumpToObject(oDestination);
}
void main()
{
int nHench;
object oHench;
object oTarget;
object oSpawn;
int nInt;
// Get the PC who is in this conversation.
object oPC = GetPCSpeaker();
// Give 5 experience (to party) to the PC.
GiveXPToAll(oPC, 5);
// Unlock and open "qtch".
oTarget = GetObjectByTag("qtch");
SetLocked(oTarget, FALSE);
AssignCommand(oTarget, ActionOpenDoor(oTarget));
oTarget = GetObjectByTag("Quatch");
AssignCommand(oTarget, ActionMoveToObject(GetObjectByTag("WP_Quatch")));
oTarget = GetObjectByTag("Quatch");
nInt = GetObjectType(oTarget);
oTarget = GetObjectByTag("Quatch");
DestroyObject(oTarget, 6.0);
// Spawn some critters.
oTarget = GetWaypointByTag("WP_SPn_Quatch2");
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qbully", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "qthug", GetLocation(oTarget));
// Find the location to which to teleport.
oTarget = GetWaypointByTag("WP_Qtch_Jmp");
// Teleport the PC.
DelayCommand(3.0, AssignCommand(oPC, ClearAndJumpToObject(oTarget)));
// Also teleport associates.
oHench = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);
DelayCommand(3.0, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
oHench = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
DelayCommand(3.0, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
oHench = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
DelayCommand(3.0, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
oHench = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
DelayCommand(3.0, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
// Support for multiple henchmen (includes horses).
nHench = 1;
oHench = GetHenchman(oPC, 1);
while ( oHench != OBJECT_INVALID )
{
DelayCommand(3.5, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
// Next henchman.
oHench = GetHenchman(oPC, ++nHench);
}
}