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

155 lines
9.0 KiB
Plaintext

#include "in_g_cutscene"
void main()
{
// Find actors
object oPC = GetFirstPC();
object oGuard1 = GetObjectByTag("g_npc_guard1");
object oGuard2 = GetObjectByTag("g_npc_guard2");
object oCaptain = GetObjectByTag("g_npc_captain");
object oMan1 = GetObjectByTag("st_npc_townman1");
object oMan2 = GetObjectByTag("st_npc_townman2");
object oWoman = GetObjectByTag("st_npc_townwoman");
object oGawper1 = GetObjectByTag("st_npc_gawper1");
object oGawper2 = GetObjectByTag("st_npc_gawper2");
object oGawper3 = GetObjectByTag("st_npc_gawper3");
// Find waypoints
object oWPPC_1 = GetWaypointByTag("wp_in_pc_1");
object oWPPC_2 = GetWaypointByTag("wp_in_pc_2");
object oWPReturn = GetWaypointByTag("wp_ho_entry");
object oWPGuard1_1 = GetWaypointByTag("wp_in_guard1_1");
object oWPGuard1_2 = GetWaypointByTag("wp_in_guard1_2");
object oWPCaptain_1 = GetWaypointByTag("wp_in_captain_1");
// Start the cutscene
GestaltStartCutscene (oPC, "st_mv_intro");
// Clear any associates
GestaltClearAssociates (0.0, oPC, 63,1);
// Start Guard 1 warming his hands at the fire until captain gets there
GestaltAnimate (0.0, oGuard1, ANIMATION_LOOPING_GET_MID,11.0);
// Start Woman praying
GestaltAnimate (0.0, oWoman, ANIMATION_LOOPING_MEDITATE,10.0);
// Move player and guard captain to target waypoints at a walk in 13.0 seconds
GestaltActionMove (0.0, oPC, oWPPC_1,FALSE,0.0,13.0);
GestaltActionMove (0.0, oCaptain, oWPCaptain_1,FALSE,0.0,13.0);
// Set them to face in the same direction as their waypoint when they get there
GestaltActionFace (0.01, oPC, 0.0,1,oWPPC_1);
GestaltActionFace (0.01, oCaptain, 0.0,1,oWPCaptain_1);
// PC and Captain chat as they walk
GestaltSpeak (0.0, oCaptain, "I think the guard said he just saw Kumal outside!");
GestaltSpeak (3.0, oPC, "What's so important about this job Kumal has for me?");
GestaltSpeak (9.0, oCaptain, "A thief who stole a book just fenced it to Kumal. The note I gave you from Kumal tells more about it.");
// Guard 2 salutes as Captain walks past
GestaltAnimate (8.0, oGuard2, ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
// As the PC and Captain approach, woman starts wailing
GestaltPlaySound (10.1, oWoman, "as_pl_wailingf1");
GestaltAnimate (10.2, oWoman, ANIMATION_LOOPING_TALK_PLEADING,8.0);
// Guard 1 comes to salute captain and captain returns salute
GestaltActionMove (12.00, oGuard1, oWPGuard1_1);
GestaltActionFace (12.01, oGuard1, 0.0,1,oWPGuard1_1);
GestaltActionAnimate (12.02, oGuard1, ANIMATION_FIREFORGET_SALUTE);
GestaltActionAnimate (14.0, oCaptain, ANIMATION_FIREFORGET_SALUTE);
// Guard 1 reports in
GestaltSpeak (15.0, oCaptain, "Well, did you see Kumal outside?");
GestaltPlaySound (17.0, oGuard1, "as_pl_soldierm3");
GestaltSpeak (17.0, oGuard1, "Yes sir.. uh.. ma'am. Sure did, in alley out of the south entrance. Past that wailing woman.");
// Crowd gawps
GestaltAnimate (15.0, oGawper3, ANIMATION_LOOPING_LOOK_FAR,6.0);
GestaltAnimate (16.0, oGawper1, ANIMATION_LOOPING_LOOK_FAR,5.0);
// Gawper 1 calls to Gawper 2, who looks to see what's going on
GestaltFace (21.0, oGawper1, 0.0,2,oGawper2);
GestaltAnimate (22.0, oGawper1, ANIMATION_FIREFORGET_GREETING);
GestaltAnimate (23.0, oGawper2, ANIMATION_FIREFORGET_HEAD_TURN_LEFT);
GestaltAnimate (25.0, oGawper2, ANIMATION_LOOPING_LOOK_FAR,10.0);
GestaltFace (25.0, oGawper1, 0.0,2,oWPPC_2);
GestaltAnimate (28.0, oGawper3, ANIMATION_LOOPING_LOOK_FAR,4.0);
// Woman finishes moaning and goes back to praying and crying
GestaltPlaySound (22.3, oWoman, "as_pl_cryingf1");
GestaltPlaySound (28.0, oWoman, "as_pl_cryingf2");
GestaltAnimate (28.1, oWoman, ANIMATION_LOOPING_MEDITATE,55.0);
// Turn the PC to face the Captain and ask what's going on
GestaltActionFace (27.00, oPC, 0.0,2,oCaptain);
GestaltActionSpeak (27.01, oPC, "What's going on with that woman? She's causing quite a scene.",NORMAL,3.0);
// Captain dismisses Guard 1, who walks back to his fire
GestaltActionAnimate (28.0, oCaptain, ANIMATION_FIREFORGET_SALUTE);
GestaltActionAnimate (29.0, oGuard1, ANIMATION_FIREFORGET_SALUTE);
GestaltActionMove (30.00, oGuard1, oWPGuard1_2);
GestaltActionFace (30.01, oGuard1, 0.0,1,oWPGuard1_2);
// Captain turns to face the PC and explains what's going on
GestaltActionFace (29.5, oCaptain, 0.0,2,oPC);
GestaltActionSpeak (30.0, oCaptain, "Never mind her, are you ready?",NORMAL,24.0);
GestaltSpeak (42.0, oCaptain, "You need to get out there and do the job with Kumal.");
// Meanwhile in the background, the menfolk start talking
GestaltPlaySound (40.1, oMan2, "as_pl_wailingm1");
GestaltPlaySound (45.1, oMan1, "as_pl_wailingm4");
GestaltPlaySound (51.1, oMan2, "as_pl_wailingm3");
GestaltPlaySound (58.1, oMan1, "as_pl_cryingm3");
// Start Men playing talk animations as they come into view of camera
GestaltAnimate (75.0, oMan1, PLEADING,20.0);
GestaltAnimate (75.0, oMan2, NORMAL,20.0);
// PC twigs what's going on
GestaltSpeak (54.0, oPC, "Is that the Gray Mouser..? Sorry.. Yes, I will but.. It's not just that woman. There are other Lankhmarts here in a similar state. What's wrong with them?",NORMAL,6.0);
GestaltSpeak (60.0, oCaptain, "Something about people disappearing. The children, the elderly. These rabble come here to drink and moan together all the time.",NORMAL,8.0);
GestaltSpeak (68.0, oPC, "Does anyone know what happened to the missing people?",NORMAL,4.0);
GestaltSpeak (72.0, oCaptain, "Who knows? Now listen, are you going to do the job or not? I put my reputation on the line for you.",NORMAL,7.0);
GestaltSpeak (79.0, oPC, "Alright, I won't let you or your reputation down.",NORMAL,3.0);
GestaltSpeak (82.0, oCaptain, "Good. And when you're done, I SUPPOSE you can help these people too. Just please tell me how it went with Kumal. He seems very secretive about this job. Almost.. Afraid.",PLEADING,6.0);
GestaltSpeak (88.0, oPC, "Alright, I'll go see Kumal right now, then tell you how it went.",NORMAL,1.5);
// Woman gets up and begs for help
GestaltPlaySound (85.0, oWoman, "as_pl_ailingf3");
GestaltAnimate (85.1, oWoman, ANIMATION_LOOPING_TALK_PLEADING,8.0);
// Move the PC towards the sewer entrance
GestaltActionMove (90.0, oPC, oWPPC_2);
// Return their associates
GestaltReturnAssociates (95.00, oPC, 63,1,oWPReturn);
// End the cutscene and beam the PC to the waypoint with the tag "wp_ho_entry" in the holding area
GestaltStopCutscene (95.01, oPC, "wp_ho_entry");
// Camera movements
// Set initial position for camera, facing due north from 10.0m directly above the player
GestaltCameraSetup (0.0, oPC, 90.0,10.0,0.0);
// Use GestaltCameraSmooth function to move the camera over the rooftops and down towards the sewer as PC walks
// 090.0,10.0,00.0 - initial camera position
GestaltCameraSmooth (0.0, 0.0,0.0,0.0, 2.0,1.4,2.0, 5.0,40.0,oPC); // 095.0,13.0,05.0 - camera position after 005.0 seconds
GestaltCameraSmooth (5.0, 2.0,1.4,2.0, 4.0,0.0,2.0, 5.0,40.0,oPC); // 110.0,18.0,15.0 - camera position after 010.0 seconds
GestaltCameraSmooth (10.0, 4.0,0.0,2.0, 4.0,0.0,2.0, 10.0,40.0,oPC); // 150.0,18.0,35.0 - camera position after 020.0 seconds
GestaltCameraSmooth (20.0, 4.0,0.0,2.0, 4.0,-0.5,0.0, 10.0,40.0,oPC); // 190.0,15.5,45.0 - camera position after 030.0 seconds
GestaltCameraSmooth (30.0, 4.0,-0.5,0.0, 4.0,-0.3,0.0, 20.0,40.0,oPC); // 270.0,07.5,45.0 - camera position after 050.0 seconds
GestaltCameraSmooth (50.0, 4.0,-0.3,0.0, 3.0,0.0,0.0, 10.0,40.0,oPC); // 305.0,06.0,45.0 - camera position after 060.0 seconds
GestaltCameraSmooth (60.0, 3.0,0.0,0.0, 2.0,0.12,0.0, 30.0,40.0,oPC); // 020.0,07.8,45.0 - camera position after 090.0 seconds
GestaltCameraSmooth (90.0, 3.0,0.0,0.0, 2.0,0.12,0.0, 30.0,40.0,oPC); // 035.0,08.7,45.0 - camera position after 105.0 seconds
//GestaltCameraSmooth (90.0, 2.0,0.12,0.0, 0.0,0.0,0.0, 15.0,40.0,oPC); // 035.0,08.7,45.0 - camera position after 105.0 seconds
DestroyObject(OBJECT_SELF);
}