Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

KWITS

Allies
  • Posts

    292
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by KWITS

  1. The trigger zone will only activate if a specific magic effect is used.

    scn WaVICDarkPrisonTrigZoneANY02SCRIPT

    ; Activates linked Parent object once

    ; Any object will activate this (arrows, havok objects)

    short triggered

    ref target

    ref mySelf

    Begin OnMagicEffectHit FIDG

    If ( GetStage WaVRescueMissionQuest == 30 )

    Set triggered to 0

    Endif

    End

    begin onTrigger

    if triggered == 0 && ( GetStage WaVRescueMissionQuest == 30 )

    WaVDarkPrisonGuard06Ref.Enable

    WaVDarkPrisonGuard07Ref.Enable

    set target to getParentRef

    set mySelf to getSelf

    target.activate mySelf 1

    If ( WaVICDarkPrisonTrigZoneObject02Ref.IsMagicEffectOnTargetAllowed FIDG == 1 )

    set triggered to 1

    Endif

    Endif

    end

    begin onReset

    set triggered to 0

    end

  2. Here is another scripted version but still no positive results. This should work.

    scn WaVHauntedHallowsSCRIPT

    Float Timer

    Begin OnActivate Player

    If ( GetStage WaVRescueMissionQuest == 40 )

    WaVHHCollisionBox02Ref.Enable

    WaVHHPortalBarrier02Ref.Enable

    set timer to timer + GetSecondsPassed

    if ( timer == 2 ) && ( timer < 14 )

    messageBox "Hault intruder, put down your weapon! There is no way out of this tomb but through me!"

    endif

    if timer == 27

    messageBox "After two thousand years, you have managed to defeat my elite guard who swore on their death to avenge my betrayal!"

    endif

    if timer == 39

    messageBox "You defeated one of my brothers. You knew him as Umaril but you will not find what you seek beyond this conversation."

    endif

    if timer == 51

    messageBox "Before you, down the path behind me, was one of the greatest cities of Ayleid in the Golden Age of our Empire."

    endif

    if timer == 75

    messageBox "Now my home is nothing more than a sunken ruin, forgetten in the ages of time. Umaril conspired with Lord Dread and betrayed the Ayleid Nation."

    endif

    if timer == 87

    messageBox "It is here you must journey for to free yourself, you must first free my spirit and give me peace."

    endif

    if timer == 99

    messageBox "Something precious, something that once was my source of power was taken from me by the minions of the Void."

    endif

    if timer == 111

    messageBox "You will be searching for a soul crystal. Only with this object, will you find freedom for this accursed place."

    endif

    if timer == 123

    messageBox "I see your doubts so someone who you know told me this, 'remember the Lady'. I a made a deal with her to save my soul from Umaril's fate."

    endif

    if timer == 135

    messageBox "I will now allow you and you alone to pass. I will be awaiting your return. Evil greater than I dwells within deep."

    endif

    if timer == 150

    playSound3D AMBEnchantmentBreakFinal

    WaVHHCollisionBox02Ref.Disable

    WaVHHPortalBarrier02Ref.Disable

    WaVHHCollisionBox01Ref.Disable

    WaVHHPortalBarrier01Ref.Disable

    endif

    Endif

    End

  3. Good Day,

    I have an innovative idea but putting it into practice is entirely, another matter. I can't get my Player to trigger a message response through a triggerzone. Why am I using a triggerzone for a NPC? My scenario is with a creature that by design, has no dialogue. Here is the script. Please help me to debug it.

    scn WaVHauntedHallowsSCRIPT

    Float Timer

    Begin OnActivate

    If ( GetStage WaVRescueMissionQuest == 40 ) && ( IsActionRef Player )

    WaVHHCollisionBox02Ref.Enable

    WaVHHPortalBarrier02Ref.Enable

    set timer to timer + GetSecondsPassed

    if timer >= 2

    messageBox "Hault intruder, put down your weapon! There is no way out of this tomb but through me!"

    endif

    if timer == 8

    messageBox "After two thousand years, you have managed to defeat my elite guard who swore on their death to avenge my betrayal!"

    endif

    if timer == 16

    messageBox "You defeated one of my brothers. You knew him as Umaril but you will not find what you seek beyond this conversation."

    endif

    if timer == 20

    messageBox "Before you, down the path behind me, was one of the greatest cities of Ayleid in the Golden Age of our Empire."

    endif

    if timer == 24

    messageBox "Now my home is nothing more than a sunken ruin, forgetten in the ages of time. Umaril conspired with Lord Dread and betrayed the Ayleid Nation."

    endif

    if timer == 28

    messageBox "It is here you must journey for to free yourself, you must first free my spirit and give me peace."

    endif

    if timer == 32

    messageBox "Something precious, something that once was my source of power was taken from me by the minions of the Void."

    endif

    if timer == 36

    messageBox "You will be searching for a soul crystal. Only with this object, will you find freedom for this accursed place."

    endif

    if timer == 40

    messageBox "I see your doubts so someone who you know told me this, 'remember the Lady'. I a made a deal with her to save my soul from Umaril's fate."

    endif

    if timer == 44

    messageBox "I will now allow you and you alone to pass. I will be awaiting your return. Evil greater than I dwells within deep."

    endif

    if timer == 60

    playSound3D AMBEnchantmentBreakFinal

    WaVHHCollisionBox02Ref.Disable

    WaVHHPortalBarrier02Ref.Disable

    WaVHHCollisionBox01Ref.Disable

    WaVHHPortalBarrier01Ref.Disable

    endif

    Endif

    End

  4. Thank you so much for your suggestions. The GhostEffect spell and script work great under my mod scenario. Now I am working on a timer script that will activate when the Player approaches the main boss creature that also has the GhostEffect applied. This timer script will use GetSecondsPassed to trigger a series of timed messages. I am still trying to get it to launch.

  5. It is a known issue in Blender v2.49b that when you import a NIF and then make a modification to the end of exporting the saved Blender file back to NIF format, that the collision box or boxes are removed. Can you verify this assumption from your experience? The method I choose to create a collision box is listed below.

    1. Go into Edit mode

    2. Choose Scripts

    3. Choose Mesh

    4. Choose Hull

    5. Choose Box

    Cheers!

    KWITS

  6. Good Day,

    I am still a novice with Blender v2.49b modification of TESIV vanilla imports. Therefore I have a question which I am sure that someone on this great website has the skill set to answer. Okay, I imported a NIF object referenced as prisoncell02. What I want to accomplish should be simple, punch a hole through a stone wall for the Player to enter secretly and export back the results to NIF format within Blender. Evidently, this exportation process removes all collisions from each of the 4 walls of the prison cell including the ceiling and the floor. While I know how to create a new collision box around the whole structure, I still don't know how to open a section of a wall by removing the vertices without removing the the corresponding section on the other side of the cell. Please provide a list of procedural steps on the best practice to accomplish this task. In the meantime, I will be viewing more Blender videos.

    Cheers!

    KWITS

  7. Here is a bug-fixed version of my door script:

    scn WaVHauntedHallowsPortalSCRIPT

    ref mySelf

    Begin OnMagicEffectHit DSPL

    If ( GetStage WaVRescueMissionQuest == 30)

    Set mySelf to Getself

    endif

    End

    Begin onActivate Player

    If ( GetStage WaVRescueMissionQuest == 30 ) && ( WaVHauntedHallowsDoorRef.GetLocked == 1 )

    messageBox "You find an ancient portal, sealed magically. With your journey at a dead end, there is no other passage before you but are the dangers within greater than the guards beyind you?"

    ElseIf ( WaVHauntedHallowsDoorRef.IsMagicEffectOnTargetAllowed DSPL == 1 ) && ( WaVHauntedHallowsDoorRef.GetLocked == 0 )

    playSound3D AMBEnchantmentBreakFinal

    Activate

    Endif

    End

  8. I discovered that I had to create a duplicate door on the other side for teleport to occur. So when debugging this code under the console, I was able to trigger entry by typing "activate". Of course I want this process to be automatic. My Player is using a staff with a dispel target spell employed; this same staff will unlock the locked portal. Therefore to gain entry, the Player has to first, magically unlock the spell and then use a target spell for dispel.

  9. I want the player to use magic to activate a door to unlock and open it. Here is another version:

    scn WaVHauntedHallowsPortalSCRIPT

    Begin OnMagicEffectHit DSPL

    If ( GetStage WaVRescueMissionQuest == 30)

    endif

    End

    Begin onActivate Player

    If ( GetStage WaVRescueMissionQuest == 30 ) && ( WaVHauntedHallowsDoorRef.GetLocked == 0 )

    messageBox "You find an ancient portal, sealed magically. With your journey at a dead end, there is no other passage before you but are the dangers within greater than the guards beyind you?"

    ElseIf ( WaVHauntedHallowsDoorRef.IsMagicEffectOnTargetAllowed DSPL == 1 ) && ( WaVHauntedHallowsDoorRef.GetLocked == 0 )

    playSound3D AMBEnchantmentBreakFinal

    Else

    Activate

    Endif

    End

  10. I have experiencing an issue with executing the following script. I am trying to activate a door.

    scn WaVHauntedHallowsPortalSCRIPT

    Begin onActivate Player

    If ( GetStage WaVRescueMissionQuest == 30 ) && ( WaVHauntedHallowsDoorRef.GetLocked == 1 )

    messageBox "You find an ancient portal, sealed magically. With your journey at a dead end, there is no other passage before you but are the dangers within greater than the guards beyind you?"

    ElseIf ( WaVHauntedHallowsDoorRef.GetLocked == 0 )

    playSound3D AMBEnchantmentBreakFinal

    Else

    Activate

    Endif

    End

  11. Under my scenario, things aren't that different. When the Player's health is very low or the Player's death is imminent, there is a spell that will teleport (move) the Player to a safe haven for rest and healing. However, under my attempt to change things around, the spell when cast locks up the game. Here is my modified script:

    scn WaVParadiseProtectionSCRIPT

    float playerhealth

    float currenthealth

    ;float higherhealth

    short CheckHealth

    short doOnce

    ;float timer

    float fquestdelaytime

    short spellrunning

    short getout

    ;short moveback

    ;short castonce

    Begin GameMode

    if ( doOnce == 0 )

    set fquestdelaytime to 0.5

    set doOnce to 1

    endif

    ;this section sets the player's baseline health whenever he enters Paradise Island to be used to measure the percentage of the player's heal that has been lost

    if ( CheckHealth == 0 )

    if ( player.GetinWorldSpace WaV == 1 )

    set playerhealth to player.GetAV health

    set CheckHealth to 1

    endif

    endif

    if ( CheckHealth == 1 )

    if ( player.GetAV Health > playerhealth )

    set playerhealth to player.GetAV Health

    endif

    if ( player.GetinWorldSpace WaV == 0 )

    set CheckHealth to 0

    endif

    endif

    ;this section checks the player's currenthealth versus the most recent baseline health and it resurrects if the player manages to get health to zero

    if ( spellrunning == 1 ) && ( player.GetinWorldSpace WaV == 1 )

    set currenthealth to Player.GetAV health

    if ( player.getav health < 0 )

    player.resurrect

    endif

    if ( currenthealth <= ( playerhealth * 0.20 ) )

    set getout to 1

    endif

    endif

    ;this section moves the marker to the Lady's original position

    if ( getout == 1 )

    set getout to 2

    DisablePlayerControls

    Player.MoveTo WaVLadyMarkerRef

    endif

    End

  12. Good Day,

    I would like to reverse engineer the TESIV script that belongs to the Shivering Isles plug-in. This is what I have learned so far. There is a Script Effect spell called SE14RezSpell that calls the script, "SE14RezSpellScript". It is apparent that this script has a dependency with "SE14ProtectionScript". Each respective script is listed below. Notice how some of the variables are shared among the two scripts. My question is, how do all of the working pieces accomplish the single goal in teleporting the player to New Sheoth Palace?

    
    scn SE14RezSpellScript
    
    
    Begin ScriptEffectStart
    
    set SE14Rez.spellrunning to 0
    
    if ( player.GetinCell SEVitharnBailey == 1 ) || ( player.GetinCell XPVitharn == 1 )
    
    Message "Your power will not work in this location."
    
    elseif ( GetPlayerinSEWorld == 0 )
    
    Message "That spell may only be used in the Shivering Isles."
    
    else
    
    set SE14Rez.spellrunning to 1
    
    endif
    
    
    End
    
    
    Begin ScriptEffectUpdate
    
    
    if ( GetPlayerinSEWorld == 0 ) || SE14Rez.spellrunning == 0
    
    dispel SE14RezSpell
    
    endif
    
    
    End
    
    
    Begin ScriptEffectFinish
    
    
    set SE14Rez.spellrunning to 0
    
    
    End
    
    ;<CSEBlock>
    
    ;<CSECaretPos> 0 </CSECaretPos>
    
    ;</CSEBlock>
    
    
    
    scn SE14ProtectionScript
    
    
    float playerhealth
    
    float currenthealth
    
    float higherhealth
    
    short CheckHealth
    
    short doOnce
    
    float timer
    
    float fquestdelaytime
    
    short spellrunning
    
    short getout
    
    short moveback
    
    short castonce
    
    
    
    Begin GameMode
    
    
    if ( doOnce == 0 )
    
    set fquestdelaytime to 0.5
    
    set doOnce to 1
    
    endif
    
    
    
    ;this section sets the player's baseline health whenever he enters the throne room to be used to measure the percentage of the player's heal that has been lost
    
    if ( CheckHealth == 0 )
    
    if ( player.GetInCell SENSCastleSheogorath == 1 )
    
    set playerhealth to player.GetAV health
    
    set CheckHealth to 1
    
    endif
    
    endif
    
    
    if ( CheckHealth == 1 )
    
    if ( player.GetAV Health > playerhealth )
    
    set playerhealth to player.GetAV Health
    
    endif
    
    if ( player.GetInCell SENSCastleSheogorath == 0 )
    
    set CheckHealth to 0
    
    endif
    
    endif
    
    
    ;this section checks the player's currenthealth versus the most recent baseline health and it resurrects if the player manages to get health to zero
    
    
    if ( spellrunning == 1 ) && ( GetPlayerInSEWorld == 1 )
    
    set currenthealth to Player.GetAV health
    
    if ( player.getav health < 0 )
    
    player.resurrect
    
    endif
    
    if ( currenthealth <= ( playerhealth * 0.20 ) )
    
    set getout to 1
    
    endif
    
    endif
    
    
    ;this section moves the marker to the player's original position and moves the player to the castle
    
    
    if ( getout == 1 )
    
    SE14RezMarker.MoveTo Player
    
    set getout to 2
    
    DisablePlayerControls
    
    SE14HealerREF1.MoveTo SE14EntertainerMarker1
    
    SEHaskillREF.MoveTo SE07AThadonMarker
    
    endif
    
    
    if ( getout == 2 )
    
    set getout to 3
    
    player.MoveTo SE14RezMarker2
    
    endif
    
    
    
    ;this section has the healer heal the player with a spell. a heal spell. on the player.
    
    if ( getout == 3 ) && ( player.GetDistance SE14HealerREF1 <= 1000 )
    
    set timer to ( timer + GetSecondsPassed )
    
    if ( timer >= 2 )
    
    SE14HealerREF1.Cast SE14HealSpell Player
    
    set getout to 4
    
    set timer to 0
    
    endif
    
    endif
    
    
    ;this has Haskill give the player the choice to return to the spot of near death or to stay in castle
    
    if ( getout == 4 )
    
    set timer to ( timer + GetSecondsPassed )
    
    if ( timer >= 6 )
    
    SEHaskillREF.StartConversation Player
    
    set getout to 5
    
    set timer to 0
    
    endif
    
    endif
    
    
    ;this moves the player back to spot where he almost died, if the player has chosen to go back
    
    if ( moveback == 1 )
    
    set timer to ( timer + GetSecondsPassed )
    
    if ( timer >= 2 ) && ( castonce == 0 )
    
    SEHaskillREF.Cast StandardRestoreHealth1Novice SEHaskillREF
    
    set castonce to 1
    
    elseif ( timer >= 4 )
    
    set moveback to 0
    
    player.MoveTo SE14RezMarker
    
    set castonce to 0
    
    set timer to 0
    
    endif
    
    endif
    
    
    
    End
    
    
    

×
×
  • Create New...