#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); }