Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Development

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

Reply
 
Thread Tools Display Modes
  #1  
Old 12-26-2003, 06:37 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default ZoneProxy-friendly changes to 0.5.3DR2

I've updated my copy of EQEmu 0.5.1 to make it work with ZoneProxy (and hence OpenZone zones), and it is tested and working (except for the GM #goto command in third-party zones; using it forces the client to reload the zone--I don't know why). I then made the same changes to 0.5.3DR2. It compiles, but I'm not equipped to test it on my setup (the code is exactly the same where the changes were made and I'm highly confident that it will work).

I've built a small ZIP file with the changed 0.5.3DR2 source code files, but I'm reluctant to put this in the Admin Tool download area. I'd really like for someone to get this into the server CVS repository so the server will be ZoneProxy compatible from here on out. It is *not* necessary that clients connecting to such a server have ZoneProxy. If a client doesn't have ZoneProxy running, the server tells the client that the third-party zone is unavailable. If a client wants to use third-party zones, they must have ZoneProxy running *before* starting the EQ client (see the ZoneProxy instructions for a full explanation).

ZoneProxy compatibility requires a small change to the database so the server knows which zones are third-party and which aren't:

alter table zone add thirdparty int(2) unsigned default '0';

Basically, set the thirdparty field to zero (0) for all zones that come from SOE and one (1) for all zones created with OpenZone. Regarding the zone ID, I recommend starting with numbers that definitely won't interfere with any potential SOE zone IDs (I started with 800). DO NOT USE 999.

My changes to the server code use zone ID 999 under certain circumstances to force a zone reload. At some point this might have to be changed to 9999 to make absolutely sure there is no conflict, but I seriously doubt it will ever be necessary.
Reply With Quote
  #2  
Old 12-26-2003, 08:11 PM
Lurker_005
Demi-God
 
Join Date: Jan 2002
Location: Tourist town USA
Posts: 1,671
Default

And he quietly keeps churning out the good stuff!
__________________
Please read the forum rules and look at reacent messages before posting.
Reply With Quote
  #3  
Old 12-27-2003, 02:26 AM
Guest
 
Posts: n/a
Default hmmm

where is this wonderfull change ? is it on sourceforge?
Reply With Quote
  #4  
Old 12-27-2003, 08:32 AM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

I can put it there if people wish...the question is, would a dev please try this out and put it in CVS if it works? I'm not interested in having to do this for every EQEmu release that comes out in the future...

WC

P.S. OpenZone 2.6 is IMMINENT. Here's the $64,000 question: release it now, or try to make animated meshes working first (flags, trees, etc. -- not creatures). I know how animated meshes work in .WLD files, but OpenZone doesn't have that capability yet.
Reply With Quote
  #5  
Old 12-27-2003, 10:38 AM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

WC, I'll take a look at it as soon as we can. It will probably be a couple of weeks though.
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
  #6  
Old 12-27-2003, 12:05 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

Okay, I'll upload the EQEmu changes soon (tonight). Regarding animated meshes in OpenZone, I started laying the groundwork and realized that it'll take a lot of work and experimentation to get it completed, so I'll save that for the next version. In the meantime I'm taking a stab at dungeon creation with some dungeon-specific scripts.
Reply With Quote
  #7  
Old 12-27-2003, 01:33 PM
daeken_bb
Discordant
 
Join Date: Mar 2003
Location: Chambersburg, PA
Posts: 469
Default

WC, I was wondering if you'd be able to take the time to document WLD a bit, or come on IRC so we can discuss it and I'll write it, my nick on IRC is Daeken if you want to get in touch with me via that method

Cheers,
Daeken
__________________
Keep me unemployed and working on OpenEQ, PM me about donating

Check out my deviantART page at http://daeken.deviantart.com/
Reply With Quote
  #8  
Old 12-27-2003, 02:59 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

I just uploaded the my source files to 0.5.3DR2 that have to be changed to make it compatible with ZoneProxy. You can get it at:

http://prdownloads.sourceforge.net/e...e.zip?download

I've been considering documenting what I know about .WLD files for a long time. It's definitely an overdue project, but I simply haven't had the time for it yet.

