• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Creating a Chronomancer (Time Mage)

Status
Not open for further replies.
Level 6
Joined
Aug 11, 2015
Messages
223
I love fiddling around in the editor. Unfortunately, my latest idea easily outpaces my current skill level with the editor.

Truth is, my skill at creating unique abilities and tying them to the needed triggers is still in the development phase. I have fiddled around a little bit with dummy units, but can't seem to get it to work, and I know that my ideas will require the use of dummy units.

What I am hoping for is that somebody can provide a clear step by step for what triggers I could use to make the following abilities work. I can do the rest of the work in the editor, but it's those triggers that I can't get right.



Ability 1: Time Compression.
Concept: The mage manipulates the flow of time, speeding up allies or slowing enemies.
Mechanic: When used on an ally, increases movement speed and attack speed by 50%. When used on an enemy, decreases movement speed and attack speed by 50%. Single target.
Advanced: If possible, it would be interesting to let this target buildings, too, to hasten construction for friendlies and slow construction for baddies. I'm not even sure if that's something the editor can do. I've never messed around with that idea before.


Ability 2: To the Future
Concept: The mage flings a target forward in time, temporarily removing it from the battlefield.
Mechanic: The targeted enemy unit is removed entirely from the field, then returns in 30 seconds with the same health and mana it left at.
Advanced: If possible, it should also return with all buffs and debuffs it left with as well, with the same duration they had when it left. Again, not actually sure if the editor can do that.



Ability 3: Time Stop
Concept: The mage moves so quickly that the rest of the world seems to stop for a few moments.
Mechanic: All units on the map are stopped (possibly stunned). All construction on the map is halted. This effect lasts for 10 seconds.
Advanced: If possible, this should also halt the countdown of buffs and debuffs. Hell, if I could, I'd have this freeze all other animations on the map and make the screen turn grey and foggy. I'm pretty sure that is beyond the editor's abilities.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
I love fiddling around in the editor. Unfortunately, my latest idea easily outpaces my current skill level with the editor.

Truth is, my skill at creating unique abilities and tying them to the needed triggers is still in the development phase. I have fiddled around a little bit with dummy units, but can't seem to get it to work, and I know that my ideas will require the use of dummy units.

What I am hoping for is that somebody can provide a clear step by step for what triggers I could use to make the following abilities work. I can do the rest of the work in the editor, but it's those triggers that I can't get right.



Ability 1: Time Compression.
Concept: The mage manipulates the flow of time, speeding up allies or slowing enemies.
Mechanic: When used on an ally, increases movement speed and attack speed by 50%. When used on an enemy, decreases movement speed and attack speed by 50%. Single target.
Advanced: If possible, it would be interesting to let this target buildings, too, to hasten construction for friendlies and slow construction for baddies. I'm not even sure if that's something the editor can do. I've never messed around with that idea before.


Ability 2: To the Future
Concept: The mage flings a target forward in time, temporarily removing it from the battlefield.
Mechanic: The targeted enemy unit is removed entirely from the field, then returns in 30 seconds with the same health and mana it left at.
Advanced: If possible, it should also return with all buffs and debuffs it left with as well, with the same duration they had when it left. Again, not actually sure if the editor can do that.



Ability 3: Time Stop
Concept: The mage moves so quickly that the rest of the world seems to stop for a few moments.
Mechanic: All units on the map are stopped (possibly stunned). All construction on the map is halted. This effect lasts for 10 seconds.
Advanced: If possible, this should also halt the countdown of buffs and debuffs. Hell, if I could, I'd have this freeze all other animations on the map and make the screen turn grey and foggy. I'm pretty sure that is beyond the editor's abilities.

1. Don't know about construction, but abilities like this do exist. You'll just have to use a dummy ability based on channel, finger of death or whatever and trigger which ability runs.
2. Apart from the buffs and debuffs, yes it can be done. Just pause and hide the unit for some time. Maybe you'll also have to store the health and mana amounts and set them back afterwards.
In order to change buff durations though, you'd have to code them yourself and that's hard to do properly.
3. The undead wyrms actually have a passive that does that - freezes structures. You can make it freeze anything by changing targets allowed. You'll still need some dummy units to apply it though.
Making the screen foggy can be done by changing the fog, while making it gray can be done with fade filters.

Note that all those things require triggers.
 
