Difference between revisions of "Set"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>JOG
m
imported>JOG
m
Line 25: Line 25:




In integer divisions the remainder is truncated at the end of the operation:
'''Notes:'''


  set a to 9/5     ; will set "a" to 1
When using only numbers in the calculation, you need to use at least one decimal point to tell the game that you want to use floating point division, without a decimal point the remainder is truncated at the end of the division:
  set a to 10*9/5  ; will set "a" to 18
float a
  set a to 9/5   ; will set "a" to 1.000
  set a to 9.0/5  ; will set "a" to 1.800


 
When your variable is an integer and you want the result to be rounded you need to add 0.5:  
To accomplish correct rounding in integer divisions you need to add 0.5:
short a
 
  set a to 9.0/5+0.5 ; will set "a" to 2
  set a to 9/5+0.5 ; will set "a" to 2
  set a to 7.0/5+0.5 ; will set "a" to 1
  set a to 7/5+0.5 ; will set "a" to 1





Revision as of 12:11, 17 April 2006

Sets a local or global variable to a specified value. This value can be a number or an expression.


Arithmetic Operators:

Operator Description
+ Addition
- Subtraction
* Multiplication
/ Division
 % Modulus (do integer division and return remainder)


Notes:

When using only numbers in the calculation, you need to use at least one decimal point to tell the game that you want to use floating point division, without a decimal point the remainder is truncated at the end of the division:

float a
set a to 9/5    ; will set "a" to 1.000
set a to 9.0/5  ; will set "a" to 1.800

When your variable is an integer and you want the result to be rounded you need to add 0.5:

short a
set a to 9.0/5+0.5 ; will set "a" to 2
set a to 7.0/5+0.5 ; will set "a" to 1


Examples:

set a to 2
set b to a*a
set c to (b - a)*b - a
set d to ((3* -b+a) - c)/ -2
message "a=%.0f, b=%.0f, c=%.0f, d=%.0f" a b c d     ; ("a=2, b=4, c=6, d=8")

set stage to getstage quest1 + 10

As you see, when you put a minus right in front of a variable the variable will be negated. To acomplish this, the parser needs you to put spaces around all minuses that are operators and not algebraic signs. If you use "b-a" in the above example, the script doesn't compile; it needs to be "b - a".