Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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);
|
|
}
|