void main() { object oActor; 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; // Only fire once. if ( GetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF)) ) return; SetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF), TRUE); // Cutscene functions: BlackScreen(oPC); // Find the location to which to teleport. oTarget = GetWaypointByTag("WP_Crbtplt1"); // 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: DelayCommand(0.2, FadeFromBlack(oPC)); // Have "crbtcpse1" strike up a conversation with the PC. oActor = GetNearestObjectByTag("crbtcpse1", oPC); DelayCommand(1.2, AssignCommand(oActor, ActionStartConversation(oPC))); }