Level 13
Joined
Jul 15, 2007
Messages
763
Ability 1: Time Compression.
Concept: The mage manipulates the flow of time, speeding up allies or slowing enemies.
Mechanic: When used on an ally, increases movement speed and attack speed by 50%. When used on an enemy, decreases movement speed and attack speed by 50%. Single target.
Advanced: If possible, it would be interesting to let this target buildings, too, to hasten construction for friendlies and slow construction for baddies. I'm not even sure if that's something the editor can do. I've never messed around with that idea before.


Ability 2: To the Future
Concept: The mage flings a target forward in time, temporarily removing it from the battlefield.
Mechanic: The targeted enemy unit is removed entirely from the field, then returns in 30 seconds with the same health and mana it left at.
Advanced: If possible, it should also return with all buffs and debuffs it left with as well, with the same duration they had when it left. Again, not actually sure if the editor can do that.



Ability 3: Time Stop
Concept: The mage moves so quickly that the rest of the world seems to stop for a few moments.
Mechanic: All units on the map are stopped (possibly stunned). All construction on the map is halted. This effect lasts for 10 seconds.
Advanced: If possible, this should also halt the countdown of buffs and debuffs. Hell, if I could, I'd have this freeze all other animations on the map and make the screen turn grey and foggy. I'm pretty sure that is beyond the editor's abilities.

1. Mechanic: Easy to do; as above said, take a single target ability and trigger it to slow if target is enemy and haste if ally.
1. Advanced: I don't think this is possible, though you could simulate the effect by making the building train two units at once (but this is prone to problems/imbalances).

2. Mechanic: This is easy to do and is something i have triggered before, all you need to do is hide the unit via triggers, and unhide it when the duration has gone.
2. Advanced: I think hidden units are paused, meaning the duration of their buffs/debuffs will not elapse.

3. Mechanic: If you pause EVERYTHING on the map, except the caster, you should have your basic time-stop spell. Paused units halt their current order, but resume upon Unpausing.
3. Advanced: You can change animation speeds of everything on the map to 0% to give the "time stopped" effect, and as said, paused units have their buffs/debuffs duration paused too. The cinematic effect is easy too.

Your abilities are actually quite easy to make; it would be more impossible if you wanted buffs/debuffs to actually expire whilst being stopped.
 
Level 6
Joined
Aug 11, 2015
Messages
223
1. Mechanic: Easy to do; as above said, take a single target ability and trigger it to slow if target is enemy and haste if ally.
1. Advanced: I don't think this is possible, though you could simulate the effect by making the building train two units at once (but this is prone to problems/imbalances).

2. Mechanic: This is easy to do and is something i have triggered before, all you need to do is hide the unit via triggers, and unhide it when the duration has gone.
2. Advanced: I think hidden units are paused, meaning the duration of their buffs/debuffs will not elapse.

3. Mechanic: If you pause EVERYTHING on the map, except the caster, you should have your basic time-stop spell. Paused units halt their current order, but resume upon Unpausing.
3. Advanced: You can change animation speeds of everything on the map to 0% to give the "time stopped" effect, and as said, paused units have their buffs/debuffs duration paused too. The cinematic effect is easy too.

Your abilities are actually quite easy to make; it would be more impossible if you wanted buffs/debuffs to actually expire whilst being stopped.


Fantastic! Thank You! I'll go and fiddle around with these, see what I can come up with.

If anybody has any other ideas for a fourth power to stick on this guy, please share. So far, he's really just a crowd control specialist, so I think I'd prefer a defensive or support ability, but really, I'l open to any idea.

I'll share in a few days when I finish testing this out.
 
Level 6
Joined
Aug 11, 2015
Messages
223
That's a definite possibility.

I've gotten the first power, To the Future, working pretty well. It does exactly what I want it to and does it properly. My only issues with it right now are as follows:

1. Is there a way to get the trigger to check the level of the ability being cast, so that I can change how it performs for level 1, 2, and 3 hero skills?

2. For some reason, my ability isn't activating its cooldown when used. It should have a 15/23/31 second cooldown, but it isn't activating the cooldown at any level.

Tomorrow I'll start fiddling with the time compression power.
 
Level 13
Joined
Jul 15, 2007
Messages
763
That's a definite possibility.

I've gotten the first power, To the Future, working pretty well. It does exactly what I want it to and does it properly. My only issues with it right now are as follows:

