/** * @file * Spellscript for a range of template Abilities. */ //constants 16300 - 17300 const int CELESTIAL_ABI_SMITE_EVIL = 16301; const int FIENDISH_ABI_SMITE_GOOD = 16302; const int HALF_CELESTIAL_ABI_SMITE_EVIL = 16303; const int HALF_FIENDISH_ABI_SMITE_GOOD = 16324; #include "prc_inc_smite" #include "prc_inc_template" //Check for remining SLA uses int CheckUses(int nSpellID, int nUses) { int nTest = GetLocalInt(OBJECT_SELF, "TemplateSLA_"+IntToString(nSpellID)); if(nUses == 0) //unlimited uses per day return TRUE; else if(nTest < nUses) { nTest++; SetLocalInt(OBJECT_SELF, "TemplateSLA_"+IntToString(nSpellID), nTest); return TRUE; } else { FloatingTextStringOnCreature("You have already used this ability today.", OBJECT_SELF); return FALSE; } } void main() { int nSpellID = GetSpellId(); int nUses = 1; switch(nSpellID) { case CELESTIAL_ABI_SMITE_EVIL: { if(CheckUses(nSpellID, nUses)) DoSmite(OBJECT_SELF, PRCGetSpellTargetObject(), SMITE_TYPE_EVIL_TEMPLATE_CELESTIAL); break; } case FIENDISH_ABI_SMITE_GOOD: { if(CheckUses(nSpellID, nUses)) DoSmite(OBJECT_SELF, PRCGetSpellTargetObject(), SMITE_TYPE_GOOD_TEMPLATE_FIENDISH); break; } case HALF_CELESTIAL_ABI_SMITE_EVIL: { if(CheckUses(nSpellID, nUses)) DoSmite(OBJECT_SELF, PRCGetSpellTargetObject(), SMITE_TYPE_EVIL_TEMPLATE_HALF_CELESTIAL); break; } case HALF_FIENDISH_ABI_SMITE_GOOD: { if(CheckUses(nSpellID, nUses)) DoSmite(OBJECT_SELF, PRCGetSpellTargetObject(), SMITE_TYPE_GOOD_TEMPLATE_HALF_FIEND); break; } } }