This was a back-burner project for a long time, I knew there was a better way to do obstacle courses, but could not figure out what it was.
The problem with obstacle course maps is they are long, drawn out processes, and players become spread out over the entire map (like NoRang's Olympic's). If a player joined late, or got killed, they had to go waaaaay back to the beginning. It's not much fun racing against someone who is five minutes ahead of you. Then there's the whole HoldTheFLag HTF plugin mess. The SavePosition plugin is an advancement, but not a full solution. Let's just say that gameplay on obstacle course maps was less than ideal.
I wanted to keep all players on a small section of obstacles, and when that section is completed, all players move to another section of map. This would make each section of obstacles more of a race against players, and less of a struggle against static objects. I thought of better ways to use HTF, I thought of using teamflags, then the answer came to me - Steamroller Races.
Here is the basic concept.
1. All players spawn at the same point,
2. They race over obstacles to reach a steamroller flag, and somebody "wins".
3. _srRadiusMult is set to a ridiculously high value, so everybody who did not reach the flag is crushed.
4. The plugin now kills the winner too.
5. All players now spawn at a new point, and the process starts over.
6. Simple, huh?
I have a plugin test server operating at a-delusion.no-ip.biz :5154. Check it out, there is just enough map for you to see how the plugin works.
In order to do this, the plugin needs two special objects per obstacle section. A custom spawnzone, and a standard zoneflag zone for the SR. Each section of obstacles can be ANYTHING, as long as it has these two things. This setup has the added benefit of making it extremely easy to add new obstacle sections to an existing map.
Code: Select all
spawnzone
id 1 #Identifier
position -75 -75 0
size 0 0
spawnazimuth 359 #tank spawns facing in this direction
set _tankSpeed 26 #set variables are auto-reset at the end of obstacle section
NOKILL #shots are phantom-zoned, and cannot kill.
end
zone
position -75 75 0
size 0 0
zoneflag SR 1
end
1. ID number - this tells the plugin what order to present map sections. Lower numbers are played first.
2. SpawnAzimuth - Forces tanks to spawn facing in a certain direction.
3. NOKILL - All shot-types are changed to Phantom-Zoned-Shots. They cannot kill non-zoned tanks.
4. -set - YES, Each section of obstacles can have IT'S OWN SET OF VARIABLES! These are sent into a stack, and automatically reset when the SR flag is captured, so a variable set in one section, does not spread to the next.
So there you have it. All players stay on the same section. Each section has it's own settings (including kill or nokill). Extremely easy to add new sections. New sections can be whatever the mapper desires, with almost zero restrictions.
Perfect for a collaboration project.