Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
61 lines
1.9 KiB
Plaintext
61 lines
1.9 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Name Summon Monster - On Perception
|
|
//:: FileName SMP_AI_Summ_Perc
|
|
//:://////////////////////////////////////////////
|
|
On Perception.
|
|
|
|
Attacks the last person seen if it was an enemy. If it disappeared
|
|
and was our target, we do another combat round.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "SMP_AI_INCLUDE"
|
|
|
|
void main()
|
|
{
|
|
// Delcare major variables
|
|
object oSelf = OBJECT_SELF;
|
|
object oSeen = GetLastPerceived();
|
|
object oMaster = GetMaster();
|
|
int bHeard = GetLastPerceptionHeard();// If oSeen is NOW heard
|
|
int bInaudible = GetLastPerceptionInaudible();// If oSeen is NOW not heard
|
|
int bSeen = GetLastPerceptionSeen();// If oSeen is NOW seen
|
|
int bVanished = GetLastPerceptionVanished();// If oSeen is NOW not seen
|
|
int bEnemy = GetIsEnemy(oSeen);
|
|
|
|
// Check if in combat
|
|
if(!GetIsInCombat() && GetIsObjectValid(oSeen))
|
|
{
|
|
// Attack any enemy we see
|
|
if(bEnemy)
|
|
{
|
|
if(bSeen || bHeard)
|
|
{
|
|
// Attack!
|
|
SMPAI_SummonAttack(oSeen);
|
|
}
|
|
else if(bVanished || bInaudible)
|
|
{
|
|
if(GetLocalObject(oSelf, "SMPAI_LAST_TARGET") == oSeen)
|
|
{
|
|
// Check area's. If they moved, and master is not in this area
|
|
// too, we follow
|
|
if(GetArea(oMaster) == GetArea(oSeen) &&
|
|
GetArea(oSeen) != GetArea(oSelf))
|
|
{
|
|
// Follow
|
|
ClearAllActions();
|
|
ActionMoveToObject(oSeen, TRUE);
|
|
}
|
|
else
|
|
{
|
|
// Reevaluate
|
|
SMPAI_SummonAttack();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|