Jump to content

Papyrus: Display location as messagebox-alias


Bethestar

Recommended Posts

edit: *fixed*

see third post.

 

I'm looking for a way to display the players current location inside a messagebox. Similar to the companion-dismiss message - as it uses quest location aliases.

 

I tracked down the code to the follower script, where the location is somewhere forwarded to the quest alias that will be used inside the messagebox. Hower I haven't figured out where this forwarding happens and my result "GetCurrentLocAlias.ForceLocationTo(Game.GetPlayer().GetCurrentLocation())" weren't doing the trick. It shouldn't be that compelx but I haven't figured it out yet. Any ideas?

Edited by Bethestar
Link to comment
Share on other sites

I tried to do the same with NPC tracking as a Debug.Notification, but it would only print "Location is: [LOCATION ." Suggested fixes included AddTextReplacementData and Text Replacement (Skyrim), but I couldn't get anything to work.

 

I agree, it is frustrating when things that should be simple... aren't.

 

http://i.imgur.com/RF0PWDM.png

Link to comment
Share on other sites

edit: *fixed*

 

LOCdisplay.ForceLocationTo(Game.GetPlayer().GetCurrentLocation()) is actually doing the trick. I just missed to set the alias property inside the script.

 

To have a location displayed inside a messagebox you need:

 

- Quest containing an location-alias (examplename: LOCdisplay)

- enable the following flags inside the alias: Optional, Stores Text, Allow Reuse in Quest, Allow Cleared

 

- A messagebox containing the alias: <Alias=LOCdisplay> is under attack!

- Make sure to set the Owner Quest of this messagebox to the quest containing the location-alias

- Check FollowersCompanionDismissMessage for vanilla example

 

- Script example:

message Property MSGdisplayLocation auto   ; message containing <Alias=LOCdisplay>
LocationAlias Property LOCdisplay Auto     ; location alias to fill

Event OnInit()

  LOCdisplay.ForceLocationTo(Game.GetPlayer().GetCurrentLocation())
  MSGdisplayLocation.show()

ENDevent

Thats it. Just dont forget to set the alias inside the script properties.

Edited by Bethestar
Link to comment
Share on other sites

  • Recently Browsing   0 members

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