Go Back   EQEmulator Home > EQEmulator Forums > Development > KayotRO

KayotRO This is the forum for Kayot's Editor.

Reply
 
Thread Tools Display Modes
  #1  
Old 05-07-2008, 07:37 AM
Bulle
Hill Giant
 
Join Date: Jan 2008
Posts: 102
Default

This calls for a question then : what do the *.map files contain, the ones from the Maps directory that you have to put in your server DIR ? I had always thought they contained a dumbed down 3D description of the zones, basically the world coordinates of the solid areas, so that NPCs do not fall underground etc. Am I wrong to think the contents of these files *.map is well-known and "easily" parseable ? I got them from Sourceforge so that was a given for me.

The S3D files are Sony material and feel like "less desireable", being proprietary.

I know nothing about how the 3D in EQ is orchestrated so I am asking newb questions here, to understand what we know and can retrieve, and what we cannot. If there is a place to get a bit more enlightened about this topic I welcome any link
Reply With Quote
  #2  
Old 05-07-2008, 03:41 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Quote:
Originally Posted by Bulle View Post
This calls for a question then : what do the *.map files contain, the ones from the Maps directory that you have to put in your server DIR ? I had always thought they contained a dumbed down 3D description of the zones, basically the world coordinates of the solid areas, so that NPCs do not fall underground etc. Am I wrong to think the contents of these files *.map is well-known and "easily" parseable ? I got them from Sourceforge so that was a given for me.
The EQEmu .MAP files are created by the Azone utility (comes with the EQEmu source). Azone rips the polygons (triangles) describing the 'ground mesh' from the S3D or EQG files. By ground mesh, I mean the .MAP doesn't include what are classed as 'placeable objects' such as trees, some small rocks, small buildings etc. (even quite large structures such as a bridge in one zone (I think it was Thundercrest)).

As well as the actual polygons, the .MAP file contains an octree that divides the zone into rectangular 2D nodes so the code can find all the polys in a particular area of the zone quite quickly.

There is code in zone/Map.cpp to use the .MAP files, e.g. load them into memory, check if a line between two points intersects any polys etc.

The FindBestZ code for example projects a line vertically downwards from a given X,Y,Z location looking for 'the ground'.
Reply With Quote
  #3  
Old 05-08-2008, 01:07 AM
Bulle
Hill Giant
 
Join Date: Jan 2008
Posts: 102
Default

Thank you Derision. You gave me the pointers to look at if I need more.

So an extended Find BestZ (projecting downwards and upwards) could find where to put the NPC to have it with its feet on the ground for a specific coordinate. That leaves open the problem with placeables.
Reply With Quote
  #4  
Old 05-08-2008, 10:50 AM
rmanders's Avatar
rmanders
Fire Beetle
 
Join Date: Oct 2004
Location: Ohio
Posts: 15
Default

That information on .map files helps. What about situations where there are multiple open spaces on top of each other (such as in a dungeon)?

I suppose that could be handled by using the layer properties of the UI map text files. For each layer being displayed (if more than one), then the spawn would be dropped at the first encounted ground intersection from the topmost displayed layer. I would think this depends on how accurate the UI map layers are though.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:42 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3