EN6_PRC8/_module/nss/no_ai_spt.nss
Jaysyn904 a6f6db7303 Initial commit
Initial commit.  Updated release archive.
2024-06-13 15:08:33 -04:00

79 lines
2.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: On Spell Cast At
//::
//:://////////////////////////////////////////////
/*
This determines if the spell just cast at the
target is harmful or not.
*/
//:://////////////////////////////////////////////
#include "no_lib_data"
#include "no_inc"
void main()
{
if (GetLocalInt(OBJECT_SELF,"NoAI") == 1)
{
ExecuteScript("nw_c2_defaultb",OBJECT_SELF);
} else {
int iS = GetLastSpell();
int iH = GetLastSpellHarmful();
object oC = GetLastSpellCaster();
if ( !iH )
{
if ( iS == SPELL_RAISE_DEAD || iS == SPELL_RESURRECTION )
{
SetCommandable( TRUE, OBJECT_SELF );
DeleteLocalObject( OBJECT_SELF, "#RAISER" );
}
else if ( iS == SPELL_HEAL || iS == SPELL_CURE_CRITICAL_WOUNDS ||
iS == SPELL_CURE_SERIOUS_WOUNDS || iS == SPELL_CURE_MODERATE_WOUNDS ||
iS == SPELL_CURE_LIGHT_WOUNDS || iS == SPELL_CURE_MINOR_WOUNDS )
{
if ( oC != OBJECT_SELF && GetIsFriend( oC ) )
{
DoVoiceChat( VOICE_CHAT_THANKS );
}
DeleteLocalObject( OBJECT_SELF, "#HEALER" );
}
else if ( iS == SPELL_DARKVISION )
{
DeleteLocalInt( OBJECT_SELF, "#DARKNESS" );
DeleteLocalObject( OBJECT_SELF, "#VISION" );
}
else if ( iS == SPELL_SEE_INVISIBILITY )
{
DeleteLocalInt( OBJECT_SELF, "#VANISHED" );
DeleteLocalObject( OBJECT_SELF, "#VISION" );
}
else if ( iS == SPELL_TRUE_SEEING )
{
DeleteLocalInt( OBJECT_SELF, "#DARKNESS" );
DeleteLocalInt( OBJECT_SELF, "#VANISHED" );
DeleteLocalObject( OBJECT_SELF, "#VISION" );
}
}
if ( iS == SPELL_DARKNESS )
{
SetLocalInt( OBJECT_SELF, "#DARKNESS", 1 );
}
if ( iH )
{
if ( !GetIsFriend( oC ) && !GetIsEnemy( oC ) && GetMaster( OBJECT_SELF ) != oC )
{
//neutrals
SetIsTemporaryEnemy( oC, OBJECT_SELF, TRUE, 300.0 );
}
//DoQueueCombat( 8.0, 8.0 );
InitCombat();
}
//signal spell at to userdef
SignalEvent( OBJECT_SELF, EventUserDefined( 1011 ) );
}
}