/* * Script generated by LS Script Generator, v.TK.0 * * For download info, please visit: * http://nwvault.ign.com/View.php?view=Other.Detail&id=1502 */ // Put this under "Actions Taken" in the conversation editor. // Removes all items (with the specified tag, if provided) from oCreature. void RemoveAllItems(object oCreature, string sTag=""); void RemoveAllItems(object oCreature, string sTag="") { object oItem = GetFirstItemInInventory(oCreature); while ( oItem != OBJECT_INVALID ) { if ( "" == sTag || GetTag(oItem) == sTag ) DestroyObject(oItem); oItem = GetNextItemInInventory(oCreature); } } // Clears all actions and jumps the caller to the provided object. // (Useful when this needs to be delayed.) void ClearAndJumpToObject(object oDestination); void ClearAndJumpToObject(object oDestination) { ClearAllActions(); JumpToObject(oDestination); } void main() { object oSelf = OBJECT_SELF; object oParty; object oArea; effect eVFX; object oTarget; // Get the PC who is in this conversation. object oPC = GetPCSpeaker(); // Cutscene functions: SetCutsceneMode(oPC, TRUE); DelayCommand(44.0, SetCutsceneMode(oPC, FALSE)); // Have us say something. DelayCommand(2.0, SpeakString("Time to move boys. SET SAILS !")); DelayCommand(40.0, SpeakString("We have arived at New Iceport by Umberlee's grace. Goodbye and may the Gods protect you !")); // Make changes to the PC's area's background music. DelayCommand(5.0, MusicBackgroundChangeDay(GetArea(oPC), TRACK_RICHHOUSE)); DelayCommand(5.0, MusicBackgroundChangeNight(GetArea(oPC), TRACK_RICHHOUSE)); DelayCommand(5.0, MusicBackgroundPlay(GetArea(oPC))); // Have "shipsbard1" say something. DelayCommand(7.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("And so we set sail for a Frozen Land"))); // Have "shipsbard1" say something. DelayCommand(11.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("To freeze of the bollocks of mighty a man"))); // Have "shipsbard1" say something. DelayCommand(15.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("Wolfen and Yeti shall soon see your face"))); // Have "shipsbard1" say something. DelayCommand(19.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("And to feast on your bones set in their race"))); // Have "shipsbard1" say something. DelayCommand(23.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("Welcome to glory and welcome to fame"))); // Have "shipsbard1" say something. DelayCommand(27.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("No one shall know that you ran off in shame"))); // Have "shipsbard1" say something. DelayCommand(31.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("Travel by portals or travel by sea"))); // Have "shipsbard1" say something. DelayCommand(34.0, AssignCommand(GetObjectByTag("shipsbard3"), SpeakString("But remember the tunes that you heard from me !"))); // Find the location to which to teleport. oTarget = GetWaypointByTag("newiceportship1"); // Teleport the PC's party (only those in the same area, though). // eVFX = EffectVisualEffect(VFX_IMP_UNSUMMON); oArea = GetArea(oPC); // Loop through the PC's party. oParty = GetFirstFactionMember(oPC, FALSE); while ( oParty != OBJECT_INVALID ) { // Only teleport those in the same area. if ( GetArea(oParty) == oArea ) { // DelayCommand(40.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oParty)); DelayCommand(45.0, AssignCommand(oParty, ClearAndJumpToObject(oTarget))); } // Update the loop. oParty = GetNextFactionMember(oPC, FALSE); } // Take "seaticket1" from us. DelayCommand(34.0, RemoveAllItems(oPC, "seaticket1")); // Make changes to the PC's area's background music. DelayCommand(36.0, MusicBackgroundStop(GetArea(oPC))); DelayCommand(36.0, MusicBackgroundChangeDay(GetArea(oPC), 0)); DelayCommand(36.0, MusicBackgroundChangeNight(GetArea(oPC), 0)); DelayCommand(36.0, MusicBattleChange(GetArea(oPC), 0)); // Apply a visual effect. eVFX = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE); DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oPC)); DelayCommand(30.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oPC)); }