В стадии исполльзуем ту же функцию onHit, только пустую. А на счет определения углов, это да, тут все не очень здорово, на вики указывается, что эта функция забагована, поэтому я пробовал другую. С ней проблем нет, за исключением того, что она работает только с участием гг. Вот рандомный пример:
Spell Property SpellToApply Auto Actor Caster Actor Target Event OnEffectStart(Actor akTarget, Actor akCaster) Caster = akCaster Target = akTarget EndEvent Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) If (akSource as Weapon) && !(akSource as Enchantment) && (akAggressor == Caster as ObjectReference) if (akSource as Weapon) == Caster.GetEquippedWeapon(0) || (akSource as Weapon) == Caster.GetEquippedWeapon(1) GoToState("Busy") SpellToApply.Cast(Caster, Target) RegisterForSingleUpdate(1.0) endif EndIf EndEvent Event OnUpdate() GoToState("") EndEvent state Busy Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) EndEvent endState
Это все хорошо, вот только есть одно но: с зачарованным оружием будет немного коряво работать. Из-за особенностей события onHit оно сработает "число эффектов в зачаровании + 1" раз, поэтому неплохо бы воспользоваться вот этой штукой, для того, чтобы отсеять "спам". А чтобы не париться с вычислением получаемого урона можно просто добавить вторичный, помимо самого оберега эффект с отражением урона, силу которого можно менять перком, например в зависимости от какого-то навыка и прописав в условиях углы, в пределах которых он будет действовать.