There are two major issues when dealing with .WLD files: the file format itself (that is, the overall file organization, including dealing with string locations, etc.) and fragment definitions. Documenting the fragment types will consume 99% of the document and is the most important part.

A .WLD file contains what are called "fragments" (that's what the original ZoneConverter source calls them--I have no idea who wrote it). A fragment is basically just a data structure, and there are two overall types:

- standalone fragments
- fragments that have a built-in reference to another fragment (such a fragment is a superset of a standalone fragment)

Fragments that reference other fragments are something like nodes in a linked list: they contain information that's related to another fragment, such that the client will want to be able to walk from one fragment to another. An example is animated meshes: there is a fragment that details basic mesh information, but if that mesh is animated it will contain a reference to another fragment that contains the additional animation stuff (actually there is a "glue" fragment that sits in the middle, kind of like an animation reference fragment--these "glue" fragments let data that takes a lot of memory be reused). Fragments can contain multiple such references, but the FragmentReference flavor always gives you one for free. Any others are specific to a fragment type.

Every fragment, whether standalone or otherwise, contains an ID value that tells the client its type. The highest ID I've seen to date is 0x37. That's not to say I've encountered every ID between 0 and 0x37, but there are a lot of different kinds of fragments. I've figured out most of the ones I've seen, though some are still a mystery. Others are only partially understood.
Reply With Quote
  #9  
Old 12-27-2003, 03:22 PM
Lurker_005
Demi-God
 
Join Date: Jan 2002
Location: Tourist town USA
Posts: 1,671
Default

Windcatcher, as I recall you don't do any C programming do you? :/ I was hoping your knowledge could fix kaiyodo's model viewer to display character models corectly. I havn't seen kaiyodo around for quite a long time, but the web page with source and exe's is still up. I figure a proper model viewer could seriously help the GenRaTex project figure out what models/textures are avaliable in each zone.
__________________
Please read the forum rules and look at reacent messages before posting.
Reply With Quote
  #10  
Old 12-27-2003, 03:45 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

I continuously upgrade DZoneConverter to help decipher .WLD files, and I took a stab at chatacter models too. So far I haven't been able to figure it out. There's something about the Data6 and Data9 areas in the Data36 fragment that relates to character models, but I don't understand it yet.
Reply With Quote
  #11  
Old 12-27-2003, 04:01 PM
Scorpious2k's Avatar
Scorpious2k
Demi-God
 
Join Date: Mar 2003
Location: USA
Posts: 1,067
Default

Speaking of chracter models, it occured to me the other day that there are names for all the models in the s3d files... if that's true, and if the names are contained in some kind of index that is easy to find, and if we could get a correlation between model names and race/model numbers....

Wouldn't it be possible to get the available race/models for NPCs by reading the s3d files for a zone, matching model names to race/model numbers (possibly with a table) and therefore identifying all races/models available for a given zone?

Just a thought.
__________________
Maybe I should try making one of these servers...
Reply With Quote
  #12  
Old 12-28-2003, 08:46 AM
daeken_bb
Discordant
 
Join Date: Mar 2003
Location: Chambersburg, PA
Posts: 469
Default

I started porting zoneconvertor's eqwlddata and fragment code to php, commenting, and documenting the wld format... i'll probably whip up some c structs for everything and release it in increments today

Cheers,
Daeken
__________________
Keep me unemployed and working on OpenEQ, PM me about donating

Check out my deviantART page at http://daeken.deviantart.com/
Reply With Quote
  #13  
Old 12-28-2003, 12:57 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

The original ZoneConverter source had some bugs in that code. I suggest you look at my Delphi port of it in the OpenZone source as an update.
Reply With Quote
  #14  
Old 12-28-2003, 01:07 PM
daeken_bb
Discordant
 
Join Date: Mar 2003
Location: Chambersburg, PA
Posts: 469
Default

I understand the fragment structures and such now, but I don't actually understand the purpose of some... mind clueing me in on the use of the different types?

Cheers,
Daeken
__________________
Keep me unemployed and working on OpenEQ, PM me about donating

Check out my deviantART page at http://daeken.deviantart.com/
Reply With Quote
  #15  
Old 12-28-2003, 05:21 PM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default

That's kind of a broad question. Which ones don't you understand?
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 09:19 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3