1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

How to Chain Monster Spawns Proper

Discussion in 'Maps' started by Thothie, Mar 13, 2008.

  1. Thothie

    Thothie Administrator Staff Member Administrator Moderator Developer

    Apr 8, 2005

    This has been coming up a lot lately, so I thought I'd make a topic, and link it to the tutor.

    Due to buginess that has existed since MS1.3, and has only gotten worse over the years, you cannot chain two or more monster spawns together reliably, as it makes MSC's head explode thusly. You cannot, for instance, have monster spawn #1 spawn a dozen spiders, and then trigger monster spawn #2 with #1's fireallperish when they are all dead. It works about 50% of the time, and is even less reliable in multiplayer situations. (No, I've no idea why, best I can figure it has something to do with trigger ownership).

    Fireallperish is also unreliable if the monsters in the spawns have varying amounts of lives.

    As of DEC2007a, we have the monster gibbing crap, which also complicates matters. We seem to have reduced it, but are no closer to a cure.

    Thus (using Dridje's wolf map as an example, sorta):


    You can even keep using that same target and targetname for the trigger_counter - you just need to create more trigger_counter's with the same name and increase the count for each, changing the target and killtarget names accordingly. (So 20 for wave1, 40 for wave2, 60 for wave3, assuming you want 20 wolves per wave).

    Note that the wolves have 0 lives (unlimited) - this means you *can* count by death instead, if need be, and it won't matter how many wolves get gibbed, save that the players will be forced to kill some extra ones before the next wave spawns.

    Remember that the Half-Life.fgd wants trigger_counter to be a brush entity. This means, like monster spawns, or any trigger_ entity, it has to be tied to a brush, or it will vanish the next time you load the map in hammer. This also means, if it is in a location where the players can touch it, you'll have to add a the "no clients" flag.

    Ye can download an example map here: http://www.thothie.com/msc_dev3/wolf_test.rar

    That is NOT FN FRIENDLY - don't run it on FN, or we'll send Dom DeLuise after you, with nipple clamps.

    EDIT: Changes since this was written up (due to patches):
    Two things be different.

    For one, yer better off using the point entities: ms_monsterspawn and ms_counter, to save on resources. ms_monsterspawn and ms_counter are identical to the brush entities msarea_monsterspawn and trigger_counter, save that they are point entities.

    For two, as be covered in the changelog, the default behavior, when a monster spawn is deleted, is no longer to delete-fade the critters tied to it. Rather, it just stops more from spawning. If you want the creatures to vanish when the spawn is deleted, you must add the "Additional Params" (params) "set_dosr" (short for "die on spawn removal"). Even then, the monster will either die when the spawn is removed, or fade, if he spawned <2 seconds ago (while still invulnerable), should suicide slightly afterwards. Either way, you aren't "robbed of xp" when the monster you were thwacking on has its spawn removed.

    The fireallperish event on a monster spawn should still be viable, so long as it isn't activating another monster spawn, and so long as every creature tied to the spawn has the same number of lives.
    Last edited: Jan 16, 2018
  2. FER

    FER New Adventurer Developer RiP

    Sep 16, 2006
    on Belser's army
    Is it possible that the death of certain monster in the wave (the last monster) triggers the next wave?
  3. Thothie

    Thothie Administrator Staff Member Administrator Moderator Developer

    Apr 8, 2005
    It would be, except there's no way to make a specific monster in a wave "the last monster" - except to have it on a seperate spawn.

    Sometimes, like on ms_snow with the Morc Chief, the mapper is safe to assume that the strongest monster in a wave is so much stronger than all the others, that he'll be the last, or near the last, to die. You can then use their death trigger to fire the next event.
  4. MS:C community

    MS:C community Active Adventurer

    Jul 7, 2011
    This should be stickied incase Regorty wants to take another look.
  5. Thothie

    Thothie Administrator Staff Member Administrator Moderator Developer

    Apr 8, 2005
    Think the mapping tutorial actually links to this article - but a lot of its forum cross-links are dead due to the forum migration.

    Guess I'll go fix some...

    edit: Or I would, except I realized that it'd replace all the images with attachments that don't work if I edit it... Gah, that's a lotta images to fix. Almost be quicker to re-write the tutorial from scratch, which is long overdue, though that'd be an epic task as well.

    edit2: Bleh, think I fixed it.
  6. Kanta

    Kanta Adventurer

    Jan 24, 2013
    Level 45 Zauberei Basher
    Fixing the links of the mapping tutorial sounds like a pretty good idea.
  7. Thothie

    Thothie Administrator Staff Member Administrator Moderator Developer

    Apr 8, 2005
    Meh, fixed the old forum links - still a lotta broken/dead links in there though. Was a pain due to the way Xeno deals with non-secure image links. When ya edit a post with embedded auto-attached images, it has this nasty habit of converting them all into "Click to view attachment" entries, despite them clearly using the [attach=full] tag, so ya gotta link them all again. This was made more difficult by the fact that it decided to make a new image attachment for every repeated instance of the same image (so all those sword.gif bullet-point images became [ATTACH=full]230[/ATTACH], [ATTACH=full]231[/ATTACH], etc. etc. until it was around 300, gah.)

    To make matters worse, if I ever edit again, I gotta do that all again.

    Whole thing really needs a re-write from scratch though. Not that large swaths of it aren't still useful, but too much has changed, and there's no point in mentioning retaining MS1.35 compatibility.

Share This Page