Difference between revisions of "Cast - Spell"

1,193 bytes added ,  7 January
m
→‎Notes: Daul -> Dual
imported>Scornett
m (Reverted edits by Scornett-Bot (talk) to last revision by Jlundin)
 
m (→‎Notes: Daul -> Dual)
 
(8 intermediate revisions by 7 users not shown)
Line 10: Line 10:
Function Cast(ObjectReference akSource, ObjectReference akTarget = None) native
Function Cast(ObjectReference akSource, ObjectReference akTarget = None) native
</source>
</source>
 
== Examples ==
<source lang="papyrus">
mySpell.cast(myActivator, playerRef)
; myActivator has cast mySpell on the player!
</source>
== Parameters ==
== Parameters ==
*akSource: The [[ObjectReference Script|ObjectReference]] from which to cast the spell.  The source must be able to cast this spell.
*akSource: The [[ObjectReference Script|ObjectReference]] from which to cast the spell.  The source must be able to cast this spell (testings seem to show anything will work, regardless whether they have the spell or not).
*akTarget: An optional [[ObjectReference Script|ObjectReference]] at which to aim the spell. If None is passed and the spell needs a direction, it will be aimed in a default direction.
*akTarget: An optional [[ObjectReference Script|ObjectReference]] at which to aim the spell. If None is passed and the spell needs a direction, it will be aimed in a default direction.
**'''Default''': None
**'''Default''': None
Line 20: Line 24:


== Notes ==
== Notes ==
*This function cannot be called if either akSource or akTarget is in unloaded cell.
*This function casts the spell instantaneously.  This is mainly desirable only for non-actors, because it will not animate an actor.  For instance, the spell will be cast even if the actor's hands are not readied.
*This function casts the spell instantaneously.  This is mainly desirable only for non-actors, because it will not animate an actor.  For instance, the spell will be cast even if the actor's hands are not readied.
*If you wish to make an actor cast a spell using all the normal spellcasting behaviors, please instead use an AI package that includes the [[Procedure_UseMagic|UseMagic procedure]].
*If you wish to make an actor cast a spell using all the normal spellcasting behaviors, please instead use an AI package that includes the [[Procedure_UseMagic|UseMagic procedure]].
*Actor races can be set to cast magic only in the direction that the actor is facing; if the source is an actor with this racial setting, the target will be ignored.
*Actor races can be set to cast magic only in the direction that the actor is facing; if the source is an actor with this racial setting, the target will be ignored. (Exception: if the spell is a Target Actor spell, it will hit regardless of distance or direction)
*Using this function on an actor that doesn't have the spell will work. To add, it will also work on Objects, such as a rock.
*Using this function will invalidate (cause it to return 0/false when it should return 1/true) any ongoing '''isDualCasting''' condition checks on akSource. 
**'''isDualCasting''' will continue to return false after the '''Cast''' function is called until akSource stops dual casting.
**There's now a fix for the above issue that is found here: [https://www.nexusmods.com/skyrimspecialedition/mods/92454 Po3's Dual Casting Fix]
 
== Bug ==
In rare circumstances, this may start working sporadically or quit altogether. Don't use this for functionality that is expected to trigger very frequently throughout a character's lifetime.


== See Also ==
== See Also ==
Line 29: Line 41:
*[[InterruptCast - ObjectReference]]
*[[InterruptCast - ObjectReference]]
*[[Procedure_UseMagic|UseMagic procedure]]
*[[Procedure_UseMagic|UseMagic procedure]]
*[[DoCombatSpellApply - Actor]]