1. Is there a way to get the trigger to check the level of the ability being cast, so that I can change how it performs for level 1, 2, and 3 hero skills?

2. For some reason, my ability isn't activating its cooldown when used. It should have a 15/23/31 second cooldown, but it isn't activating the cooldown at any level.

Tomorrow I'll start fiddling with the time compression power.

1. Yes, the Level of Ability Being Cast can be retrieved as an integer. From this you can either use "If, Then, Else" to set your spell variables (e.g. If level = 2, set duration = 30) or use a formula (e.g. Duration = Level of Spell x 10).

How i do this: Before a spell's effects, i use an integer variable to call for the level of ability being cast, and also use a real variable that is a conversion of the integer variable. This makes it easier to create level formulas within the trigger for me. (And it's something you can CnP to other spells).

  • Cripple
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Cripple (Varimathras)
    • Actions
      • -------- Level of Casting Ability: --------
      • Set TEMP_INT = (Level of (Ability being cast) for (Triggering unit))
      • Set TEMP_REAL = (Real(TEMP_INT))
      • -------- Stat Multiplier: --------
      • Set TEMP_REAL_ay[1] = (5.00 + (TEMP_REAL x 5.00))
      • -------- Calculate Damage: --------
      • Set TEMP_REAL_ay[2] = ((Real((Intelligence of (Triggering unit) (Include bonuses)))) x TEMP_REAL_ay[1])
      • -------- Apply Damage: --------
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing TEMP_REAL_ay[2] damage of attack type Spells and damage type Magic
2. The only reason a cooldown may not activate is if the caster is interrupted somehow, e.g. if you move them instantly when they start casting. Are you using "Starts the effect of ability" event for the spell?
 
Level 6
Joined
Aug 11, 2015
Messages
223
1. Yes, the Level of Ability Being Cast can be retrieved as an integer. From this you can either use "If, Then, Else" to set your spell variables (e.g. If level = 2, set duration = 30) or use a formula (e.g. Duration = Level of Spell x 10).

How i do this: Before a spell's effects, i use an integer variable to call for the level of ability being cast, and also use a real variable that is a conversion of the integer variable. This makes it easier to create level formulas within the trigger for me. (And it's something you can CnP to other spells).

  • Cripple
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Cripple (Varimathras)
    • Actions
      • -------- Level of Casting Ability: --------
      • Set TEMP_INT = (Level of (Ability being cast) for (Triggering unit))
      • Set TEMP_REAL = (Real(TEMP_INT))
      • -------- Stat Multiplier: --------
      • Set TEMP_REAL_ay[1] = (5.00 + (TEMP_REAL x 5.00))
      • -------- Calculate Damage: --------
      • Set TEMP_REAL_ay[2] = ((Real((Intelligence of (Triggering unit) (Include bonuses)))) x TEMP_REAL_ay[1])
      • -------- Apply Damage: --------
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing TEMP_REAL_ay[2] damage of attack type Spells and damage type Magic
2. The only reason a cooldown may not activate is if the caster is interrupted somehow, e.g. if you move them instantly when they start casting. Are you using "Starts the effect of ability" event for the spell?


Your help was exactly what I needed. The ability is now working perfectly as intended.

The finished ability, or at least its current incarnation, is as follows:
To the Future

Mana Cost: 60
Flings an enemy into the future, removing it from the battlefield entirely until time catches up to it.
Level 1: Duration 10, Cooldown 15
Level 2: Duration 15, Cooldown 18
Level 3: Duration 20, Cooldown 21
Cannot target heroes.

The idea of this is as a crowd control spell. It quickly and efficiently gets rid of a powerful enemy or annoying spellcaster, but costs enough and has a cooldown enough to prevent it from being abused.

It was also easy- almost stupidly easy, to get the Time Stop ability working. Since I never really work in cinematics, I had never really messed around with filters or unit pausing. So the Time Stop ability is as follows:

Time Stop
Mana Cost: 100
Cooldown: 75
Pauses all units on the map except the caster for 15 seconds. During that time, all unit and destructible animation is stopped... or at least all of it that can be, and there is a visual haze and filter applied to make it look very misty and dreamlike.



Now I'm on to the time compression power.
So I need a power that can target either friend or foe, then recognize which is which and apply a different effect for each. This one will probably take some time and work to figure out.


EDIT:
I've started mapping out the triggers that I'll need to make the time dilation power work, but I need some advice on particular parts.

