Demo Map Respawning Creeps - A Somewhat More Complete Writeup

AceHart

Your Friendly Neighborhood Admin
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:

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.
 

Attachments

Mike889

New Member
Man, that's all what i needed, =P Having many ways of doing it means that there will be of course a way that i'll like. I'll test it, and of course it won't lag my map like another i downloaded here, =D
 

FireMaster

New Member
You made me think about those ways of reviving... I will try them all!

But I found a problem: the Animate Dead spell casted by the Neutral Hostile make the "animated" units respawn too.
 

Bullbaz

New Member
Well it reekz of awesomeness! I simply love it! :)
Been trying to figure out a system of my own for quite a while, but they all ended up to be crap!
(Crap1: Doesn't spawn anything, Crap2: Spawns the creeps once, but now more than that, Crap3: When a creep dies, it takes about 5sec, then it spawns about 20 creeps.)

Well anyhow, thanks!
 

Nanakil_99

New Member
I Found this helpful cept for my map i need a trigger that randomly picks a unit to respawn and then gives that unit a loot table
 

Giantpanda

New Member
Method 3 seems to malfunction a lot.

I implemented it into my map and there are so many issues i can't post them all here but a few include:
- Duplicates of Player 9's units are randomly created inside their base belonging to neutral hostile.
- Units in a certain area of my map do not respawn.
 

Narks

Vastly intelligent whale-like being from the stars
Giantpanda casts Reanimate!

on another note, wow this tutorial is bad, written in 2005 lol
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    The old shoutbox wasn't supported anymore. We updated xenForo, so it had to be replaced.
  • jonas jonas:
    let's see if everyone finds it... the nice thing about the shoutbox was I could check on it even while logged out, but the existence of this one is hidden when you're not logged in
  • Ghan Ghan:
    We can fix that.
  • Ghan Ghan:
    Chat should show on the sidebar when not logged in now.
  • Ghan Ghan:
    (You'll still need to log in to post messages)
  • Ghan Ghan:
    Test!
  • tom_mai78101 tom_mai78101:
    I must be in a test server.
  • tom_mai78101 tom_mai78101:
    Nice, Twitter tweets embedding now works
  • Wizard Wizard:
    Yup.
  • Ghan Ghan:
    Excellent.
  • Ghan Ghan:
    @tom_mai78101 Hello there.
  • Ghan Ghan:
    Tagging works in the chat too.
  • tom_mai78101 tom_mai78101:
    @Ghan Missed it.
  • Wizard Wizard:
    Still fixing things here and there. Added widgets to the portal, will make it match the ones here on the forum index tomorrow.
  • Ghan Ghan:
    The venerable World Editor Tutorials site has been converted to HTTPS at last.
  • jonas jonas:
    cool
  • jonas jonas:
    and I can even edit my messages, nice
  • seph ir oth seph ir oth:
    GENERAL CHIT CHAT, YOU ARE A BOLD ONE
  • Ghan Ghan:
    Hello there
  • The Helper The Helper:
    this new chatbox is great and the forum software update is great too
    +1
  • The Helper The Helper:
    upgrade has fixed forum registration spam problem
  • tom_mai78101 tom_mai78101:
    Something tells me we might be able to customize the chatbox a bit, considering that there's a gap under every message.
  • Wizard Wizard:
    Going to deploy a fix soon, just had to take some time for myself this weekend.
  • Varine Varine:
    Unbelievable. Time for yourself? How dare you!

    Staff online

    Members online

    Affiliates

    Hive Workshop
    Top