Demo Map Respawning Creeps - A Somewhat More Complete Writeup

Discussion in 'Systems and Snippets' started by AceHart, May 22, 2005.

  1. AceHart

    AceHart Your Friendly Neighborhood Admin

    +1,476 / 0 / -0
    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:

        Unit - A unit owned by Neutral Hostile Dies
        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.


    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.

    Attached Files:

    • Like Like x 9
  2. Wolverine

    Wolverine Guest

    +0 / 0 / -0
  3. Rommel

    Rommel New Member

    +13 / 0 / -0
    Whatever my love. remember, our bond is eternal...<3
  4. Mike889

    Mike889 New Member

    +15 / 0 / -0
    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
  5. Immolation

    Immolation Member

    +20 / 0 / -0
    rofl... good system though, I will use it. +rep :thup:
  6. FireMaster

    FireMaster New Member

    +0 / 0 / -0
    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.
  7. Bullbaz

    Bullbaz New Member

    +1 / 0 / -0
    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!
  8. Nanakil_99

    Nanakil_99 New Member

    +0 / 0 / -0
    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
  9. Nivius

    Nivius New Member

    +5 / 0 / -0
    ty! this helped allot :)
  10. simonake

    simonake New Member

    +72 / 0 / -0
    Why does it go to method

  11. Giantpanda

    Giantpanda New Member

    +1 / 0 / -0
    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.
  12. Narks

    Narks Vastly intelligent whale-like being from the stars

    +92 / 0 / -0
    Giantpanda casts Reanimate!

    on another note, wow this tutorial is bad, written in 2005 lol
  13. Furby

    Furby Current occupation: News poster

    +140 / 0 / -0
    Ehm, why you reviving it? o_O

Share This Page