User Tools

Site Tools


4rpl:commands:specialsyntax

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
4rpl:commands:specialsyntax [2021/11/17 13:59] – 4rpl -> 4RPL Karsten754rpl:commands:specialsyntax [2025/02/14 14:57] (current) – external edit 127.0.0.1
Line 10: Line 10:
  
 === Description === === Description ===
-All of the variable commands can also be used followed by * symbol in order to access __global__ variables +All of the [[4rpl:start#variables | variable commands]] can also be used followed by the ''*'' symbol in order to access __global__ variables 
 instead. Global variables do not belong to one single script, reading or writing to a global variable will  instead. Global variables do not belong to one single script, reading or writing to a global variable will 
 modify the same exact value from any script.  modify the same exact value from any script. 
  
-Global variables **belong to a CPACK**, they cannot be used for cross-CPACK communication. For this purpose use [[SetGlobalTable]].+Global variables **belong to a map** and can be accessed from within different CPACK's. For this reason it is recommended to stick to a unique naming convention to prevent collisions with other CPACK's.
  
 Global variables may have the same names as local variables, there is no interference between them. Global variables may have the same names as local variables, there is no interference between them.
Line 43: Line 43:
  
 Vectors contain up to 4 fields.  Vectors contain up to 4 fields. 
-These fields can be referenced with a suffix that infers the use of the vector+These fields can be referenced with a suffix that implies the use of the vector
  
-  * .x .y .z .w (coordiaate+  * .x .y .z .w  (coordinates
-  * .r .g .b  .a  (color)+  * .r .g .b .a  (color)
   * .0 .1 .2 .3  (index)    * .0 .1 .2 .3  (index) 
  
Line 61: Line 61:
 V3(255 0 0) ->red V3(255 0 0) ->red
 </code> </code>
 +
 +A brief note on color values:
 +
 +Color is represented by 4 values, each of the first 3 the intensity of one of the primary colors (Red, Green and Blue) and the 4th value the Alpha channel. Alpha values indicate transparency or opacity. All of these values are floating-point values ranging from 0 to 1, with higher values truncated to 1. 
 +
 +Example: 
 +  ?   V4(1,1,1,1) 
 +  : is white. 
 +  ? V4(1 0 0 1)  
 +  : is red. 
 +  ? V4(0 1 0 1)  
 +  : is green. 
 +  ? V4(0 0 1 1)  
 +  : is blue.
 +  
 +Combining different values result in any other intermediate color.
 +
 +Changing the 4th field to a lesser value would increase the transparency, until at 0 it would render the text invisible
  
 ---- ----
Line 67: Line 85:
 ---- ----
 ===== Lists ===== ===== Lists =====
 +
 +<=[[4rpl:start#lists| List Commands]] \\
  
 Lists are collections of data. They are similar to arrays but they do not have a fixed length.  Lists are collections of data. They are similar to arrays but they do not have a fixed length. 
Line 82: Line 102:
 effectively setting element number "index" of the variable to whichever value is on top of the stack.  effectively setting element number "index" of the variable to whichever value is on top of the stack. 
 If **variable** is not a list, a warning will be printed to the console. If **variable** is not a list, a warning will be printed to the console.
 +
 +See also: [[4rpl:commands:specialsyntax#coerce table to list]]
  
 === Example === === Example ===
Line 97: Line 119:
 ---- ----
 ===== Tables ===== ===== Tables =====
 +
 +<=[[4rpl:start#Tables| Table Commands]] \\
  
 Tables are collection of named data. They are sometimes called dictionaries in other languages.  Tables are collection of named data. They are sometimes called dictionaries in other languages. 
Line 123: Line 147:
 </code> </code>
  
-It is possible to iterate over the elements in a table by coercing the table into a list. The following shows two equivalent methods to extract data from a table. The last of the two is slightly more efficient. +==== Coerce table to list  ==== 
 +It is possible to iterate over the elements in a table by coercing the table into a list. The following shows two equivalent methods to extract data from a table. Method Two is slightly more efficient. 
  
 === Example === === Example ===
Line 134: Line 159:
 Table ->units  Table ->units 
  
-# method 1+# method One
   
 Do (GetTablecount(<-units) 0) Do (GetTablecount(<-units) 0)
Line 142: Line 167:
 Loop Loop
  
-# method 2+# method Two
  
 GetTableKeys(<-units)->keys GetTableKeys(<-units)->keys
4rpl/commands/specialsyntax.1637157545.txt.gz · Last modified: 2025/02/14 14:56 (external edit)