Lankhmar_PRC8/_module/nss/cnv_mv_wtrwtfgn.nss

84 lines
2.8 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 12:54:47 -04:00
void ClearAndJumpToObject(object oDestination);
void ClearAndJumpToObject(object oDestination)
{
ClearAllActions();
JumpToObject(oDestination);
}
void main()
{
int nHench;
object oHench;
object oTarget;
// Get the PC who is in this conversation.
object oPC = GetPCSpeaker();
// Destroy objects (not fully effective until this script ends).
DelayCommand(2.0, DestroyObject(GetObjectByTag("ptnwtrfnlzzxxc")));
DelayCommand(2.0, DestroyObject(GetObjectByTag("uwtrnarr1x")));
// Have the PC perform a sequence of actions.
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
// Find the location to which to teleport.
oTarget = GetWaypointByTag("WP_Frgtnpaltr");
// 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.0, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
// Next henchman.
oHench = GetHenchman(oPC, ++nHench);
}
// Find the location to which to teleport.
// 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);
}
}