This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
xrpl:full_doc_of_base_commands [2019/03/07 14:43] – Karsten75 | xrpl:full_doc_of_base_commands [2021/03/24 15:18] (current) – removed Karsten75 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | |||
- | ---- | ||
- | |||
- | ====== abs ====== | ||
- | |||
- | abs(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the absolute value of the item and pushes the result on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(abs(-1)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== acos ====== | ||
- | |||
- | acos(-1) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the arccosine of the input, returns the result in radians. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(acos(-1)) #prints PI | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== add ====== | ||
- | |||
- | 2 add (3) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Adds two arguments together and pushes the result on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(add(21 21)) #prints 42 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== and ====== | ||
- | |||
- | <-bool1 and (< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pops two items from the stack and treats them as TRUE/FALSE (0/1 or Boolean) values. If they are both TRUE, 1 is pushed to the stack. Otherwise, 0 is pushed to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 and (true)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== endonce ====== | ||
- | |||
- | EndOnce | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Ends an executable block defined by once. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | ONCE | ||
- | trace(" | ||
- | EndOnce | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== AppendStackToList ====== | ||
- | |||
- | AppendStackToList | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Adds all values on the stack to the end of a list. The order of the values will be reversed. | ||
- | |||
- | Note that the stack will be empty after this call, so think before using it in functions. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | Split(" | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== AppendToList ====== | ||
- | |||
- | AppendToList( <-list <-var) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Adds a value to the end of a list. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | Split(" | ||
- | do (GetListCount(< | ||
- | Trace (<-list I GetListElement) | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== approximately ====== | ||
- | |||
- | approximately(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes two floats and returns True if they equal, regardless of floating point jitter. See http: | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (approximately(1.000001 1)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== asfloat ====== | ||
- | |||
- | asfloat (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Converts an item on the stack to a floating point number and pushes it back onto the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | " | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== asin ====== | ||
- | |||
- | asin(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the arcsine of the input, returns result angle in radiants. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(asin(1)) #prints PI/2 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== asint ====== | ||
- | |||
- | asint (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Converts an item on the stack to an integer, and pushes it back to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | " | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== aslist ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== asstring ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== astable ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== atan ====== | ||
- | |||
- | atan(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the arctangent of the input, returns the angle in radians. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(atan(1)) #prints PI/4 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== atan2 ====== | ||
- | |||
- | atan2(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Computes and returns the angle of the point y/x in radians. The return value is between positive pi and negative pi. Note that the first parameter to atan2 is always the z coordinate. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(atan2(1 2)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== avg2 ====== | ||
- | |||
- | avg2(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Computes the average of two numbers. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 40 ->low | ||
- | 44 ->high | ||
- | avg2(< | ||
- | trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== break ====== | ||
- | |||
- | break | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Immediately exits the body of a ‘while/ | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | do(5 0) | ||
- | if (I mod(2) eq0) #divide inner loop with modulo 2 and test if zero | ||
- | break | ||
- | endif | ||
- | trace(I) | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ceil ====== | ||
- | |||
- | ceil(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes one number from the stack, rounds it up, and pushes that number back on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(ceil(4.2)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ClearStack ====== | ||
- | |||
- | ClearStack | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Remove all items from the stack leaving it empty. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 1 2 3 ClearStack #Stack is now empty | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ClearTraceLog ====== | ||
- | |||
- | ClearTraceLog | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes all messages from the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | ClearTraceLog | ||
- | "Fresh Message" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Concat ====== | ||
- | |||
- | Concat(“abc” “def”) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes the first two items from the stack and concatenates them. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace(Concat(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== CopyList ====== | ||
- | |||
- | CopyList (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Creates a copy of a list with the same contents. Note that if the list contains other lists, they will not be copied - for that you need [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | <-list CopyList -> | ||
- | SetListElement(< | ||
- | Trace(< | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== cos ====== | ||
- | |||
- | cos(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the cosine of the input angle in radians | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(cos(PI)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== CR ====== | ||
- | |||
- | CR | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes a carriage return to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( Concat (Concat(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== CreateList ====== | ||
- | |||
- | CreateList %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Creates an empty list. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (CreateList GetListCount eq0) | ||
- | Trace(" | ||
- | endif | ||
- | |||
- | createlist ->list | ||
- | 1 -> | ||
- | 4 -> | ||
- | 9 -> | ||
- | trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== CreateListStartingSize ====== | ||
- | |||
- | createliststartingsize (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Creates a list containing a specified number of null elements. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | 9 -> | ||
- | createliststartingsize (< | ||
- | trace ( < | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ====== CreateTable ====== | ||
- | |||
- | createTable %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Creates an empty table and pushes it to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | createTable ->table | ||
- | 1 -> | ||
- | 4 -> | ||
- | 9 -> | ||
- | trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Debug ====== | ||
- | |||
- | debug | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Debug peeks at the stack and then prints out the datatype of the top item on the stack followed by the value coerced into an int, float, and string. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 12 | ||
- | debug | ||
- | trace (mul (4)) # | ||
- | # output_log.txt will contain | ||
- | # INT 12 12 12 | ||
- | # | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== DeepCopyList ====== | ||
- | |||
- | DeepCopyList ( %%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Creates a copy of a list with the same contents. Unlike [[.: | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | Split(" | ||
- | <-list < | ||
- | |||
- | <-list CopyList -> | ||
- | <-list DeepCopyList -> | ||
- | SetListElement(< | ||
- | SetListElement(< | ||
- | |||
- | Trace(< | ||
- | Trace(< | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Deg2Rad ====== | ||
- | |||
- | mul(Deg2Rad %%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the constant to use in converting from degrees to radians to the stack. Multiply this value with a value expressed as degrees to obtain radians. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(180 mul(Deg2Rad)) #prints PI | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== DISTANCE ====== | ||
- | |||
- | distance(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns the distance between two given pairs of coordinates. (Or two sets of number pairs on the coordinate plane) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | CurrentCoords 0 0 Distance -> | ||
- | < | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== div ====== | ||
- | |||
- | %%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Divides the two arguments together and pushes the result on the stack. the output type (integer or float) depends on the input, except is the result is explicitly cast. See examples. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(5 div(4)) #prints ' | ||
- | trace(5 div(4.0)) #prints ' | ||
- | trace(5 div(4 asfloat)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== do ====== | ||
- | |||
- | do(5 0) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | The statements following the do, up to the loop statement, are executed repeatedly. Each iteration (loop), the initial value (Index) is incremented by one at the bottom of the loop and compared to Limit. When Index=Limit, | ||
- | |||
- | NOTE: Limit comes first, then the initial value (index). This means that the first number should usually be bigger than the second number. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | # single loop | ||
- | do(5 0) | ||
- | | ||
- | loop | ||
- | # Prints: | ||
- | # 0 | ||
- | # 1 | ||
- | # 2 | ||
- | # 3 | ||
- | # 4 | ||
- | |||
- | Nested loops | ||
- | |||
- | do(2 0) | ||
- | trace(I) | ||
- | Do (4 2) | ||
- | Trace2 (J I) | ||
- | Do (6 4) | ||
- | Trace3 (K J I ) | ||
- | loop | ||
- | loop | ||
- | loop | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== DQ ====== | ||
- | |||
- | DQ | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes a double-quote (") to the stack. This is the only way to create a string containing this character as they are normally used to delineate strings. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | DQ " | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== dup ====== | ||
- | |||
- | dup | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Duplicates the item currently on the stack without removing the original item. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace2(42 dup) #prints '42 42' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== dup2 ====== | ||
- | |||
- | dup2 | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Duplicates the top two items currently on the stack without removing the original pair. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace4(42 1 dup2) #prints '42 1 42 1' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== E ====== | ||
- | |||
- | e | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of Euler’s number (e) to the stack (2.71828…) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(e) #prints 2.71828182845 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== else ====== | ||
- | |||
- | else ## Description When an if statement evaluates to false, then the statements following the else, up to the endif, are executed instead. see[[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (<-var eq (1)) | ||
- | #Do something | ||
- | else | ||
- | #Do something else | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== endif ====== | ||
- | |||
- | endif | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Delimits the scope of an if-else-statement. Instructions between the if and endif statement are conditionally executed, depending on the results of the if evaluation. see [[[#if|if]] | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (<-var eq (1)) | ||
- | #Do something | ||
- | else | ||
- | #Do something else | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== endonce ====== | ||
- | |||
- | endonce | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Ends a block defined by once. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | once | ||
- | trace(" | ||
- | endonce | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== EndsWith ====== | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes two strings from the stack and returns whether the first string ends with the second (case sensitive) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (EndsWith(" | ||
- | Trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== endwhile ====== | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns execution to the ‘while’ statement. Note that endwhile is only executed, if ‘repeat’ evaluated to true. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 5 -> | ||
- | while | ||
- | <-y gt(0) #is y greater than zero? | ||
- | repeat | ||
- | trace(< | ||
- | <-y sub(1) -> | ||
- | endwhile | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== eq ====== | ||
- | |||
- | eq | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Top two items are popped from the stack and compared for equality. 0 or 1 is pushed back to the stack where 1 indicates equal and 0 (zero) ndicates not equal | ||
- | |||
- | the equal/not equal evaluation can also be performed with “true” (1) and false(0), respectively. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 eq (1)) | ||
- | trace(" | ||
- | endif | ||
- | |||
- | # alternate example | ||
- | |||
- | 1 dup eq | ||
- | if true | ||
- | trace ("one is always one") | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== eq0 ====== | ||
- | |||
- | eq0 | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Top item is popped from the stack and Compared to 0. 0 (false) or 1 (true) is pushed back to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (0 eq0) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== false ====== | ||
- | |||
- | false | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes a 0 (false) nto the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (false) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== floor ====== | ||
- | |||
- | floor (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes one number from the stack, rounds it down, and pushes that number back on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(floor(4.2)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== GetListCount ====== | ||
- | |||
- | GetListCount(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns the number of entries in a list. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | Trace(GetListCount(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== GetListElement ====== | ||
- | |||
- | GetListElement (I) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns the value at the specified index of a list. Lists are indexed from zero. | ||
- | |||
- | Note: If a list is stored in a variable, this can be abbreviated to %%< | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | 6 0 do | ||
- | Trace (<-list I GetListElement) | ||
- | Trace (< | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ====== Gettableelement ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== GetType ====== | ||
- | |||
- | GetType (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes a value and returns a string of what type of value it is. Types: STRING INT FLOAT LIST NULL | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | " | ||
- | <-Type trace #Would return STRING as the result | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== gt ====== | ||
- | |||
- | 5 GT (4) #true | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | The first item on the stack is compared to the second item on the stack. Both items are removed from the stack. If the first item is greater than the second, True (1) is pushed to the stack. If not, False (o) is pushed to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | # Wrap notation | ||
- | if (42 gt (1)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== gte ====== | ||
- | |||
- | 5 GTE (5) #true | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | The first item on the stack is compared to the second item on the stack. Both items are removed from the stack. If the first item is greater than or equal to the second, True (1) is pushed to the stack. If not, False (o) is pushed to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (2 gte (2)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== HALFPI ====== | ||
- | |||
- | HALFPI | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of PI/2 to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(HALFPI) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== I ====== | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Current loop index. Pushes the value of the current “do” loop onto the stack. Only use within loops. | ||
- | |||
- | Note that I refers to the innermost loop. As loops are nested, I will continue to reference the innermost of the nested loops. See [[[#j|J]]] [[[#k|k]]] for other loop indexes. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | do(2 0) | ||
- | trace(I) | ||
- | Do (4 2) | ||
- | Trace2 (J I) | ||
- | Do (6 4) | ||
- | Trace3 (K J I ) | ||
- | loop | ||
- | loop | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== if ====== | ||
- | |||
- | if (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Evaluate the first element on the stack. If True, then execute statements that follow, up to the endif or else statement. If False, execution skips to the first statement following the endif or else statement. Any nonzero value is considered True, a value of zero is False. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (<-var eq (1)) | ||
- | #Do Something | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== InsertListElement ====== | ||
- | |||
- | InsertListElement(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Stores a value at the specified index of a list. The previously stored value, and all subsequent values have their indices shifted up by one. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | InsertListElement(< | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== J ====== | ||
- | |||
- | J | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | First outer loop index. When loops are nested, this pushes the value of the first (or only) outer “do” loop onto the stack. Do not use outside nested loops. | ||
- | |||
- | Note: after the inner loop finishes, this value is accessed with I, it being now the innermost loop. See also: [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | do(6 5) | ||
- | do(4 3) | ||
- | trace4 (" | ||
- | loop | ||
- | | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== K ====== | ||
- | |||
- | K | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Outer loop index. When “do” loops are nested, this pushes the value of the third-innermost loop onto the stack. Do not use outside of triply-nested loops. | ||
- | |||
- | Note that before the inner loops begin, after they end, or between inner loops, this value may need to be referred to with J or even I. See also: [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | do(2 1) | ||
- | do(4 3) | ||
- | do(6 5) | ||
- | I J K Trace3 | ||
- | loop | ||
- | loop | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== LF ====== | ||
- | |||
- | LF | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes a line feed to the stack. Useful for printing | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( Concat (Concat(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ln ====== | ||
- | |||
- | LN | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | The natural logarithm. Gives the magnitude of the number. On zero, returns -inf. Below zero, returns NaN, a special value that always causes failure when compared to other numbers. Eg. (NaN<0) %%->%% false, (Nan>=0) %%->%% false | ||
- | |||
- | other logarithms \ ln(x) = log(x, e) \ ln(x)/ | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(ln(-1)) #prints ' | ||
- | trace(ln(0)) | ||
- | trace(ln(1)) | ||
- | trace(ln(e)) | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== log ====== | ||
- | |||
- | log | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Allows the performance of arbitrary based logarithms. See examples. On zero, returns -inf. Below zero, returns NaN, a special value that always causes failure when compared to other numbers. Eg. (NaN<0) %%->%% false, (Nan>=0) %%->%% false | ||
- | |||
- | other logarithms \ log(x,10) = log10(x) \ log(x,e) = ln(x) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(log(2 .5)) # | ||
- | trace(log(.25 .5)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== log10 ====== | ||
- | |||
- | LOG10 | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | The base ten logarithm. Gives the number of digits in the number before the decimal point. On zero, returns -inf. Below zero, returns NaN, a special value that always causes failure when compared to other numbers. Eg. (NaN<0) %%->%% false, (Nan>=0) %%->%% false | ||
- | |||
- | other logarithms %%//%% log10(x) = log(x, 10) %%//%% log10(x)/ | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(log10(1)) | ||
- | trace(log10(10)) # prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== loop ====== | ||
- | |||
- | LOOP | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Terminates the ‘do’ instruction loop . Control flow will return to the ‘do’ instruction until the Index is equal to the Limit. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | do(5 0) | ||
- | | ||
- | loop | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== lt ====== | ||
- | |||
- | LT | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | First item on the stack is compared to the second item on the stack.\\ | ||
- | 0 (fasle) or 1 (true) is pushed to the stack depending on whether the first value was less than the second or not. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 lt (42)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== lte ====== | ||
- | |||
- | LTE | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | First item on the stack is compared to the second item on the stack.\\ | ||
- | 0 (fasle) or 1 (true) is pushed to the stack depending on whether the first value was less or equal to the second or not. ## Examples | ||
- | |||
- | < | ||
- | if (1 lte (1)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== max ====== | ||
- | |||
- | MAX | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Push the greater of two arguments to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(max(4 5)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== min ====== | ||
- | |||
- | MIN | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Push the smaller of two arguments to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(max(4 5)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== mod ====== | ||
- | |||
- | MOD | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Perform integer division and returns the value (modulo) of the difference. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(5 mod (3)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== mul ====== | ||
- | |||
- | MUL | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Multiplies the two arguments together and pushes the result on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(2 mul(3)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== neg ====== | ||
- | |||
- | NEG | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the negative value of the item and pushes the result on the stack. The result is effectively the same as multiplying the original number by -1. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(neg(42)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== neq ====== | ||
- | |||
- | NEQ | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Top two items are popped from the stack and compared for equality. 0 or 1 is pushed back to the stack where 0 indicates false and 1 indicates true. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 neq (2)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== neq0 ====== | ||
- | |||
- | NEQ0 | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | first item on the stack is compared to zero. If zero, true (1) is pushed on the stack, otherwise falsse (0) is pushed back to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 neq0) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== not ====== | ||
- | |||
- | NOT | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Treats first item on the stack as a boolean value (true/false (1/0) , ‘nots’ it, and pushes 0 or 1 back to the stack. If the item is TRUE, 0 is pushed to the stack. If the item is FALSE, 1 is pushed to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (not(false)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== NotPersist ====== | ||
- | |||
- | NotPersist(“var_name”) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | By default, variables persist across saves. Using this command makes them not persist across saves. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | NotPersist(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== once ====== | ||
- | |||
- | ONCE | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Start a block of instructions that are executed once only for the lifetime of the entity the script is associated with. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | once | ||
- | trace(" | ||
- | endonce | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== or ====== | ||
- | |||
- | OR | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pops two items from the stack, treats them as boolean values, ‘ors’ them, and pushes 0 or 1 back to the stack. If one or both items evaluate to True, it returns TRUE (1) to the stack. If both items evaluate to FALSE, FALSE (0) is returned to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 or (false)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PI ====== | ||
- | |||
- | PI | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of PI (3.14159265…) to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(PI) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== pop ====== | ||
- | |||
- | POP | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes the item at the top of the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 42 pop #stack is now empty | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== pow ====== | ||
- | |||
- | POW | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pops two arguments from the stack and raises the first to the second and pushes the result to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace (8 pow (3)) ) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PrependStackToList ====== | ||
- | |||
- | PrependStackToList (“Hello” “Creeper” “World” %%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Inserts the contents of the stack at the beginning of L1 (at index 0) and shifts the index of all other elements in the list up by the number of elements on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | createlist ->list | ||
- | AppendStacktoList (" | ||
- | PrependStackToList (" | ||
- | print (<-list) | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PrependToList ====== | ||
- | |||
- | PrependToList ( <-list item) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Adds a value to the beginning of a list. Any values previously stored in the list are shifted up by one. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | PrependToList( <-list 0) | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Print ====== | ||
- | |||
- | PRINT (“Hello World”) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes one item from the stack and writes it on a new line in a file called PRPL.txt in the game’s root content folder, preceded by the identifying information that indicates which unit or component called the PRINT function. Note that this file is truncated (cleared) each time a map is loaded. | ||
- | |||
- | To avoid having to constantly re-open the RPL.txt file to refresh it, a Windows Powershell commad (or Linus shell command) can be written to monitor the file and show new output. | ||
- | |||
- | Eg. Create a file in the game’s root directory named ShowRPL.PS1. Put this single line in the file | ||
- | |||
- | < | ||
- | Get-Content RPL.txt -wait | ||
- | </ | ||
- | Now, in the context menu for the file, click on “Run with PowerShell”. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | # Assume this core is at map coordinates (100, 50). Assume this script is named " | ||
- | "Hello World!" | ||
- | # Each time this line is invoked, a new line appears in PRPL.txt: | ||
- | # [100,50] Hello.prpl: Hello World! | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Print2 ====== | ||
- | |||
- | PRINT2 (“Hello” “World”) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 2 values from the stack into the rpl.txt output file. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Print2 (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Print3 ====== | ||
- | |||
- | PRINT3 (“Hello” “World” " Again" | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 3 values from the stack into the rpl.txt output file. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Print3 (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Print4 ====== | ||
- | |||
- | PRINT4 (“Oh” “Hello” “World” " Again" | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 4 values from the stack into the rpl.txt output file. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Print4 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Print5 ====== | ||
- | |||
- | PRINT4 (“not” “another” “Hello” “world” “example”) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 5 values from the stack into the rpl.txt output file. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Print5 (<-x " | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PrintAll ====== | ||
- | |||
- | PrintAll | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes all values from the stack and prints them in the RPL.txt file The values will be on a single line and **not** separated by a space when printed. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | PRINTALL (" | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PrintAllSp ====== | ||
- | |||
- | PrintAllSp | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes all values from the stack and prints them into the RPL.txt file The values will be on a single line and **will** be separated by a space when printed. See [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | PRINTALLSP (" | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== PrintStack ====== | ||
- | |||
- | PrintStack | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints all the values from the stack to the RPL.txt file without removing them. The top and bottom of the stack will be identidfied, | ||
- | |||
- | Note ## Examples | ||
- | |||
- | < | ||
- | PrintStack (" | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== QUARTERPI ====== | ||
- | |||
- | QuarterPI | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of PI/4 to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(HALFPI) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Rad2Deg ====== | ||
- | |||
- | Rad2Deg | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the constant to use in converting radians to degrees onto the stack. Multiply this value with a value expressed in radians to obtain degrees. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(PI mul(Rad2Deg)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== RANDFLOAT ====== | ||
- | |||
- | randfloat (%%H%%rando ) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Gives a random floating-point number between 0 and 1 | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace ( RandFloat mul ( 2 mul (PI))) | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== RANDINT ====== | ||
- | |||
- | randInt((0 10)) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns a random integer from a range of two numbers Inclusive of the lower number, but exclusive of the higher number. A workaround for between 0 and 10 both inclusive is in the example below. is to do 0 11 RandInt, so 11 will exclude but 10 will include [basically, 0 10 1 add RandInt] | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | # get a random integer between 1 and 10 (both numbers inclusive) | ||
- | RandInt(0 11) | ||
- | # | ||
- | # or | ||
- | # | ||
- | RandInt( 0 10 add (1)) # functionally equivalent. | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== RemoveListElement ====== | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes an element from a list at a given position. Position are indexed from 0. | ||
- | |||
- | Elements after the removed one will be shifted towards the start of the list. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | createlist ->list | ||
- | " | ||
- | " | ||
- | " | ||
- | RemoveListElement(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ====== removetableelement ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== repeat ====== | ||
- | |||
- | Repeat | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Part of the " | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 5 -> | ||
- | while | ||
- | <-y gt(0) #is y greater than zero? | ||
- | repeat | ||
- | trace(< | ||
- | <-y sub(1) -> | ||
- | endwhile | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== return ====== | ||
- | |||
- | Return | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Stops execution of a function call and returns immediately. If called from some place other than a function, it will stop the script execution and ‘return’ immediately. Useful for aborting function execution or script execution when necessary. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(42) | ||
- | @MyFunc | ||
- | trace (43) | ||
- | |||
- | : | ||
- | trace(" | ||
- | return | ||
- | trace(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== round ====== | ||
- | |||
- | Round (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Rounds off a number to the specified number of decimal places. This always returns a float, even when you are rounding to a whole number. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(PI round(2)) #print ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== SetListElement ====== | ||
- | |||
- | SetListElement(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Stores a value at the specified index of a list. The previously stored value is overwritten. | ||
- | |||
- | If a list is stored in a variable, this can be abbreviated to %%< | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | SetListElement(< | ||
- | " | ||
- | Trace(< | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== settableelement ====== | ||
- | |||
- | To be supplied | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ShortestAngle ====== | ||
- | |||
- | ShortestAngle(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Given two angles, calculates the shortest angle between the two. Useful for determining which direction a unit should rotate in order to turn to a given direction. A positive or negative value will be returned in the range of PI to -PI. Negative values indicate clockwise rotation. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(ShortestAngle(1.1 2.5)) | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== SignalGenerator ====== | ||
- | |||
- | SignalGenerator(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Computes the value for a given signal waveform and pushes it to the stack. | ||
- | |||
- | A function to derive the y-coordinate for a given x-co-ordiante on a graph line following one of the indicated wave patterns. Uselful to animate an object or to a given pattern over time. Could be used for instance to vary output from an emitter. Oscillating rightness of light source or beacon; Oscillating strength of an emitter over time - both of these can be thought of as a a use case for this function. | ||
- | |||
- | Arguments and type in order: 1: Integer. the X coordinate in the waveform (Eg. time) \ 2: Float. Frequency of the waveform \ 3: Float. PhaseShift of the waveform \ 4: Bool. invert the waveform \ 5: Integer. Signal type (0 to 6 in types, below) \ | ||
- | |||
- | Signal types. 0 = NONE < | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | # On a map with terrain of 200 in X direction and at least 150 in Z direction (3D coordinates) | ||
- | # generate a sine wave of creeper across the map. | ||
- | 200 -> | ||
- | -> | ||
- | 0 | ||
- | false ->invert | ||
- | 1 | ||
- | |||
- | do (< | ||
- | SignalGenerator(I < | ||
- | round (< | ||
- | print3 (I " : " < | ||
- | SetCreeper(I 75 add (< | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== sin ====== | ||
- | |||
- | sin (PI) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the sine of the input angle | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(sin(PI)) #prints 0 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Split ====== | ||
- | |||
- | Split (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes two strings from the stack and splits the first wherever the second occurs. Returns a list of strings. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Split(" | ||
- | < | ||
- | Trace(< | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== sqrt ====== | ||
- | |||
- | SQRT (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pops an item from the stack and pushes the square root of that number to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(sqrt(9)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== StackSize ====== | ||
- | |||
- | StackSize < | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns the number of items currently on the stack | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 1 2 3 trace(StackSize) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== StartsWith ====== | ||
- | |||
- | StartsWith (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes two strings from the stack and returns whether the first string starts with the second (case sensitive) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (StartsWith(" | ||
- | Trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== StringLength ====== | ||
- | |||
- | Stringlength (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Returns the number of characters in a string. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( StringLength (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== StringReplace ====== | ||
- | |||
- | StringReplace (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | string ARG1: The string to be searched string ARG2: The string to search for in ARG1 string ARG3: The string to replace ARG2 with | ||
- | |||
- | Searches a string for all instances for another string, and replaces them with a different string. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace(StringReplace (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== StringToList ====== | ||
- | |||
- | StringToList (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Takes a string from the stack and returns the list of characters in the string. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | StringToList(" | ||
- | < | ||
- | Trace(< | ||
- | loop | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== sub ====== | ||
- | |||
- | 44 sub (2) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Subtracts the two arguments together and pushes the result on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(44 sub(2)) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Substring ====== | ||
- | |||
- | Substring (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Extracts a portion of a string into a new item on the stack. | ||
- | |||
- | The command has 3 arguments. First the string to be examined, second the starting position of the substring within the original string, starting from offset 0 (zero) and thirdly the length of the extrated string. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( Substring(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== swap ====== | ||
- | |||
- | swap | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Swaps the order of the top two items on the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace2(swap(1 2)) #prints '2 1' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== tan ====== | ||
- | |||
- | tan (PI) %%-> | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Calculates the tangent of the input angle. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(tan(PI)) #prints 0 | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== TAU ====== | ||
- | |||
- | TAU | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of TAU (2PI) to the stack (6.2831853…) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(TAU) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ToLower ====== | ||
- | |||
- | ToLower(%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Converts a string to lowercase. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( ToLower(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== ToUpper ====== | ||
- | |||
- | ToUpper (%%< | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | Trace( ToUpper(" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Trace ====== | ||
- | |||
- | Trace (“ABC”) | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints a value from the stack into the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Trace (" | ||
- | |||
- | if (<-value lt (0)) | ||
- | Trace (" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Trace2 ====== | ||
- | |||
- | Trace2 (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 2 values from the stack into the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Trace2 (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Trace3 ====== | ||
- | |||
- | Trace3 (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 3 values from the stack into the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Trace3 (" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Trace4 ====== | ||
- | |||
- | Trace4 (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 4 values from the stack into the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Trace3 ("3 Coords:" | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== Trace5 ====== | ||
- | |||
- | Trace5 (%%< | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints 5 values from the stack to the debug window. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | Trace5 (<-x " plus " <-y " is " < | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== TraceAll ====== | ||
- | |||
- | TraceAll | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes all the values from the stack and prints them into the debug console. The values will be on a single line and **not** separated by a space when printed. Compare to [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | traceAll | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== TraceAllSp ====== | ||
- | |||
- | TraceAllSp | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Removes all the values from the stack and prints them into the debug console. The values will be on a single line and **will** be separated by a space when printed. Comparae to [[[# | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | traceAllSp | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== TraceStack ====== | ||
- | |||
- | TraceStack | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Prints all the items from the stack to the debug window without removing them. Items are printed one per line and the type of each is also provided. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | |||
- | # inspect what a function does to the stack | ||
- | TraceStack # see stack before the call | ||
- | @MyFunction | ||
- | TraceStack # see stack after the call | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== true ====== | ||
- | |||
- | true | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes a 1 onto the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (true) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== TWOPI ====== | ||
- | |||
- | TwoPI | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pushes the value of TAU (2PI) to the stack (6.2831853…) | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | trace(TWOPI) #prints ' | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== while ====== | ||
- | |||
- | While | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Beginning of a while loop. The statements between a ‘while’ and a ‘repeat’ should ultimately push a value to the stack that will determine if the loop executes the body of the ‘repeat’ block. | ||
- | |||
- | A while loop is a control flow statement that allows code to be executed repeatedly based on a given Boolean condition. The while loop can be thought of as a repeating if statement. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | 5 -> | ||
- | while < | ||
- | repeat | ||
- | trace(< | ||
- | <-y sub(1) -> | ||
- | endwhile | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ====== xor ====== | ||
- | |||
- | XOR | ||
- | |||
- | ===== Description ===== | ||
- | |||
- | Pops two items from the stack, treats them as boolean values, ‘xors’ them, and pushes 0 or 1 back to the stack. If both items are TRUE, 0 is pushed to the stack. If both items are FALSE, 0 is pushed to the stack. If one item is TRUE and the other is FALSE, 1 is pushed to the stack. | ||
- | |||
- | ===== Examples ===== | ||
- | |||
- | < | ||
- | if (1 xor (false)) | ||
- | trace(" | ||
- | endif | ||
- | </ | ||
- | |||
- | ---- | ||