SKKmods Posted February 14, 2023 Share Posted February 14, 2023 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 More sharing options...
Fantafaust Posted February 14, 2023 Share Posted February 14, 2023 Isn't it built in to the terminal menu options in the CK? Link to comment Share on other sites More sharing options...
SKKmods Posted February 14, 2023 Author Share Posted February 14, 2023 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 More sharing options...
hereami Posted February 14, 2023 Share Posted February 14, 2023 (edited) As an option for nested menus - Jump to Top level maybe. But doesn't it hang up untill fragment execution completes? For example, if there is Wait() somewhere, then it does, i guess. Edited February 14, 2023 by hereami Link to comment Share on other sites More sharing options...
SKKmods Posted February 14, 2023 Author Share Posted February 14, 2023 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 More sharing options...
hereami Posted February 14, 2023 Share Posted February 14, 2023 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 More sharing options...
RaidersClamoring Posted February 15, 2023 Share Posted February 15, 2023 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 More sharing options...
SKKmods Posted February 15, 2023 Author Share Posted February 15, 2023 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 More sharing options...
RaidersClamoring Posted February 15, 2023 Share Posted February 15, 2023 Doing the lord's work. :thumbsup: Glad you got it sorted.So what exactly is moveto.self doing that a simple reactivation i.e. ShowOnPipboy() will fall short of doing? Link to comment Share on other sites More sharing options...
SKKmods Posted February 15, 2023 Author Share Posted February 15, 2023 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 More sharing options...
Recommended Posts