Interceptor
So ich grab mal was aus dem Keller. In dem Beitrag:
Klickmich hatte ich mal folgende Frage gestellt (ist wohl übersehen worden):
Was passiert, wenn ein Serverhoster wegen des "Info-String"-Problems die Namen der C-Maps auf z.B. a.iwd, b.iwd, c.iwd ändert und diese in sein Main-Verzeichnis lädt, in seinem redirekt-Verzeichnis hingegen aber nicht die Maps a,b,c liegen sondern die Maps den vollständigen, ursprünglichen Namen tragen?
Funktioniert dann der redirekt überhaupt?
Mit welcher Mapbezeichnung werden die Maps beim Client gespeichert?
Wie sieht es aus mit dem Einzeldownload beim connecten, funktioniert das in dem Zusammenhang?
Kann es leider nicht selber testen, da mir die Möglichkeit dazu fehlt
aber, vielleicht hat es sonst schon jemand ausprobiert
@chill³s
Moin Interceptor,
was hälste davon, wenn wir es heute abend einfach mal ausprobieren?
Wir haben doch schon ganz andere Sachen versaut!
mfg
@chill³s
Kelli
Was passiert, wenn ein Serverhoster wegen des "Info-String"-Problems die Namen der C-Maps auf z.B. a.iwd, b.iwd, c.iwd ändert und diese in sein Main-Verzeichnis lädt, in seinem redirekt-Verzeichnis hingegen aber nicht die Maps a,b,c liegen sondern die Maps den vollständigen, ursprünglichen Namen tragen?
Download ingame mit 9Kbit/s
Funktioniert dann der redirekt überhaupt?
Nein. 404 Not Found.
Mit welcher Mapbezeichnung werden die Maps beim Client gespeichert?
[...]
Kann es leider nicht selber testen,
Nicht nötig, kann nicht gehen. Stichwort:
dvar set sv_iwdNames
dvar set sv_referencedIwdNames
referencedIwdName = a.iwd, b.iwd, c.iwd
Interceptor
.... danke @Kellerkind für diese Ausführung.
Somit würde das bedeuten, dass nur der Dateiname der iwd für den download ausschlaggebend ist. Das ist ärgerlich, denn angenommen der Hoster legt eine mp_testmap.iwd mit verkürztem Namen z.B. t.iwd auf seinen Server und so auch in sein redirekt-Verzeichnis, dann würde es mir doch diese t.iwd downloaden, auch wenn ich als Client selber bereits die mp_testmap.iwd auf meinem Rechner habe.
Beim laden der Map richtet sich das Game ja wohl aber nicht an dem Dateinamen, sondern anhand der Checksumme der iwd. Könnte es dann nicht zu einem Mapkonflikt kommen?
Kelli
Original von Interceptor
.[...] der Hoster legt eine mp_testmap.iwd mit verkürztem Namen z.B. t.iwd auf seinen Server und so auch in sein redirekt-Verzeichnis, dann würde es mir doch diese t.iwd downloaden, auch wenn ich als Client selber bereits die mp_testmap.iwd auf meinem Rechner habe.
Ja. Definitiv.
Beim laden der Map richtet sich das Game ja wohl aber nicht an dem Dateinamen, sondern anhand der Checksumme der iwd. Könnte es dann nicht zu einem Mapkonflikt kommen?
Soherum nicht, nein. Erst werden die sv_iwdNames auf vorhandensein geprüft, und dann die referencedIwds Checksummen gebildet (Damit du keine veränderte .iwd z.B. ohne Mauern benutzen kannst) Name nicht vorhanden => keine Checksumme
Mapname test.iwd vorhanden? => nein => herunterladen => Checksum test.iwd = OK? => Null Problemo
An der Stelle ist egal ob du die selbe Map bereits unter example.iwd hast. Die wird ja vom Server nicht unter referencedIwdNames gefordert und deswegen auch garnicht angefasst (Alles unter Pure=1, bei Pure=0 bin ich mir nicht sicher was passiert)
Das Checksum Problem hast du erst bei verschiedenen Versionen, also z.B. test.iwd (Beta Version) und test.iwd (Finale Version) mit dem selben Namen:
test.iwd vorhanden => JA => Checksumme stimmt? => Nein => unpurer Client.
Noch schlimmer wird es wenn du in main test.iwd (Beta Version) und auf dem redireckt Space test.iwd (Finale Version) hast:
Mapname test.iwd vorhanden? => nein => herunterladen => (OOPS Falsche Version der test.iwd auf dem Webspace) Checksum test.iwd = Nein? => Datei wird als defekt gelöscht. => Mapname test.iwd vorhanden? => nein => herunterladen [u.s.w.]
Das endet dann in endlosen neuherunterladen der selben Datei. Immer und immer wieder..
Für dein Problem gibt es nur den (Webserver-)Weg über mod_rewrite. Aber wenn du schon kein Zugriff auf die Dateinamen auf dem Webserver hast, wirst du auch keine Möglichkeit haben auf mod_rewrite zurückzugreifen.
Interceptor
Original von Kellerkind
...
Mapname test.iwd vorhanden? => nein => herunterladen => Checksum test.iwd = OK? => Null Problemo
An der Stelle ist egal ob du die selbe Map bereits unter example.iwd hast. Die wird ja vom Server nicht unter referencedIwdNames gefordert und deswegen auch garnicht angefasst (Alles unter Pure=1, bei Pure=0 bin ich mir nicht sicher was passiert)
...
..... hmmm
Quelle:
Serveradmins: Autodownload aller Maps beim conecten verhindern!
Original von MikeTNT
...
Ich habe einfach das naheliegendste Experiment durchgeführt:
Eine Datei die beispielsweise "mp_moehlingen_fixed.iwd" heißt, habe ich einfach umbenannt in "m.iwd".
Anfangs habe ich geglaubt, daß alle Leute, die nun bereits eine Datei namens "mp_moehlingen_fixed.iwd" in Ihrem Main-Ordner haben, Probleme bekommen werden, aber wundersamerweise nimmt das Spiel nicht den Dateinamen sondern die Checksumme der Datei, so daß die Datei "mp_moehlingen_fixed.iwd" als identisch mit "m.iwd" genommen wird. (= der Client muß die Datei nicht erneut herunterladen!).
...
jetzt bin ich verwirrt
ist der Dateiname der iwd jetzt wichtig oder nicht
Edit: könnte das ein Unterschied wegen pure / unpure sein?
Kelli
hmmm. Ich auch.
Server:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
|
dvar set sv_iwdNames ans3 mp_bridge iw_15 iw_14 iw_13 iw_12 iw_11 iw_10 iw_09 iw_08 iw_07 iw_06 iw_05 iw_04 iw_03 iw_00
dvar set sv_iwds 658082969 -366073820 -1249035255 -1600413414 -1248078110 -1257061829 181429573 -1449716526 780394069 -1333623355 -1980843666 1334775335 -621896007 1101180720 1046874969 1053665859 1842349204 -1652414412 1659111092 178615151
dvar set sv_pure 1
dvar set sv_referencedIwdNames awe3b7/ans3 main/mp_bridge main/iw_15 main/iw_13 main/iw_07 main/iw_06
dvar set sv_referencedIwds 658082969 -581072758 181429573 780394069 1046874969 1053665859
|
|
Client:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
|
F:\Spiele\Call of Duty 2\awe3b7\ans3.iwd (122 files)
on the pure list
F:\Spiele\Call of Duty 2\awe3b7\mp_bridge-test.iwd (28 files)
on the pure list
|
|
Einmal bridge.iwd Einmal bridge-test.iwd Kurz, du hast recht. Obwohl ich genau weiß das ich schon öfter gezwungen wurde Karten herunterzuladen die ich eigentlich schon hatte, nur unter anderen Namen. *grübel*
Mag das Kartenabhängig sein - je nachdem ob soundaliase drin sind, oder ob sie auf dem
Server in main oder fs_game liegen?
mal kurz testen ...
...
Nö ist egal. Warum nur? Ich bin verwundert.
Ok ich behaupte erstmal:
Original von Interceptor
Was passiert, wenn ein Serverhoster wegen des "Info-String"-Problems die Namen der C-Maps auf z.B. a.iwd, b.iwd, c.iwd ändert und diese in sein Main-Verzeichnis lädt, in seinem redirekt-Verzeichnis hingegen aber nicht die Maps a,b,c liegen sondern die Maps den vollständigen, ursprünglichen Namen tragen?
Original von ike
404 Not Found.
Soweit richtig.
Original von ike
Mapname test.iwd vorhanden? => nein => herunterladen
Falsch. Irgendwas muss da noch wichtig sein. (Wie gesagt, ich weiß absolut sicher das ich mich schon mehrmals darüber geärgert habe das ich Karten neu (Nach Murphy dann auch immer mit 9Kbit) herunterladen musste die ich schon längst hatte.
MikeTNT
Warum der Server die Dateinamen beim Redirekt braucht und der Inhalt identisch sein muß, hat Kellerkind schon erklärt.
Bleibt noch die Frage offen, warum Server und Client das nicht brauchen:
Sowohl der Server als auch der Client lesen den Inhalt der iwd. Wenn Server und Client den gleichen Inhalt haben, sieht der Client keine Veranlassung, die iwd erneut zu laden.
Und noch die Frage, warum dennoch ab und zu neu geladen wird:
Der Client stellt fest, daß der Server andere Inhalte besitzt. Dies passiert meist wenn:
- der Inhalt wirklich abweicht (Übertragungsfehler, editierte iwd etc.)
- oder wenn sich im Main-Ordner oder dem gerade genutzten Mod-Ordner des Clients iwd-Dateien befinden, die Inhalte der Map überschreiben.
Ergo: Im Falle einer Abweichung lädt der Client erneut herunter. Aber: Da sich der störende Müll immer noch beim Client befindet, können anschließend Konflikte auftreten, muß aber nicht (kommt halt darauf an, in welcher Reihenfolge der Müll eingelesen wird).
cu Mike