You misunderstood my intention. Using the same location on the map for each course, would be much easier to rebuild at the right spot in the "outer limits". IE, make a template, and then use the same template at the same location for each course. This way I'm not having to reposition every course separately to match up with the area it will be spawned in. IE, if the spawn point picked is in the southwest corner, but if the course position after the offset to sw point placed it on another point, or maybe even mission area, I would then have to offset it again to place it on the point it's meant to be on. I just don't want to have to do that 8 times, when I could just do it once. This is why I say use a set point for all the courses. Would probably be best to build a template first, and then modify it for each of the different courses.perrinoia wrote:Hmm... I don't like that idea... You wanna go back to hard coding areas, but like I said, there is a potential that the map maker could put the primary mission area too close to the edge of the terrain, so the code needs to be flexible to adapt.
For instance, using my code on Scarabrae only creates 5 extra zones, because the primary mission area is large, and not centered, and the terrain is small.
Don't think about the positions, or even the waypoints as constants, because while one may be good on the first map, it might be no good on the next map.
Instead, my code will define the usable zones, and number them... (In my diagram, they are assigned letters instead of numbers, but in the code, they will be assigned numbers).
If no terrain is found at the tested waypoints, the zone will not not be defined. However, if all of the tested coordinates in each zone have terrain, then $OuterLimit[$OuterLimits++] will be defined as the waypoint in the center of the zone.
I suggest reserving the first couple of zones for group activities, such as free for all arena or team death match, and then testing the rest for vacancy/occupancy before spawning players for duels or tutorials.
In other words, 1 and 2 are reserved for multiplayer, so loop from 3 through $OuterLimits, test for vacancy, and then spawn the player on the terrain at the waypoint. If they accepted a duel, spawn the other player too, and if they choose the tutorial, build the tutorial stuff around the player.
Also, when designing the tab menu options to use these zones, I suggest using the selected client portion of the tab menu.
For instance, you pick a name from the tab menu, you'll see options to vote on them, and challenge them to a duel.
Click on yourself, and you'll see options to join the arena, team death match, or tutorials.
I also think the welcome message should mention the tutorials, if you are unregistered.
Hell, maybe unregistered players should be forced to play the tutorials, before they can join the primary mission area... That would definitely reduce the number of base killing smurfs.
Lastly, instead of choosing an armor to practice and having a separate zone for each armor, I think there should be a private zone per player, and the zone will merely adapt to suit the player's progress. For instance, start off with the climbing/jumping/flying scenario, and when the player reaches the checkpoint at the top, change the ladders to shoots and teach the player to ski to the bottom. When they reach the checkpoint at the bottom, spawn targets and give the player weapons. There is really no need to switch locations for each lesson... Just create/delete buildings each time they complete the objectives of a tutorial.
That being said, once you get a basic template up and running ghost, could you send me a map file with it? This way I can get the testing out of the way early to see how it works / changes that might need to be made.
And your ideas have been noted perr. Hopefully players can grasp the concept of ski/jet/shoot though. The goal of this is to teach players how to use the different armors, not how to play tribes. Annihilation is a very complex mod first starting out.
Also I never ended up using your code. Too many false readings having the space between point / oob based off the mission width. There's a lot of wasted terrain in between that space even on small maps. I was able to perfect mine though having the center position set in stone using the 512 512 way point. Also only one point is reserved for Arena, but it will use others if available when in TD Terrain mode. Other wise all rounds will be spent at the single point it was built at. I doubt all available points will be taken though with training courses / duels. With how it is setup now, arena is the only thing that gets one reserved point at the mission start, everything else is first come first serve. And the code to select these points is a scan of the area to check for players / terrain. It does a scan of all the areas, if none are found then it will give you a msg that there is no point available at that time. These courses will use the same code, but for a single player instead.
Yes!!! This is exactly what I'm shooting for. Although you don't have to make them 100 miles in the sky. I will offset it with code to do that. For testing purposes let's keep it closer to the ground when building it.Ghost wrote:Do we really need to use terrain? I was gonna design the course 100 miles into the sky and load it like Arena. Seems simple yet effective.