Min / Max

Revision as of 12:45, 31 July 2009 by imported>QQuix (Min moved to Min / Max: Min and Max functions fit well toghether in the same article)

A User Function for use with Oblivion Script Extender

Syntax:

Min ValuesArray 
Min2 Value1, Value2
Max ValuesArray 
Max2 Value1, Value2

Returns the smallest/highest number in a set of values.


Notes

  • Min/Max returns the smallest/highest of the values stored in an array
  • Min2/Max2 returns the smaller/higher of two values
  • Other variations with fixed number of arguments may be easily created if you use them frequently in tour mod (Min3, Min4, etc)


Examples:

Getting the smallest of many values (considering that ValueXX are predefined float vars already filled with values)

Let MyArray := ar_Construct Array
Let MyArray [0] := Value00
   . . .
Let MyArray [NN] := ValueNN
Let MyNumber := call Min MyArray

; --- or just ---

set MyNumber to call Min ar_list Value01, Value02, Value03, . . . , ValueNN ;(up to 20 values)

Making sure a number is smaller than a given limit:

let MyNumber := Call Min MyNumber 100

Making sure a number is >= zero:

let MyNumber := Call Max MyNumber 0

Code

ScriptName Min 
array_var aArray
float xReturn

Begin Function {aArray} 
    Let xReturn := ( ar_sort aArray ) [0]
    SetFunctionValue xReturn 
End
ScriptName Min2
float arg1
float arg2

Begin Function {arg1, arg2} 
if arg1 < arg2
   SetFunctionValue arg1
else
   SetFunctionValue arg2
endif
 
End
ScriptName Max 
array_var aArray
float xReturn

Begin Function {aArray} 
    Let xReturn := ( ar_sort aArray 1 ) [0]
    SetFunctionValue xReturn 
End
ScriptName Max2 
float arg1
float arg2

Begin Function {arg1, arg2} 
if arg1 > arg2
   SetFunctionValue arg1
else
   SetFunctionValue arg2
endif
 
End

See Also