//Arusteth Underworld Staff #include "prc_inc_spells" void main() { // Define Participants object oPC = GetItemActivator(); object oTarget = GetItemActivatedTarget(); object oItemToTake1 = GetItemPossessedBy(oPC, "BlackDiamond"); int iArcane = GetLevelByClass(CLASS_TYPE_WIZARD, oPC) + GetLevelByClass(CLASS_TYPE_SORCERER, oPC) + GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) + GetLevelByClass(CLASS_TYPE_BEGUILER, oPC) + GetLevelByClass(CLASS_TYPE_WARMAGE, oPC); // Check for if(GetIsObjectValid(GetItemPossessedBy(oPC, "BlackDiamond"))) { if (GetItemStackSize(oItemToTake1) > 1) { SetItemStackSize(oItemToTake1, GetItemStackSize(oItemToTake1)-1); } else if (GetItemStackSize(oItemToTake1) == 1) { DestroyObject(oItemToTake1); } // Limit to only Wiz/Sorc 10th level plus if (iArcane >= 10) { // Define Major Parameters int nCasterLevel = PRCGetCasterLevel(oPC); int nDiceRoll = (d4(1)+2); int nCasterHP = GetCurrentHitPoints(oPC); int nDamage = (nDiceRoll * nCasterHP); int nCasterDam = (nCasterHP - 10); // Define Visual and Damage Effects effect eVis3 = EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES); effect eVis2 = EffectVisualEffect(VFX_FNF_IMPLOSION); effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); effect eRay = EffectBeam(VFX_BEAM_EVIL, oPC, BODY_NODE_HAND); effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL); effect eDam2 = EffectDamage(nCasterDam, DAMAGE_TYPE_NEGATIVE); // Apply Payload DelayCommand(0.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis3, oPC)); DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 3.0)); DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget)); DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oPC)); DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); } // Kill Anyone Outright that uses the staff not of proper class else { int nDamage2 = (10000); effect eVis = EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES); effect eDam8 = EffectDamage(nDamage2, DAMAGE_TYPE_MAGICAL); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam8, oPC); } } }