Pattern script
From Blood Wiki
(Difference between revisions)
(→Operators) |
|||
| Line 48: | Line 48: | ||
| Logical Not. Must be always separated by space. | | Logical Not. Must be always separated by space. | ||
|- | |- | ||
| − | | colspan=3 | '''Comparison operators''' | + | | colspan=3 | '''Comparison operators''' (must be always separated by space) |
|- | |- | ||
| align=center | '''=''' | | align=center | '''=''' | ||
Revision as of 00:20, 18 July 2012
Contents |
Introduction
Pattern scripts is special kind of expressions that returns 1 or 0 used to determine availability of some functionality or event. This scripts can check for very wide range of conditions (gametime, special parms of entities, infoportions etc.).
Usage examples:
- Enemy appearance (some enemies are only active at night, some only at day etc.)
- Gamemodels damage masks (checks if could be damaged by certain weapon)
- Checking if trigger could be touched
Basic syntax:
// this script check if its a night or if there is an enemy within 300 units night | enemy<300>.found
// this scripts check if gametime is between 12 and 14 hours hour =><= 12 14
// this script check if it's fullmoon night or raining (night & fullmoon) | raining
Operators
Link expressions together.
| Operator | Example | Description |
|---|---|---|
| Logical operators (only applicable between expressions) | ||
| ( ) | ( expression ) | Expression |
| & | x & y | Logical 'And'. Must be always separated by space. |
| | | x | y | Logical 'Or'. Must be always separated by space. |
| not | x & not y | Logical Not. Must be always separated by space. |
| Comparison operators (must be always separated by space) | ||
| = | x = y | Equal |
| != | x != y | Not equal |
| > | x > y | Greater |
| >= | x >= y | Greater or equal |
| < | x < y | Lesser |
| <= | x <= y | Lesser or equal |
| >< | x >< start end | x > start And x < end |
| =>< | x =>< start end | x >= start And x < end |
| ><= | x ><= start end | x > start And x <= end |
| =><= | x =><= start end | x >= start And x <= end |
Functions
Set of functions is determined by pattern implementation. There is two pattern implementations as of yet.
GenericPattern
This is generic appearance pattern. It used on enemies appearance, zone appearance.
| Operator | Description |
|---|---|
| true | Always returns 1 |
| false | Always returns 0 |
| self.field | Checks one of the field of script owner. Fields could be:
|
| enemy.field | Check field of script owner enemy. See fields list above. |
| target<name>.field | Find entity by targetname (return first match). See fields list above. |
| enemy<radius>.field | Find enemy of script owner within given radius. See fields list above. |
| sid<name>.field | Find entity by SaveId. See fields list above. |
GamemodelHitPattern
Used on misc_gamemodel when model is hit.
GamemodelHitPattern functions
| Operator | Description |
|---|---|
| true | Always returns 1 |
| false | Always returns 0 |
| pushonly | System word. Allows to push object but not destroy. This should be the first operator in expression if used. |
| tag_tagname | Returns 1 if model tag closest to hit position matches this tag. Otherwise 0. |
| number% | Randomly returns 1 with this chance percentage. Typical values are 25%, 50%, 90% etc. |
| damagetype | Check if weapon have this damage type. Damagetype should be one of following constants:
|