224 lines
7.0 KiB
Plaintext
224 lines
7.0 KiB
Plaintext
#include "cutscene_ch1"
|
|
|
|
void FinalPlace(int iPlace, string sObj, string sWay)
|
|
{
|
|
object oTarget2 = GetWaypointByTag(sWay);
|
|
location lTarget2 = GetLocation(oTarget2);
|
|
object oSpawn2 = CreateObject(iPlace, sObj, lTarget2);
|
|
}
|
|
|
|
void MakeFire(string oPlaceable, string sWaypoint)
|
|
{
|
|
effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_BLUE_20);
|
|
object oTarget = GetWaypointByTag(sWaypoint);
|
|
location lTarget = GetLocation(oTarget);
|
|
object oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, oPlaceable, lTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSpawn);
|
|
}
|
|
|
|
|
|
void CutsceneEffect4(float oDelay, int iDuration, int oEffect, object oTarget)
|
|
{
|
|
|
|
int nInt;
|
|
nInt = GetObjectType(oTarget);
|
|
effect eEffect;
|
|
eEffect = EffectVisualEffect(oEffect);
|
|
DelayCommand(oDelay, ApplyEffectToObject(iDuration,
|
|
eEffect, oTarget));
|
|
}
|
|
|
|
|
|
void FlyOff2(object oPC)
|
|
{
|
|
GestaltApplyEffect(1.0, oPC, EffectVisualEffect(VFX_IMP_PULSE_WIND), INSTANT);
|
|
GestaltApplyEffect(0.0, oPC, EffectDisappear(), PERMANENT);
|
|
}
|
|
|
|
|
|
void TakeFlight2(float oDelay, object oPC)
|
|
{
|
|
DelayCommand(oDelay, FlyOff2(oPC));
|
|
}
|
|
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oMod = GetModule();
|
|
object oArea = GetArea(oPC);
|
|
object oTarget;
|
|
object oTarget1;
|
|
object oSpawn;
|
|
object oStarfall = GetObjectByTag("starfall");
|
|
object oCaster;
|
|
object oWP1=GetWaypointByTag("limbo_portal_wp");
|
|
object oPort = GetWaypointByTag("limbo_portal_pc");
|
|
location iLocation = GetLocation(GetWaypointByTag("limbo_portal_sf"));
|
|
location iLocation2 = GetLocation(GetWaypointByTag("limbo_portal_pc"));
|
|
location lTarget;
|
|
int iMode = GetLocalInt(oMod, "gamemode");
|
|
|
|
|
|
// Initiate cutscene mode
|
|
|
|
GestaltStartCutscene(oPC, "",TRUE,TRUE,TRUE,FALSE,2);
|
|
|
|
// Fade camera in
|
|
|
|
GestaltCameraFade(0.0, oPC, FADE_IN,FADE_SPEED_FAST);
|
|
|
|
GestaltSpeak(2.0, oStarfall, "Congratulations "+GetName(oPC)+". You have trancended beyond your limitations as a mortal!",
|
|
ANIMATION_FIREFORGET_VICTORY2);
|
|
|
|
GestaltSpeak(8.0, oPC, "I have?",
|
|
ANIMATION_LOOPING_TALK_PLEADING, 2.0);
|
|
|
|
GestaltSpeak(12.0, oStarfall, "Yes! You have conquored every arena challenge and defeated me in a duel!",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(19.0, oStarfall, "Come, I have something to show you!",
|
|
ANIMATION_NONE);
|
|
|
|
|
|
|
|
|
|
oCaster = oStarfall;
|
|
oTarget = oPC;
|
|
GestaltFace(20.0, oStarfall, 0.0, 2, oTarget);
|
|
CutsceneEffect4(25.0, DURATION_TYPE_PERMANENT, VFX_DUR_GLOBE_INVULNERABILITY , oPC);
|
|
GestaltActionSpellCast(23.0, oStarfall, oPC,
|
|
SPELL_LIGHTNING_BOLT, TRUE, PROJECTILE_PATH_TYPE_DEFAULT, "", TRUE, FALSE);
|
|
GestaltSpeak(26.0, oStarfall, "The atmosphere isn't safe where we are going! That energy sphere will protect you!",
|
|
ANIMATION_NONE);
|
|
GestaltSpeak(30.0, oStarfall, "Let's go!",
|
|
ANIMATION_NONE);
|
|
GestaltActionSpellCast(33.0, oStarfall, oPC,
|
|
SPELL_POWER_WORD_STUN, TRUE, PROJECTILE_PATH_TYPE_DEFAULT, "", TRUE, FALSE);
|
|
|
|
GestaltApplyEffect(35.0, oPC, EffectVisualEffect(VFX_IMP_ELEMENTAL_PROTECTION), INSTANT);
|
|
GestaltApplyEffect(35.2, oStarfall, EffectVisualEffect(VFX_IMP_ELEMENTAL_PROTECTION), INSTANT);
|
|
|
|
GestaltJump(36.5, oStarfall, OBJECT_INVALID, "limbo_portal_sf");
|
|
GestaltJump(36.5, oPC, OBJECT_INVALID, "limbo_portal_pc");
|
|
|
|
GestaltSpeak(45.0, oStarfall, "Hmmm...",
|
|
ANIMATION_NONE);
|
|
|
|
if (iMode==1){GestaltAnimate(48.0, oStarfall, ANIMATION_FIREFORGET_TAUNT);}
|
|
else{GestaltAnimate(48.0, oStarfall, ANIMATION_FIREFORGET_VICTORY2);}
|
|
CutsceneEffect(49.0, VFX_FNF_FIREBALL, "sf_fire1");
|
|
CutsceneEffect(49.3, VFX_FNF_FIREBALL, "sf_fire2");
|
|
CutsceneEffect(49.6, VFX_FNF_FIREBALL, "sf_fire3");
|
|
|
|
DelayCommand(49.2, MakeFire("sf_fire", "sf_fire1"));
|
|
DelayCommand(49.5, MakeFire("sf_fire", "sf_fire2"));
|
|
DelayCommand(49.7, MakeFire("sf_fire", "sf_fire3"));
|
|
|
|
|
|
GestaltSpeak(54.0, oStarfall, "That's better....",
|
|
ANIMATION_NONE);
|
|
GestaltSpeak(60.0, oStarfall, "Welcome to Limbo, the place where time does not exist.",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(64.0, oPC, "Why have you brought me here?",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(67.0, oStarfall, "That's a good question.",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(70.0, oStarfall, "You have been brought here so that time can pass in the 3rd realm without us having to wait.",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(76.0, oPC, "Wait for what?",
|
|
ANIMATION_LOOPING_TALK_PLEADING, 2.0);
|
|
|
|
GestaltSpeak(80.0, oStarfall, "Why, your initiation ceremony of course!",
|
|
ANIMATION_FIREFORGET_VICTORY2);
|
|
|
|
GestaltSpeak(86.0, oStarfall, "You are the first mortal who has ever trancended to become the supreme arena champion!",
|
|
ANIMATION_LOOPING_TALK_PLEADING, 4.0);
|
|
|
|
GestaltSpeak(92.0, oStarfall, "Therefore, we will have a great ceremony to induct you into the fellowship of supreme champions.",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(106.0, oPC, "I see...",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(109.0, oStarfall, "Just take the portal when you are ready. Then, my friend, you shall certainly see!",
|
|
ANIMATION_NONE);
|
|
|
|
GestaltSpeak(113.0, oPC, "What portal???",
|
|
ANIMATION_LOOPING_TALK_FORCEFUL, 4.0);
|
|
|
|
GestaltSpeak(116.0, oStarfall, "This portal...",
|
|
ANIMATION_NONE);
|
|
|
|
object oTarget2 = GetWaypointByTag("limbo_portal_wp");
|
|
DelayCommand(118.0, AssignCommand(oStarfall,
|
|
ActionCastFakeSpellAtLocation(SPELL_BANISHMENT,
|
|
GetLocation(oTarget2), PROJECTILE_PATH_TYPE_DEFAULT)));
|
|
CutsceneEffect(119.5, VFX_FNF_FIREBALL, "limbo_portal_wp");
|
|
DelayCommand(119.6, CutscenePlace("limbo_portal", "limbo_portal_wp"));
|
|
|
|
|
|
|
|
|
|
DelayCommand(124.0, PlayVoiceChat(VOICE_CHAT_LAUGH, oStarfall));
|
|
|
|
GestaltFace (125.0, oStarfall, 0.0, 2, oPC);
|
|
|
|
GestaltSpeak(127.0, oStarfall, "See you there...",
|
|
ANIMATION_FIREFORGET_GREETING);
|
|
|
|
GestaltFace (128.5, oStarfall, 0.0, 2, oWP1);
|
|
|
|
TakeFlight2(129.0, oStarfall);
|
|
|
|
DelayCommand(135.0, FinalPlace(OBJECT_TYPE_CREATURE, "starfall", "starfall_wp"));
|
|
DelayCommand(136.0, FinalPlace(OBJECT_TYPE_PLACEABLE, "limbo_portal", "arena_home"));
|
|
|
|
|
|
|
|
// Set up camera
|
|
|
|
SetLocalFloat(oPC,"fCameraDirection",210.0);
|
|
SetLocalFloat(oPC,"fCameraRange",16.0);
|
|
SetLocalFloat(oPC,"fCameraPitch",75.0);
|
|
|
|
// camera choreograpgy
|
|
|
|
GestaltCameraMove (0.0,
|
|
210.0,16.0,75.0,
|
|
232.0, 10.0,70.0,
|
|
10.0,30.0,oPC);
|
|
|
|
GestaltCameraMove (10.0,
|
|
232.0,10.0,70.0,
|
|
232.0,10.0,70.0,
|
|
30.0,30.0,oPC);
|
|
|
|
GestaltCameraMove (40.0,
|
|
232.0,10.0,70.0,
|
|
232.0,25.0,75.0,
|
|
10.0,30.0,oPC);
|
|
|
|
GestaltCameraMove (50.0,
|
|
232.0,25.0,75.0,
|
|
400.0,18.0,65.0,
|
|
35.0,30.0,oPC);
|
|
|
|
GestaltCameraMove (85.0,
|
|
400.0,18.0,65.0,
|
|
420.0,14.0,75.0,
|
|
35.0,30.0,oPC);
|
|
// Fade camera out
|
|
|
|
GestaltCameraFade (135.0, oPC, FADE_OUT, FADE_SPEED_SLOW, 3.0);
|
|
|
|
// end of cutscene
|
|
|
|
GestaltStopCutscene (138.0, oPC);
|
|
|
|
}
|