Temporary Engineering Upgrade?

Grundy

Ultra Cool Member
Reaction score
35
Does anyone know how to make a temporary engineering upgrade type ability?

I've tried adding the ability to a unit and after a certain amount of time, removing the ability from the unit but that didnt quite work right. That's probably why Aghanim's Scepter used to be undroppable in DotA (it's an item that makes some heroes' ultimates stronger) but now it IS droppable and when the unit has the scepter the ultimate is upgraded, when they drop the scepter the ability is downgraded back to normal. Does anyone know how to do this? My goal is to make a hero have an ultimate that cuts casting time and mana cost for all of his other spells for a limited time when its used, i don't want it to be permanent.

What I tried before:
1. Created 4 copies of each of spells the hero has. 1 normal, 1 for the 1st upgrade, 1 for the 2nd upgrade, 1 for the 3rd upgrade
2. I created an engineering upgrade ability that upgrades the spells
3. I created a disabled spellbook ability that had the engineering upgrade ability in it.
4. I created the ultimate based on Frenzy that places a buff on caster and used a trigger like so:
E: Unit starts the effect of an ability
C: Ability being cast equal to <My modified Frenzy ultimate spell>
A: Add <disabled spellbook that has engineering upgrade in it> to <casting unit>
Set level of <modified engineering upgrade ability> for <casting unit> to <level of <modified frenzy ultimate> for <casting unit>>
Created a periodic timer every 0.1 seconds that checks if the unit has the ultimate buff, if it does not have the buff any more then the spellbook with the engineering upgrade is removed. This lets me adjust the duration by changing the spell's duration and requires no code changes, it also removes the effect early if the buff is dispelled.

When I cast the spell the abilities get upgraded but when it wears off they spells stay upgraded. I've added periodic debug messages to the map that check ever 1 second of game time if the unit has the engineering upgrade ability. I can see when it starts it doesnt have the ability, when i cast the spell it does have the ability, when the spell wears off it no longer has the ability, but all the spells stay upgraded.
 

Grundy

Ultra Cool Member
Reaction score
35
No, I'm at work right now.

But it's got nothing to do with the code. Its just removing an Engineering Upgrade ability does not reset the abilities. They stay upgraded.
 

emilemil1

New Member
Reaction score
20
try removing the abilities and add them again or something, im not really sure how it works when adding / removing / disabling abilities, and i got no clue when they have been upgraded.

you could create another version of the spells which replaces the old one :/ thats what i would have done since i'd say thats much simpler
 

Grundy

Ultra Cool Member
Reaction score
35
i don't want to add/remove any of his normal abilities because that resets the cooldowns.
 

emilemil1

New Member
Reaction score
20
tricky one :/ is there no way of downgrading an ability without reseting the cooldowns?

cant be, maybe its a jass only function that you need?

well im leaving this to someone else now, way to complicated for me
 

BarzahdX

Active Member
Reaction score
18
Well.. I have an item that uses the engineering upgrade ability, it's designed to only work for one hero, and it accomplishes that just fine. It works properly, hastens the cooldown while holding it, normal while not.

I'm fairly certain DotA doesn't use the engineering upgrade for Aghanim's Scepter.. Rather, through triggers to sense if they have the item.

Code:
Scepter

Events
Unit starts the effect of an ability.

Condtions
Ability being cast equal to Zap.

Actions

If
Casting unit has item "Aghanim's Scepter" in inventory.
Then
Deal 100 x level of Zap damage to all units in playable map area.
Else
Deal 75 x level of Zap damage to all units in playable map area.

Very freehand, very inspecific, but it gives you a general idea of what I mean.
 

Tamisrah

Active Member
Reaction score
16
2 things:
First: Have you tried whether it works on level 1? There are some abilities which do strange things when leveled.

Second: The important options for your problem are the Ability Upgrade fields, if engineering upgrade is added the first one in the respective field gets replaced with the second and on removal the second gets replaced with the first.
So the leveling might screw up your ability relations so the ability would get replaced by nothing or nothing gets replaced by an ability.
 

Grundy

Ultra Cool Member
Reaction score
35
I'm fairly certain DotA doesn't use the engineering upgrade for Aghanim's Scepter.. Rather, through triggers to sense if they have the item.

I'm fairly certain that it does... Ok I'm not fairly certain that it does, maybe they use some kind of strange work-around that makes it work. But I am certain that you're not exactly right because it *does* change the ultimate's tooltip when you get it. It must be replacing the ability, either with engineering upgrade or some weird thing that adds/removes abilities without resetting cooldown.

2 things:
First: Have you tried whether it works on level 1? There are some abilities which do strange things when leveled.

Second: The important options for your problem are the Ability Upgrade fields, if engineering upgrade is added the first one in the respective field gets replaced with the second and on removal the second gets replaced with the first.
So the leveling might screw up your ability relations so the ability would get replaced by nothing or nothing gets replaced by an ability.

Are you saying it might work if i use 3 different engineering upgrade abilities with 1 level each for each instead of using 1 engineering upgrade with 3 levels?
 

Tamisrah

Active Member
Reaction score
16
I hope not :D
But I think you have to pay special attention to those fields.
You have to make sure you know which abilities the unit currently have and remove engineering upgrade with the respective abilities.

Another idea I just got, maybe you have to decrease the level before you remove the ability.

The thing is me working with engineering upgrade was quite some time ago so I'm not exactly sure anymore.
 

BarzahdX

