//:://///////////////////////////////////////////// //:: Name Blade of Blood event script //:: FileName prc_evnt_bladeb.nss //::////////////////////////////////////////////// #include "prc_inc_spells" void main() { object oWielder = OBJECT_SELF; object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oWielder); effect eTest = GetFirstEffect(oWeapon); int nDamBonus; int nMetaMagic = GetLocalInt(oWeapon, "PRC_BLADE_BLOOD_METAMAGIC"); int nSpell = GetLocalInt(oWeapon, "PRC_BLADE_BLOOD_SPELLID"); if(nSpell == SPELL_BLADE_OF_BLOOD_EMP) { nDamBonus = d6(3); if(nMetaMagic == METAMAGIC_MAXIMIZE) { nDamBonus = 18; } SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oWielder); } else { nDamBonus = d6(1); if(nMetaMagic == METAMAGIC_MAXIMIZE) { nDamBonus = 6; } } if(nMetaMagic == METAMAGIC_EMPOWER) { nDamBonus += (nDamBonus/2); } FloatingTextStringOnCreature("Blade of Blood deals "+IntToString(nDamBonus)+" damage", oWielder); //Deal bonus damage object oTarget = PRCGetSpellTargetObject(); if (PRCGetIsAliveCreature(oTarget)) SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamBonus, DAMAGE_TYPE_MAGICAL), oTarget); while (GetIsEffectValid(eTest)) { int nSpell = GetEffectSpellId(eTest); if(nSpell == SPELL_BLADE_OF_BLOOD) { RemoveEffect(oWeapon, eTest); } eTest = GetNextEffect(oWeapon); } //Clean up local ints DeleteLocalInt(oWeapon, "PRC_BLADE_BLOOD_METAMAGIC"); DeleteLocalInt(oWeapon, "PRC_BLADE_BLOOD_SPELLID"); }