First off: Time dilation should function positively for the player who controls the chronomancer and for any allies he may have. I know how to get it to work if it only checks for the controlling player, but how do I get it do recognize if the targeted unit is any ally of the chronomancer's controller? I know I can set a player group for all allies, but I can't figure out a way to get a condition to check against that variable.


Secondly: Dummy units. When used on friendly units, time dilation increases attack and movement speed. When used on enemy or neutral units, it decreases attack and movement speed. It does this by recognizing if the target is friend or foe, and then spawning a dummy unit. The dummy unit has 6 abilities, 1 per level of Time Dilation, both for friend and foe. The trigger checks the level of the Time Dilation being cast, and orders the dummy unit to use the proper ability. Then the dummy unit is removed.

That's the theory, at least. But I can never seem to get dummy units to work this way. If somebody could post a screenshot of a working dummy unit trigger of this fashion, it would help me out greatly. I have to be overlooking something.
 
Last edited:
Level 24
Joined
Aug 1, 2013
Messages
4,658
Those are some insanely OP abilities
Not necessarily... the 2nd and 3rd are simply... how do I call this without insults?

For example go forward in time... how?
If you just remove a unit from the battlefield, id give it a more appropriate name.

Or stopping all things in the map... first of all you would have to trigger everything and even then it is really hard.

Id give him the ability to revert time, going back to the location he was x seconds ago with the health and mana he had then equal as the experience, ability cooldowns, buffs, etc.
That is an OP spell but it is still reasonable.
 
Level 6
Joined
Aug 11, 2015
Messages
223
Not necessarily... the 2nd and 3rd are simply... how do I call this without insults?

For example go forward in time... how?
If you just remove a unit from the battlefield, id give it a more appropriate name.

Or stopping all things in the map... first of all you would have to trigger everything and even then it is really hard.

Id give him the ability to revert time, going back to the location he was x seconds ago with the health and mana he had then equal as the experience, ability cooldowns, buffs, etc.
That is an OP spell but it is still reasonable.


Both of the 2nd and 3rd powers are up and running now. The flavor of them is just that, flavor. The To the Future power simply removes the target from the battlefield, then after X seconds, returns it with the same health and mana and to the same location. The idea is that you sent it to the near future, and then time simply caught up.

The idea of Time Stop is that the Chronomancer is moving so quickly that the rest of the world seems to come to a stop. It was achieved very easily by the following sequence:

Pause all units
Pick all units in playable map area and change animation speed to 0% for all picked units.
Pick all destructibles in playable map area and change animation speed to 0% for all picked destructibles.
Unpause the unit casting the ability
Change animation speed to 100% for the unit casting the ability.

Then you just need a wait command and then just unpause and change animation speeds back to 100%. It gives a hero time to escape, inflict some major damage on a target, snag an item in a tough location, kill a few workers, or flank an enemy.
 
Level 6
Joined
Aug 11, 2015
Messages
223
I'm progressing well in my project. To finish up my Time Dilation ability, I just need a little help.

Here are my specific questions:
1. Can I use triggers to make a unit use a custom ability? If so, how?
If the above question is answered with a yes, the following questions do not need answers.
1. Can I use triggers to modify a unit's attack speed? If so, how?
2. If I can modify a unit's attack speed with triggers, how can I return it to the default?
 
Level 13
Joined
Jul 15, 2007
Messages
763
I'm progressing well in my project. To finish up my Time Dilation ability, I just need a little help.

Here are my specific questions:
1. Can I use triggers to make a unit use a custom ability? If so, how?
If the above question is answered with a yes, the following questions do not need answers.
1. Can I use triggers to modify a unit's attack speed? If so, how?
2. If I can modify a unit's attack speed with triggers, how can I return it to the default?

1. Yes, if your ability is based on something like Storm Bolt, then by default, if you order that unit with your ability to use Storm Bolt, they will cast your spell. I think another way to do is it to change the order string of your spell, and then order the unit to do a specific order command via triggers (e.g. if the use string of your spell is Stomp, the you can tell the unit to Stomp to cast your spell)
 
Level 24
Joined
Aug 1, 2013
Messages
4,658
and then time simply caught up.
But that is not how time works... time always runs equally fast so time would never catch up.

