Jump to content

Speedmult spell


Mattiewagg

Recommended Posts

I think it's possible yes. I mean I can sort of see how you'd have to do it, but I think it would be quite complicated also. But, I don't think I'm skilled enough to be able to do it yet though lol, but I'm pretty sure it can be done. :)

(not 100% positive though, so don't take my word as fact :P )

Link to comment
Share on other sites

I think it's possible yes. I mean I can sort of see how you'd have to do it, but I think it would be quite complicated also. But, I don't think I'm skilled enough to be able to do it yet though lol, but I'm pretty sure it can be done. :)

(not 100% positive though, so don't take my word as fact :P )

Hmm. So maybe possible. On another note, how is Night Eye done how it lasts for a set amount of time but you can also toggle it on/off in that time period?

Link to comment
Share on other sites

Hm, well.. It uses a very complicated (at least to me) script :P There are two magic effects and two spells for it - nighteye and nighteye'dispel' (something like that anyway), and I guess like with the script when it registers a key press the dispel spell is cast, so stopping it, otherwise it continues until the timer's done. Here's the script so you can take a look:

 

 

 

 
 
scriptName magicNightEyeScript extends ActiveMagicEffect
 
{Scripted effect for the Night Eye Spell}
 
 
 
import GlobalVariable
 
 
 
;======================================================================================;
 
;               PROPERTIES  /
 
;=============/
 
 
 
float property fDelay = 0.83 auto
 
{time to wait before switching to constant Imod}
 
ImageSpaceModifier property IntroFX auto
 
{IsMod applied at the start of the spell effect}
 
ImageSpaceModifier property MainFX auto
 
{main isMod for spell}
 
ImageSpaceModifier property OutroFX auto
 
{IsMod applied at the end of the spell effect}
 
Float Property fImodStrength = 1.0 auto
 
{IsMod Strength from 0.0 to 1.0}
 
sound property IntroSoundFX auto ; create a sound property we'll point to in the editor
 
sound property OutroSoundFX auto ; create a sound property we'll point to in the editor
 
GlobalVariable Property NightEyeTransitionGlobal auto
 
;MagicEffect Property NightEyeEffect auto
 
;Spell Property NightEyeDispelEffectSpell auto
 
; Obtain the target of the active fire effect
 
 
 
;Actor CasterActor
 
;======================================================================================;
 
;               EVENTS                     /
 
;=============/
 
 
 
Event OnEffectStart(Actor Target, Actor Caster)
 
                ;CasterActor = Caster
 
 
 
                ; IntroFX.remove()
 
                ; MainFX.remove()                                                                                                                                               ;Kill Imods from another cast, if running.
 
                ; OutroFX.remove()             
 
                
 
                if NightEyeTransitionGlobal.GetValue() == 0.0
 
                                NightEyeTransitionGlobal.setValue(1.0)
 
                                int instanceID = IntroSoundFX.play((target as objectReference))          ; play IntroSoundFX sound from my self
 
                                introFX.apply(fImodStrength)                                  ; apply isMod at full strength
 
                                utility.wait(fDelay)                            ; NOTE - neccessary? 
 
                                ;MainFX.apply()
 
                                if NightEyeTransitionGlobal.GetValue() == 1.0
 
                                                introFX.PopTo(MainFX,fImodStrength)            
 
                                                NightEyeTransitionGlobal.setValue(2.0)
 
                                endif
 
                elseif NightEyeTransitionGlobal.GetValue() == 1.0
 
                                introFX.PopTo(MainFX,fImodStrength)            
 
                                NightEyeTransitionGlobal.setValue(2.0)
 
                                self.dispel()
 
                else
 
                                self.dispel()
 
                endif
 
                
 
EndEvent
 
 
 
; Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect NightEyeEffect)
 
                ; NightEyeDispelEffectSpell.Cast(CasterActor)
 
; endEvent
 
 
 
Event OnEffectFinish(Actor Target, Actor Caster)
 
                ; if NightEyeTransitionGlobal.GetValue() == 1.0
 
                                ; utility.wait(fDelay)
 
                ; endif
 
;               ;debug.trace (self + ": We are killing the spell.  The Globale is: " + NightEyeTransitionGlobal.GetValue())
 
                if NightEyeTransitionGlobal.GetValue() == 2.0
 
                                NightEyeTransitionGlobal.setValue(3.0)
 
;                               ;debug.trace (self + ": This is a valid outro play, see because 2.0 = " + NightEyeTransitionGlobal.GetValue())
 
                                int instanceID = OutroSoundFX.play((target as objectReference))         ; play OutroSoundFX sound from my self
 
                                ;MainFX.remove()
 
                                MainFX.PopTo(OutroFX,fImodStrength)
 
                                introFX.remove()
 
                                NightEyeTransitionGlobal.setValue(0.0)
 
                endif
 
 
 
endEvent
 

Link to comment
Share on other sites

Speed is only recalculated when the actor's animation changes or their inventory weight is recalculated, so you have to add a script that places a non-weightless item into the target's inventory when the effect starts and removes it when the effect ends. Other possible solutions might be modifying the carryweight actor value, or I'm pretty sure (though I haven't tested it) adding a stagger effect to the spell would also work.

Link to comment
Share on other sites

Speed is only recalculated when the actor's animation changes or their inventory weight is recalculated, so you have to add a script that places a non-weightless item into the target's inventory when the effect starts and removes it when the effect ends. Other possible solutions might be modifying the carryweight actor value, or I'm pretty sure (though I haven't tested it) adding a stagger effect to the spell would also work.

Apparently it doesn't work:

 

 

I've tried several ways that others reported fixed it and scripting the slow entirely, nothing seems to work. I even tried adding to the inventory weight and removing it at effect end with a separate slow script.

The two scripts he attempted:

 

Spell duration/toggle script -- THIS works

Slowfix script (speedmult) -- THIS does not

Edited by Matthiaswagg
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...