generated from Jaysyn/ModuleTemplate
Initial Commit
Initial Commit
This commit is contained in:
223
_module/nss/sf_cutscene.nss
Normal file
223
_module/nss/sf_cutscene.nss
Normal file
@@ -0,0 +1,223 @@
|
||||
#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);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user