Added CCOH and missing areas Changed some areas to be craftable, Fixed some on death issues, Fixed the Gaurd
86 lines
2.8 KiB
Plaintext
86 lines
2.8 KiB
Plaintext
#include "nw_i0_generic"
|
|
#include "prc_inc_spells"
|
|
|
|
void main()
|
|
{
|
|
// * if not runnning normal or better Ai then exit for performance reasons
|
|
if (GetAILevel() == AI_LEVEL_VERY_LOW) return;
|
|
|
|
ExecuteScript("prc_npc_hb", OBJECT_SELF);
|
|
|
|
// Buff ourselves up right away if we should
|
|
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
|
|
{
|
|
// This will return TRUE if an enemy was within 40.0 m
|
|
// and we buffed ourselves up instantly to respond --
|
|
// simulates a spellcaster with protections enabled
|
|
// already.
|
|
if(TalentAdvancedBuff(40.0))
|
|
{
|
|
// This is a one-shot deal
|
|
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
|
|
|
|
// This return means we skip sending the user-defined
|
|
// heartbeat signal in this one case.
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
if(PRCGetHasEffect(EFFECT_TYPE_SLEEP))
|
|
{
|
|
// If we're asleep and this is the result of sleeping
|
|
// at night, apply the floating 'z's visual effect
|
|
// every so often
|
|
|
|
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
|
|
{
|
|
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
|
|
if(d10() > 6)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Check to see if we should be playing default animations
|
|
// - make sure we don't have any current targets
|
|
else if ( !GetIsObjectValid(GetAttemptedAttackTarget())
|
|
&& !GetIsObjectValid(GetAttemptedSpellTarget()))
|
|
{
|
|
if (GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) || GetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE) ||
|
|
GetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE))
|
|
{
|
|
// This handles special attacking/fleeing behavior
|
|
// for omnivores & herbivores.
|
|
DetermineSpecialBehavior();
|
|
}
|
|
else if (!IsInConversation(OBJECT_SELF))
|
|
{
|
|
if (GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS)
|
|
|| GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN)
|
|
|| GetIsEncounterCreature())
|
|
{
|
|
PlayMobileAmbientAnimations();
|
|
}
|
|
else if (GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS))
|
|
{
|
|
PlayImmobileAmbientAnimations();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Send the user-defined event signal if specified
|
|
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
|
|
{
|
|
SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_HEARTBEAT));
|
|
}
|
|
|
|
object oNPC = GetLastPerceived();
|
|
if ((GetIsPC(oNPC)&&(GetLocalInt(oNPC,"HAS_WEREWOLF_EFFECT")!=1))||(!GetIsPC(oNPC)&&(GetTag(oNPC)!="PCwerewolf")))
|
|
{
|
|
SetIsTemporaryEnemy(oNPC,OBJECT_SELF,FALSE);
|
|
ActionAttack(GetNearestCreature(CREATURE_TYPE_IS_ALIVE,CREATURE_TYPE_PERCEPTION));
|
|
}
|
|
}
|