Pattern script
From Blood Wiki
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
# | Operator | Example | Description |
---|---|---|---|
1 | ( ) | ( expression ) | Expression |
2 | & | x & y | Logical 'And' |
3 | | | x | y | Logical 'Or' |
4 | = | x = y | Equal |
5 | != | x != y | Not equal |
6 | > | x > y | Greater |
7 | >= | x >= y | Greater or equal |
8 | < | x < y | Lesser |
9 | <= | x <= y | Lesser or equal |
10 | not | x & not y | Logical Not |
11 | >< | x >< start end | x > start And x < end |
12 | =>< | x =>< start end | x >= start And x < end |
13 | ><= | x ><= start end | x > start And x <= end |
14 | =><= | 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 | |
entity.field | ||
target<name>.field | ||
enemy<radius>.field | ||
sid<name>.field |
GamemodelHitPattern
# | 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:
|