View Full Version : Adding Placeable objects to azone generated map files
Derision
06-14-2008, 03:09 PM
An issue with the maps generated by azone at present is that they do not include
placeable objects.
Many placeable objects are inconsequential for LOS, e.g. trees, boulders, wall decorations,
however there are some large/important objects that are classed as 'placeable', e.g. some bridges
and buildings.
For example, the buildings in Potranquility (bank etc). If you fear a mob in those buildings
they will just run straight through the walls, and some of the bankers are sunk up into their
neck in the ground because as far as LOS/BestZ is concerned, the buildings don't exist.
I have spent the last couple of days adding the ability to azone to include placeable objects in
the map files.
While it is not ready to release yet, mainly because you currently have to edit the source to
specify the id numbers of the placeable models you want included, here is a potranquility map
for people to test with (this includes the geometry for the walls and floors of the buildings
I referred to above (and that is the only extra thing it includes, i.e. no trees etc).
http://www.rama.demon.co.uk/potranquility.rar
If you fear in mob in the buildings before and after dropping this into your Maps directory,
you will see the difference. You can also try casting on a mob inside the building while you
are outside (with the old map it will let you, even though you can't see your target).
If anyone has any zones where they are desperate for certain placeable objects to be included,
(S3D or EQG) let me know and I'll see if I can cook you up a map with those objects included.
Angelox
06-14-2008, 03:17 PM
Toxxulia Forest (tox) has that problem; npcs in the buildings there are waist-deep in the floor, would be great to see that fixed.
Thanks for you fixes!
Derision
06-14-2008, 03:42 PM
Toxxulia Forest (tox) has that problem; npcs in the buildings there are waist-deep in the floor, would be great to see that fixed.
Here you go, try this one:
http://www.rama.demon.co.uk/tox.rar
It includes the geometry for three extra models (I threw the bridge in as a bonus :) )
HUT4_DMSPRITEDEF
ERHOUSE_DMSPRITEDEF
TBRIDGE_DMSPRITEDEF
I tested one building before and after and it seemed to have done the trick.
If anyone has any more requests, I likely won't get to them until tomorrow.
Angelox
06-14-2008, 03:58 PM
Thanks again - I'll be testing shortly, before you go, I was wanting to give you something else to think about which may be related to your work; The boats.
Only one of them is not fall through , the rest are , the most needed ship is the SirensBane (butcher > freeporte boat), and it is totally transparent. We actually have a fully functional system for boats to run on schedule dynamic zone or not. but really can't use it to its best or properly, unless we can get a boat thats not so large as the one we have now.
I'm about to make a detailed post on how we did this, but really, the SirensBane is very needed - it appears in many zones, and fits the areas perfectly.
Derision
06-21-2008, 03:10 PM
This is a reply to Scorp from another thread where the subject of azone was brought up. Thought I would put the reply here rather than cluttering up the other thread, or starting a new one.
I hope you are including the code that makes it work under windows too.
Also as a future enhancement, we should see if we can get it to identify PvP areas like it does water. Then we could add code that makes those areas work. This probably deserves it's own thread in the appropriate forum area.
Yes, the new azone and also awater compile under windows. (awater has no new functionality, at present).
Regarding the PVP areas, I just logged into the old arena zone, and also went to the PVP arena in Freeport.
If you issue the #bestz command in the pvp part of the arena zone, it tells you you are in water. Likewise, in the pvp arena in Freeport, it tells you that you are in an unknown area, so it seems that these pvp areas are defined as special, but just not being handled correctly. I'll look into it some more.
Given that I can only pull out the special areas from S3Ds, and not EQGs. What other S3D zones have pvp areas (and where abouts in the zone are they) ?
Thanks
Scorpious2k
06-21-2008, 03:50 PM
Halas has one, and this may help: OpenZone can create them.
I have a zone I made with one, and can give you the file.
Because, OZ will successfully create the area (recognized by the client) you might want to either look at the OZ source or (probably quicker) ask Windcatcher about it.
EDIT...
My thought on this subject, btw, is that once we can identify the area and if a player and/or target is in it, we can add code to where it checks to see if attack is allowed against another player and allow/deny it depending on if they are in it.
Probably with a rule so the serverOp can turn it on or off. This would actually be a pretty simple add-on once we can determine the PvP area and a client's position in or out of it.
Derision
06-21-2008, 04:12 PM
you might want to either look at the OZ source or (probably quicker) ask Windcatcher about it.
I looked at the OpenZone source (which has helped me a lot in the past while
working with S3Ds) and also Windcatcher's WLD format document, and
the PVP areas should be defined in the S3D with a name beginning 'DRP_ZONE':
0x29 — Region Flag — PLAIN
Notes
This fragment lets you flag certain regions (as defined by 0x22 BSP Region fragments) in a particular way.
The flagging is done by setting the name of this fragment to a particular “magic” value.
The possible values are:
WT_ZONE........................................... .....Flag all regions in the list as underwater regions.
LA_ZONE........................................... ......Flag all regions in the list as lava regions.
DRP_ZONE.......................................... ....Flag all regions in the list as PvP regions.
DRNTP##########_ZONE.............Flag all regions in the list as zone point regions.
The ####’s are actually numbers and hyphens that somehow tell the client the zone destination.
This method of setting zone points may or may not be obsolete.
Derision
06-22-2008, 08:25 AM
I got the PVP areas figured out correctly. There are PVP areas in the following zones:
Arena, Cabwest, citymist, freportw, Kael, mischiefplane, neriaka, neriakb, paineel, qeynos, sseru, thurgadina
I could't find one in Halas. There is an area called 'The Pit Of Doom' which looks a bit like a mini-arena, but
there is nothing in the S3D file to flag it as such, and I don't get the client message when I go in there.
My ISP is doing maintenance which means my webspace is down at the moment, but when it comes back up I will post
the water maps for the zones above with the PVP areas tagged correctly.
I also wrote a patch for the server to detect the PVP areas (bool WaterMap::InPVPArea) and added some output into
the #bestz command to show whether you were in a PVP area or not, however it still requires someone to modify the
attack code to call InPVPArea to perform the check. (I'll let someone else do that).
Here is the zone patch. I'll post the maps later when my webspace is back up. The modified version of awater to
produce the .wtr maps tagged with PVP areas will come with my modified azone when that is done and tested.
diff -u --recursive /tmp/EQEmu-0.7.0-1115/zone/command.cpp ./command.cpp
--- /tmp/EQEmu-0.7.0-1115/zone/command.cpp 2008-06-19 13:49:00.000000000 +0100
+++ ./command.cpp 2008-06-22 12:25:18.000000000 +0100
@@ -6455,13 +6455,15 @@
RegionType = zone->watermap->BSPReturnRegionType(1, c->GetTarget()->GetX(), c->GetTarget()->GetY(), z);
c->Message(0,"InWater returns %d", zone->watermap->InWater(c->GetTarget()->GetX(), c->GetTarget()->GetY(), z));
c->Message(0,"InLava returns %d", zone->watermap->InLava(c->GetTarget()->GetX(), c->GetTarget()->GetY(), z));
+ c->Message(0,"InPVPArea returns %d", zone->watermap->InPVPArea(c->GetTarget()->GetX(), c->GetTarget()->GetY(), z));
}
else {
z=c->GetZ();
RegionType = zone->watermap->BSPReturnRegionType(1, c->GetX(), c->GetY(),z);
c->Message(0,"InWater returns %d", zone->watermap->InWater(c->GetX(), c->GetY(), z));
- c->Message(0,"InLava returns %d", zone->watermap->InLava(c->GetX(), c->GetY(), z));
+ c->Message(0,"InLava returns %d", zone->watermap->InLava(c->GetX(), c->GetY(), z));
+ c->Message(0,"InPVPArea returns %d", zone->watermap->InPVPArea(c->GetX(), c->GetY(), z));
}
@@ -6469,6 +6471,10 @@
case RegionTypeNormal: { c->Message(0,"There is nothing special about the region you are in!"); break; }
case RegionTypeWater: { c->Message(0,"You/your target are in Water."); break; }
case RegionTypeLava: { c->Message(0,"You/your target are in Lava."); break; }
+ case RegionTypePVP: { c->Message(0,"You/your target are in a PVP area."); break; }
+ case RegionTypeSlime: { c->Message(0,"You/your target are in a Slime area."); break; }
+ case RegionTypeIce: { c->Message(0,"You/your target are in an Ice area."); break; }
+ case RegionTypeVWater: { c->Message(0,"You/your target are in a VWATER area."); break; }
default: c->Message(0,"You/your target are in an unknown region type.");
}
}
diff -u --recursive /tmp/EQEmu-0.7.0-1115/zone/watermap.cpp ./watermap.cpp
--- /tmp/EQEmu-0.7.0-1115/zone/watermap.cpp 2008-01-14 02:42:37.000000000 +0000
+++ ./watermap.cpp 2008-06-22 12:22:12.000000000 +0100
@@ -99,6 +99,12 @@
return(BSPReturnRegionType(1, y, x, z) == RegionTypeLava);
}
+bool WaterMap::InPVPArea(float y, float x, float z) const {
+ if(BSP_Root == NULL) {
+ return false;
+ }
+ return(BSPReturnRegionType(1, y, x, z) == RegionTypePVP);
+}
WaterMap* WaterMap::LoadWaterMapfile(const char* in_zonename, const char *directory) {
FILE *fp;
diff -u --recursive /tmp/EQEmu-0.7.0-1115/zone/watermap.h ./watermap.h
--- /tmp/EQEmu-0.7.0-1115/zone/watermap.h 2008-01-14 02:42:37.000000000 +0000
+++ ./watermap.h 2008-06-22 12:21:19.000000000 +0100
@@ -30,15 +30,21 @@
} ZBSP_Node;
#pragma pack()
+
typedef enum {
RegionTypeUnsupported = -2,
RegionTypeUntagged = -1,
RegionTypeNormal = 0,
RegionTypeWater = 1,
RegionTypeLava = 2,
- RegionTypeZoneLine = 3
+ RegionTypeZoneLine = 3,
+ RegionTypePVP = 4,
+ RegionTypeSlime = 5,
+ RegionTypeIce = 6,
+ RegionTypeVWater =7
} WaterRegionType;
+
class WaterMap {
public:
@@ -46,6 +52,7 @@
WaterRegionType BSPReturnRegionType(long node_number, float y, float x, float z) const;
bool InWater(float y, float x, float z) const;
bool InLava(float y, float x, float z) const;
+ bool InPVPArea(float y, float x, float z) const;
WaterMap();
~WaterMap();
Derision
06-22-2008, 11:16 AM
Here are the 'Water' maps for the zones I mentioned in the previous post with the PVP regions tagged (1.4MB):
http://www.rama.demon.co.uk/pvpmaps.tar.gz
The directory in the tar file is called pvpmaps but that is just a temp directory I put them in while creating the archive.
Once you have extracted them, drop them in your Maps directory where the other .wtr files are.
Derision
06-22-2008, 12:03 PM
I had a look at what would be involved to use this to enable PVP combat in the PVP areas, and it looks to be simpler than I thought, i.e. just change the existing GetPVP() function:
--- /tmp/EQEmu-0.7.0-1115/zone/client.h 2008-06-15 00:07:57.000000000 +0100
+++ client.h 2008-06-22 16:50:45.000000000 +0100
@@ -36,6 +36,7 @@
#include "mob.h"
#include "npc.h"
#include "zone.h"
+#include "watermap.h"
#include "AA.h"
#include "../common/seperator.h"
#include "../common/Item.h"
@@ -275,7 +276,7 @@
void SetGM(bool toggle);
void SetPVP(bool toggle);
- inline bool GetPVP() const { return zone->GetZoneID() == 77 ? true : m_pp.pvp; }
+ inline bool GetPVP() const { return zone->watermap->InPVPArea(x_pos, y_pos, z_pos) ? true : m_pp.pvp; }
inline bool GetGM() const { return (bool) m_pp.gm; }
inline void SetBaseClass(uint32 i) { m_pp.class_=i; }
Previously this would let you PVP anywhere in zone 77 (arena), but with this change it will only allow it in the central PVP area.
Angelox
06-22-2008, 12:22 PM
Here are the 'Water' maps for the zones I mentioned in the previous post with the PVP regions tagged (1.4MB):
http://www.rama.demon.co.uk/pvpmaps.tar.gz
The directory in the tar file is called pvpmaps but that is just a temp directory I put them in while creating the archive.
Once you have extracted them, drop them in your Maps directory where the other .wtr files are.
I'll put these maps on Rathe forums downloads also
Derision
06-22-2008, 12:31 PM
The previous patch to GetPVP didn't check if there was a watermap loaded for a zone and will crash the zone if there isn't. This should work better:
--- /tmp/EQEmu-0.7.0-1115/zone/client.h 2008-06-15 00:07:57.000000000 +0100
+++ client.h 2008-06-22 17:18:17.000000000 +0100
@@ -36,6 +36,7 @@
#include "mob.h"
#include "npc.h"
#include "zone.h"
+#include "watermap.h"
#include "AA.h"
#include "../common/seperator.h"
#include "../common/Item.h"
@@ -275,7 +276,8 @@
void SetGM(bool toggle);
void SetPVP(bool toggle);
- inline bool GetPVP() const { return zone->GetZoneID() == 77 ? true : m_pp.pvp; }
+ inline bool GetPVP() const { if(zone->watermap != NULL) return zone->watermap->InPVPArea(x_pos, y_pos, z_pos) ? true : m_pp.pvp;
+ else return m_pp.pvp; }
inline bool GetGM() const { return (bool) m_pp.gm; }
inline void SetBaseClass(uint32 i) { m_pp.class_=i; }
and thanks for hosting the files Angelox.
Derision
06-29-2008, 08:20 AM
Here is azone2 (as I call it), along with a new version of awater that includes PVP
regions in the .wtr files. I've also included two other utilities called listobj
and glmodelviewer that I'll get to in a moment.
Source: www.rama.demon.co.uk/azone2/azone2.rar
Windows Executables: www.rama.demon.co.uk/azone2/az2exes.rar
The source includes .vcproj and an .sln file for Visual C++ Express 2008.
The source needs to be unzipped into the utils directory of your EQEmu source
tree, e.g. into EQEmu-0.7.0-1118/utils/azone2.
I've not included diffs as I replaced the S3D and EQG loaders with later versions
from OpenEQ that I had made some fixes to and included support for loading models, and the patch would be quite large.
Copy the executables into the same directory as your .S3D and .EQG files. To include
placeable objects for S3Ds, the _obj.s3d files must also be present.
Some newer EQGs have a .ZON file as a separate file in the filesystem rather than
inside the EQG. In these cases, the .ZON file must also be present along with the
EQG.
Azone2 provides support for including placeable objects in your .map files.
Here I will give a short tutorial on why you might want to use it.
Take this view of lakeofillomen.
http://www.rama.demon.co.uk/azone2/loio-tex.jpg
Those ruins are placeable objects, this is what the .map file thinks the scene looks like:
http://www.rama.demon.co.uk/azone2/loio-noplac-map.jpg
If we want to include those buildings in the .map, we need to know
their model numbers. We could use listobj:
listobj lakeofillomen
Some models have meaningful names, but not so in the case of these buildings,
so we will use glmodelviewer instead.
From a command prompt (Windows only):
glmodelviewer lakeofillomen
Use the + and - keys to cycle through the models until you find one that
looks like what you are after.
http://www.rama.demon.co.uk/azone2/loio-mviewer.jpg
It turns out that the buildings use models 49,50,51,52,53,54,55,56 and 57.
In the same directory as azone2 and our s3d/eqgs, we also need to put a file
called azone.ini. This tells azone2 what models to include in the .map
# Include huts, houses dock and bridge from tox
tox.s3d,7,17,20,26
# Include two bridges from Tutorialb
tutorialb.eqg,17,47
# Include prison, ramp and a couple of towers in Anguish
anguish.eqg,5,7,8,119
# Include ruined buildings in LOIO
lakeofillomen.s3d,49,50,51,52,53,54,55,56,57
# Include bridges in thundercrest
thundercrest.eqg,14,51
So, once we have added the line for lakeofillomen.s3d, we run azone2.
azone2 lakeofillomen
AZONE2: EQEmu .MAP file generator with placeable object support.
There are 406935 vertices and 135645 faces.
Processing azone.ini for placeable models.
azone.ini entry found for this zone. Including 9 models.
Including Placeable Object 326 using model 50 (KURH200_DMSPRITEDEF).
Including Placeable Object 327 using model 49 (KURH100B_DMSPRITEDEF).
Including Placeable Object 330 using model 50 (KURH200_DMSPRITEDEF).
Including Placeable Object 331 using model 49 (KURH100B_DMSPRITEDEF).
Including Placeable Object 473 using model 52 (KURH300A_DMSPRITEDEF).
Including Placeable Object 1475 using model 52 (KURH300A_DMSPRITEDEF).
Including Placeable Object 1476 using model 56 (KURH600B_DMSPRITEDEF).
Including Placeable Object 1477 using model 54 (KURH400C_DMSPRITEDEF).
Including Placeable Object 1503 using model 52 (KURH300A_DMSPRITEDEF).
Including Placeable Object 1504 using model 55 (KURH501A_DMSPRITEDEF).
Including Placeable Object 1505 using model 53 (KURH400B_DMSPRITEDEF).
Including Placeable Object 1788 using model 57 (KURH600BR_DMSPRITEDEF).
Including Placeable Object 1789 using model 51 (KURH300_DMSPRITEDEF).
Including Placeable Object 1790 using model 54 (KURH400C_DMSPRITEDEF).
Including Placeable Object 1791 using model 55 (KURH501A_DMSPRITEDEF).
Including Placeable Object 1792 using model 53 (KURH400B_DMSPRITEDEF).
Including Placeable Object 1793 using model 52 (KURH300A_DMSPRITEDEF).
After processing placeable objects, there are 426633 vertices and 142211 faces.
Bounding box: -7650.19 < x < 5026.62, -4153.97 < y < 7221.72
Building quadtree.
Done building quad tree...
Match counters: 1115234 easy in, 3053018 easy out, 55536 hard in, 0 hard out.
Writing map file.
Map header: Version: 0x01000000. 142211 faces, 6487 nodes, 239090 facelists
Done writing map (8.12MB).
Copy the .map over to your server Maps directory. Now it looks like this.
http://www.rama.demon.co.uk/azone2/loio-buildings.jpg
You can test by trying to cast a spell on a mob in the ruins that you cannot see.
John Adams
06-29-2008, 02:05 PM
This is ver cool. Thank you! It would be nice to get people involved in building an official "azone.ini", eh?
Flare83
08-02-2008, 03:04 PM
very nice work Derision. Anyone working on a new map pack with models included?
cavedude
08-02-2008, 04:22 PM
very nice work Derision. Anyone working on a new map pack with models included?
I was meaning to start, but since each map needs to be manually created, it would take a while. Anybody care to help? We could divide and conquer.
Angelox
08-02-2008, 09:40 PM
Here's Skyfire map (http://www.nahunta.org/~angelox/click/click.php?id=12)
Angelox
08-03-2008, 01:13 PM
Here's Frontier Mountains (http://www.nahunta.org/~angelox/click/click.php?id=13) and GFaydark (http://www.nahunta.org/~angelox/click/click.php?id=14) Maps.
Derision; Im having problems with eastwastes , it does not dump all the placed-object info. I saw where objects 1-15 were, there then jumped to 2077-2015. For example I can see CRYSCAVETEL202 as an object, but it's not in the LISTOBJ dump.
Derision
08-03-2008, 01:29 PM
Im having problems with eastwastes , it does not dump all the placed-object info. I saw where objects 1-15 were, there then jumped to 2077-2015. For example I can see CRYSCAVETEL202 as an object, but it's not in the LISTOBJ dump.
I see what you mean. I'll take a look at it at some point during the week.
An unusual amount of -1 model entries for eastwastes. I've been going through them alphabetically... slowly... I dare someone to take a look at bloodfields, it made me cry and not with any amount of joy. =(
Angelox
08-03-2008, 08:17 PM
There's another problem I noticed too, Skyfire has a lot of 'moonwalkers' (npc's get stuck and go a few steps back then forward a few, never get anywhere). I noticed at first in the entrance to Veeshan. Thought maybe it was the map , but the azone2 fix doesn't help. Then I started seeing this moonwalking bug all over the zone, with many npcs. If you can slow or freeze the frame rate , you'll see the mob gets stuck waist-deep in the ground where this is happening (the moonwalking is just an illusion). Skyfire Map I made is so gigantic because I detailed a lot of objects in hopes it would help some. But the most needed objects that are what cause the problem are not in the S3d files , they are on the Skyfire.wld files. I haven't checked any other zones, I Imagine the more irregular the terrain, the more prone to moonwalking. I saw some moonwalking in FM and really haven't check more zones - But Skyfire would be the zone to work this bug out.
In FM(Frontier Mts), most mobs walked fine, with the new fix (Dersion fix for 'BestZ Calculation for aggroed mobs), most the giants travel flawlessly over the big mountains, but once in a while you bump into a MJ fan (moonwalker). I think the 'BestZ Calculation' fixed a lot more than expected.
Derision
08-04-2008, 01:45 PM
Derision; Im having problems with eastwastes , it does not dump all the placed-object info. I saw where objects 1-15 were, there then jumped to 2077-2015. For example I can see CRYSCAVETEL202 as an object, but it's not in the LISTOBJ dump.
I altered the code to print out the names of the objects it couldn't find the model for. In eastwastes, there are 2054:
$ ./listobj eastwastes | grep "not found" | wc -l
2054
Of those 2054 objects, they all use 1 of 3 models:
$ ./listobj eastwastes | grep "not found" | sort | uniq -c
1 Model ELECTMONU200_DMSPRITEDEF not found
1006 Model ICETREE200_DMSPRITEDEF not found
1047 Model ICETREE203_DMSPRITEDEF not found
So all of them bar 1 are trees. I am guessing they use an animated model fragment that the .wld loader doesn't handle.
I checked all the other .s3ds, and the placeable objects with missing models generally seem to be trees, grass, flames, waterfalls, etc (all things that are likely animated), so this doesn't bother me too much, as I think they are generally the kind of objects that you wouldn't want to include in LOS anyway.
As for CRYSCAVETELE202, it is possible that the object mesh exists in the S3D, but was never actually placed in the zone by the designer, which is why LISTOBJ doesn't list it, as no objects use that model.
And KLS, I thought your comment about bloodfields meant there were loads of objects missing for that zone too, but I guess it is just the opposite :)
Angelox
08-04-2008, 02:00 PM
Ok well, I guess what already was dumped has the houses and what not - did you have time to take a look at skyfire? I'm wondering why so many mobs there don't path properly
Derision
08-04-2008, 02:54 PM
Ok well, I guess what already was dumped has the houses and what not - did you have time to take a look at skyfire? I'm wondering why so many mobs there don't path properly
I saw the two at the VP entrance, but I couldn't find any others. If you could give me a list of some other mobs affected (target, #wpinfo and give me the grid numbers), I'll look into is some more.
Angelox
08-16-2008, 12:02 PM
Here's a couple more; Crushbone and Najena Maps (http://www.nahunta.org/~angelox/click/click.php?id=17).
I'm doing maps and posting them as I do other work, not really gonna go all out and do them all at once, but I'll get there eventually - and share the ones I do get done with you all.
Flare83
08-26-2008, 09:16 AM
Here are kael maps.
kael.tar.gz (http://www.wikiupload.com/download_page.php?id=55144)
Angelox
09-05-2008, 07:02 PM
Derision ;
I think I start to see a pattern in a problem -
BtW a good way to test things is with the bots, they basically make the same mistakes the Mobs do when theres a bugged area.
In Crushbone , inside the castle in the first big room where Darish spawns, there a big Table- that was a good place to camp mobs from, but any pull gets near the table and they fall through the floor and get waist deep. In Unrest building where Undead barkeep spawns, when you pull him, he tries run through the bar, and falls through the floor to the level below, then starts attacking you through the floor.
Seems when there's an object in the building like a bar, or a table, they get bugged and mobs fall though. I also noticed the bots getting caught up inside the walls in unrest building and stuck, I had to summon them out.
In the top floor, where the undead knight spawns, i set up camp and went to pull a mob from the next floor down: Big mistake! none came up the stairs, they came under the floor and attacked, eventually killed me - it was a train and the bots won't respond unless they have line of sight. Seems like there's still something missing in the maps, something that needs to be added to the azone and will solve all these problems at once. I have made new maps and still the problem remains. I made a new Unrest map with all the items incuded, still no dice.
Angelox
09-06-2008, 11:21 AM
Tell me if you still want locs and I'll get them and post here.
Leere
09-06-2008, 04:16 PM
I'm not sure if this is the right place for this, but since it seems to be applicable to the topic at hand...
I've been playing around with loading the various data files for the newer zones. (All the .EQG ones.) The following is a refinement of the information from both OpenEQ and also what Derision has kindly provided with his azone patches. The EQTZ format isn't fully worked out yet, but maybe someone here can finish those last pieces.
Please forgive the repeating of already known information.
(Note: When I use 'int' as an indicator for data below, I'm using it in the sense of a 32 bit entity. Using long or one of the *int_32 types, probably would be more accurate, but I've been spending too much time with java source code lately, so int has just crept up to being equated with the 32-bit incarnation. -- And please forgive the pascal esque pseudo-code, I hope it isn't too confusing.)
ZON
There are two flavors of this file. The first started to show up with the Omens of War expansion, when the EQGs were first introduced. The second I find first used for Prophecy of Ro outdoor zones. They are distinguished by the 4 byte magic string at the start.
EQGZ indicates the first format, while EQTZ indicates the second.
Format One:
The file header has already been pretty well covered.
4 bytes - magic string, indicating the format, always EQGZ
DWORD - Version (Observed ones, 1 and 2, see below for differences)
DWORD - hashsize (The size of the block of \0 terminated strings, that provide all names)
DWORD - meshcount
DWORD - objcount
DWORD - unk_count
DWORD - lightcount
Next we have the list of strings. A block of hashsize bytes.
Following that, a block of meshcount DWORDs. They are references into the namehash, each indicating a mesh that is part of the zone. Everything else that wants a mesh references this list.
The next part is what we really care about, the list of placed objects. There are objcount of these entries, and here is also the only difference I could find between versions 1 and 2.
Object format:
1 DWORD - Reference to the meshlist, for which mesh to use for the Object.
1 DWORD - Reference into the namehash, for a name for the Object.
3 DWORDs - Interpreted as floats, the location of the object. This is seen absolute.
3 DWORDs - Floats again, the rotation of the object. Entries are in radians.
1 DWORD - A float the scale of the object.
The following is only present is if the ZON is version 2.
DWORD - count
count*DWORDS
As a note, if the mesh referenced is actually a .ter, and not a .mod, then the location and rotation info has to be ignored. At least, it had to be for my tests to look right. If anyone can find a better way to handle that, I'd be more than happy.
The version 2 block seems to be some kind of coloring info, or something like that. Certainly no geometry we need to care about.
Next we have the unknown. Each of these are 40 bytes long. (Seemingly an int followed by 9 floats. Zone lines, teleporters, something like that at a guess.)
Finally, we have the light entries. Each of these is 36 bytes long. (1 int for a name reference, 8 floats for parameters. Not that it really matters for our needs.)
Format Two:
These are newline separated lines of XML-styled parameters only. The entire format is human readable, and has to be parsed as such.
The first line holds a 'P' and nothing else. The other parameters are MINLNG, MAXLNG, MINLAT, MAXLAT, QUADSPERTILE, UNITSPERVERT, ...
The only ones that we really need to generate a map file, are QUADSPERTILE and UNITSPERVERT.
The NAME property has always been identical to the name of the ZON file, which is NOT always equal to the name of the EQG. There is a .DAT in the EQG with the name indicated by it, and that holds the primary geometry info. (In particular, it's a height-map, split into tiles, made up out of quads.)
TER
MOD and TER files are largely identical. The only thing that a MOD file has, that the TER lacks, is the possibility to include a skeleton for model animation.
The format is already well enough handled by azone, and as such I'll just limit myself to some observations.
There is no BSP tree, or anything else really usefull for splitting up the zone in here. The intent seems to have been to provide big chunks of polygons sharing the same material, and just feeding that to the GPU. (Those chunks I've found so far seemed to be 200 or 400 polygons each. Maybe that can be translated into a quadtree or something else, but I haven't looked that closely yet.)
The Material Block
I've seen a reference to the data in here in another thread. If the information has already been found out since, I missed it.
For each of the parameters, of a material, there is a block of 3 DWORDs.
The first is a reference to the namehash of the file, the second a selector, and the third the data, interpreted as indicated by the second.
0 - As a float (values for parameters)
2 - Reference into the name hash (usually seen for texture names)
3 - As an int (usually color info)
The file ending. Version 1 and Version 3 end after any potential skeleton info. Version 2 ends on a DWORD, that is used as a flag. If it's 0, the file ends with that, for non-zero, there are vertex_count*8 bytes following. (Two floats per triangle, at a guess, a secondary texture coordinate pair, which version 3 pulls up into the vertex structure itself.)
My limited forrays into the meaning of the group parameter, for the polygon list, had some matches between materials using a water shader and -1 for the group (I think that is what azone calls it anyway, the non-material parameter anyway, that has a flag field vibe for me), but that's highly likely to be wrong.
So far, the existence of some 100k+ polygons for the TER entries has made my eyes want to bleed and refuse to even try to just try and match up material info to group info. Sadly, it's going to be the only place where info useable for water maps is going to be found, if it's found.
DAT
The format for the terrain files. I haven't really managed to display these yet, but they are at least parsing correctly.
From the ZON file, two parameters are needed to generate any kind of worthwhile terrain. QUADSPERTILE, to load the height values correctly, and UNITSPERVERT, to create an actual quad grid.
The format now. First the quasi header. I don't really have a clue what any of the first four entries means, but the fifth is the only thing needed to parse the file.
Header:
3 DWORDs - Three ints, that make no sense.
ASCIIZ String - One \0 terminated string. (/me mourns the nice namehash block)
DWORD - tile_count
Only tile_count is really helpful, since there are that many tile entries following now. The String in the header always had a .dds file, so perhaps it's about a kind of horizon, or something... I have no idea, anyway.
For the tiles below, some helpful variables.
quadcount = QUADSPERTILE ^ 2
vertcount = (QUADSPERTILE + 1) ^ 2
The quadcount is the number of actual quads within in a tile, and the vercount how many vertices we need to create those.
Tile format:
DWORD - LNG of the tile (longitude?) Stored with 100000 representing 0
DWORD - LAT (latitude?) See LNG for format
DWORD - unknown (some flags maybe? They showed no pattern.)
vercount * DWORDs - Height field of floats. The missing z values, for the quads
vercount * DWORDs - Color info for the verts? Something like that.
vercount * DWORDs - Something looking like color info again
quadcount * BYTE - At a guess, how the quad has to be split into triangles.
DWORD - float
DWORD - unk
if unk == 0x1 || unk == 0x2 then
BYTE - flag
if flag > 0 then
4 DWORDs - Which seem to be floats
end
DWORD - float
else
unk seems to be interpreted as a float in this case.
end
DWORD - layercount
layer # 0 (always present)
ASCIIZ string (name points to one of the ECO files in the EQG)
for layer = 1 to layercount-1 do
ASCIIZ String - name of ECO for layer
DWORD size
size * size BYTEs (overlay map? coordinate system is confusing)
end
Parameter block (placed objects, split into 4 types)
DWORD - count#1
for i=1 to count#1 do
ASCIIZ String - MOD name (or LOD file)
ASCIIZ String - References an ECO file by name (just the name, no .eco)
DWORD - LNG (identical format to the one at the start of the tile)
DWORD - LAT
3 DWORDs - (floats) Loc (relative to the tile)
3 DWORDs - (floats) Rotation (in degrees)
3 DWORDs - (floats) Scale
BYTE - always was 0xFF
end
DWORD - count#2
for i=1 to count#2 do
ASCIIZ String - File reference
DWORD
ASCIIZ String
DWORD - LNG
DWORD - LAT
3 DWORDs - (floats) Loc (relative)
3 DWORDs - (floats) rot (in degrees)
3 DWORDs - (floats) scale
3 DWORDs - (floats) Some kind of size?
end
DWORD - count#3
for i=1 to count#3 do
ASCIIZ String
ASCIIZ String
BYTE
DWORD - LNG
DWORD - LAT
3 DWORDs - (floats) Loc (relative)
3 DWORDs - (floats) rot
3 DWORDs - (floats) scale
DWORD - (float) ?
end
DWORD - count#4
for i=1 to count#4 do
ASCIIZ String
DWORD - LNG
DWORD - LAT
3 DWORDs - (floats) loc (relative to tile)
3 DWORDs - (floats) rot (in degrees)
3 DWORDs - (floats) scale
DWORD - (float) ?
end
The count#4 entries seemed to hold big zone geometry, like bridges, buildings and the likes. The count#2 entries looked to be about water.
The z coordinates of the objects all seemed to be relative to where on the tile the x,y pair places them. (Many 0.0s)
Since they are referenced in the DAT.
ECO - clear text, XML-esque style, defines the materials
LOD - Level of Detail, clear text, with range indications and MOD files to use then.
TOG - Some kind of model grouping, valdeholm uses these, but no idea how to find the references just yet.
I think that about sums up what I've found out about the EQTZ format. Hopefully it is of some help for the map generation project.
Derision
09-07-2008, 06:17 AM
In Unrest building where Undead barkeep spawns, when you pull him, he tries run through the bar, and falls through the floor to the level below
I have code that may fix this. Essentially it changes the way FindBestZ works to a) detect if the mobs position is under the world/inside geometry and b) find all valid Z positions for the current X/Y (by valid, I mean surfaces that are upward facing and not 'under the world' and returns the closest Z.
It adds a bit more runtime overhead. For each possible Z position it casts a ray upwards. If the ray hits a face, it then checks if it is the back or front side of a polygon. E.g. if you were inside a building it would hit the front side of a downward facing poly that makes up the ceiling, so you are not under the world. If you were waist deep in the bar in unrest, the ray would hit the back side of the poly making up the top of the bar, and so you would be classed as under the world and the code would move you to the top of the bar (assuming that is 'nearer' than the floor below).
It absolutely depends on the server having Azone2 generated map files. The reason for this is that the stock azone builds EQG maps with the vertices ordered the opposite way round to S3D maps, basically meaning the 'under the world' test that works for S3D maps, returns the opposite result for EQG maps.
I'll do some more work on it one of these days.
Derision
09-07-2008, 06:36 AM
In the case of Unrest and the Undead Barkeep, you can 'fix' this by altering the rule Map:FixPathingZMaxDeltaMoving from the default of 20.0 to 12.0. The reason this works is because the difference in height between the floor of the bar room and the room below is around 13.0.
I can't recall why I chose 20.0. It was probably arbitrary, but you should keep an eye out to see if this re-introduces hopping in other zones if you make this tweak.
Angelox
09-07-2008, 06:39 AM
Can I build a new set of 'default' azone2 maps without the Placeable objects (other than ones already done), and continue adding the Placeable objects?
Or do you need the maps to be complete with the objects?
EDIT: I made the change 'Map:FixPathingZMaxDeltaMoving from the default of 20.0 to 12.0' and will post latter on today how that worked.
Derision
09-07-2008, 06:52 AM
Can I build a new set of 'default' azone2 maps without the Placeable objects (other than ones already done), and continue adding the Placeable objects?
Or do you need the maps to be complete with the objects?
It doesn't matter whether there are objects or not. If there are objects and a mob tries to path through them, the code I am talking about would potentially give them a Z value on top of the object, unless the object was hollow, like a table, in which case it would keep them at floor level. I guess it would be possible to add some logic to try and detect things like tables, e.g. if there is a valid Z value <=3 units above the mob, then it's probably something like a table, so move them up to that level.
So, you can build a new set of default azone2 maps.
Angelox
09-07-2008, 07:17 AM
It doesn't matter whether there are objects or not. If there are objects and a mob tries to path through them, the code I am talking about would potentially give them a Z value on top of the object, unless the object was hollow, like a table, in which case it would keep them at floor level. I guess it would be possible to add some logic to try and detect things like tables, e.g. if there is a valid Z value <=3 units above the mob, then it's probably something like a table, so move them up to that level.
So, you can build a new set of default azone2 maps.
I'll get to work on the new azone2 maps and try have it all done today. Is the original azone2 still the valid code I should use? just to make sure something newer passed me by
Derision
09-07-2008, 07:20 AM
Is the original azone2 still the valid code I should use? just to make sure something newer passed me by
Yes, I've not made any changes to it since the original post.
Angelox
09-07-2008, 08:16 AM
In the case of Unrest and the Undead Barkeep, you can 'fix' this by altering the rule Map:FixPathingZMaxDeltaMoving from the default of 20.0 to 12.0. The reason this works is because the difference in height between the floor of the bar room and the room below is around 13.0.
I can't recall why I chose 20.0. It was probably arbitrary, but you should keep an eye out to see if this re-introduces hopping in other zones if you make this tweak.
This worked fine, I pulled stuff from floor 1 to the top and the all followed as they should, nothing came and attacked from below. The Unrest bartender will not fall through anymore, no matter how he follows from behind the bar.
I also went to the original sky hopping test-zone (Lake of Ill Omen) and there still was no sky hopping.
Anyways, I'll keep watching as I play see what else might happen.
Angelox
09-07-2008, 05:28 PM
These are all Azone2 converted Map files (http://www.nahunta.org/%7Eangelox/click/click.php?id=4).
Just to be sure nothing got broke during transfer, you should have a total of 459 files in the package (watermaps included).
None of the files on the package have placeable objects added, as the batch I made would not deal with the ini file properly (kept mixing all the objects to all the maps), not to mention all the work involved in converting them - I have to keep on making those out as I can
What I did was rename my old maps to MapsOLD , and started a new Maps directory with these new maps. Then I replaced the maps with placed objects
A few maps may not work right, namely Lavastorm and Nektulos , because these were done with the eqg file present.
If so, post here and I'll make non-eqg ones.
Angelox
09-25-2008, 01:27 PM
Derision;
No matter what map I use here, the Mobs stand under the huts instead of in them.
They used to stand in them
here's the updated hollowshade map (http://www.nahunta.org/%7Eangelox/click/click.php?id=33)
Derision
09-25-2008, 01:48 PM
Derision;
No matter what map I use here, the Mobs stand under the huts instead of in them.
They used to stand in them
I think you found a bug. The aspect ratio of the huts in Hollowshade looks wrong in OpenEQ (using the same file loader routines as in Azone2). I'll look into it at some point, but it won't be for a while.
Angelox
09-25-2008, 01:57 PM
I think you found a bug. The aspect ratio of the huts in Hollowshade looks wrong in OpenEQ (using the same file loader routines as in Azone2). I'll look into it at some point, but it won't be for a while.
Any idea on how I can bring it back to how it was? I tried the original azone hollowshade map, and that had same results.
Derision
09-25-2008, 02:39 PM
Any idea on how I can bring it back to how it was? I tried the original azone hollowshade map, and that had same results.
Since the BestZ changes were first introduced, those mobs should always have been standing underneath the huts. Setting Map:FixPathingZMaxDeltaSendTo to 1 (or 0) should fix it for static mobs (not on a grid), at least it did on the one I tried, but as always when changing these global rules, you don't know what side effects it may have (shouldn't cause pathing mobs to hop though).
Angelox
09-25-2008, 03:29 PM
Well, Mr 'D, you fix things with out even trying to fix it!
I started my blundering ( I always do when things don't want to work); my first idea was to set all of the Map:FixPathingZ* from 20 to 12 (since it worked so nicely with the Map:FixPathingZMaxDeltaMoving fix), and now they stand in the huts (glad it was a short blunder, I've blundered for days, even weeks).
I checked the old 'hopper zones', and it all looked good (no hopping at all). So I guess they are better to default to 12 instead of 20.
Now, if I could only get the moonwalkers to stop ( I hate moonwalkers!).
Angelox
09-25-2008, 04:31 PM
When I did all my work in Hollowshade, must have been before Best Z fixes - time flies in cyberworld!
Angelox
10-03-2008, 09:04 PM
Today I noticed many missing maps in my current posted Map package. I think Azone2 didn't make them all, as I used the same batch-script as the one for Azone (not sure though).
I just made a new package which should have all the maps, including all the ones I had posted here to date.
You can get it here (http://www.nahunta.org/%7Eangelox/click/click.php?id=4)
If you were seeing problems like spells not landing, or bots/pets not attacking in certain zones, then this might solve your problem.
I took away all other links to map files on my site, since they are all in this new package (http://www.nahunta.org/%7Eangelox/click/click.php?id=4), and these files are humongous HD space- eaters.
If you spot any more missing zone maps, post here and I'll add it.
Derision
10-05-2008, 07:58 AM
I think you found a bug. The aspect ratio of the huts in Hollowshade looks wrong in OpenEQ (using the same file loader routines as in Azone2). I'll look into it at some point, but it won't be for a while.
I found the cause of this. Each instance of a placeable object in the .WLD file has an X and Y scale factor associated with it. This is so that a single base model can be included for that object, then various different size instances of that object can be placed in the zone.
There doesn't appear to be a Z scale factor. (I checked in OpenZone and that doesn't use a Z scale either), so the WLD processing code in OpenEQ and azone2 just sets the ZScale to 1.0.
This turns out to mean that any object that is scaled in relation to the base object looks skewed in OpenEQ and is put into the .map with the wrong geometry by azone2.
I analysed every S3D file, and in every case, the X and Y scale factors were always the same, so I changed the code so that the Z scale factor is set to whatever the X and Y scales are. The huts in Hollowshade seem to have the correct proportions now, and I built a hollowshade.map including models 9 and 10 (the huts on stilts) and the mobs stand on them correctly, even with Map:FixPathingZMaxDeltaSendTo set to the default value.
I've updated the downloads:
Source: http://www.rama.demon.co.uk/azone2/azone2.rar
Windows Executables: http://www.rama.demon.co.uk/azone2/az2exes.rar
This means that any maps with placeable objects using the previous versions should really be rebuilt. This only affects placeable objects. If you have azone2 generated base maps with no placeable objects, then they will be fine.
Angelox
10-05-2008, 09:16 AM
Ok thanks, I still have my azone.ini file, and will re-make the maps and post the new ones during the week.
Angelox
10-23-2008, 09:27 PM
Here is all the maps (http://forums.nahunta.org/viewtopic.php?f=14&t=116&start=0) I had posted on this thread earlier, but with the new updated Azone2. These include placeable objects in them.
Angelox
02-16-2009, 10:22 AM
Here's two more Maps;
Crystal (http://www.nahunta.org/%7Eangelox/click/click.php?id=44)
GreatDivide (http://www.nahunta.org/%7Eangelox/click/click.php?id=45)
All the new Maps are still posted here (http://forums.nahunta.org/viewtopic.php?f=14&t=116&start=0)
Angelox
05-05-2009, 09:39 AM
We got the Eqemu Maps Repository (http://code.google.com/p/eqemumaps/) working -
You should be able to hook up to the Maps SVN (http://code.google.com/p/eqemumaps/) and easily keep your Maps up to date.
I've placed some utilities for making Maps in the Trunk - most of them were made by Derision. It's a simple process, the s3d files in your Eveyquest directory are what you use for converting. for example crushbome.s3d is one you can run "azone2.exe crushbone" and it will create crushbone.map. But azone2 has more features; For example, in Crushbone Castle's main room, where Lord Darish spawns, there's a big table and a rug where players like to camp ("mua"). The default map doesn't include details like this unless you add them. So, before, when mobs/kill were getting stuck there, now after I added these objects to the azone.ini file like so;
crushbone.s3d,22,23,24,29,32,33,23,24,28,31,39,43
They now "see" the table and stand on it instead of in it.
The process is simple, the more people we have making new, detailed maps. the faster this work will get done - if you want to help and are not a member please post.
The source for azone2 is in the EqEmulator source/utils.
If you do make updates, please update the azone.ini file located in the azone_utils directory - so we can keep a history of what we added
Aldest
05-05-2009, 12:17 PM
Thank you for this post and the map SVN Angelox. It is a big help!
Angelox
05-10-2009, 05:53 PM
I just realized a mistake I was making, I'll post it maybe others are also; the viewer-tools default to s3d. for example, "listobj.exe tutorialb" looks at tutorialb.s3d. "listobj.exe tutorialb.eqg" will tell you it can't find tutorialb.eqg.s3d. But if you pull tutorialb.s3d out of the directory, then it will properly display tutorialb.eqg objects with just a plain "listobj.exe tutorialb".
Apparantly, it looks for the S3d first, if no S3d, then the eqg. probably should be the other way around, since if there is an eqg with the same name, that's what the client will use.
This was a problem I had and why I was wondering some things would not display with me.
All three tools will do this (put S3d files up front and not display eqg, if both are present).
Make sure you're working with the right file when you make the maps.
trevius
09-25-2009, 05:59 AM
Probably a good idea about switching around the order the tools check for file types.
BTW, I was wondering if there is any reason not to just include all of the objects that objlist outputs, instead of only selecting a key few that are most important to LoS. I realize that objects like trees and rocks aren't ultra-important for LoS, but I don't think it is particularly bad to have trees and stuff blocking LoS. The main question I have is; does adding every object in the object list cause a huge overhead on LoS processing? I have tried it with a few SoF zones which produce 20MB+ map files in some cases. If the CPU isn't going to go crazy by doing that, I don't see any reason not to do it. And, if so, maybe Azone2 could have an option put in that will combine itself with the object list tool. Then, it will list all objects for the zone and automatically build the map file to include all of those objects to save considerable work and time to check each one out by hand manually. Maybe a feature like that could be added as an option when running Azone2 or something.
Derision
12-27-2009, 05:26 PM
DAT
The format for the terrain files. I haven't really managed to display these yet, but they are at least parsing correctly.
From the ZON file, two parameters are needed to generate any kind of worthwhile terrain. QUADSPERTILE, to load the height values correctly, and UNITSPERVERT, to create an actual quad grid.
...
I ignored this post when Leere first made it, as I had no interest in the EQG 'Version 4' format at the time, however there are a number of Secret Of Faydwer Zones that use this format, so I started to look into it further and am finally at a point to be able to create .maps for these zones, e.g.
Dragonscale Hills, in-game view:
http://www.rama.demon.co.uk/dsingame.jpg
.map file (shown as coloured triangles)
http://www.rama.demon.co.uk/dspolys.jpg
.map file (show as pure triangles)
http://www.rama.demon.co.uk/dstris.jpg
I'm in the final testing/code cleanup phase before comitting the azone2 patches to create maps for these SoF EQGV4 zones, however this post is really just to recognise Leere's great contribution here, which was the foundation for that work, and which if he hadn't have shared, I may never have got this far.
So, if anyone other than Trevius ;) is interested in creating content for the SoF EQG v4 zones with working .maps, then it should soon be possible.
/salute Leere
pfyon
12-27-2009, 06:01 PM
Wow that's awesome. I didn't think we knew how to do that.
trevius
12-27-2009, 10:04 PM
Derision, you never cease to amaze! I don't know about others, but I am really excited about your work on this. Many thanks to you and Leere :D
If the collector tools ever get to working order again, I am sure more people will be able to start filling in SoF content. The EQGv4 zones after Titanium are mostly the outdoor zones, and IMO, many of them are some of the coolest zones EQ has ever seen. That dragonscale zone alone is amazing, and the new revamps of the old zones like Sro/Oasis and Commonlands are pretty cool too. There are a total of about 35 EQGv4 zones that come with SoF, and other than the Burried Sea ones (which are mostly too much alike each other), there are some really great and unique zones.
Here is a list of all of the EQGv4 zones as far as I know, including the short name, the long name and some brief notes I made about the zones when I first started exploring them in EQEmu:
arcstone - Arcstone - Big outdoor zone. Looks pretty nice!
atiiki - Jewel of Atiiki - Very cool tropical volcano zone with desert and a few pyramids
barren - Barren Coast - Tropical coastline with huts, a lighthouse and some islands
blacksail - Blacksail Folly - Small island with a big pirate camp
buriedsea - The Buried Sea - Sea with some islands like OOT
commonlands - Commonlands - Nice remake of east and west commons combined
cryptofshade - Crypt of Shade - Decent dungeon - Looks unfinished
deadbone - Deadbone Reef - Didn't make notes on this yet.
devastion - The Devastation - Huge outdoor desert/tundra/hills zone with cool forts and camps
direwind - Direwind Cliffs - Large outdoor zone that looks like a modern burning woods
dragonscale - Dragonscale Hills - Huge and cool outdoor zone with lots of structures and valleys
elddar - The Elddar Forest - Huge and awesome woodsy outdoor elven zone with forts
hillsofshade - Hills of Shade - Huge and cool hilly zone with a coast and shipwreck and an island
icefall - Icefall Glacier - Nice snowy mountain range area with lots of camps and caverns with chambers
innothuleb - Innothule Swamp - Looks almost just like the original accept updated
jardelshook - Jardels Hook - Cool tropical island zone with a shripwreck bar
lopingplains - Loping Plains - Very nice wooded outdoors with hills and a river. Looks like Vangaurd
maidensgrave - Maidens Grave - Island that is mostly rocks
mesa - Goru`Kar Mesa - Really cool and huge outdoor zone with valleys, caverns and a river
mistythicket - Misty Thicket - Great remake of Misty Thicket. Same exact layout just updated
monkeyrock - Monkey Rock - Another cool tropical island with watchtowers and an observatory
moors - Blightfire Moors - Nice large outdoor elven looking farmland and fields
northro - North Ro - Great large remake of North Ro
oceanoftears - Ocean Of Tears - Nice remake of OOT - Similar setup as before
redfeather - Redfeather Isle - Nice medium size island with above the ground huts
southro - South Ro - Cool remake of South Ro and Oasis combined
steamfontmts - Steamfont Mountains - Nice remake
steppes - The Steppes - Large outdoor zone with tundra, forest and ruins
suncrest - Suncrest Isle - Very cool little island with a high volcano surrounded by smoke
sunderock - Sunderock Springs - Large outdoor badlands with springs and caverns
thalassius - Thalassius, the Coral Keep - Large outdoor zone with lots of underground rooms
theater - Theater of Blood - Huge vampire looking outdoor zone with red grass and gothic castle structures
toxxulia - Toxxulia Forest - Nice remake of Tox and maybe Kerra Isle?
valdeholm - Valdeholm - Amazing medium sized icey Giant town. Definitely worth using!
zhisza - Zhisza, the Shissar Sanctuary - Valleys with paths and trees and a big pyramid with lots of hallways
I updated my Server's Wiki with these EQGv4 zones, and will probably get some screenshots of each of them up on that page soon as well.
http://stormhavenserver.com/mediawiki-1.14.0/index.php?title=Secrets_of_Faydwer
Secrets
12-28-2009, 09:52 AM
Very nice, Derision! I'm impressed.
Derision
12-29-2009, 03:22 PM
I'm still 'prettying up' the source :) , however I did a test compile on Windows and have uploaded EQGV4 compatible .exes for azone2/listobj and glmodelviewer to the
download section of the SVN if anyone wants to try them out:
http://code.google.com/p/projecteqemu/downloads/detail?name=Azone2EQGV4-Rev1068.rar&can=2&q=
By default, all objects except for stuff like trees/small rocks etc, are included in the .map for EQG V4s, so you shouldn't have to bother with listobj/azone.ini etc.
Secrets
12-29-2009, 04:28 PM
Works for me! I'll upload the maps shortly for servers who are lazy.
Secrets
12-29-2009, 07:20 PM
These maps are HUGE! 407mb compressed.
http://www.sendspace.com/pro/dl/kt6h8l
Derision
12-29-2009, 07:54 PM
What concerns me is that some of your maps are significantly smaller than those I generated on my own system.
E.g. your archive has buriedsea.map at 28,010,918 bytes, whereas when I generate the map, I get one of 85MB+
M:\SoF>azone2 buriedsea
AZONE2: EQEmu .MAP file generator with placeable object support.
Attempting to load EQG buriedsea
Unable to open monkeyrocktog.tog
There are 1464324 vertices and 488108 faces.
EQG V4 Placeable Zone Support
ObjectGroupCount = 6398
Processing azone.ini for placeable models.
No azone.ini entry found for zone buriedsea.eqg
After processing placeable objects, there are 4509813 vertices and 1503271 faces.
Bounding box: -5760.00 < x < 6144.00, -5760.00 < y < 6144.00
Building quadtree.
Done building quad tree...
Match counters: 10761035 easy in, 31531640 easy out, 167337 hard in, 0 hard out.
Writing map file.
Map header: Version: 0x01000000. 1503271 faces, 15881 nodes, 1745816 facelists
Done writing map (81.59MB).
M:\SoF>dir buriedsea.map
Volume in drive M has no label.
Volume Serial Number is C80A-2DCA
Directory of M:\SoF
29/12/2009 23:42 85,550,395 buriedsea.map
1 File(s) 85,550,395 bytes
0 Dir(s) 131,352,825,856 bytes free
Strange ... Secrets, could you run azone2 on buriedsea and post your output like I just did above ? Thanks :)
Secrets
12-29-2009, 07:58 PM
AZONE2: EQEmu .MAP file generator with placeable object support.
Attempting to load EQG buriedsea
Unable to open monkeyrocktog.tog
There are 1464324 vertices and 488108 faces.
EQG V4 Placeable Zone Support
ObjectGroupCount = 6398
azone.ini not found in current directory. Not processing placeable models.
After processing placeable objects, there are 1464324 vertices and 488108 faces.
Bounding box: -5760.00 < x < 6144.00, -5760.00 < y < 6144.00
Building quadtree.
Done building quad tree...
Match counters: 2904768 easy in, 8363781 easy out, 112831 hard in, 0 hard out.
Writing map file.
Map header: Version: 0x01000000. 488108 faces, 8848 nodes, 602022 facelists
Done writing map (26.71MB).
10 characters
Derision
12-29-2009, 08:09 PM
Thanks ... that's strange. Our outputs match up until 'Building Quadtree', then yours seems to go wrong.
Both my Windows and Linux boxes give the exact same results.
If anyone else can run azone2 on buriedsea and post the results here, it would be useful. Thanks.
I'll probably post the source tomorrow, so it will be interesting to see if you get the correct results from compiling it yourself.
----------------------------------------------------------------------------------------------------------------------------
EDIT: Scratch that. I think I see the bug.
EDIT: If there is no azone.ini file, azone2 will not add the default placeable models that it should. If you could create an empty azone.ini file in the same directory as azone2.exe and your .EQGs and try again ? (This is what you get for using beta software ... sorry :-( )
Derision
12-29-2009, 08:21 PM
Confirmed. No azone.ini in the same directory as azone.exe is the problem:
M:\SoF>move azone.ini azone.ini.old
1 file(s) moved.
M:\SoF>azone2 buriedsea
AZONE2: EQEmu .MAP file generator with placeable object support.
Attempting to load EQG buriedsea
Unable to open monkeyrocktog.tog
There are 1464324 vertices and 488108 faces.
EQG V4 Placeable Zone Support
ObjectGroupCount = 6398
azone.ini not found in current directory. Not processing placeable models.
After processing placeable objects, there are 1464324 vertices and 488108 face
Bounding box: -5760.00 < x < 6144.00, -5760.00 < y < 6144.00
Building quadtree.
Done building quad tree...
Match counters: 2904768 easy in, 8363781 easy out, 112831 hard in, 0 hard out.
Writing map file.
Map header: Version: 0x01000000. 488108 faces, 8848 nodes, 602022 facelists
Done writing map (26.71MB).
M:\SoF>
Sorry Secrets, but your .maps are no good ... I'll go and hide now, but thanks for finding the bug so quickly ;-)
PS: The default placeable objects are essential in V4 zones as they are used for key structures.
/facepalm
Secrets
12-29-2009, 08:24 PM
Yup, that was it. Good catch :)
I'll re-upload the maps shortly.
Secrets
12-29-2009, 09:44 PM
http://www.sendspace.com/pro/dl/hmooea
cavedude
12-30-2009, 02:04 PM
I'm uploading these maps to the map SVN. Secrets, if you want access shoot me a PM with a gmail address or an address tied to google.
cavedude
12-30-2009, 03:35 PM
Nevermind that, we only have 2GB and our maps dir is currently 5.5GB. We'll need to come up with some other solution. Compression saves a ton of space, luckily so that's in our favor.
Secrets
12-30-2009, 08:34 PM
Nevermind that, we only have 2GB and our maps dir is currently 5.5GB. We'll need to come up with some other solution. Compression saves a ton of space, luckily so that's in our favor.
That sendspace link lasts 30 days, so you have quite a bit of time to find an option. Maybe sourceforge for these? I'm not quite sure :P
trevius
01-11-2010, 07:21 AM
I updated my wiki with screenshots for almost all of the EQGv4 zones. This page now has screenshots for almost every zone available in SoF (after Titanium):
http://stormhavenserver.com/mediawiki-1.14.0/index.php?title=Secrets_of_Faydwer
For the few that don't have screenshots yet, I will get some up for them soon as well. I figure this reference will make it easier for people to narrow down which zones from SoF they might want to use on their server.
I would put these screenshots on the EQEmu wiki too, but I am waiting until we get MediaWiki going and hoping we allow uploading of screenshots on it. It is so easy to upload a screenshot in Mediawiki that it really makes it worthwhile to do them. Not only is it easy to upload them, but it is extremely easy to insert them into the wiki page.
pfyon
01-11-2010, 11:03 AM
I would put these screenshots on the EQEmu wiki too, but I am waiting until we get MediaWiki going and hoping we allow uploading of screenshots on it. It is so easy to upload a screenshot in Mediawiki that it really makes it worthwhile to do them. Not only is it easy to upload them, but it is extremely easy to insert them into the wiki page.
We get it, you like mediawiki ;) . You're preaching to the choir, I don't think anyone here believes that wakka wiki is better than mediawiki.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.