- Jan 6, 2008
- 249
- 12
Well as I elucidated in a previous post, theres a problem currently with having more than one flag per team in your map, namely that a flag carrier can carry an infinte number of flags.
To avoid this problem I have worked out a system in which the flag carrier drops his flag when approaching another flag's starting point and a system for returning the dropped flag immediately (props to richard_cabeza for this last part!)
- Create a brush around your item_teamflag (i put the flag in a small room and blocked off the doorway with the brush)
- Turn the brush into a func_respawnroom
- Give your respawnroom a name
- Go into your item_teamflag outputs and do:
+ OnPickup Disable "respawnroom brush name" .01
+ OnDrop Enable "respawnroom brush name" .01
+ OnCapture Enable "respawnroom brush name" .01
The .01 is the delay. Last night I could not seem to get the OnCapture thing to work, at which time i had 0 delay. When i added .01 delay to the commands it seems to work just fine. Go figure.
To make this system utterly foolproof you need to make sure the flag returns immediately, otherwise a flag carrier could intentionally or accidentally run over a dropped flag waiting to return somewhere in the level. As soon as a second flag is picked up by a flag carrier the first flag glitches out. It cannot be capped or dropped and therefore will never return to its starting position.
To eliminate a flag return timer do the following:
- Create a point_template in the exact middle of your item_teamflag
- Open up the point_template properties' Flag tab and click "Don't remove template entities"
- Name your point_template
- Click on Template 1 and put in the name of the flag that you want returned to that spot
- Open item_teamflag properties and in output type:
+ OnDrop "flag name" KillHierarchy
+ OnDrop "template name" Forcespawn 0.01
I will be happy to post this as a tutorial (which seems somewhat ridiculous given how bad I am at mapping) but I would prefer some confirmation from others that this works for them.
To avoid this problem I have worked out a system in which the flag carrier drops his flag when approaching another flag's starting point and a system for returning the dropped flag immediately (props to richard_cabeza for this last part!)
- Create a brush around your item_teamflag (i put the flag in a small room and blocked off the doorway with the brush)
- Turn the brush into a func_respawnroom
- Give your respawnroom a name
- Go into your item_teamflag outputs and do:
+ OnPickup Disable "respawnroom brush name" .01
+ OnDrop Enable "respawnroom brush name" .01
+ OnCapture Enable "respawnroom brush name" .01
The .01 is the delay. Last night I could not seem to get the OnCapture thing to work, at which time i had 0 delay. When i added .01 delay to the commands it seems to work just fine. Go figure.
To make this system utterly foolproof you need to make sure the flag returns immediately, otherwise a flag carrier could intentionally or accidentally run over a dropped flag waiting to return somewhere in the level. As soon as a second flag is picked up by a flag carrier the first flag glitches out. It cannot be capped or dropped and therefore will never return to its starting position.
To eliminate a flag return timer do the following:
- Create a point_template in the exact middle of your item_teamflag
- Open up the point_template properties' Flag tab and click "Don't remove template entities"
- Name your point_template
- Click on Template 1 and put in the name of the flag that you want returned to that spot
- Open item_teamflag properties and in output type:
+ OnDrop "flag name" KillHierarchy
+ OnDrop "template name" Forcespawn 0.01
I will be happy to post this as a tutorial (which seems somewhat ridiculous given how bad I am at mapping) but I would prefer some confirmation from others that this works for them.
Last edited: