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.
63 lines
2.2 KiB
Plaintext
63 lines
2.2 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Name Spell: Song of Discord Action (Heartbeat script)
|
|
//:: FileName SMP_ail_songdisc
|
|
//:://////////////////////////////////////////////
|
|
If they ONLY have Song Of Discord's effects, this means we have a 50% chance
|
|
of attacking the nearest alive creature (who is not dying) with the most
|
|
powerful thing.
|
|
|
|
This is the script which chooses "the most powerful thing". It runs through
|
|
all hostile spells, depending on thier level (lower spells are more randomly
|
|
cast if they are quite low).
|
|
|
|
It'll always attack in melee.
|
|
|
|
It attacks the nearest seen creature (living) or, failing that, the nearest
|
|
heard.
|
|
|
|
This mearly does a call of one or two (two for a melee or range attack)
|
|
Action*** calls.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "SMP_INC_AILMENT"
|
|
|
|
void main()
|
|
{
|
|
// Default for now: attack nearest creature we can see
|
|
object oSelf = OBJECT_SELF;
|
|
object oTarget = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oSelf, 1,
|
|
CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN);
|
|
// If no valid seen target, get nearest heard
|
|
if(!GetIsObjectValid(oTarget))
|
|
{
|
|
oTarget = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oSelf, 1,
|
|
CREATURE_TYPE_PERCEPTION, PERCEPTION_HEARD);
|
|
// If it still is not valid, we will attack ourselves due to discord...
|
|
|
|
// Might remove, its just funny :-)
|
|
if(!GetIsObjectValid(oTarget))
|
|
{
|
|
// Stop
|
|
ClearAllActions();
|
|
// Most damaging melee weapon and loop animation
|
|
ActionEquipMostDamagingMelee();
|
|
ActionPlayAnimation(ANIMATION_FIREFORGET_SPASM);
|
|
// Do damage to us
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(1), oSelf);
|
|
// Wait
|
|
ActionWait(5.0);
|
|
// Stop the script
|
|
return;
|
|
}
|
|
}
|
|
// Attack oTarget
|
|
// Stop
|
|
ClearAllActions();
|
|
// Most damaging melee weapon
|
|
ActionEquipMostDamagingMelee();
|
|
// Attack
|
|
ActionAttack(oTarget);
|
|
}
|