updated layout and informations authored by Lxlp's avatar Lxlp
Mechanic: SetVariable ## Description
=====================
Sets a [variable](/skills/variables). Variables can be permanent or Sets a [variable](/skills/variables). Variables can be permanent or
temporary, and can be used in conjunction with conditions or temporary, and can be used in conjunction with conditions or
placeholders to store data. placeholders to store data.
Attributes
----------
| Attribute | Aliases | Description | Default Value |
|-----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| variable | name, n, var, key, k | The name of the variable. Can optionally be prefixed with **scope.** | |
| value | val | The value to set the variable to. Must be applicable for **type** or the mechanic will fail. Should be surrounded in double-quotes if using spaces. Value can also include placeholders, even from PlaceholderAPI. | |
| scope | s | The [scope](/skills/variables#variable_scopes) of the variable, e.g. where the variable will be located. | SKILL |
| type | t | The [type](/skills/variables#variable_types) of the variable. Set to STRING if you are using text instead of numbers. | INTEGER |
| save | | Whether the variable should save between reloads, reboots and disconnects. Does not apply to SKILL-scoped variables. | false |
| duration | d | How long (in ticks) the variable should last. Does not apply to SKILL-scoped variables. | Infinite |
## Attributes
| Attribute | Aliases | Description | Default |
|-----------|-----------|----------------------------------------------------------------------|---------|
| variable | name, n, var, key, k | The name of the variable. Can optionally be prefixed with `scope` | |
| value | val | The value to set the variable to. Must be applicable for `type` or the mechanic will fail. Should be surrounded in double-quotes if using spaces. Value can also include placeholders, even from PlaceholderAPI | |
| scope | s | The [scope](/skills/variables#variable_scopes) of the variable, e.g. where the variable will be located | SKILL |
| type | t | The [type](/skills/variables#variable_types) of the variable. Set to STRING if you are using text instead of numbers | INTEGER |
| save | | Whether the variable should save between reloads, reboots and disconnects. Does not apply to SKILL-scoped variables | false |
| duration | d | How long (in ticks) the variable should last. Does not apply to SKILL-scoped variables | Infinite|
Examples
----
## Examples
In this example, the target players would only hear growling from any In this example, the target players would only hear growling from any
number of nearby bears once every 10 minutes. number of nearby bears once every 10 minutes.
```yaml
# Mob File
BearMob: BearMob:
Skills: Skills:
- skill{s=BearGrowl} @PlayersInRadius{r=40} ~onTimer:60 - skill{s=BearGrowl} @PlayersInRadius{r=40} ~onTimer:60
```
```yaml
# Skill File
BearGrowl: BearGrowl:
TargetConditions: TargetConditions:
- variableEquals{var=target.heardbear;value="yes"} cancel - variableEquals{var=target.heardbear;value="yes"} cancel
Skills: Skills:
- message{m="&7You hear a growling noise..."} - message{m="&7You hear a growling noise..."}
- setvariable{var=target.heardbear;value="yes";type=STRING;duration=6000} - setvariable{var=target.heardbear;value="yes";type=STRING;duration=6000}
```
##
In this example, the extra "IgnitionDamage" skill would only fire if the In this example, the extra "IgnitionDamage" skill would only fire if the
"do_ignite" variable were set on the skill tree. "do_ignite" variable were set on the skill tree.
```yaml
Strike: Strike:
Skills: Skills:
- setvariable{var=skill.do_ignite;type=STRING;value="yes"} 0.5 - setvariable{var=skill.do_ignite;type=STRING;value="yes"} 0.5
...@@ -50,23 +51,29 @@ In this example, the extra "IgnitionDamage" skill would only fire if the ...@@ -50,23 +51,29 @@ In this example, the extra "IgnitionDamage" skill would only fire if the
Skills: Skills:
- ignite{ticks=20} - ignite{ticks=20}
- effects:particles{} - effects:particles{}
```
In this example is a placeholder from MMOItems being stored inside a int/float variable. ##
In this example is a placeholder from MMOItems being stored inside a int/float variable.
```yaml
PlaceholderDamage: PlaceholderDamage:
Skills: Skills:
- setvariable{var=caster.new_skill_damage;value="%mmoitems_stat_skill_damage%";type=INTEGER} @self - setvariable{var=caster.new_skill_damage;value="%mmoitems_stat_skill_damage%";type=INTEGER} @self
- damage{a="100 * <caster.var.new_skill_damage>"} @PIR{r=5} - damage{a="100 * <caster.var.new_skill_damage>"} @PIR{r=5}
```
Also,other variables can be stored inside a int/float variable. ##
Other variables can be stored inside a int/float variables.
```yaml
VariableSend: VariableSend:
Skills: Skills:
- setvariable{var=caster.VariableA;value="%mmoitems_stat_skill_damage%";type=INTEGER} @self - setvariable{var=caster.VariableA;value="%mmoitems_stat_skill_damage%";type=INTEGER} @self
- setvariable{var=caster.VariableB;value="<caster.var.VariableA> * 2";type=INTEGER} @self - setvariable{var=caster.VariableB;value="<caster.var.VariableA> * 2";type=INTEGER} @self
- setvariable{var=caster.VariableC;value="<caster.var.VariableA> + <caster.var.VariableB>";type=INTEGER} @self - setvariable{var=caster.VariableC;value="<caster.var.VariableA> + <caster.var.VariableB>";type=INTEGER} @self
```
Extra Information
----------------
- [x] Alias: setvar ## Aliases
\ No newline at end of file - [x] setvar
\ No newline at end of file