I'm working on a mod with some MessageBoxes working as a configuration menu. I've had some issues along the way but it seems to be working fine now except for a minor issue. Each level of the menu has a Return option which ideally would return the menu to the previous stage, but instead it closes the menu entirely. Not really sure why it would act this way.
scn DKTrainingGuideConfigScript
short button
short menulevel
begin OnEquip
MessageBox "Trainer Seeking configuration. What would you like to do?", "Return", "Track Trainers", "Stop Tracking Quest"
SetStage DKTrainingGuideQuest 11
set menulevel to 1
end
begin MenuMode
if menulevel == 0
return
else
set button to GetButtonPressed
endif
if menulevel == 1
if button == 0
set menulevel to 0
return
elseif button == 1
MessageBox "What specialization is your desired skill under?", "Return" "Combat", "Magic", "Stealth"
set menulevel to 2
elseif button == 2
SetStage DKTrainingGuideQuest 200
set menulevel to 0
endif
elseif menulevel == 2
if button == 0
set menulevel to 1
;return
elseif button == 1
MessageBox "Which combat skill do you want to find trainers for?", "Return", "Armorer", "Athletics", "Block", "Blunt", "Blade", "Hand to Hand", "Heavy Armor"
set menulevel to 3
elseif button == 2
MessageBox "Which magic skill do you want to find trainers for?", "Return", "Alchemy", "Alteration", "Conjuration", "Destruction", "Illusion", "Mysticism", "Restoration"
set menulevel to 4
elseif button == 3
MessageBox "Which stealth skill do you want to find trainers for?", "Return", "Acrobatics", "Light Armor", "Marksman", "Mercantile", "Security", "Sneak", "Speechcraft"
set menulevel to 5
endif
elseif menulevel == 3
if button == 0
set menulevel to 2
;return
elseif button == 1
SetStage DKTrainingGuideQuest 104
set menulevel to 0
elseif button == 2
SetStage DKTrainingGuideQuest 105
set menulevel to 0
elseif button == 3
SetStage DKTrainingGuideQuest 106
set menulevel to 0
elseif button == 4
SetStage DKTrainingGuideQuest 107
set menulevel to 0
elseif button == 5
SetStage DKTrainingGuideQuest 108
set menulevel to 0
elseif button == 6
SetStage DKTrainingGuideQuest 111
set menulevel to 0
elseif button == 7
SetStage DKTrainingGuideQuest 112
set menulevel to 0
endif
elseif menulevel == 4
if button == 0
set menulevel to 2
;return
elseif button == 1
SetStage DKTrainingGuideQuest 102
set menulevel to 0
elseif button == 2
SetStage DKTrainingGuideQuest 103
set menulevel to 0
elseif button == 3
SetStage DKTrainingGuideQuest 109
set menulevel to 0
elseif button == 4
SetStage DKTrainingGuideQuest 110
set menulevel to 0
elseif button == 5
SetStage DKTrainingGuideQuest 113
set menulevel to 0
elseif button == 6
SetStage DKTrainingGuideQuest 117
set menulevel to 0
elseif button == 7
SetStage DKTrainingGuideQuest 118
set menulevel to 0
endif
elseif menulevel == 5
if button == 0
set menulevel to 2
;return
elseif button == 1
SetStage DKTrainingGuideQuest 101
set menulevel to 0
elseif button == 2
SetStage DKTrainingGuideQuest 114
set menulevel to 0
elseif button == 3
SetStage DKTrainingGuideQuest 115
set menulevel to 0
elseif button == 4
SetStage DKTrainingGuideQuest 116
set menulevel to 0
elseif button == 5
SetStage DKTrainingGuideQuest 119
set menulevel to 0
elseif button == 6
SetStage DKTrainingGuideQuest 120
set menulevel to 0
elseif button == 7
SetStage DKTrainingGuideQuest 121
set menulevel to 0
endif
endif
end