76 lines
2.9 KiB
Plaintext
76 lines
2.9 KiB
Plaintext
|
// Made to detect whether a PC nearby has cast Divine Favor, Resistance and Light.
|
||
|
|
||
|
|
||
|
/************************ [On Spell Cast At] ***********************************
|
||
|
Filename: j_ai_onspellcast or nw_c2_defaultb
|
||
|
************************* [On Spell Cast At] ***********************************
|
||
|
|
||
|
************************* [On Spell Cast At] **********************************/
|
||
|
void main()
|
||
|
{
|
||
|
object oCaster = GetLastSpellCaster();
|
||
|
int iHarmful = GetLastSpellHarmful();
|
||
|
int iSpellCast = GetLastSpell();
|
||
|
object oAttackerOfCaster;
|
||
|
|
||
|
object oMaster = GetNearestObjectByTag("SHA_SORCERE_MASTER");
|
||
|
|
||
|
if(GetLocalInt(oCaster, "PROVE_CASTING")== TRUE)
|
||
|
{
|
||
|
if(iSpellCast == SPELL_MELFS_ACID_ARROW)
|
||
|
{
|
||
|
if(GetLocalInt(oCaster, "PROVED_MELFS_ACID_ARROW"))
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Fool you have already showed me your mastery of that spell!"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Hmm... not too bad..."));
|
||
|
SetLocalInt(oCaster, "PROVED_MELFS_ACID_ARROW", TRUE);
|
||
|
}
|
||
|
}
|
||
|
if(iSpellCast == SPELL_MAGIC_MISSILE)
|
||
|
{
|
||
|
if(GetLocalInt(oCaster, "PROVED_MAGIC_MISSILE"))
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("How many times are you going to cast the same spell over and over again....?"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("So you have successfully executed the maneuvers for Magic missiles..."));
|
||
|
SetLocalInt(oCaster, "PROVED_MAGIC_MISSILE", TRUE);
|
||
|
}
|
||
|
}
|
||
|
if(iSpellCast == SPELL_ELECTRIC_JOLT)
|
||
|
{
|
||
|
if(GetLocalInt(oCaster, "PROVED_DAZE"))
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Foolish drow! What do you hope to do by repeatedly shocking a dummy?!"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Potent jolt!"));
|
||
|
SetLocalInt(oCaster, "PROVED_DAZE", TRUE);
|
||
|
}
|
||
|
}
|
||
|
if(iSpellCast == SPELL_LIGHT)
|
||
|
{
|
||
|
if(GetLocalInt(oCaster, "PROVED_LIGHT"))
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Foolish drow! What do you hope to do by lighting up the school of Lolth?!"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
AssignCommand(oMaster, SpeakString("Hmm... that is bright!"));
|
||
|
SetLocalInt(oCaster, "PROVED_LIGHT", TRUE);
|
||
|
}
|
||
|
}
|
||
|
if(GetLocalInt(oCaster, "PROVED_LIGHT") && GetLocalInt(oCaster, "PROVED_DAZE") && GetLocalInt(oCaster, "PROVED_MAGIC_MISSILE") && GetLocalInt(oCaster, "PROVED_MELFS_ACID_ARROW"))
|
||
|
{
|
||
|
SetLocalInt(oCaster, "PASSED_MAGIC_TEST", TRUE);
|
||
|
DelayCommand(2.0, AssignCommand(oMaster, SpeakString("Enough! Come speak to me!")));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|