Jump to content

Force a terminal screen to update or refresh ?


SKKmods

Recommended Posts

Imagine if you will conditional logic using GlobalVariables and VMQuestVariables that define the state of 10 to 20 terminal display entries.

 

Watch closely as selecting one of the entries script fragment updates the state of the GlobalVariables and VMQuestVariables that affect the state of all the other terminal display entries.

 

Consider how the terminal display refreshes BEFORE the script finishes updating/returns so it just sits there dumbly showing all of the now out of date entries.

 

Is there any way to force/trigger a terminal display refresh AFTER the script has finished updating ?

 

Any offers considered or [ BUY IT NOW ]

Link to comment
Share on other sites

If you mean [ Force redraw ] == [ Refresh Current List ] that fires BEFORE the fragment finishes so just refreshes the OLD state.

 

I need to either delay that action or command it to retrigger when ready.

 

 

Now I remember why I switched from holotapes to modal message boxes where possible ...

Link to comment
Share on other sites

No it doesnt hang up, else I wouldnt have this problem !

 

There is some sort of automatic time out which triggers the terminal screen refresh after ?3? seconds regardless of script fragment state.

 

If the script runs longer than that, especially when a MessageBox pops that needs a user button press, the screen will refresh before the script completes.

Link to comment
Share on other sites

Hm, possibly so. Then maybe a semaphore, condition related entries to hide and keep one visible for manual Refresh, then show a message at end of calculation.

Although not sure why a need to sit in the screen, if takes that long, may as well just bail out in a lore-friendly manner, like "we've sent request to VT mainframe, because Pipboy has only 1K? RAM". Hah, that doesn't help with question How though, sorry.

Link to comment
Share on other sites

This one will seemingly make the screen update and redraw. I can't attest to whether it considers your changes part of its payload. It will navigate to landing page.

Var[] args = new Var[1]
args[0] = true
UI.Invoke("TerminalMenu", "root1.TerminalBase_mc.RegisterTerminalElements", args)

 

 

There's also this but I can't tell if it's doing anything. (The 'false' specifies non-HTML)

args[0] = false
UI.Invoke("TerminalMenu", "root1.TerminalBase_mc.UpdateText", args)

 

 

Update: Both work.

Link to comment
Share on other sites

Unfortuantly I dont use F4SE because Xbox :(

 

The workaround is to pop the player from the pipboy with classic moveto.self and then holotapeterminal.ShowOnPipboy() yup nasty as hell but ya gotta do the best with the ingredients ya got.

Link to comment
Share on other sites

Calling holotapeterminal.ShowOnPipboy() whilst that holotapeterminal is already being displayed didn't actually do anything, just redisplayed the same out of date entries.

 

Only popping out and back in forces a reload/refresh of the entries.

 

If only there was a terminal.RefreshDisplay() trigger function !

Link to comment
Share on other sites

  • Recently Browsing   0 members

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