PDA

View Full Version : How to force load any model in any EQEMu zone.


Magick
12-29-2003, 06:48 PM
WC was really really quick with an update so I'm posting this cut & paste from the upcoming EQEMu Guidebook 1.3 explaining how this works:

Download thread for ZoneProxy 1.1 (needed unless you do this locally):
http://www.everquestserver.com/forums/viewtopic.php?p=63838#63838

-------------------------------------------------


I am very pleased to announce that during my efforts to catalog every model available in-game, I discovered (or more accurately

mattmeck
12-29-2003, 06:52 PM
We need every mob added to every zone EQ has :lol:

Magick
12-29-2003, 07:00 PM
LOL.. I tested one zone by loading 130 additional models. That really strains the system memory.. lemme tell ya =)

Muuss
12-29-2003, 08:13 PM
This is extremly interesting and increases a lot the possibilities for the custom content servers ! (deserves a sticky imho)

If you spawn a mob that way and someone else zones into your zone without having his txt file customized, i guess he sees the mob like a human male, right?

Shadow-Wolf
12-29-2003, 10:38 PM
well the best way to do that is to test it, just create a mob and edit its model id to something the zone does not have since the txt file isn't forcing the client to load it you will either get a human or the client will crash heh.

Lurker_005
12-29-2003, 11:28 PM
I'm sure it would just show as a human. The server is just supplying an invalid number for what models are loaded.

Magick
12-30-2003, 03:15 AM
This is extremly interesting and increases a lot the possibilities for the custom content servers ! (deserves a sticky imho)

If you spawn a mob that way and someone else zones into your zone without having his txt file customized, i guess he sees the mob like a human male, right?

It would be no different than changing a NPC to Race 300 in East Commons in the past. It shouldn't crash the zone, or if it did I would've never gotten as many models cataloged as I have :) You should just see a plain 'ol generic human model (male or female depending on gender I believe).

While I'm sure not everyone will use this "feature" this way, consider it really fits well with those Ops who create and use custom zones from Open Zone. That being said, players on those servers have to use ZoneProxy (which would insure the models/zones are available) or they'd be limiting the content available to them.

I haven't played on the Public servers for quite some time but I'd like to see "ZP" or something added to server names of those who are using custom _chr files or zones. That should help limit problems and let players know what to expect (ie., custom content).

omper
12-30-2003, 04:39 AM
well.. i am happy to say that this will end Project Genratex.. And thank the maker for it..

Gratz and wooohoo..

Omper

Muuss
12-30-2003, 04:58 AM
Not that sure, omper. As Magick said, adding models to a zone heavily increases the memory use, could be nice to know what is available in each zone before starting to add stuff.

Windcatcher
12-30-2003, 06:29 AM
If you modify the _chr.txt file for an existing SOE zone, the player will still have to have their own local copies of the modified files. ZoneProxy doesn't transmit anything from the server to the client: it only lets the server tell the client to set up a third-party zone. It can't, for example, change something like ecommons_chr.txt or anything like that.

It *might* be possible to alter it so the server could tell it what to put in any zone's .txt file, but there's a risk of sharing violations. I found that the only reliable way to overwrite zone files with it is to open up the files for writing *before* the client can get to them and keep the files open. I have a feeling that this might be true for the .txt files as well, and that might make it impossible to change any .txt file on the fly since I doubt I can (or should) keep that many files open all at once.

If a server operator creates zones with OpenZone it means that players have to separately download the new content anyway, so I don't think it's too big a leap to have a central site where server operators can upload any custom content (including _chr.txt files) and have users download them from there.

WC

Magick
12-30-2003, 06:57 AM
Not that sure, omper. As Magick said, adding models to a zone heavily increases the memory use, could be nice to know what is available in each zone before starting to add stuff.


I'm currently breaking down the model_id,file_id's from the old world so it'll be easier for World Builders and Ops to quickly reference what needs to be inserted to make xxx model available. I don't expect to have them all listed in this next release but hopefully I'll have a decent sized portion to play with. All of the newer models are already done (current GoC, LDoN, LoY, Veksar, some PoP, etc.).

I have not compared notes with omper (expect a PM b/c now I'm curious) to see exactly how many "unique" models the GenRaTex project was able to capture. If it's comparible to the amount cataloged in the Guidebook, it should be very easy for me "sort by zone" because they will be directly referenced to the zonename_chr files. World Builders and Ops alike can then check the graphic reference in the Guidebook and see what the model looks like and what texture/material settings are avilable.

Of course, if I find out that GenRaTex was able to double the number of models I have listed (ie., additional textures) then we have a problem :)


If you modify the _chr.txt file for an existing SOE zone, the player will still have to have their own local copies of the modified files. ZoneProxy doesn't transmit anything from the server to the client: it only lets the server tell the client to set up a third-party zone. It can't, for example, change something like ecommons_chr.txt or anything like that.


Even if players have to download the _chr.txt files, that shouldn't be that big of an issue. Thankfully the files are about 150 bytes or so which means Ops could repopulate all 300 or so zones with a quick 10 second download by players.

The downside would be switching servers. If that new server doesn't have force loaded models, it's not a big deal. You'll just be using a little more memory because your client is loading unused models. If you switch to another custom server, that could be a hassle because you're doing alot of file overwriting for each server you log into.

If you were able to get ZP to alter the _chr.txt files that would really solve a ton of potential issues. One question if I may... ZP intercepts the client before it zones, right? If I understand how it operates correctly, until ZP tells the server that it is ready, the server doesn't actually zone the client. Is that correct?

eqgame.exe does not read any _chr.txt file until the client realizes it is zoning. I have altered _chr.txt files while zoning, and if my timing was right on the save the models would be available. I think the client loads zonename.s3d, zonename_obj.s3d, then moves to the zonename_chr.s3d and/or namename_chr.txt.

