There are 5 "Control Points" in my map and you use your "Hero" to capture them. If you ever played games like Company of Heroes of Warhammer this is pretty much identical to capturing in those games. You walk up to the Control Point, begin channeling, and after X seconds it becomes yours. If the Control Point was under enemy control, you'd have to reset it (back to Neutral ownership) before making it your own. If you stop Capturing or get interrupted while capturing, the Control Point will begin losing progress. For example, an enemy could interrupt you at 99% captured, kill you, and finish the Control Point for themselves only needing that last 1% to complete it.
My current system:
- The map supports up to 10 players, and has separate teams so this is important to note.
- The Control Points in my map are invulnerable structures like a Missile Turret or Pylon.
- I use a channeled ability to create a persistent that applies the "Capture" behavior to the target Control Point. This behavior doesn't modify the Control Point in any way, it's just for the buff/actors/sounds/triggers that go along with making it look and sound pretty. Also, I check if a Control Point has this behavior before allowing you to Capture it, so 2 units cant capture the same point at once.
- Then I use triggers to check if the Control Point is neutral or under an enemies control, and apply the appropriate triggers to start the capturing process.
- I use the Shields of the Control Point as the capture progress (0 to 100% shields), this is nice because it is a visible indicator of the capture progress. Capturing adds 10 Shield Points per second, and finishes at 100.
- If you stop capturing a Control Point before it reaches 100%, it will immediately start losing progress (Shields) at a rate of -10 per second or -10% per second.
- When stealing an enemies Control Point, first you have to reset it back to it's neutral ownership before capturing it for yourself. You basically capture it twice, once to reset it, and again to take it for yourself.
I could go into more detail and actually show you the triggers, but i'm actually embarassed and know that my system is an AWFUL way of achieving this. I'd really like to just recreate the system.
______________
If someone could help me or wouldn't mind letting me use/edit their own similar system that'd be great. I can go into a much greater detail if this is not enough.
You could give the capture point -10 shield regeneration and then units which channel add +20 shield regeneration. The channel also performs a periodic validation if shield is at 100 and if so runs a dummy effect (based on a set effect which does nothing). This dummy effect hooks up with the capture trigger, which deals with the ownership change. If the caster unit is an enemy of the target unit then you change it to neutral and reset shield to 0. If It is neutral already then you set it to the owner of the caster unit.
I'm a bit confused on how to make the Periodic Validator.
It says:
Periodic Validator: A Validator that will be checked periodically. If this validator fails the effect will be destroyed.
So I made a Unit Compare Vital Validator and set it to check if Shields were NOT equal to 100, since this would be true and not destroy the effect. This doesn't work, the validator just instantly fails and ends the effect.
I tried making it "Shields are equal to 100" but that didn't work either.
It is a bit outdated and could have been done better; however, there is a triggered "capture the point" style system. You can use it as a base, or reference, for a trigger based capture system if it suits your needs.
I meant as in you have your channel buff behaviour every frame (1/16 seconds) run a dummy effect and that dummy effect has a validator that prevents it from running when shield is not 100%.
Gotcha, I actually think I fixed everything. I might try adding that validator though so I don't have to use triggers to stop the Capturing process when complete. Thanks for the help though, your method cleaned up the triggers quite nicely.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
What I am trying for:
There are 5 "Control Points" in my map and you use your "Hero" to capture them. If you ever played games like Company of Heroes of Warhammer this is pretty much identical to capturing in those games. You walk up to the Control Point, begin channeling, and after X seconds it becomes yours. If the Control Point was under enemy control, you'd have to reset it (back to Neutral ownership) before making it your own. If you stop Capturing or get interrupted while capturing, the Control Point will begin losing progress. For example, an enemy could interrupt you at 99% captured, kill you, and finish the Control Point for themselves only needing that last 1% to complete it.
My current system:
- The map supports up to 10 players, and has separate teams so this is important to note.
- The Control Points in my map are invulnerable structures like a Missile Turret or Pylon.
- I use a channeled ability to create a persistent that applies the "Capture" behavior to the target Control Point. This behavior doesn't modify the Control Point in any way, it's just for the buff/actors/sounds/triggers that go along with making it look and sound pretty. Also, I check if a Control Point has this behavior before allowing you to Capture it, so 2 units cant capture the same point at once.
- Then I use triggers to check if the Control Point is neutral or under an enemies control, and apply the appropriate triggers to start the capturing process.
- I use the Shields of the Control Point as the capture progress (0 to 100% shields), this is nice because it is a visible indicator of the capture progress. Capturing adds 10 Shield Points per second, and finishes at 100.
- If you stop capturing a Control Point before it reaches 100%, it will immediately start losing progress (Shields) at a rate of -10 per second or -10% per second.
- When stealing an enemies Control Point, first you have to reset it back to it's neutral ownership before capturing it for yourself. You basically capture it twice, once to reset it, and again to take it for yourself.
I could go into more detail and actually show you the triggers, but i'm actually embarassed and know that my system is an AWFUL way of achieving this. I'd really like to just recreate the system.
______________
If someone could help me or wouldn't mind letting me use/edit their own similar system that'd be great. I can go into a much greater detail if this is not enough.
So what parts are you having problem with?
You could give the capture point -10 shield regeneration and then units which channel add +20 shield regeneration. The channel also performs a periodic validation if shield is at 100 and if so runs a dummy effect (based on a set effect which does nothing). This dummy effect hooks up with the capture trigger, which deals with the ownership change. If the caster unit is an enemy of the target unit then you change it to neutral and reset shield to 0. If It is neutral already then you set it to the owner of the caster unit.
I'm a bit confused on how to make the Periodic Validator. It says:
Periodic Validator: A Validator that will be checked periodically. If this validator fails the effect will be destroyed.
So I made a Unit Compare Vital Validator and set it to check if Shields were NOT equal to 100, since this would be true and not destroy the effect. This doesn't work, the validator just instantly fails and ends the effect.
I tried making it "Shields are equal to 100" but that didn't work either.
http://www.sc2mapster.com/maps/tower-control-custom-melee/
It is a bit outdated and could have been done better; however, there is a triggered "capture the point" style system. You can use it as a base, or reference, for a trigger based capture system if it suits your needs.
Skype: [email protected] Current Project: Custom Hero Arena! US: battlenet:://starcraft/map/1/263274 EU: battlenet:://starcraft/map/2/186418
I meant as in you have your channel buff behaviour every frame (1/16 seconds) run a dummy effect and that dummy effect has a validator that prevents it from running when shield is not 100%.
@ImperialGood: Go
Gotcha, I actually think I fixed everything. I might try adding that validator though so I don't have to use triggers to stop the Capturing process when complete. Thanks for the help though, your method cleaned up the triggers quite nicely.