Unfortunately, upgrades cannot be "downgraded" again, but it would certainly be way easier if they could be. That's why all the hassle with unit requirements is needed, instead.
If you wish to sometimes disable an ability, you can do this:
Create a new dummy unit. This unit will not do anything, the only important thing is its name as seen in the game. In your case, you'd probably name it "Not sprinting".
Go to the ability you want disabled sometimes...
I believe they're using units too. Reason is simple, DotA does not allow "feeding" of any sort. If you buy a unit from a shop, it'll be your unit even though you could reach that particular shop through an ally's hero - if that occurs, the bought unit would be ignored.
You cannot do this with...
For question 1, this could be what you're looking for:
For each (Integer A) from 1 to 12, do (Actions)
Loop - Actions
Player - Limit training of (Unit-type of (Sold unit)) to 0 for (Player((Integer A)))
As for disabling a hero only from a specific tavern, I don't know.
Just thought I'd mention another option: (ab)using the Techtree requirement for a unit. Then, the ability works when your player is in control of that unit.
In this example, the unit is named "A nearby hero slain":
When you want to allow the player to use this ability, create this...
I think another problem with this is that the affected unit will stop/reset its attack animation (thus its DPS will be lowered) even if it's still gonna attack the same enemy.
Someone should correct me if I'm wrong, but AFAIK there is no reliable way to see which player bought some item - you only know which hero got it and what shop he bought it from.
However, when you buy a unit, you along with a buying and selling unit you also know who bought it (since he's the...
Yeah, it works.
One interesting thing that happens when you "heal" a unit which has Mana Shield this way: the unit will get bonus mana instead of bonus HP (or a bit of both depending on the shield resist percentage).
Sorry if I'm not helpful, but I'm really curious why you (or DotA for that matter) would need such a function after 1.22? As far as I'm aware, items already have shared cooldown since then, and they'll keep it even if you give it to another hero.
Are you sure this is player-specific (meaning that if a certain player has >100 units, only his units will start behaving oddly while moving)?
I always presumed that this happened when too many units moved around because wacraft 3 can't keep up with it; all the pathfinding calculations are...
I noticed the same thing in one of the maps.
My hero (let's say his primary att. is Agility) would pick up multiple Amulets of Agility +15, with each agility increasing damage by 0.6 (so 15 agi -> 9 damage). First 3 amulets increased the green bonus damage by 9 each. But the fourth increases...
Yeah, they're basically floating texts. Generally, you want to store them somehow (if it's only needed PUI, global arrays would suffice). Then you simply make sure the position, color, and text of these floating texts is refreshed every 0.03 seconds (should be enough to make it look OK).
The...
Setting its acquisition range to 1.0 should work (in the object editor). The unit's acquisition range is the range at which it'll auto-attack enemies if it sees any.
There's also a trigger for setting a specific unit's acquisition range, but I couldn't get that to work right now.
You were using the same buff "Blank Buff" for two different abilities, which is known to cause fatals sometimes (though I've only seen it with multiple flamestrike abilities using the same buff... until now).
Making a "Blank Buff 2" that's simply a copy of Blank Buff and using it for one of...