Jump to content

How do you activate a static object with message display?


Kurzusseus

Recommended Posts

I'm trying to turn Shrinebasestatic into an activate-able object, I tried using the script below as reference from the shrines of the 9.

But when I walk up to activate it, nothing happens. FYI I did make a new form so that only this shrine base had the script.

Do I need to make a separate activator using the mesh and texture as the static to do this?

I hope not, it'd be easier if I could just slap on a script, or modify this one too work.

Scriptname WARpledgeShrineScript extends ObjectReference  


Spell Property TempleBlessing  Auto  


Event OnActivate(ObjectReference akActionRef)


TempleBlessing.Cast(akActionRef, akActionRef)
if akActionRef == Game.GetPlayer()
AltarRemoveMsg.Show()
BlessingMessage.Show()
endif


EndEvent


Message Property BlessingMessage  Auto  


Message Property AltarRemoveMsg  Auto  

The idea is to make a custom shrine, with the shrinebase located in a center piece as the activator. A Julianous shrine is located

topside and downside to somewhat image an hourglass, with additional features.

Edited by Kurzusseus
Link to comment
Share on other sites

The easiest thing to do is to go into the Activators tab and right click on the list of items and choose NEW, then under the model tab enter the model for the shrinebase: Clutter\Shrines\ShrineBase.nif name the activator to what you want and apply your script

 

Another method is just to lay down the static shrine base and select it in the render window and choose the "Create trigger" button on the top toolbar. Just tell it to make a defaultblank triggerbox and then edit the trigger and under the primitive tab select "Player activate" that way the player can click on it instead of passing through it to activate it. The benefit of using a trigger box vs making an activator is that the triggerbox has a text override option so you can make it something other than "Activate" like "Worship at" then it will say "Worship at Shrine" (assuming you just named it "Shrine" for instance).

 

EDIT: Oh and if you want a messagebox to show up and say something after using the activator (I think that's what your post title is asking) use a code like this:

 

 

Scriptname WARpledgeShrineScript extends ObjectReference  


Spell Property TempleBlessing  Auto  
Message Property MyMessage Auto

Event OnActivate(ObjectReference akActionRef)


TempleBlessing.Cast(akActionRef, akActionRef)
if akActionRef == Game.GetPlayer()
AltarRemoveMsg.Show()
BlessingMessage.Show()
MyMessage.show()
endif


EndEvent


Message Property BlessingMessage  Auto  


Message Property AltarRemoveMsg  Auto  
 

 

Your message would by default be a pop up box message unless you set it to just be a post message like the "blessing added/blessing removed" ones

Edited by icecreamassassin
Link to comment
Share on other sites

I mean how would I get a script that only enables the blessings if the player chooses to?

 

Example:

Activate the shrine a message box appears giving details about what you are going to do.

If button 1 gets pressed, add pledge blessings

if button 2 gets pressed, leave.

 

 

*edit

 

also as a side question. I want to advance the quest stage IF it is running and currently at stage 10 when you arrive.

How would I make it so that if the quest is at stage 10, the script will advance to stage 20 upon accepting to pledge at the altar?

 

I've tried this following script

(If WARFameQuest ==10)()
Setstage WARFameQuest to 20()

but that doesn't seem to work.

Edited by Kurzusseus
Link to comment
Share on other sites

sorry for the delay, had some major issues on my mod :P

 

try this tutorial: http://wiki.tesnexus.com/index.php/Skyrim_Messagebox_Menu_Tutorial

 

basically you just set up a script similar to what it shows there on the activator (the shrine) and define button 0 and button 1 (button 1 and 2 effectively) maybe add a 3rd to exit. Then under the resulting effects for the "accept blessing" option, add an additional check for the quest stage like " if QUESTNAME().getstage == 10 and then plug in " QUESTNAME().setstage(20) as the result of the If check. My syntax may be a bit off, I have been jumping around so much between quest stages, dialog fragments and console commands I don't know which way is up lol. Hope it gets you on the right track though

Link to comment
Share on other sites

  • Recently Browsing   0 members

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