Destruction Spell Multicast by DEFAULT
Skyrim » Magic - Spells & Enchantments
Added: 14/12/2014 - 01:24AM
Updated: 22/09/2015 - 09:27PM

247 Endorsements

0.0.7 Latest version

3,425 Unique D/Ls

5,692 Total D/Ls

29,598 Total Views

Uploaded by fxxkoff


Last updated at 21:27, 22 Sep 2015 Uploaded at 1:24, 14 Dec 2014

This mod requires SKSE

This plugin offers an ability that allows the player actor to cast hostile spells(no illusion and alteration ones), shoot arrows and shout 3 more times with one release. Use 'help AAAMulticastAbility' to get the Form ID and use 'player.addspell xx000d73' to add it to player character. When player IsWeaponMagicOut=true, three balls(look the same as those in yngol tomb) will appear to serve as extra casting sources: they shoot spells when player does. If player has a combat target, these balls will move towards it to cast spells more efficiently. You can extend it to other actors without much effort, I suppose.

Known defects:
Spell from these balls may hit the player if they are behind it, so I temporarily set player to ghost for a short time to let projectiles pass through.

When the player actor casts spell while it is rotating rapidly and it has no combat target, projetiles from the balls may not fly towards the crosshair, because I update the target marker of spells from these balls periodically, and the updating process may not catch up(If I prepare the aim when spell is cast, there will be significant delay).

I have difficulty to let these balls move along a smooth trajectory, TranslateTo functions only allows them to move along straight lines. What I want is to let them move along curves, like circles.

I want to let EffectShaders play on those balls when player is preparing to cast, but those shaders won't work on them.

Sometimes the balls will disappear(try walk across doors in qasmoke), I guess this is related to LOD things, but I just don't know how to fix it.

I don't know how to get the number of words used when shouting(there is a conditional function called GetCurrentShoutVariation, but how to use it in script?), so only the first spell is cast by the balls when shouting.

When the balls change position when they are casting Concentration spells with Flame type projectiles(such as Flames and Frostbite), the projectiles will come from their old positions. Those with Beam type projectiles will be fine(such as Sparks). I don't know how to decide the projectile type in Papyrus, so I just let the orbs to stop translating when one of a few predetermined spells(Flames, Wall of Flames, etc.) is being cast.
See DupMulticastScript.psc for details.

I would be very grateful if you would provide better ways to implement these.

How to update:
Remove the ability(player.removespell),save game, replace files,load game,add spell,save again.
A quicker way: you can replace files first, then load game->remove/addspell->save game. I do this all the time.

Update 6:
Smoother movements. The visual effect of the balls will be set to match current selected spells(fire, ice, lightning, etc.). Two balls for each hand. Arrows shot by balls will match current equipped arrows(only for vanilla arrows). No longer invalidates cloak spells.

Update 5:
Bug fix.

Update 4:
Thanks for Aydoo's hint, concentration spells will not damage player anymore(but will still be blocked and player will still make groan sounds).

Update 3:
Concentration spell bug fix

Update 2:
Aiming improved again. Reduced interference between successive casts.

Update 1:
Aiming improved. Add a lesser power(AAAMulticastSwitch) to add/remove the ability. Responds better to shouts(use elapsed time to decide which spell to fire).