Hmm... Flat ones are tough, since they aren't editable in the ground editor. You're better off using a heightmap.
Okay, quick tutorial: (for this tutorial you'll need my textures from
ftp://ftp.eqemupvp.com. They're in a file called winds_textures.zip, and you should unpack the contents into your OpenZone\library\textures folder).
1. Pick a heightmap.
First off, what's a heightmap, you ask? A heightmap is a simple black-and-white bitmap that has ground height information for your zone. Darker areas are lower and lighter areas are higher up. You can use either .BMP files or .TGA (Targa) files as heightmaps, and they're the sort of thing you can create in any paint tool. Heightmaps are generally square, and I recommend using a heightmap that's 64x64 pixels in size. Anything larger generates a ton of polygons and consumes a lot of memory.
Hint: a great program for generating realistic heightmaps is called World Machine. It's freeware at the moment, and you can find it by typing in "World Machine" in any web search engine.
For this tutorial I want you to use rotated_output_64.tga, which comes with OpenZone.
2. Determine how big you want your zone to be.
What we normally do here is experiment. Basically, when you create a new zone, you have some parameters you can play with, such as north-south size, east-west size, and vertical extent. You also have position coordinates, which describe the position of the *center* of your zone.
North-south size is exactly that, in EQ coordinates: it's the difference between a /loc at the north edge and a /loc at the south edge. The same goes for east-west size.
Up-down extent is the same, but it's in the Z (height) direction: it's the difference between a /loc at the highest point and a /loc at the lowest point.
The idea here is, once you know what heightmap you want, you create a new zone at some parameters and see if you like it. If not, then recreate the zone with different parameters, until you're satisfied with the size.
For this tutorial, click "new zone" and do the following:
1. Make sure the "use heightmap" checkbox is checked.
2. Select "grass" as your ground texture, but don't pick an underwater texture.
3. Leave the zone position coordinates (in the bottom left) all set to zero. This means that a /loc at the exact center of your zone will give
0,0 for the x and y coordinates and a /loc at the midpoint height will also give 0 for the z coordinate.
4. Enter 4000 for both the north-south size and east-west size (making a square zone).
5. Enter 400 for the up-down size.
6. Click Ok.
7. You'll now get a file chooser dialog to pick the heightmap to use. Choose the rotated_output_64.tga heightmap.
You should now see a basic zone that's 4000x4000x400 in size. You will be looking down on it, initially looking
WEST. I intend to change this in the future so you're looking north, since that's how the heightmap has to be constructed.
3. Determine where you want your water or lava areas.
Here, you also have to experiment when making a new zone. I'm assuming you know how to get to the dialog for adding water and lava areas. The idea here is to try different settings until you like what you see.
For this tutorial, make just one water area. Set both the south and east coordinates at -2500, and set the size at 5000x5000. Set the water level at -60.
4. Recreate the zone with your water settings, but give it an underwater texture.
You've created a zone and set your water areas up, but the underwater textures are still "grass", and that doesn't make sense. So, what we'll do is recreate the zone again, but this time with the water areas already set (OpenZone remembers them when you make a new zone). For this tutorial do the following:
1. Click "new zone".
2. Make sure the position and size settings are the same as earlier.
3. Select "grass" for the ground texture and "barren ground" for the underwater texture.
4. Click Ok and choose the same heightmap (rotated_output_64.tga).
The zone will be re-created, but this time the ground mesh will be split along all the waterlines and different textures will be assigned to underwater areas.
This would be a good time to save your work. You should now have a basic zone, and you can now add scripted object goodies like walls, roofs, tables, chairs, etc.
WC
The next version of OpenZone will include features for tweaking the ground elevation level. I've already started work on it...