AceHart
Your Friendly Neighborhood Admin
- Reaction score
- 1,497
Respawning Creeps
The basic idea is rather simple: a Creep dies, wait a bit, revive it.
That's all there is to it
So, the event is all set already:
"Unit - A unit owned by Neutral Hostile Dies"
For the "wait", however...
Well we can wait some fixed amount, like 20 seconds.
That might already work for your map.
The obvious flaw would be that your players
can simply count to know when the Creeps are back.
And, even worse, they can simply camp!
Since the Creeps will come back one by one...
that's basically free experience.
Somewhat better would be to wait some random amount of time.
Such as anywhere from 30 to 60 seconds.
Much less predictable.
Sort of more interesting would be to wait until
there are no more hostile units around.
While your players can still come back, at least
they will have to move away at least once.
Then there's the question: "Where do we revive them?"
The two most famous ideas here seem to be:
1. at the spot where they died
2. at exactly the spot they originally started in
"Dying spot", at least, brings some more variation here.
Although, after a couple runs, it could happen
that your Creeps are somewhat far away from where they started...
Imagine attacking some melee Creeps with a ranged Hero.
You shoot at them from a distance, they move closer to attack (and die).
Repeat a couple times...
Here's a challenge for the bored:
In a Player vs. Player melee map, that uses that,
bring all the Creeps in the entire map to his base... then walk in
If you're working with regions, you can also
revive them at some random spot inside the region they started in.
Or still go with the point of their timely end,
even if it's outside said region.
And, what exactly are we reviving?
Mostly we see just the same units over and over.
Which, obviously, has the advantage that you know exactly what
is waiting for you.
It also has the disadvantage that you know exactly what
is waiting for you.
Still, revival based on unit-type is perfectly valid.
More interesting, however, is revival based on level.
A level 2 Creep is, after all, just a level 2 Creep.
They are all pathetic...
You basically just look at them and they already start to decay.
But, not all Creeps with the same level have the same Way of Fighting.
Some are melee, some are ranged, some are casters...
Simple way to get some variation in your maps.
If nothing else, at the very least they do look differently
Finally, you can do all of this,
either for all the Creeps on the map
or only for those inside some regions.
As an example, you might have some large Creep camps,
and a couple small(er) ones, and the odd Creep hiding behind some tree.
But you only care about those in the large camps.
There too, you can revive them "as needed",
or wait until the entire group is history,
then revive all of the pack at once.
All in all, this gives us a whole lot of combinations...
A lot of those can be found ready for use in the attached map.
(I might make some more... If I do I'll update this map)
They range from the simple:
to the more complex:
Revive anything inside a handful of regions,
once that region is empty
and there's noone around anymore.
If you want to see one of the methods in action,
enable all of its triggers, and disable all triggers of all the others.
NEVER enable any triggers that have "GUI" in their name!
Some methods are single trigger only,
some need more than one,
some are GUI (what you click together),
and some are in JASS (they need local variables)...
For those that are JASS, I put the original GUI trigger
I had before converting to custom text.
Don't enable those, they don't work as is.
They are only to help readability of the custom ones.
My personal favorite?
Method 6.
One trigger only, no arrays or variables to create.
Revives anything where it died based on level.
It's in JASS, but, well, that means you can copy and paste it as text
Final notes:
- yes, I wrote all of those triggers myself
- yes, the JASS ones too
- yes, some may look familiar to some of you
- yes, you may use them any way you want
Have fun.
Yours,
AceHart
P.s.:
There's always at least two ways of doing things:
- You can make it so simple that there's obviously no bugs.
- You can make it so complex that there are no obvious bugs.
The basic idea is rather simple: a Creep dies, wait a bit, revive it.
That's all there is to it
So, the event is all set already:
"Unit - A unit owned by Neutral Hostile Dies"
For the "wait", however...
Well we can wait some fixed amount, like 20 seconds.
That might already work for your map.
The obvious flaw would be that your players
can simply count to know when the Creeps are back.
And, even worse, they can simply camp!
Since the Creeps will come back one by one...
that's basically free experience.
Somewhat better would be to wait some random amount of time.
Such as anywhere from 30 to 60 seconds.
Much less predictable.
Sort of more interesting would be to wait until
there are no more hostile units around.
While your players can still come back, at least
they will have to move away at least once.
Then there's the question: "Where do we revive them?"
The two most famous ideas here seem to be:
1. at the spot where they died
2. at exactly the spot they originally started in
"Dying spot", at least, brings some more variation here.
Although, after a couple runs, it could happen
that your Creeps are somewhat far away from where they started...
Imagine attacking some melee Creeps with a ranged Hero.
You shoot at them from a distance, they move closer to attack (and die).
Repeat a couple times...
Here's a challenge for the bored:
In a Player vs. Player melee map, that uses that,
bring all the Creeps in the entire map to his base... then walk in
If you're working with regions, you can also
revive them at some random spot inside the region they started in.
Or still go with the point of their timely end,
even if it's outside said region.
And, what exactly are we reviving?
Mostly we see just the same units over and over.
Which, obviously, has the advantage that you know exactly what
is waiting for you.
It also has the disadvantage that you know exactly what
is waiting for you.
Still, revival based on unit-type is perfectly valid.
More interesting, however, is revival based on level.
A level 2 Creep is, after all, just a level 2 Creep.
They are all pathetic...
You basically just look at them and they already start to decay.
But, not all Creeps with the same level have the same Way of Fighting.
Some are melee, some are ranged, some are casters...
Simple way to get some variation in your maps.
If nothing else, at the very least they do look differently
Finally, you can do all of this,
either for all the Creeps on the map
or only for those inside some regions.
As an example, you might have some large Creep camps,
and a couple small(er) ones, and the odd Creep hiding behind some tree.
But you only care about those in the large camps.
There too, you can revive them "as needed",
or wait until the entire group is history,
then revive all of the pack at once.
All in all, this gives us a whole lot of combinations...
A lot of those can be found ready for use in the attached map.
(I might make some more... If I do I'll update this map)
They range from the simple:
Code:
Events
Unit - A unit owned by Neutral Hostile Dies
Conditions
Actions
Wait 30.00 game-time seconds
Unit - Create 1 (Unit-type of (Dying unit)) for Neutral Hostile at (Position of (Dying unit)) facing Default building facing degrees
to the more complex:
Revive anything inside a handful of regions,
once that region is empty
and there's noone around anymore.
If you want to see one of the methods in action,
enable all of its triggers, and disable all triggers of all the others.
NEVER enable any triggers that have "GUI" in their name!
Some methods are single trigger only,
some need more than one,
some are GUI (what you click together),
and some are in JASS (they need local variables)...
For those that are JASS, I put the original GUI trigger
I had before converting to custom text.
Don't enable those, they don't work as is.
They are only to help readability of the custom ones.
My personal favorite?
Method 6.
One trigger only, no arrays or variables to create.
Revives anything where it died based on level.
It's in JASS, but, well, that means you can copy and paste it as text
Final notes:
- yes, I wrote all of those triggers myself
- yes, the JASS ones too
- yes, some may look familiar to some of you
- yes, you may use them any way you want
Have fun.
Yours,
AceHart
P.s.:
There's always at least two ways of doing things:
- You can make it so simple that there's obviously no bugs.
- You can make it so complex that there are no obvious bugs.