I'd appriciate some help and hints how to write a plotscript that creates a menu.
The menu items should be ordered randomly.
I try to use globals to keep track of how much of the menu is filled, because there is no arrays.
This is how far I got:
Code: Select all
global variable (0,random1_used) # keeps track id slot 1 is filled with a menu
global variable (1,random2_used)
global variable (2,random3_used)
global variable (3,random4_used)
global variable (5,random_used_counter) # keeps tack how many of the globals from 0-3 are set
plotscript, test2, begin
variable(mymenu, mi, slot)
mymenu := open menu(1)
variable(c)
c := 0
# Do I need to add the menu handles extra like this?
# Or are they created futher down in the for loop already?
while( c < 4) do(
add menu item(mymenu)
c:=c+1
)
variable(i)
i := 0
while(read global(5) < 4) do (
# choose a position
variable (choice, pos_choice)
pos_choice := random(1, 5)
i: = i+1
# menu item handles as variables
variable(mi1, mi2, mi3, mi4)
if ((pos_choice == 1) AND (read global(0) == FALSE)) then (
$1 = "one"
mi1 := menu item by true slot(mymenu, 1)
set menu item caption(mi1, 1)
set menu item type(mi1, menutype:label)
set menu item bit(mi1, menu item bit:Close menu when selected)
set menu item togtag(mi1, 3)
)
else if ((pos_choice == 2) AND (read global(1) == FALSE)) then (
$2 = "two"
mi2 := menu item by true slot(mymenu, 2)
set menu item caption(mi2, 2)
set menu item type(mi2, menutype:label)
set menu item bit(mi2, menu item bit:Close menu when selected)
set menu item togtag(mi2, 3)
)
else if ((pos_choice == 3) AND (read global(2) == FALSE)) then (
$3 = "three"
mi3 := menu item by true slot(mymenu, 3)
set menu item caption(mi3, 3)
set menu item type(mi3,menutype:label)
set menu item bit(mi3, menu item bit:Close menu when selected)
set menu item togtag(mi3, 3)
)
else if ((pos_choice == 4) AND (read global(3) == FALSE)) then (
$4 = "four"
mi4 := menu item by true slot(mymenu, 4)
set menu item caption(mi4, 4)
set menu item type(mi4,menutype:label)
set menu item bit(mi4, menu item bit:Close menu when selected)
set menu item togtag(mi4, 3)
)
else (
#nothing
)
# count how many are set:
write global(5, 0) # set global 5 to 0
variable (myvar)
if (read global(0) == 0) then (
myvar := read global(5)
myvar := myvar + 1
show value (myvar)
write global(5, myvar)
write global(0, TRUE)
)
if (read global(1) == 0) then (
myvar := read global(5)
myvar := myvar + 1
show value (myvar)
write global(5, myvar)
write global(1, TRUE)
)
if (read global(2) == 0) then (
myvar := read global(5)
myvar := myvar + 1
show value (myvar)
write global(5, myvar)
write global(2, TRUE)
)
if (read global(3) == 0) then (
myvar := read global(5)
myvar := myvar + 1
write global(5, myvar)
write global(3, TRUE)
)
show value (myvar)
)
end
The next time I start the script no text at all is displayed, I guess, I still need to reset some values after the menu is close.
Can you help me fix this script?
Is there an easier way to create random menus (for "choose the right answer"-type of questions)?
Thanks in advance for your help!