Harpy Lair Fixes
Harpy lair now works per pnp. Created pnp harpy & dire lion. Added many skinmesh creature models by Ancarion. Added ProjectQ harpy model. Added reduced sized spells.2da to override default PRC.
This commit is contained in:
15
_module/nss/harpytree_climb.nss
Normal file
15
_module/nss/harpytree_climb.nss
Normal file
@@ -0,0 +1,15 @@
|
||||
/* Script generated by
|
||||
Lilac Soul's NWN Script Generator, v. 2.3
|
||||
|
||||
For download info, please visit:
|
||||
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
|
||||
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (!GetIsSkillSuccessful(oPC, 37, 12)) return FALSE; // 37 = Climb
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
8
_module/nss/ra_gotharpygems.nss
Normal file
8
_module/nss/ra_gotharpygems.nss
Normal file
@@ -0,0 +1,8 @@
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (GetLocalInt(oPC, "GotHarpyGems") <= 0) return FALSE; // PC has Harpy Gems
|
||||
|
||||
return TRUE;
|
||||
}
|
20
_module/nss/ra_gv_harpy_gems.nss
Normal file
20
_module/nss/ra_gv_harpy_gems.nss
Normal file
@@ -0,0 +1,20 @@
|
||||
void main()
|
||||
{
|
||||
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
SetLocalInt(oPC, "GotHarpyGems", 1);
|
||||
|
||||
CreateItemOnObject("nw_it_gem011", oPC);
|
||||
|
||||
CreateItemOnObject("x0_it_msmlmisc03", oPC);
|
||||
|
||||
CreateItemOnObject("it_gem015", oPC);
|
||||
|
||||
CreateItemOnObject("bloodstone", oPC);
|
||||
|
||||
CreateItemOnObject("amber", oPC);
|
||||
|
||||
CreateItemOnObject("jet", oPC);
|
||||
|
||||
}
|
8
_module/nss/ra_harpygems.nss
Normal file
8
_module/nss/ra_harpygems.nss
Normal file
@@ -0,0 +1,8 @@
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (GetLocalInt(oPC, "GotHarpyGems") != 0) return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
35
_module/nss/ra_harpytreefall.nss
Normal file
35
_module/nss/ra_harpytreefall.nss
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
effect eEffect;
|
||||
int iFall = d6(1);
|
||||
|
||||
eEffect = EffectDamage(iFall, DAMAGE_TYPE_BLUDGEONING, DAMAGE_POWER_NORMAL);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC);
|
||||
|
||||
object oTarget;
|
||||
oTarget = oPC;
|
||||
|
||||
//Visual effects can't be applied to waypoints, so if it is a WP
|
||||
//the VFX will be applied to the WP's location instead
|
||||
|
||||
int nInt;
|
||||
nInt = GetObjectType(oTarget);
|
||||
|
||||
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DUST_EXPLOSION), oTarget);
|
||||
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DUST_EXPLOSION), GetLocation(oTarget));
|
||||
|
||||
FloatingTextStringOnCreature("You fell out of the tree!!", oPC);
|
||||
|
||||
eEffect = EffectKnockdown();
|
||||
|
||||
eEffect = ExtraordinaryEffect(eEffect);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 3.0f);
|
||||
|
||||
}
|
||||
|
8
_module/nss/ra_noharpygems.nss
Normal file
8
_module/nss/ra_noharpygems.nss
Normal file
@@ -0,0 +1,8 @@
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (GetLocalInt(oPC, "GotHarpyGems") >= 1) return FALSE; // PC has no Harpy Gems
|
||||
|
||||
return TRUE;
|
||||
}
|
5
_module/nss/sc_startconv.nss
Normal file
5
_module/nss/sc_startconv.nss
Normal file
@@ -0,0 +1,5 @@
|
||||
void main()
|
||||
{
|
||||
object oUser = GetLastUsedBy();
|
||||
AssignCommand(OBJECT_SELF, ActionStartConversation(oUser));
|
||||
}
|
9
_module/nss/sklchk_climb12.nss
Normal file
9
_module/nss/sklchk_climb12.nss
Normal file
@@ -0,0 +1,9 @@
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (!GetIsSkillSuccessful(oPC, 37, 12)) return FALSE; // 37 = Climb
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
19
_module/nss/sklchk_search20.nss
Normal file
19
_module/nss/sklchk_search20.nss
Normal file
@@ -0,0 +1,19 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: sklchk_search20.nss
|
||||
//::
|
||||
//:: 20 DC Search check for conversations
|
||||
//::
|
||||
//::
|
||||
//::
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (!GetIsSkillSuccessful(oPC, SKILL_SEARCH, 20)) return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@@ -38,6 +38,23 @@ void main()
|
||||
}
|
||||
//
|
||||
|
||||
// Script 99
|
||||
if (nDeactivateScript == 99)
|
||||
{
|
||||
// Create Examinable Object
|
||||
CreateObject(OBJECT_TYPE_PLACEABLE, "EXAM_DEAD_TREE", GetLocation(GetWaypointByTag("RA_DIRELION001")), FALSE);
|
||||
|
||||
// Spawn 2 Harpies
|
||||
CreateObject(OBJECT_TYPE_CREATURE, "RA_HARPY001", GetLocation(OBJECT_SELF), TRUE);
|
||||
CreateObject(OBJECT_TYPE_CREATURE, "RA_HARPY001", GetLocation(OBJECT_SELF), TRUE);
|
||||
AssignCommand(GetObjectByTag("RA_HARPY001"), ActionSpeakString("Thanks for taking care of those kitties for us! Won't you join us for dinner?!?"));
|
||||
|
||||
// Destroy Examinable Object after 5 minutes
|
||||
object oTarget;
|
||||
oTarget = GetObjectByTag("EXAM_DEAD_TREE");
|
||||
DelayCommand(300.0, DestroyObject(oTarget, 0.0));
|
||||
}
|
||||
//
|
||||
|
||||
// -------------------------------------------
|
||||
// Only Make Modifications Between These Lines
|
||||
|
Reference in New Issue
Block a user