Active Member
Reaction score
18
I'm fairly certain that it does... Ok I'm not fairly certain that it does, maybe they use some kind of strange work-around that makes it work. But I am certain that you're not exactly right because it *does* change the ultimate's tooltip when you get it. It must be replacing the ability, either with engineering upgrade or some weird thing that adds/removes abilities without resetting cooldown.

Hmm, well--it *might* do something for most heroes. Here's the thing, everything in dota is done with JASS--heroes, abilities, items, everything. Thus, they can change what the tooltip says through triggers, although I'm not doubting that they might use it for some uses. It's not used for every hero though. Example: Zeus' ult is completely accomplished through triggers, thus, requires the sensing of the item to upgrade properly, they might use the Scepter for changing the tooltip, but I don't know.

On a side note, engineering upgrade is replacing the ability with something else, the levels should still stay the same--if you made an engineering upgrade that changes firebolt to icebolt, they would be two different spells, but the same level.. That's all engineering upgrade does, it CHANGES the ability, though most people use it as a secret level up tool.

I'm sorry that I can't help you any further, goodluck--and if worse comes to worst, use the trigger sensing.
 

Tamisrah

Active Member
Reaction score
16
Slightly Offtopic: There is absolutley no way to change the tooltip by triggers,
the only way to do so is to replace the ability with another one.
 

Grundy

Ultra Cool Member
Reaction score
35
Hmm, well--it *might* do something for most heroes. Here's the thing, everything in dota is done with JASS--heroes, abilities, items, everything. Thus, they can change what the tooltip says through triggers, although I'm not doubting that they might use it for some uses. It's not used for every hero though. Example: Zeus' ult is completely accomplished through triggers, thus, requires the sensing of the item to upgrade properly, they might use the Scepter for changing the tooltip, but I don't know.

On a side note, engineering upgrade is replacing the ability with something else, the levels should still stay the same--if you made an engineering upgrade that changes firebolt to icebolt, they would be two different spells, but the same level.. That's all engineering upgrade does, it CHANGES the ability, though most people use it as a secret level up tool.

I'm sorry that I can't help you any further, goodluck--and if worse comes to worst, use the trigger sensing.

You are wrong about a great deal of things right there.

There are plenty of spells/abilities that have no triggering GUI or jass. Pick any ability on Sven, no triggers. Queen of Pain: no triggers (her scream *might* be triggered but you can easily make that spell with no triggers). All of Venomancer's abilities other than poison nova have no triggers. Ogre Magi has only 1 ability that is triggered (multi cast - and btw this is the *only* ultimate that gets upgraded without using engineering upgrade). I could name a bunch more but. Zeus's ultimate, it probably is triggered but it could easily have been made without triggers making an 99999 area warstomp or thunder clap. I could name a bunch more, but why?

and as tamisrah said, there is no way to change a tooltip.

and your side note about how engineering upgrade works, you can't replace it with a different spell. well different in a sense that it actually is a different ability with a different code, but it can't be a completely different spell. it has to be a copy of the same spell just with different dataz. You can't use engineering upgrade to change a Storm Bolt into a Shadow Strike. It has to be storm bolt -> storm bolt with different numbers. So it *is* used as a "secret level up tool" in every sense.
 

BarzahdX

Active Member
Reaction score
18
You are wrong about a great deal of things right there.

Zeus's ultimate, it probably is triggered but it could easily have been made without triggers making an 99999 area warstomp or thunder clap. I could name a bunch more, but why?

and as tamisrah said, there is no way to change a tooltip.

You can't use engineering upgrade to change a Storm Bolt into a Shadow Strike.

I apologize, I'll go from top to bottom.

The actual map of DotA Allstars has 0 custom objects in object editor, and a trigger for every hero, item, and ability done with JASS.. I have asked before, and all my answers said *EVERYTHING* in DotA is in JASS, I also downloaded the deprotected map, which crushed my hopes and dreams. There are plenty of spells that could be made without triggers, but they don't--ya got me.

Zeus's ultimate IS completely triggered, otherwise it couldn't give the LoS bonuses to the hero's it strikes.. My source of information? http://forums.dota-allstars.com/index.php?showtopic=220166

I'm not good with JASS--I thought you could change nearly every aspect of the game through triggers, I'm very sorry for that incorrect information.

REALLY?! I thought you could.. How can they sense that kind of thing? Ah whatever, good note to remember I suppose. :p

All in all, there was a slight misunderstanding, and please don't take my previous post the wrong way.
 

Grundy

Ultra Cool Member
Reaction score
35
I think with engineering upgrade it always uses the original ability but it uses the numbers from the new ability. So I guess you could have an upgrade from firebolt -> frostbolt since they're basically both just stormbolt

I don't have access to my WE right now but lets just say for example i have a Storm Bolt ability and for the sake of the example lets say the damage dealt is stored in DataA1 (it might be, if its not just pretend it is) and i have an engineering upgrade ability to change Storm Bolt into Frost Nova (again, lets say the instant damage on frost nova is in DataA1) if i set the storm bolt's DataA1 to 100 and set the frost nova's DataA1 to 300 then after the engineering upgrade the ability will have the icon and text and everything of frost nova, it will look like the unit actually has frost nova, but when you cast the spell it will shoot out a storm bolt that deals 300 damage (using the new ability's DataA1).

At least thats what I think happens. I know when i tried to change abilities with engineering upgrade before it did some really weird things. This is what i think happened.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top