SCRIPT (file format)
From modwiki
Script files define a sequence of events grouped into 1 or more blocks. They are used in different fields like eg. level scripting or GUI actions. Scripts use a custom language with a syntax similar to C++ and are stored in plain-text ASCII files.
Contents |
[edit]
Syntax
The following should be a quick reference for scripting constructs. If you are new, read Scripting basics for more text and examples.
[edit]
General Syntax
The following is a list of special characters and general syntax information.
- ;
- Follows all commands. More than one command may exist on a single line. Informs the engine that the following is the end of a command.
- //
- Single line comment. Declares the text from this point to the end of the line a comment and is not executed. Can also be used to null out a line of code for debugging.
- /* and */
- Comment. Declares the text from /* to */ a comment and the text contained therein is not executed. Can also be used to null out a portion of code for debugging.
- { and }
- Script block. These show the start and end points of a group of commands. See the more complex structures further down.
- ( and )
- Group. Used to fix operator precedence or grouping conditional expressions.
- $
- Precedes all direct entity references. Informs the engine that the following is an entity reference. See basic scripting with entities
- .
- Precedes a script event or script object function. Informs the engine that the following function-like call is a script event or object function.
[edit]
Operators
[edit]
Simple Operators
- =
- Assignment
- +
- Add
- -
- Subtract
- *
- Multiply
- /
- Divide
- %
- Modulo / Remainder
- ++
- Add 1 / Increment
- --
- Subtract 1 / Decrement
[edit]
Conditional Operators
- ==
- Equals
- >=
- Greater or Equal
- <=
- Lesser or Equal
- &&
- And
- ||
- Or
- !
- Not
[edit]
Bit Operators
- &
- Bitwise And
- |
- Bitwise Or
- ~
- Bitwise XOr (?)
[edit]
Special Assignment Operators
- +=
- Add and Assign
- -=
- Subtract and Assign
- *=
- Multiply and Assign
- /=
- Divide and Assign
- %=
- Calculate Remainder and Assign
- &=
- Bitwise And and Assign
- |=
- Bitwise Or and Assign
[edit]
Conditional Structures
- if ( <condition> ) {
- }
- Checks if the condition is true, if so it executes the code block between { and } after the condition.
- if ( <condition> ) {
- } else {
- }
- Check if the condition is true, if so execute the code block just behind the condition. If not, execute the code block after the else keyword.
[edit]
Loop Structures
- while ( <condition> ) {
- }
- Execute the code block behind the condition for as long as the condition is true.
- for ( [start code]; [condition]; [loop code] ) {
- }
- When the structure is entered, the [start code] will be executed. Then the condition will be checked. At the end of the code block, the [loop code] is executed. After this, the condition is checked again and the loop will go on for as long as the condition is true.
[edit]
Code grouping
- <return type> <function name> ( [variable list] ) {
- }
- Function structure. Used to group commands which need to be called more then once. The variable list is separated with commas can be empty. A return type is required, use void if nothing is returned.
- object <object name> [
- <base object>] {
- }
- Object structure. Used to describe the behavior of an entity. It can inherit from other object definitions. See script object for more information.
- namespace <name> {
- }
- Namespace group. All variable and function names are then isolated from the global namespace. Used to avoid conflicts when including more then 1 script.
[edit]
Special
These are various statements which no real relation.
- #define <constant name> <value>
- Defines a read-only global value. The name is mostly written uppercase.
- #ifdef <constant name>
- #endif
- Conditional inclusion block. The contents will only be parsed if the constant is defined using #define.
- #ifndef <constant name>
- #endif
- Conditional inclusion block. The contents will only be parsed if the constant is not defined.
- #include "<name of script file>"
- Will define all global variables and functions used in the specified script file. Mostly reserved for scripts which need functions from other scripts to increase code reuse.
[edit]
Editing tools
Since scripts are plain-text files, a simple text editor can be used to edit or create scripts.