If ZP buffers the zoning procress, it might/should also be delaying the reading of the _chr.txt files - which might offer the chance to alter them. As you said, permissions will likely be any issue with some clients but I have faith :)

Scorpious2k
12-30-2003, 08:02 AM
If you're going to do that with ZP, why not have the server send all the info and let it build the txt file. That way, no download for the player and no conflicts in file contents between servers....

DataMan4971
12-30-2003, 08:32 AM
Why isn't anyone saying "great job" or, "good work". Good Job and Great Work! Finally, I can live and have a Solusek Ro Model in the Arena without having the butt ugly naked human!!

mattmeck
12-30-2003, 08:40 AM
Why isn't anyone saying "great job" or, "good work". Good Job and Great Work!

Because Magick knows he is the shiznat uber l33t h@xx0r

Finally, I can live and have a Solusek Ro Model in the Arena without having the butt ugly naked human!!

uuummm you have issues :lol:

Windcatcher
12-30-2003, 09:50 AM
One question if I may... ZP intercepts the client before it zones, right? If I understand how it operates correctly, until ZP tells the server that it is ready, the server doesn't actually zone the client. Is that correct?

That's exactly how it works. The server tells ZP, "set up this zone, and I'll sit here and wait for 30 seconds for your response". ZP copies the files and sends its response back. Only when the server gets the response (or if it times out after 30 seconds) does it tell the client to zone.

I originally had ZP open the files, overwrite them, and then close them every time you zoned, but it would only work the first time. Let's say you went to a third-party zone. Then you went to a different third-party zone. You have to overwrite the *same* alias zone to do this and tell the client to reload the (same) zone. That's when you run into sharing violations.

It might be possible to use two alias zones and ping-pong between them to alleviate the sharing violation stuff, but the only way to know is to test it. In that case we'd have to use tutorial and some other zone, have ZP tell the server the names of both alias zones and change the server ZP code to accommodate it. I don't think it's all that good of an idea, though.

As for changing servers, one possibility might be to have ZP install all custom content for a server just after login time. You might have to exit and restart the client to completely avoid possible sharing violations, but otherwise it would be really neat if the world server could ask ZP to set up all custom content for that particular server. We could assign subfolders to servers and ZP could merely have to copy everything from a particular subfolder up to the EQ folder before telling the world server that it's ready. It would have to be done after login and *before* the player entered the world, but I think it's possible. ZP could be set to remember the last server for which it was set up to avoid unecessary copying.

WC

omper
12-30-2003, 03:15 PM
My method for capturing allowed for all the textures and races.. with all possible combo's. so when we say "unique" well that all depends.. i have 200+ unique models.. each one of those has approx 3 (avg) different textures/genders to go with it.. so over 600.. and i am only into zone 8..

On that note.. I am reading and learning.. so i am looking to midify my method to make things a bit easier for me.. another thing.. I am running out of unique models.. ie, they are comming up more and more to be ones that i have..


Omper

Lurker_005
12-30-2003, 08:12 PM
Omper you should at least be able to use the model viewer to quickly figure out what models are avaliable in the zone, perhaps some other data too.

Load the CHR file and browse the models, note what type of models, how many heads what sexes.... But perhaps you have a pretty streamed line process anyhow.

Magick
12-31-2003, 04:56 PM
Actually, the model viewer won't display all available textures, so it gets tricky. If you open, just as as example, ecommons_chr.s3d. You'll see a puma model, however, you will only see 1 model. Yet in-game you can pull up 4 or 5 different textures of that model.

Many models where it's only a texture/material change and not a physical change to the model (ie., different head, male to female, etc.) have the same characteristics.

This method would work if you only want a quick scan on what race types are there, but again, you have to know what they are. Open acrylia_chr.s3d and tell me what race# all those models are =) I'll bet at least 1 or 2 would stump you completely. That's the tough part when cataloging... not only do you want to know it is available, you need to know what it is. And if you're going from a blank canvass, it's hard to know what is it before knowing what's available. (did that make sense?)

What did I load the other day? I was pulling file_id,model_id's for this post, and I came across a model that for whatever reason... I couldn't make out what the hell it was. And I swear I've literally seen every model hundreds of times. I ended up having to force load it and scan through race types to find the damn thing. It's a little harder than it seems to do it that way.

Lurker_005
01-01-2004, 10:40 PM
It truely is a major effort you have undertaken. And your doing a great job, I was just hoping someone would find a way to make it easy(er) before your done :p

xxsupamanxx5
01-24-2004, 05:46 PM
could you post a list of the mob and file id ???? it would be really helpfull

mattmeck
01-24-2004, 06:15 PM
could you post a list of the mob and file id ???? it would be really helpfull

?? for what??

Shadow-Wolf
01-24-2004, 06:33 PM
well matt i think he wants a list of model_id(and their file_id) so he can force load some models and not have to find them himself.

xxsupamanxx5
01-24-2004, 06:38 PM
iv looked all over the place and i cant find them and i really wanna like put some babboones in gfaydark and stuff like that or if you could just tell me where i could find it that would be helpfull :)

mattmeck
01-24-2004, 06:43 PM
There is not list, this post is all the info there is on the subject.


Somthing like this is basicaly if you dont understand how to after reading it you shouldnt do it or you may break somthing. OR You can back everything up and play around and learn then if you break somthing you just whip out your back up.

The as you learn you can post the info here for others to use so they can lern and help post more info.

xxsupamanxx5
01-24-2004, 06:44 PM
ok thats sorta what i have been doin so i will just keep workin on it till i find the mob i want