Difference between revisions of "MessageBox Tutorial/Centralized Decision Catching"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Haama
(Added to Scripting Tutorial Category)
imported>Haama
(Clarity)
Line 1: Line 1:
This is a subsection of the [[MessageBox Tutorial]], and uses [[MessageBox_Tutorial#Activator_Script|this script]] as a base. The following code may or may not require certain aspects of that script to work, however the information should prove useful for any script (it will take a bit of care to make it work, though).
This is a subsection of the [[MessageBox Tutorial]], and uses [[MessageBox_Tutorial#Activator_Script|this script]] as a base. The following code may or may not require certain aspects of that script to work, however the information should prove useful for any script (it may take a bit of care to make it work, though).


----
----


For 99.9% of your menus, you won't need to differentiate the decision catching:
For 99.9% of your menus, you won't need to differentiate the decision catching:
<pre>  Elseif (Choosing == 1)
<pre>  If (Choosing == 0)
...
  Elseif (Choosing == 1)
     If (Choice == -1) ;No choice yet
     If (Choice == -1) ;No choice yet
       Set Choice to GetButtonPressed
       Set Choice to GetButtonPressed
      Return
    Elseif (Choice == 0)
...
...
   Elseif (Choosing == 2)
   Elseif (Choosing == 2)
     If (Choice == -1) ;No choice yet
     If (Choice == -1) ;No choice yet
       Set Choice to GetButtonPressed
       Set Choice to GetButtonPressed
      Return
    Elseif (Choice == 0)
...</pre>
...</pre>


Line 21: Line 23:
     Set Choice to GetButtonPressed
     Set Choice to GetButtonPressed
     Return
     Return
...
  elseif (Choosing == 1)
    if (Choice == 0)
...
...
   elseif (Choosing == 2)
   elseif (Choosing == 2)
     if (Choice == 0) ;first choice, "Gold" in the example
     if (Choice == 0)
...
  elseif (Choosing == 3)
    if (Choice == 0) ;first choice, "25" in the example
</pre>
</pre>
[[Category: Scripting Tutorials]]
[[Category: Scripting Tutorials]]

Revision as of 01:45, 15 September 2007

This is a subsection of the MessageBox Tutorial, and uses this script as a base. The following code may or may not require certain aspects of that script to work, however the information should prove useful for any script (it may take a bit of care to make it work, though).


For 99.9% of your menus, you won't need to differentiate the decision catching:

  If (Choosing == 0)
...
  Elseif (Choosing == 1)
    If (Choice == -1) ;No choice yet
      Set Choice to GetButtonPressed
    Elseif (Choice == 0)
...
  Elseif (Choosing == 2)
    If (Choice == -1) ;No choice yet
      Set Choice to GetButtonPressed
    Elseif (Choice == 0)
...

To reduce the lines used, and to centralize the decision catching, try this instead:

  if (Choosing == 0)
...
  elseif (Choosing > 0) && (Choice == -1)
    Set Choice to GetButtonPressed
    Return
...
  elseif (Choosing == 1)
    if (Choice == 0)
...
  elseif (Choosing == 2)
    if (Choice == 0)