Anyway to block rockets but allow bullets/fire etc?

Discussion in 'Mapping Questions & Discussion' started by kimangroo, Apr 10, 2008.

  1. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    Any way to block rockets but allow bullets/fire etc?

    I'd like people to be able to fire through certain grate/rail style textures, but not allow demomen or soldiers to fire rockets and pipe bombs through (looks silly).

    AFAICT demomen pipes won't go through 1 unit gaps, but soldier's rockets do. Is there any other way to filter the soldier's rockets out?
     
    Last edited: Apr 10, 2008
  2. R3dRuM

    R3dRuM L6: Sharp Member

    Messages:
    303
    Positive Ratings:
    19
    A big tangle of block bullet brushes in this form # :D If your desperate
     
  3. l3eeron

    l3eeron L8: Fancy Shmancy Member

    Messages:
    594
    Positive Ratings:
    85
    If you're asking for a weapon/class filter there aren't any.... not yet anyway.
     
  4. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    damn, nevermind then.
     
  5. Hawk

    Hawk L7: Fancy Member

    Messages:
    419
    Positive Ratings:
    212
    It's in our letter to Valve, though!
     
  6. rt3407v06p909

    rt3407v06p909 L1: Registered

    Messages:
    30
    Positive Ratings:
    17
    I believe this meets your requirements.

    The room in the attachment has an invisible brush entity that allows the players to walk through it, permits bullets through it, but blocks Soldier rockets and pipe bombs/grenades from the Demoman.
     
    • Thanks Thanks x 4
  7. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    I haven't had the chance to try this out yet (the laptop I work on can't even run tf2!) but looking at the vmf... Nice one! I've got look more carefully at those flags in the future, I didn't occur to me that rockets and bombs were physics objects. I'm guessing pyro fire should be able to burn through too.

    Nice first post!
     
  8. rt3407v06p909

    rt3407v06p909 L1: Registered

    Messages:
    30
    Positive Ratings:
    17
    The bombs are physics objects, but the rockets are... tricky. They're evidently part of the "everything" group, but unfortunately, there isn't a flag specifically for them. Hopefully the concept does everything you need!
     
  9. Foreverkul

    Foreverkul L4: Comfortable Member

    Messages:
    157
    Positive Ratings:
    14
    Interesting, what are pipe bombs and rockets classified under the flags?
     
  10. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    @Foreverkul
    The selected flags in the trigger_multiple are 1) Physics objects (for pipe bombs and stickies), 2)Everything (not including physics debris) this seems to capture the rockets and 3) Only clients in vehicles *I guess this is to stop the Everything flag from capturing clients as well.

    @rt3407v06p909
    I tested this out briefly and it seemed to work very well. The only slight problem is that if a rockets are being shot at one part of the wall, then the whole wall is enabled and bullets/fire are blocked.

    I also had a quick look at func_clip_vphysics which does stop pipe bombs and stickies but as you said, rockets are not physics objects unfortunately. I tried to tie this to a filter_activator_name: tf_projectile_rocket but no luck. I'm going to mess about with it some more, but I'll probably stick to your method in the end.

    Thanks again.
     
  11. Trypto

    Trypto L1: Registered

    Messages:
    35
    Positive Ratings:
    12
    • Thanks Thanks x 1
  12. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    I can't test your solution right now, but I had a quick look at the vmf. I've been messing about with filters and kill commands as well but without much luck. With a trigger_remove and the everything flag selected, I can kill rockets easily but to create the grating effect I'm looking for I really need the rockets to explode, not just vanish. The other version I have right now, bounces rockets back with a trigger_push.
     
  13. Pseudo

    Pseudo L6: Sharp Member

    Messages:
    319
    Positive Ratings:
    149
    This doesn't seem to work at blocking anything. filter_activator_class does sound like it would be a solution but unfortunately it's either broken or not intended to be used that way.

    A possibility could be to have the rocket blocker divided into several sections. So that way only the section with the rocket at it will be solid to other bullets.
     
  14. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    Yeah that's the way I figure I'll have to do it. I was going to have the grating all over my map, but I guess that won't be optimal if I'm using all the triggers.

    I had one last idea though: you don't happen to know of any command that can be sent to get rockets to explode do you?! Then I could just trigger the !activator to explode instead.
     
  15. bob+M|M+

    bob+M|M+ L6: Sharp Member

    Messages:
    348
    Positive Ratings:
    185
    can you just have the entity target an env_explode while killing the rocket/pipe/sticky with the !activator?
     
  16. kimangroo

    kimangroo L3: Member

    Messages:
    111
    Positive Ratings:
    6
    That's not a bad idea bob but again there's the problem with having a large area covered with the grating. I'd have to have loads of env_explodes and triggers, which is complexity that I'm trying to avoid.
     
  17. Trypto

    Trypto L1: Registered

    Messages:
    35
    Positive Ratings:
    12
    Do rockets explode on the "kill" command? Because since my method doesn't work through blocking the actual projectiles, couldn't you filter out everything BUT the rockets, pipes, and nades?
     
  18. rt3407v06p909

    rt3407v06p909 L1: Registered

    Messages:
    30
    Positive Ratings:
    17
    You could probably make the trigger just one unit larger than the blocking brush, so as to reduce the amount of time the block is active?

    Or is having the block active for less time not really addressing the real problem?