// 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!"))); } } }