277 lines
7.7 KiB
Plaintext
277 lines
7.7 KiB
Plaintext
#include "nw_i0_generic"
|
|
|
|
void main()
|
|
{
|
|
|
|
object oPC = GetClickingObject();
|
|
|
|
if (!GetIsPC(oPC)) return;
|
|
|
|
int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF));
|
|
|
|
if (DoOnce==TRUE) return;
|
|
|
|
SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE);
|
|
|
|
object oTarget;
|
|
location lTarget;
|
|
oTarget = GetWaypointByTag("WP_Rall_Jump");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
|
|
|
|
AssignCommand(oPC, ClearAllActions());
|
|
|
|
AssignCommand(oPC, ActionJumpToLocation(lTarget));
|
|
|
|
oTarget = GetObjectByTag("RallFinal2Barrow");
|
|
|
|
DelayCommand(1.0, AssignCommand(oTarget, ActionCloseDoor(oTarget)));
|
|
|
|
DelayCommand(1.0, SetLocked(oTarget, TRUE));
|
|
|
|
oTarget = GetObjectByTag("rall_braz1");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
oTarget = GetObjectByTag("rall_braz2");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
oTarget = GetObjectByTag("rall_braz3");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
oTarget = GetObjectByTag("rall_braz4");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
oTarget = GetObjectByTag("rall_braz5");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
oTarget = GetObjectByTag("rall_braz6");
|
|
|
|
AssignCommand(oTarget, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
SetPlaceableIllumination (oTarget, FALSE);
|
|
|
|
RecomputeStaticLighting(GetArea(oTarget));
|
|
|
|
oTarget = GetObjectByTag("");
|
|
|
|
AmbientSoundChangeNight(GetArea(oPC), 1);
|
|
|
|
MusicBackgroundChangeNight(GetArea(oPC), 164);
|
|
|
|
MusicBackgroundPlay(GetArea(oPC));
|
|
|
|
oTarget = GetObjectByTag("STATUE_KregerStatue");
|
|
|
|
int nInt;
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
effect eEffect;
|
|
eEffect = EffectVisualEffect(VFX_FNF_WORD);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT)
|
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
|
|
else
|
|
DelayCommand(2.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));
|
|
|
|
oTarget = oPC;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
eEffect = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT)
|
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
|
|
else
|
|
DelayCommand(2.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));
|
|
|
|
oTarget = GetObjectByTag("kreger_coffin");
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget);
|
|
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget));
|
|
|
|
oTarget = GetObjectByTag("kreger_coffin");
|
|
|
|
DestroyObject(oTarget, 3.0);
|
|
|
|
oTarget = GetObjectByTag("rall_escape_door");
|
|
|
|
AssignCommand(oTarget, ActionCloseDoor(oTarget));
|
|
|
|
SetLocked(oTarget, TRUE);
|
|
|
|
object oSpawn;
|
|
oTarget = GetWaypointByTag("WP_SpawnRall1");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "undeadrallwarrio", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
|
|
|
|
oTarget = GetWaypointByTag("WP_SpawnRall2");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "undeadrallwarrio", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
|
|
|
|
oTarget = GetWaypointByTag("WP_SpawnRall3");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "undeadrallwarrio", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
|
|
|
|
oTarget = GetWaypointByTag("WP_SpawnRall4");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "undeadrallwarrio", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
|
|
|
|
oTarget = GetWaypointByTag("WP_SpawnRall5");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "undeadrallwarrio", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), GetLocation(oTarget)));
|
|
|
|
oTarget = GetWaypointByTag("WP_Spawn_Kreger");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "kreger", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
SetIsTemporaryEnemy(oPC, oTarget);
|
|
|
|
AssignCommand(oTarget, ActionAttack(oPC));
|
|
|
|
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES), GetLocation(oTarget)));
|
|
|
|
oTarget = oPC;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oTarget);
|
|
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), GetLocation(oTarget));
|
|
|
|
oTarget = GetObjectByTag("WP_Spawn_Rocks");
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oTarget);
|
|
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), GetLocation(oTarget));
|
|
|
|
oTarget = GetWaypointByTag("WP_Spawn_Rocks");
|
|
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "zep_stones014", lTarget);
|
|
|
|
oTarget = oSpawn;
|
|
|
|
nInt = GetObjectType(oTarget);
|
|
|
|
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SOUND_BURST), oTarget));
|
|
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SOUND_BURST), GetLocation(oTarget)));
|
|
|
|
}
|
|
|