Ug how annoying


(Danyboy) #1

Im not server admin - but

Why - when you connect to a normal 3-map campaign server on standard map do you have to download all 65 pk3s which happen to be in the directory?

If the current map isn’t Rhine - why do I have to download it?!?!?!?!?

When Rhine becomes the next map and I don’t have it - fine kick me off the server - but untill that time - LET ME JOIN DAMMIT!

anyway - ET still rocks - i still own :slight_smile:


(Vengeance) #2

That is annoying and find myself confused as to why it happens. Even more annoying is the fact that vanilla wolf let u join and play the current map regardless if u hadnt got the next map.


(Rain) #3

To answer that from a technical standpoint (which isn’t necessarily the same as logic would dictate), you need to download the map because it contains a campaign file.

The behavior in Quake 3/RtCW/ET is to add any file the server references to the list of files required to be ‘pure,’ and the server references any file with a .campaign inside when it goes searching for all of the available campaigns.

The best solution, aside from the server searching for campaigns in a different fashion, is for map authors to stop including campaign files inside their pk3s (especially since most people don’t use the ones included with the maps, anyway), and perhaps distributing them in a separate pk3.


(eVilAsmodeous) #4

I was under the impression cl_allowdownloads 0 prevented this problem?

Ah well, prolly wrong :slight_smile:

No matter in any case - not needed the only place I play :E


(Rain) #5

No, the server will end up disconnecting you for failing the pure check. :banghead:

Hopefully, fewer and fewer people will include campaigns in their map pk3s (many mapmakers have realized why this is a Bad Thing), and for those who don’t… well, maybe I’ll manage to change the way ET scans for campaign files in etpro some time…

In the mean time, downloading maps isn’t too bad, so long as the server sets up redirected downloads ('cause the engine’s UDP downloads have been miserably slow since QuakeWorld. ;))


(eVilAsmodeous) #6

Bah!

I thought it only failed pure check if you had different (ie, size) files to those on the server, as oppose to requiring a carbon copy…

:disgust: [/quote]


(Rain) #7

Well, it’s kind of weird, but…

The server keeps a list of all the pk3s it used to load data for the current map and a separate list with every pk3 the server can read (with the current fs_game setting), along with checksums for each pk3 in both lists.

The client looks at these lists in determining what to load (because there could be a file with the same name inside different pk3s), and pk3s that match one also existing on the server are kosher, even if they aren’t referenced (this is how the optional voicechat/skin/etc. packs work without requiring everyone to download them.) The client sends checksums for each pk3 it referenced back to the server, and when sv_pure is 1, the server either lets them live (continue playing) or disconnects them (and broadcasts the ‘Invalid PK3 files referenced!’ message to other players.)

(This is approximately how it works, anyway, I might’ve gotten a specific wrong somewhere.)

Campaign files are always referenced (as explained earlier in the thread), so clients always need the pk3 files they’re in. :expressionless: