84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
|
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);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|