You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _articles/abilities/abilityduration-tooltips.md
+6-11Lines changed: 6 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ steamId: '76561198046984233'
5
5
date: 15.12.2014
6
6
---
7
7
8
-
**TL;DR:** AbilityDuration is a fairly useless keyvalue because whoever coded it forgot to make an automatic tooltip like with `AbilityDamage`. Use a "duration" AbilitySpecial and connect it with lua instead.
8
+
**TL;DR:** AbilityDuration is a fairly useless keyvalue because whoever coded it forgot to make an automatic tooltip like with `AbilityDamage`. Use a "duration" AbilityValue and connect it with lua instead.
9
9
10
10
Imagine you want to have an ability apply a modifier for some seconds, duration changing with levels.
11
11
@@ -19,24 +19,20 @@ And then have your modifier refer to %AbilityDuration in the "Duration" modifier
19
19
20
20
But when when you want to indicate that your ability lasts for said duration, this AbilityDuration doesn't generate a **"DURATION:"** tooltip by itself, so you have 3 options:
21
21
22
-
**Option 1.** Write "Last 3 seconds at level 1 and then 2 at level 2 and 3" in the _Description.
22
+
**Option 1.** Write "Last 3 seconds at level 1 and then 2 at level 2 and 3" in the _Description.
23
23
24
24
This is bad for the reasons explained before.
25
25
26
-
**Option 2*.** Have a "duration" AbilitySpecial in addition to the "AbilityDuration" and keep both values syncronized.
26
+
**Option 2*.** Have a "duration" AbilityValue in addition to the "AbilityDuration" and keep both values syncronized.
27
27
28
28
Suboptimal but decent solution, as it allows you to use ability:GetAbilityDuration() which takes takes its value from AbilityDuration.
29
29
30
-
**Option 3.** Remove AbilityDuration, only keep the AbilitySpecial. Best way as far as I can tell.
30
+
**Option 3.** Remove AbilityDuration, only keep the AbilityValue. Best way as far as I can tell.
31
31
32
32
```
33
-
"AbilitySpecial"
33
+
"AbilityValues"
34
34
{
35
-
"01"
36
-
{
37
-
"var_type" "FIELD_INTEGER"
38
-
"duration" "3 2 2"
39
-
}
35
+
"duration" "3 2 2"
40
36
}
41
37
```
42
38
@@ -51,4 +47,3 @@ end
51
47
```
52
48
53
49
Has the same results and works for every scenario.
Copy file name to clipboardExpand all lines: _articles/abilities/datadriven/channeling-animations.md
+7-11Lines changed: 7 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ steamId: '76561198046984233'
5
5
date: 18.01.2015
6
6
---
7
7
8
-
### Short Version:
8
+
### Short Version:
9
9
10
10
ApplyModifier with short duration in a OnThinkInterval, channeling modifier has an OverrideAnimation with a ACT_ from the [Action List](https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Actions_List) or with the method explained later.
11
11
@@ -26,7 +26,7 @@ ApplyModifier with short duration in a OnThinkInterval, channeling modifier has
26
26
}
27
27
}
28
28
}
29
-
29
+
30
30
"channelling_animation"
31
31
{
32
32
"IsHidden" "1"
@@ -78,14 +78,10 @@ After this, you can select any animation and it will animate the white blocks at
Copy file name to clipboardExpand all lines: _articles/abilities/datadriven/datadriven-ability-events-modifiers.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,16 +40,16 @@ There's a complete (for the most part) [list of Events in the Workshop Tools Wik
40
40
41
41
In the process I'm also going to make use of different [Actions](https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/Abilities_Data_Driven#Actions), inside the Events, some are self explanatory and some require some in-depth explanation on how to use them.
42
42
43
-
There are 2 types, **Ability Events** and **Modifier Events**.
43
+
There are 2 types, **Ability Events** and **Modifier Events**.
44
44
45
45
Ability Events go on the "first level" of the ability. Modifier Events need to be inside a modifier block.
46
46
47
47
Basic Skeleton looks like this:
48
-
```
48
+
```
49
49
"ability_custom"
50
50
{
51
51
// AbilityBehavior and General values
52
-
// AbilitySpecial block
52
+
// AbilityValues block
53
53
// precache block
54
54
55
55
// Ability Events
@@ -58,7 +58,7 @@ Basic Skeleton looks like this:
58
58
59
59
"Modifiers"
60
60
{
61
-
"modifier_custom"
61
+
"modifier_custom"
62
62
{
63
63
// Modifier Events
64
64
"OnCreated"
@@ -80,7 +80,7 @@ To test if your Event is actually happening when you expect, you can add the fol
80
80
}
81
81
```
82
82
83
-
`RunScript` is one of the most common and potent Actions you'll use for creating complex abilities. For it to work, you need to have a Script File, in this case *utilities.lua*, inside the vscripts folder.
83
+
`RunScript` is one of the most common and potent Actions you'll use for creating complex abilities. For it to work, you need to have a Script File, in this case *utilities.lua*, inside the vscripts folder.
0 commit comments