Jump to content

[LE] Show script's 'count' number on a message ?


maxarturo

Recommended Posts

Hi JustChill.


Good to know about one more papyrus flaw...


Unfortunately in order to be sure that your script will make your idea work as intended is to actually build the idea and test it in game, otherwise just making the script based on what "creationkit.com" saids might result in ending up with an idea that it will just won't work in game...


If it wasn't so late for the game, i would create a page where all papyrus flaws could be cataloged by anyone that finds them + with the appropriate workaround for it, but it's too late now.

Edited by maxarturo
Link to comment
Share on other sites

No worries, I already used it for my boss battle. ^^

 

A player could drag or use spellcraft to bring these corpses out of position.

So I teleport them back into their initial editor position. :smile:

 

 

Oh about the end, it's actually meant for her to be in Ghost status.

I still need to implement her reviving casts for the corpses though.

 

Unfortunately I just can invest around 2 to 3 hours during the week. Looking forward to the weekend. :D

 

Jerking around with the engine feels currently pretty entertaining. ^^

 

 

 

Even though I am really not a fan of this disimprovement, I think I just have a bit of an enthusiasm for the Creation Engine right now.

But definitely happy that I am not the only one who speaks bad about zhe Papyrus.

Ah, I am late at that one too. XD

Link to comment
Share on other sites

Just as a minor addition...

 

 

Scriptname _00E_YC_SoulbenderActSCR extends ObjectReference  



Event OnActivate(ObjectReference akActionRef)

      if akActionRef == PlayerRef

        if _00E_YC_SoulbenderActMSG.Show() == 0

            ObjectReference FXExplosion = _00E_YC_MagicSoulTrapEffect.PlaceAtMe(_00E_YC_ExplosionOnAct, 1)

            ObjectReference FXExplosion1 = _00E_YC_MagicSoulTrapEffect.PlaceAtMe(_00E_YC_ExplosionOnAct1, 1)

             _00E_YC_SoulbenderActREF1.PushActorAway(PlayerRef, 20)    ;=> Don't define your PlayerRef as ObjectReference as PushActorAway only allows Actor References!'

            _00E_YC_BattleWall1.Enable()

            _00E_YC_BattleWall2.Enable()        ;=> So... You like invisible walls, huh?

            _00E_YC_BattleWall3.Enable()

            _00E_YC_BattleWall4.Enable()

            _00E_YC_BattleWall5.Enable()

            _00E_YC_BattleWall6.Enable()

            _00E_YC_BattleWall7.Enable()

            _00E_YC_BattleWall8.Enable()

            _00E_YC_MagicBarrier.Enable()        ;=> No? Then add some cool magic barrier / shield effect!

            TimeFadeOut01FXS.Play(_00E_YC_Victim1)

            TimeFadeOut01FXS.Play(_00E_YC_Victim2)        ;=> I am a ceritfied miracle player. A miracle player would grab one of the dead bodies or use magic to shoot it out of the battle zone, before battle even starts.

            TimeFadeOut01FXS.Play(_00E_YC_Victim3)        ;=> So that could basically break the whole battle as it's meant that these corpses get reanimated. oO'

            TimeFadeOut01FXS.Play(_00E_YC_Victim4)        ;=> Therefore we use a cool effect to make them disappear.

            TimeFadeOut01FXS.Play(_00E_YC_Victim5)

            TimeFadeOut01FXS.Play(_00E_YC_Victim6)

            TimeFadeOut01FXS.Play(_00E_YC_Victim7)

            TimeFadeOut01FXS.Play(_00E_YC_Victim8)

            Utility.Wait(2)                                    ;=> Wait until the effect is done.

            _00E_YC_Victim1.Disable()

            _00E_YC_Victim2.Disable()                    ;=> We disable all corpses, as otherwise MoveTo wouldn't work properly. I knew this one from Gamebryo and I am happy Bethesda took it over. ^^'

            _00E_YC_Victim3.Disable()                    ;=> NOT!

            _00E_YC_Victim4.Disable()

            _00E_YC_Victim5.Disable()

            _00E_YC_Victim6.Disable()

            _00E_YC_Victim7.Disable()

            _00E_YC_Victim8.Disable()

            _00E_YC_Victim1.MoveToMyEditorLocation()        ;=> I cannot recall such a function from Gamebryo... Maybe it is there, but I never used it.

            _00E_YC_Victim2.MoveToMyEditorLocation()        ;=> However, here it's a life saver. All corspes get moved into default position. :D'

            _00E_YC_Victim3.MoveToMyEditorLocation()

            _00E_YC_Victim4.MoveToMyEditorLocation()

            _00E_YC_Victim5.MoveToMyEditorLocation()

            _00E_YC_Victim6.MoveToMyEditorLocation()

            _00E_YC_Victim7.MoveToMyEditorLocation()

            _00E_YC_Victim8.MoveToMyEditorLocation()

            _00E_YC_Victim1.Enable()

            _00E_YC_Victim2.Enable()

            _00E_YC_Victim3.Enable()                        ;=> All corpses get enabled again.

            _00E_YC_Victim4.Enable()

            _00E_YC_Victim5.Enable()

            _00E_YC_Victim6.Enable()

            _00E_YC_Victim7.Enable()

            _00E_YC_Victim8.Enable()

            _00E_YC_Victim1.SetAlpha(0)                    ;=> All corpses get invisible.

            _00E_YC_Victim2.SetAlpha(0)

            _00E_YC_Victim3.SetAlpha(0)

            _00E_YC_Victim4.SetAlpha(0)

            _00E_YC_Victim5.SetAlpha(0)

            _00E_YC_Victim6.SetAlpha(0)

            _00E_YC_Victim7.SetAlpha(0)

            _00E_YC_Victim8.SetAlpha(0)

            While _00E_YC_Victim1.Is3DLoaded() == False

                ;=> We do NOT know when the enabling is FULLY done. So we make this loop as long as the 3D Data isn't completely loaded (using "Play" for the effect shader on a form that hasn't loaded 3D data results in a script error).

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim1)        ;=> Now we use a cool effect to make them visible again.

            _00E_YC_Victim1.SetAlpha(1)                    ;=> All corpses get visible again. Unfortunately the effect doesn't work on ActorAlpha (which is still 0), so it has to be reverted back to fully visible, while the effect is playing.'

            While _00E_YC_Victim2.Is3DLoaded() == False

                ;=> Whatever, just make a loop until the 3D is loaded!

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim2)        ;=> It's Maniac's magic!

            _00E_YC_Victim2.SetAlpha(1)

            While _00E_YC_Victim3.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim3)

            _00E_YC_Victim3.SetAlpha(1)

            While _00E_YC_Victim4.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim4)

            _00E_YC_Victim4.SetAlpha(1)

            While _00E_YC_Victim5.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim5)

            _00E_YC_Victim5.SetAlpha(1)

            While _00E_YC_Victim6.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim6)

            _00E_YC_Victim6.SetAlpha(1)

            While _00E_YC_Victim7.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim7)

            _00E_YC_Victim7.SetAlpha(1)

            While _00E_YC_Victim8.Is3DLoaded() == False

                ;=> Whatever...

            EndWhile

            TimeFadeIn01FXS.Play(_00E_YC_Victim8)

            _00E_YC_Victim8.SetAlpha(1)

            _00E_YC_MagicSoulTrapEffect.Disable()

            _00E_YC_MagicAbsorbEffect1.Disable()            ;=> We disable these fancy inventory effects around the soul bender.

            _00E_YC_MagicAbsorbEffect2.Disable()            ;=> As now the soul bender will fancy Sira's Shadow. ^^'

            _00E_YC_MagicAbsorbEffect3.Disable()

            _00E_YC_MagicAbsorbEffect4.Disable()

            _00E_YC_MagicAbsorbEffect5.Disable()

            _00E_YC_MagicAbsorbEffect6.Disable()

            _00E_YC_MagicAbsorbEffect7.Disable()

            _00E_YC_MagicAbsorbEffect8.Disable()

            _00E_YC_SiraShadowREF.Enable()            ;=> She will be so unhappy!

            _00E_YC_SiraShadowREF.SetGhost()        ;=> She will be f***in' immortal!'

            FXExplosion.Delete()

            FXExplosion = None

            FXExplosion1.Delete()

            FXExplosion1 = None

            _00E_YC_SoulbenderActREF1.Disable()

            _00E_YC_SoulbenderActREF2.Disable()

        endif

    endif

