Difference between revisions of "Options Menu"
Jump to navigation
Jump to search
m
→Notes: clarification
imported>Threedee (→Notes) |
imported>Threedee m (→Notes: clarification) |
||
Line 318: | Line 318: | ||
== Notes == | == Notes == | ||
*Given the buttons in Skyrim are listed from side to side, it is easy to spill over the edges of the user's monitor, particularly if it's a 4:3, in the event either the options are too verbose or there are too many options presented by a single message form. Currently, there's no way to list them from top to bottom as they were in previous Bethesda games. To mitigate this, keep the button text to a minimum and/or make sure to always set up conditions on mutually exclusive buttons to ensure only applicable options are presented. | *Given the buttons in Skyrim are listed from side to side, it is easy to spill over the edges of the user's monitor, particularly if it's a 4:3, in the event either the options are too verbose or there are too many options presented by a single message form. Currently, there's no way to list them from top to bottom as they were in previous Bethesda games. To mitigate this, keep the button text to a minimum and/or make sure to always set up conditions on mutually exclusive buttons to ensure only applicable options are presented. | ||
*To conditionalize buttons | *To conditionalize buttons using variables declared in your script/quest, use [[GetVMScriptVariable]] and [[GetVMQuestVariable]]. | ||
*To hide buttons you wish to fill in later, add an impossible condition like 'IsXBox == -1'. | *To hide buttons you wish to fill in later, add an impossible condition like 'IsXBox == -1'. | ||
*For debugging purposes, you could configure hidden menu buttons (in the Message forms) that only show when you set a GlobalVariable flag. For instance, create a GlobalVariable called "myDebugFlag" in the CK. Set a condition on one of your menu buttons to be "GetGlobalValue myDebugFlag == 1". In your script, have that button activate your debugging function. Now if you set myGlobalValue to 1 in the CK your button will appear in the menu. Before releasing the mod, remember to set myDebugFlag to 0 to keep the button hidden. | *For debugging purposes, you could configure hidden menu buttons (in the Message forms) that only show when you set a GlobalVariable flag. For instance, create a GlobalVariable called "myDebugFlag" in the CK. Set a condition on one of your menu buttons to be "GetGlobalValue myDebugFlag == 1". In your script, have that button activate your debugging function. Now if you set myGlobalValue to 1 in the CK your button will appear in the menu. Before releasing the mod, remember to set myDebugFlag to 0 to keep the button hidden. | ||
*Conditionalizing MessageBox buttons will not change their indices such that, for instance, button 9 will still execute the "Done" code in the last example even if buttons 0-8 are hidden. | *Conditionalizing MessageBox buttons will not change their indices such that, for instance, button 9 will still execute the "Done" code in the second last example even if buttons 0-8 are hidden. | ||
*To learn how to assign user-created messageboxes as values to the message box | *To learn how to assign user-created messageboxes as values to the message box Properties defined in the above scripts, see [[Bethesda_Tutorial_Papyrus_Introduction_to_Properties_and_Functions#Hooking_up_the_message_boxes_to_the_properties_in_the_script|the Papyrus tutorial's page on Properties and Functions]] | ||
*If the Message | *If the Message Property isn't filled in the CK the Show() will always return a 0, '''and the menu will not be shown'''. | ||
*If the Message is a Notification (without buttons) instead of a Message Box the Show() will return a -1, '''in which case you will never be presented with an options menu'''. | *If the Message is a Notification (without buttons) instead of a Message Box the Show() will return a -1, '''in which case you will never be presented with an options menu'''. | ||