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
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,6 @@ date: 15.12.2014
7
7
8
8
# AbilityDuration tooltips
9
9
10
-
11
10
**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.
12
11
13
12
Imagine you want to have an ability apply a modifier for some seconds, duration changing with levels.
@@ -22,11 +21,11 @@ And then have your modifier refer to %AbilityDuration in the "Duration" modifier
22
21
23
22
But 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:
24
23
25
-
**Option 1.** Write "Last 3 seconds at level 1 and then 2 at level 2 and 3" in the _Description.
24
+
**Option 1.** Write "Last 3 seconds at level 1 and then 2 at level 2 and 3" in the \_Description.
26
25
27
26
This is bad for the reasons explained before.
28
27
29
-
**Option 2*.** Have a "duration" AbilityValue in addition to the "AbilityDuration" and keep both values synchronized.
28
+
**Option 2\*.** Have a "duration" AbilityValue in addition to the "AbilityDuration" and keep both values synchronized.
30
29
31
30
Suboptimal but decent solution, as it allows you to use ability:GetAbilityDuration() which takes its value from AbilityDuration.
Copy file name to clipboardExpand all lines: _articles/abilities/calling-spells-with-setcursor.md
+4-6Lines changed: 4 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,15 +7,14 @@ date: 10.01.2015
7
7
8
8
# Calling Spells with SetCursor
9
9
10
-
11
10
`CDotaBaseAbility:OnSpellStart` in combination with `CDotaBaseNPC:SetCursorCastTarget` and `CDOTABaseNPC:SetCursorPosition` are used to "Call" spells.
12
11
13
12
This is a powerful way to interact with Valve's spells in particular. This allows you to:
14
13
15
-
* Activate hidden abilities
16
-
* Ignore turn-restrictions
17
-
* Ignore castpoint or cooldown
18
-
* Ignore any other cruft associated with the formal spell-casting methods
14
+
- Activate hidden abilities
15
+
- Ignore turn-restrictions
16
+
- Ignore castpoint or cooldown
17
+
- Ignore any other cruft associated with the formal spell-casting methods
19
18
20
19
This is easy to use, easy to configure and easy to think about. Here is an example that casts Tether on a hidden dummy unit, activated by a datadriven spell:
|OnAbilityPhaseStart| CASTER, TARGET, UNIT, ATTACKER|
46
45
47
46
### AbilityChannelTime > 0
48
47
49
-
`DOTA_ABILITY_BEHAVIOR_CHANNELLED` only purpose is to change the ability Tooltip to *"Channeled"*. In fact, the `BEHAVIOR_CHANNELED` isn't even needed, `"AbilityChannelTime"` is all that matters for the actual ability behavior.
48
+
`DOTA_ABILITY_BEHAVIOR_CHANNELLED` only purpose is to change the ability Tooltip to _"Channeled"_. In fact, the `BEHAVIOR_CHANNELED` isn't even needed, `"AbilityChannelTime"` is all that matters for the actual ability behavior.
50
49
51
-
Event | Target
52
-
--|--
53
-
OnChannelFinish| CASTER, TARGET, UNIT, ATTACKER
54
-
OnChannelInterrupted | CASTER, TARGET, UNIT, ATTACKER
55
-
OnChannelSucceeded| CASTER, TARGET, UNIT, ATTACKER
Copy file name to clipboardExpand all lines: _articles/abilities/datadriven/apply-hero-and-creep-modifier-durations.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,6 @@ date: 15.01.2015
7
7
8
8
# Apply Hero and Creep modifier durations
9
9
10
-
11
10
I came up with this method after kritth showed us that you can directly add a `"Duration"` key value to an `"ApplyModifier"` block and the use of the `"Target"` block without a Radius (defaulting to 0).
12
11
13
12
Basically, abusing the datadriven system we can do this on any event:
@@ -21,7 +20,7 @@ Basically, abusing the datadriven system we can do this on any event:
Copy file name to clipboardExpand all lines: _articles/abilities/datadriven/channeling-animations.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,12 @@ date: 18.01.2015
7
7
8
8
# Channeling Animations
9
9
10
-
11
10
## Short Version:
12
11
13
-
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.
12
+
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.
14
13
15
14
**Short Version Example:**
15
+
16
16
```
17
17
"Modifiers"
18
18
{
@@ -45,13 +45,14 @@ ApplyModifier with short duration in a OnThinkInterval, channeling modifier has
45
45
46
46
Instead of trying to find the desired animation in the Action List on the wiki, you can view the animations on the model you are trying to use and their respective names.
47
47
48
-
For this, go to the Asset Browser, type your hero name + *vmdl*, in this case I'm going to use drow.vmdl. Double click it, you will enter the Model Editor. In here, you want to go to the top tabs and click Tools -> View Sequences.
48
+
For this, go to the Asset Browser, type your hero name + _vmdl_, in this case I'm going to use drow.vmdl. Double click it, you will enter the Model Editor. In here, you want to go to the top tabs and click Tools -> View Sequences.
49
49
50
-
After this, you can select any animation and it will animate the white blocks at the right. To get the ACT_ name, you can click Properties then open the Activities box, or just tick down the Activity checkbox in the Sequences window, which will show how all the animations are refered ingame.
50
+
After this, you can select any animation and it will animate the white blocks at the right. To get the ACT\_ name, you can click Properties then open the Activities box, or just tick down the Activity checkbox in the Sequences window, which will show how all the animations are refered ingame.
Copy file name to clipboardExpand all lines: _articles/abilities/datadriven/datadriven-ability-events-modifiers.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,14 @@ date: 10.12.2014
7
7
8
8
# DataDriven Ability Events & Modifiers
9
9
10
-
11
-
A guide that tries to cover every Ability & Modifier Event of the *ability_datadriven* system, with examples.
10
+
A guide that tries to cover every Ability & Modifier Event of the _ability_datadriven_ system, with examples.
12
11
13
12

14
13
15
14
<aname="start"></a>
16
-
This is an Intermediate guide that expects some knowledge of the most common first-level keyvalues. If unsure about the meaning of any of them, check the [DataDriven Ability Breakdown](/abilities/ability-keyvalues).
15
+
This is an Intermediate guide that expects some knowledge of the most common first-level keyvalues.
16
+
If unsure about the meaning of any of them, check the [DataDriven Ability
17
+
Breakdown](/abilities/ability-keyvalues).
17
18
18
19
## Introduction
19
20
@@ -30,6 +31,7 @@ There are 2 types, **Ability Events** and **Modifier Events**.
30
31
Ability Events go on the "first level" of the ability. Modifier Events need to be inside a modifier block.
31
32
32
33
Basic Skeleton looks like this:
34
+
33
35
```
34
36
"ability_custom"
35
37
{
@@ -65,7 +67,7 @@ To test if your Event is actually happening when you expect, you can add the fol
65
67
}
66
68
```
67
69
68
-
`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.
70
+
`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