EndEvent



Actor Property _00E_YC_Victim1 Auto

Actor Property _00E_YC_Victim2 Auto

Actor Property _00E_YC_Victim3 Auto

Actor Property _00E_YC_Victim4 Auto

Actor Property _00E_YC_Victim5 Auto

Actor Property _00E_YC_Victim6 Auto

Actor Property _00E_YC_Victim7 Auto

Actor Property _00E_YC_Victim8 Auto

Actor Property PlayerRef Auto

Actor Property _00E_YC_SiraShadowREF  Auto



Message Property _00E_YC_SoulbenderActMSG  Auto



ObjectReference Property _00E_YC_MagicSoulTrapEffect  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect1  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect2  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect3  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect4  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect5  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect6  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect7  Auto  

ObjectReference Property _00E_YC_MagicAbsorbEffect8  Auto  

ObjectReference Property _00E_YC_SoulbenderActREF1  Auto  

ObjectReference Property _00E_YC_SoulbenderActREF2  Auto  

ObjectReference Property _00E_YC_BattleWall1 Auto

ObjectReference Property _00E_YC_BattleWall2 Auto

ObjectReference Property _00E_YC_BattleWall3 Auto

ObjectReference Property _00E_YC_BattleWall4 Auto

ObjectReference Property _00E_YC_BattleWall5 Auto

ObjectReference Property _00E_YC_BattleWall6 Auto

ObjectReference Property _00E_YC_BattleWall7 Auto

ObjectReference Property _00E_YC_BattleWall8 Auto

ObjectReference Property _00E_YC_MagicBarrier  Auto  



EffectShader Property TimeFadeIn01FXS  Auto  

EffectShader Property TimeFadeOut01FXS Auto  



Explosion Property _00E_YC_ExplosionOnAct  Auto  

Explosion Property _00E_YC_ExplosionOnAct1  Auto

 

 

As I now also added a fancy effect shader for the corpses re-appearing on position.

They will also re-appear if they are already in position, but I don't mind that feature. It mainly should just prevent the player of f***ing up the boss battle. ^^

 

 

 

Oh, and as a note for people who may be very unfamiliar of how the Nexus forum code works.

If you use the "Preview Post" function and have a

CODE

segment in your post, the forum software will automatically add new empty lines after any line in your code segment. :wink:

 

I personally dislike that function myself, but I guess it's there for a reason?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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