Pause all units
Pick all units in playable map area and change animation speed to 0% for all picked units.
Pick all destructibles in playable map area and change animation speed to 0% for all picked destructibles.
Unpause the unit casting the ability
Change animation speed to 100% for the unit casting the ability.
Ofcourse. Why didn't I see it would be so simple?
O wait, maybe it is because you dont pause missiles, buffs, actual game time, respawn timers, time of day, building/training/upgrading time, cooldowns of abilities/mercenaries/items, etc.

Then you just need a wait command and then just unpause and change animation speeds back to 100%. It gives a hero time to escape, inflict some major damage on a target, snag an item in a tough location, kill a few workers, or flank an enemy.
O wait... time is paused... so his attacks would not inflict damage until the time continues (so each time you hit someone you stack up damage that will hit when time continues). That assuming your hero is melee, for ranged, your missiles are paused as well. Time is hard to understand :D

Yeah, Wietlol's comments were a bit silly. If he had actually read the stuff in this thread i bet he wouldn't have wrote anything at all :p
Ofcourse, I write silly things. Why didn't I took the time to just read whatever you say?
Wait, maybe it is because I dont like to read at all.

Anyway, my comment is not silly... your interpretation of it however is.
Maybe I didnt explain enough, but you can see that what I said isnt really something you are able to achieve is it?

I have took the trouble to read it... and it wasnt worth the time.
Now I want that my ability to revert time would work in real life :vw_unimpressed:.
 
Level 13
Joined
Jul 15, 2007
Messages
763
Are you on your period? This guy is just making a hero for fun that works to the extent he wants it to, and he's done that. We're both very sorry the Time Stop spell doesn't stop every single thing YOU want it to. We didn't know you came here for HELP to make YOUR Chronomancer as well.

P.S. I read "time always runs equally as fast" and felt the majority of the blood vessels in my brain collapse. Impressive.
 
Level 24
Joined
Aug 1, 2013
Messages
4,658
Well, I never said everything I want, but everything HE said it would.
All games, movies, series, etc are all backed up by logic. Everything can be exaplained in a reasonable way.
Magic for example can also be explained reasonably but there are many ways to do it.

Time is slightly harder because it is more of a law than an actual thing.
In BLEACH there was one episode where something like this "time stop" spell was actually used and explained... however, it had almost nothing to do with time.

Even though I am not really convinced about how it was explained, it does make a very obvious difference in what you can make IF you use the right logic to back it up.
For example, make that unit travel forward in time and then let time catch up. It is a horrible explanation of a spell that isnt even bad to use.

This thing is actually very frequently used in many games.
For example in League of Legends, it is called "stasis" (zhonyas hourglass for example) where the user (aka target) becomes untargetable, unmoveable, unEVERYTHINGABLE for 2,5 seconds.
The only difference, it is properly explained!

The other spell is also used in other things like in BLEACH as I mentioned before.
In there, the target's senses became so fast that one minute would be a hundred years for him (iirc). However, he coulnt move any faster than that so he would move 100y:1m faster... which is like 52.5 million times slower. However the duration was kind of a mistery... because that is never explained because the victim died :D
The effect is exactly the same as the "time stop"...
The only difference is that it is properly explained!

When you fiddle with things that cannot be explained by natural logic, you are making things that arent possible. And in the opinion of many people, that result in bad games/movies/etc.
Ofcourse you can make it, but I really advice you to make some logic to back it up.
And if you cant do that, then make something else.

And I didnt came to ask for help on my chronomancer thank you.
It was simply an example of other things you could do with time that is actually easier to explain in logics.

Also... what exacty do you mean with this?
P.S. I read "time always runs equally as fast" and felt the majority of the blood vessels in my brain collapse. Impressive.
 
Level 24
Joined
Aug 1, 2013
Messages
4,658
Wietlol, we are in a forum dedicated to modding a fantasy game. It's inherent that at some point we will have to say: fuck logic, I want fun.
Give me any AAA fantasy game that you think is not backed up by logic.
I dare you.

@pick-a-chew
I think you didnt understand the part of Time we were discussing all this time.
Einstein is talking about something extremely different.
 
Level 24
Joined
Aug 1, 2013
Messages
4,658
Reality is only a small thing compared to logic.
There are a LOT of things that are very logical but just impossible in the real world cause we are simply missing something that we will never have... for example some weird OP materials.
They can be backed up by logic but wont be possible in the real world.

And WoW is very logical on the background.
 
Status
Not open for further replies.
Top