generated from Jaysyn/ModuleTemplate
Initial Commit
Initial Commit
This commit is contained in:
87
_module/nss/s_challenge_easy.nss
Normal file
87
_module/nss/s_challenge_easy.nss
Normal file
@@ -0,0 +1,87 @@
|
||||
#include "x0_i0_petrify"
|
||||
#include "nw_i0_generic"
|
||||
/* Script generated by
|
||||
Lilac Soul's NWN Script Generator, v. 1.6
|
||||
|
||||
For download info, please visit:
|
||||
http://www.lilacsoul.revility.com */
|
||||
|
||||
//Put this on action taken in the conversation editor
|
||||
void main()
|
||||
{
|
||||
|
||||
object oPC = GetPCSpeaker();
|
||||
object oMod = GetModule();
|
||||
SetLocalInt(oMod, "xcheck", 0);
|
||||
SetLocalInt(oMod, "challenge", 1);
|
||||
SetLocalInt(oMod, "d1", 1);
|
||||
object oTarget;
|
||||
object oSpawn;
|
||||
location lTarget;
|
||||
object oTarget2 = GetWaypointByTag("big_wp");
|
||||
lTarget = GetLocation(oTarget);
|
||||
location bTarget = GetLocation(oTarget2);
|
||||
object oLever = GetObjectByTag("cr_lever");
|
||||
object oCrystal1 = GetObjectByTag("crystal1");
|
||||
object oCrystal2 = GetObjectByTag("crystal2");
|
||||
object oCrystal3 = GetObjectByTag("crystal3");
|
||||
int oGameMode = GetLocalInt(oMod, "gamemode");
|
||||
SetLocalInt(oPC, "lives", 1);
|
||||
int lState = GetLocalInt(oMod, "lever_state");
|
||||
FloatingTextStringOnCreature("You have 2 lives to complete the challenge", oPC);
|
||||
if (lState!=1)
|
||||
{
|
||||
DelayCommand(0.0, PlaySound("sce_positive"));
|
||||
AssignCommand(oLever, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
AssignCommand(oCrystal1, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
AssignCommand(oCrystal2, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
AssignCommand(oCrystal3, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
SetLocalInt(oMod, "lever_state", 1);
|
||||
RecomputeStaticLighting(GetArea(OBJECT_SELF));
|
||||
}
|
||||
object oP1 = GetObjectByTag("pool1");
|
||||
object oP2 = GetObjectByTag("pool2");
|
||||
object oP3 = GetObjectByTag("fountain1");
|
||||
object oP4 = GetObjectByTag("fountain2");
|
||||
object oLever1 = GetObjectByTag("pool_lever");
|
||||
object oLever2 = GetObjectByTag("fount_lever");
|
||||
effect eEffect = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY);
|
||||
AssignCommand(oLever1, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
||||
AssignCommand(oLever2, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
||||
RemoveEffectOfType(oP1, GetEffectType(eEffect));
|
||||
RemoveEffectOfType(oP2, GetEffectType(eEffect));
|
||||
RemoveEffectOfType(oP3, GetEffectType(eEffect));
|
||||
RemoveEffectOfType(oP4, GetEffectType(eEffect));
|
||||
SetLocalInt(oMod, "fountain_state", 0);
|
||||
SetLocalInt(oMod, "pool_state", 0);
|
||||
object oSpawner = GetObjectByTag("spawner");
|
||||
AssignCommand(oSpawner, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
if (oGameMode==1)
|
||||
{
|
||||
oTarget = GetWaypointByTag("big_wp");
|
||||
lTarget = GetLocation(oTarget);
|
||||
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "dragon2", bTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
oTarget = GetWaypointByTag("big_wp");
|
||||
lTarget = GetLocation(oTarget);
|
||||
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "dragon1", bTarget);
|
||||
}
|
||||
oTarget = oSpawn;
|
||||
SetIsTemporaryEnemy(oPC, oTarget);
|
||||
AssignCommand(oTarget, ActionAttack(oPC));
|
||||
AssignCommand(oTarget, DetermineCombatRound(oPC));
|
||||
oTarget = oSpawn;
|
||||
|
||||
//Visual effects can't be applied to waypoints, so if it is a WP
|
||||
//apply to the WP's location instead
|
||||
|
||||
int nInt;
|
||||
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)));
|
||||
SetLocked(GetObjectByTag("arena_gate"), TRUE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user