124 lines
4.4 KiB
Plaintext
124 lines
4.4 KiB
Plaintext
/*
|
|
* 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));
|
|
}
|
|
|