Serveradmins: Autodownload aller Maps beim Connecten verhindern!

Private Grob
Hier eine Lösung für alle Serveradmins um den den Autodownload aller Maps zu umgehen. Die Idee kam von Bullet Worm und Marc, ich habe mal eine deutsche Anleitung dazu geschrieben.

Das Problem: Man connectet auf einen Server und lädt erstmal alles vom Server was so an Custom Maps drauf ist. Sehr ärgerlich. Doch das ist jetzt nicht mehr nötig:

1. Erstellt einen neuen Ordner mir Namen soundaliases.

2. In diesen Ordner kopiert (nicht ausschneiden) ihr nun aus allen euren Custom Maps die jeweilige Sound CSV. Öffnet dazu die jeweilige Custon Map iwd mit z.B. Winzip, sucht den Ordner soundaliases und entpackt die Sound CSV (in meiner Map buhlert heißt sie z.B. mp_buhlert.csv) in euren, eben von euch erstellten Ordner soundaliases. Das macht ihr mit allen Maps.

3. Nun packt ihr den von euch erstellten Ordner soundaliases mit Winzip (nicht mit dem RAR Format!!!) bei normaler Kompression und nennt die Zip Datei um in z_svr_csv.iwd. Achtung den gesamten Ordner packen und nicht etwa die einzelnen Files !!!!!

4. Diese Datei packt ihr auf euren Server in den Main Ordner, indem auch die Custom Maps liegen.

Wenn ihr alles richtig gemacht habt werden nun, wenn ein Player connectet, nicht die ganzen Maps auf einmal geladen. Erst wenn eine Map kommt, die nicht im Main Ordner des Players ist wird diese, und auch NUR diese geladen.

Ich denke, das ist eine Lösung mit der alle leben können. Leider wird, wenn ihr ein Mappack erstellt habt dann allerdings das komplette Mappack runtergeladen.

Grüße
Private Grob
(Micka)
XertoX
Hi
Suuuper

Funktioniert das auch unter CoD1??? Bzw. hat man bei den Maps eigendlich die Datei????
Hoffendlich geht das dann kann ich endlich mal nen custom map Server für CoD 1 erstellen.

Gruß XertoX
MikeTNT
Ist doch das gleiche Prinzip wie hier: Anleitung: Mappacks einzeln herunterladen lassen (veraltet)

Oder?

Noch ein Zusatztip für die Spieler, um das IWD Mismatch bzw. das modifiziert-Fehler-Problem zu umgehen:
Wenn ihr als Spieler wißt, welchen Mod-Pfad euer Lieblingsserver benutzt, könnte ihr die Mappacks oder die Einzelmaps aus dem Main-Ordner in den entsprechenden Mod-Ordner kopieren (= Main-Ordner bleibt sauber).

cu Mike
YaC|RoC
das wäre doch mal ein tipp für "Pinned" ...
capato
Da is ja auch erst ne halbe Seite. Eine Subsektion "Tutorials" fände ich da angebrachter.
YaC|RoC
da gebe ich dir recht... man könnte aber auch einfach mal die "Pinned" aufräumen Augenzwinkern
yoda
Ja, muss ich mir mal in Ruhe anschauen, das Thema von Mike ist ja letztlich das selbe, da hatte ich auch schon nachgedacht das zu pinnen, mal sehen, wenn ich mal etwas mehr Zeit habe, muss ich nochmal in aller Ruhe schauen...
MikeTNT
Eine bedeutend wichtige Feinheit gibt es bei Grob: Er kopiert nur die Soundaliases raus. Somit müllt man den main-Odner nicht mit 100 verschiedenen Versionen zu.

Ich werde meine Anleitung entsprechend anpassen, sobald ich es getestet habe (der Kopiertrick könnte m.E. Nebenwirkungen haben).

cu Mike

Edit: OK, es gibt keine Nebenwirkungen, da die Zusatz.iwd nur serverseitig benötigt wird. Bei Einzelmaps ist dieser Trick genial. Bei Mappacks macht es vermutlich weniger Sinn, aber es schadet nicht, das gleiche Prinzip anzuwenden..
<|GeW|>L.E.Zocker
Meine Frage dazu jetzt mal.

Also lade ich jetzt alle Maps so wie ich sie von Ol runtergeladen habe in den Main ordner und zusatlich die erstellte z_svr_csv.iwd auch noch.


Und wenn nun eine Map läuft die der User nicht hat lädt er erstmal nur diese Map runter.

Kommt dadurch kein iwd... Fehler mehr. Wäre ja Super so. Und das geht dann auch bei Mods so wie der AWE Mod.

Wenn ich die maps nun in den AWE Ordner haue lädt er die dann auch in den AWE Ordner. Habe nehmlich ein gewawe ordner als Modordner, so wenn awe updates da sind nicht immer ein neuer Ordner bei den User erstellt wird.

Vorteil ist ja auch bei der Varianten, wenn ein map update rauskommt, muß man nur die alte map löschen die neu hochladen und auch die csv der map updaten im Ordner und nicht wieder gleich ein ganzes Mappack, oder sehe ich das flasch?

Sorry wenn ihr euch vieleicht wegen mir nochmal Wiederholen müßt, will nur auf nummer sicher gehen.

PS:

Will deswegen kein Thema aufmachen.

Muß die map mp_breakout immer noch die Startmap in der Maprotate sein.
Will ein Custommaps Only Server aufsetzen.

Dank an alle
MikeTNT

Zitat:

Original von <|GeW|>L.E.Zocker
Kommt dadurch kein iwd... Fehler mehr. Wäre ja Super so. Und das geht dann auch bei Mods so wie der AWE Mod.

Der Mismatch Fehler kommt dennoch, da dieses Problem etwas mit zu vielen IWD-Dateien in Kombination mit zu vielen verwendeten Zeichen zu tun hat.
Das Einzige, was man bei dieser Methode eindämmt, ist die Verbreitung von uterschiedlichen Mapdateien, die sich im Main-Ordner einnisten.
Wenn sich alle an die neue Methode bei Einzemaps halten, erhalten die Spieler seltener die Meldung, es sei eine modifizierte Mapdatei im Main-Ordner entdeckt worden.

Ergänzung: Das IWD-Mismatchproblem ließe sich nur verringern, wenn IW die erlaubte Zeichenlänge für IWD-Dateinamen erhöht oder die Mapper nicht so ellenlange Namen für ihre Map-IWD-Dateien wählen. Da IW das Problem nicht in den Griff bekommt, ist die Vernunft der Mapper gefragt, die Dateinamen möglichst kurz zu halten (z.B. m.iwd statt mp_moehlingen_fixed.iwd). Selbiges gilt auch für den Konsolennamen der Map, da bei Rotationen ebenfalls eine Begrenzung existiert.

Zitat:

Original von <|GeW|>L.E.ZockerWenn ich die maps nun in den AWE Ordner haue lädt er die dann auch in den AWE Ordner. Habe nehmlich ein gewawe ordner als Modordner, so wenn awe updates da sind nicht immer ein neuer Ordner bei den User erstellt wird.

Der Trick mit Einzeldownload von Einzelmaps funktioniert nur über den Main-Ordner.

Ergänzung: Dummerweise gilt das gleiche, wenn man Mappacks einzeln herunterladen lassen will. Aber: Klevere Spieler können sich selbst helfen, wenn sie wissen, welches Mappack zu welchem Server gehört und welchen Modordner diese Server benutzen. Dann kann man die Mappacks aus dem Main-Ordner in den entsprechenden Mod-Ordner kopieren und den Main-Ordner sauber halten.

Zitat:

Original von <|GeW|>L.E.ZockerVorteil ist ja auch bei der Varianten, wenn ein map update rauskommt, muß man nur die alte map löschen die neu hochladen und auch die csv der map updaten im Ordner und nicht wieder gleich ein ganzes Mappack, oder sehe ich das flasch?

Eigentlich soweit richtig, aber wenn die IWD-Datei der neuen Version den gleichen Namen wie die alte Version hat, können Spieler auf Pure-Servern die Meldung einer modifizierten IWD-Datei erhalten.

Zitat:

Original von <|GeW|>L.E.ZockerMuß die map mp_breakout immer noch die Startmap in der Maprotate sein.
Will ein Custommaps Only Server aufsetzen.

Breakout mußte noch nie die Startmap sein. Auf meinem Server gibt es nur Custom Maps in der Rotation.

cu Mike

PS: Beim AWE-Mod mußt du keine Datei namens z_svr_csv.iwd erstellen. Du kannst den Ordner soundaliases unkomprimiert in den Modordner kopieren. Dadurch sparst du kostbare Zeichen aufgrund einer IWD-Datei weniger. Augenzwinkern
<|GeW|>L.E.Zocker
Okay danke, das mit der Startmap habe ich aber schon öffters gelesen, glaube auch hier bei den OL´ers.

Aber egal, wenn du es j auch so hast wird das ja aschon stimmen.

Wieviel Costummaps hast du jetzt ca in deinem Main Ordner oder Arbeitest du eher mit Mappack.
yoda
Die ist nur bei vielen Start-Map, weil hier viele unsere cfg-Generatoren benutzen und die Maps eben in alphabetischer Reihenfolge hinterlegt sind... Augenzwinkern
MikeTNT
In meinem Mainordner befinden sich zur Zeit 10 Mappacks mit ca. 60 Custom Maps.
In der Praxis können aber pro Rotation normalerweise nur ca. 30 Maps bzw. Gametypes eingetragen werden (= Zeichenbegrenzung liegt bei 1024 Byte pro maprotation). Multiple Maprotationen wären zwar denkbar, aber hier gibt es bis dato noch keine optimale Lösung (siehe extreme+ Mod mit seiner Spieleranzahl abhängigen Maprotation oder hier im Forum irgendwo meine Idee mit der Random Maprotation).

Bei Einzelmaps dürfte es aber je nach Mod und Anzahl der eingesetzten Mods und Dateinamenlänge der Custommaps bereits ab 2 - 3 Custommaps kritisch werden (mehr sind aber auch möglich, wenn man den Server nicht auf pure setzt).
Es gibt aber noch ein paar Tricks, wie man etwas mehr rausholt, ohne die Einzelmapdateinamen zu verändern:
- Alle clientseitigen Moddateien in eine IWD-Datei packen und einen sehr kurzen Namen wählen (z.B. a.iwd). Diese Mod-Datei gehört natürlich in den Modordner
- Alle serverseitigen IWDs auf dem Server entpacken (bei AWE braucht man diesen Schritt nicht mehr, da diese Dateien bereits entpackt sind)
- Auf Ingame-RCon-Tool verzichten (sofern man so etwas überhaupt anwendet)

Mehr kann man nicht tun, außer vielleicht darauf hoffen, daß sich die Mapper irgendwann auf kurze Mapdateinamen beschränken und kein anderer Mapper den gleichen kurzen Namen wählt.

cu Mike
<|GeW|>L.E.Zocker
Okay danke, aber wenn ich jetzt die Datein wieder zum Mappack schnüre.

Lädt er ja das mappack wieder runter mit einmal beim Joien oder habe ich das Falsch verstanden.

Leider kommen ja nicht viele wegen diesen Mappacks weil sie ja doch sehr groß ausfallen.

Hoffe das IW & AC es bald hinbekommen das mehr iwd Datein im Main Ordner lauern dürfen.
-=RD=-thorn
Laut IW werden sie das nicht fixen.

Wenn ne map läuft die in nem mappack steckt wird natürlich das ganze mappack gezogen.

Um den Infostring kurz zu halten muß das csv.iwd File zuletzt gelesen werden ( z_blabla.iwd kommt nach zz_blabla.iwd), dann werden jeweils nur die Infos der laufenden map und des csv Files übertragen. Eigentlich könnte man dann auch auf mappacks verzichten (mit 60 maps hab ich es aber auch noch nicht probiert).

Gruß -=RD=-thorn

P.S.: Bin auch kein Freund von mappacks, weil man die gleichen maps meist schon 5x in unterschiedlichen Kombimationen gezogen hat und wenn man nur mal ne neue map antesten will kann das schon nerven.
<|GeW|>L.E.Zocker
So habe es nun mal getestet und wenn ich 16 Maps + die csv.iwd in dem Main Ordner habe spinnt er rum und bringt den Txpischen iwd Fehler.

Also muß man doch alles zum Mappack schnüren und gut ist. Und dann kaa er das mappack in ruhe ziehen.

Leider ist es aber so, wenn man Downloaded und gerade mapchange ist, bricht er den Download ab.
yoda
Passiert das auch bei set sv_wwwDlDisconnected "1"? Hab das schon mehrfach gehört, aber mir selbst ist es noch nicht passiert.
MikeTNT
Mehr einzelne Maps auf dem Server

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!).

Mit dieser Methode habe ich problemlos ca. 30 Einzel-Maps in den Modordner legen können, auch wenn der Server auf pure läuft.

Bekannte Probleme: Eigentlich keine (auch nicht, wenn bereits eine Datei namens m.iwd in eurem mainordner liegt, die aber eine völlig andere Map enthält!). Störungen können nur auftreten, wenn Consolennamen anderer Maps identisch sind. Aber dieses Problem taucht nur auf, wenn die Mapper nicht aufpassen oder jemand unerlaubt die Inhalte von Maps ändert.

Noch eine Ergänzung , damit die Maps einzeln geladen werden können:
Je mehr iwd-files verwendet werden, um so weniger Map.iwd kann man auf dem Server laufen lassen. Also muß man sparsam mit iwd-Dateien umgehen:

1. Statt einer z_svr_csv.iwd erzeugt man lieber ein Modverzeichnis, in welches man den Ordner soundaliases unkomprimiert reinkopiert.
2. Serverseitige Moddateien, die in IWD-Files liegen, können ebenfalls in den Modordner entpackt werden (Bei AWE nicht mehr notwendig)
3. Wenn mehrere clientseitige Mod.iwd im Einsatz sind, faßt diese Dateien zu einer großen Client-iwd zusammen und nehmt einen kurzen Dateinamen (z.b zz_c.iwd). Und weil es eine Modifizierung ist, gehört diese Clientdatei natürlich in den Modordner!
4. Auf die beiden Originaldateien iw_01.iwd und iw_02.iwd kann man bei Servern verzichten.

Consolennamen für Custom Maps herausfinden bzw. welche Spielmodi unterstützt werden:

Beispiel:
Die Map "MP-PH@NTOMS-ALIEN-BAD.IWD"

Map mit Winzip öffen, in den Ordner "maps" -> "map" und hier sucht man nach der d3dbsp-Datei:
MP-PH@NTOMS-ALIEN-BAD.d3dbsp

Also lautet der Consolen-Name dieser Map: MP-PH@NTOMS-ALIEN-BAD

Dann wirft man noch einen Blick in den Ordner "mp" und öffnet dort die arena-Datei: MP-PH@NTOMS-ALIEN-BAD.arena

{
map "MP-PH@NTOMS-ALIEN-BAD"
longname "MP-PH@NTOMS-ALIEN-BAD"
gametype "dm tdm ctf"
}

Also unterstützt diese Map nur die Spielmodi DM, TDM und CTF
(Nachtrag: Hier steht bei map ebenfalls der Consolenname)

Nun kann man die Map beispielsweise als Deathmatch in die Rotation eintragen:

set sv_mapRotation "gametype dm map mp_brecourt gametype dm map mp_burgundy gametype dm map mp_carentan gametype dm map mp_dawnville gametype dm map mp_decoy gametype dm map mp_downtown gametype dm map mp_farmhouse gametype dm map mp_harbor gametype dm map mp_leningrad gametype dm map mp_matmata gametype dm map mp_railyard gametype dm map mp_rhine gametype dm map mp_toujane gametype dm map MP-PH@NTOMS-ALIEN-BAD"

Zusatzinfos:
- Nicht alle Maps sind kompatibel. Je nach Mod kann es sein, daß eine Map nicht gestartet werden kann!
- Es kann auch sein, daß eine Map für einen bestimmten Mod geschrieben wurde. Dann geht es auch nicht
- Die Rotation darf nicht zu groß sein! Ab 30 Maps in der Rotation wird es eng.


Tipp für gemietete Linux-Gameserver, bei denen euer Support noch keinen Modfolder (fs_game) eingerichtet hat:
Man kann die Linux-Binary "überlisten" und somit um den Parameter fsgame erweitern:

Zuerst COD-Server über das Webmenü des Providers herunterfahren (wichtig, sonst kann es passieren, dass man mehrere Instanzen des COD-Servers startet!)
- cod2_lnxded auf dem Server umbenennen in cod2_lnxded1_3
- mit Notepad eine Datei namens "cod2_lnxded" mit folgendem Inhalt erstellen:
./cod2_lnxded1_3 $* +set fs_game "DEINMODORDNER"
- Datei im selben Ordner wie die cod2_lnxded1_3 auf dem Server speichern
- Dateirechte der manipulierten cod2_lnxded und der umbenannten cod2_lnxded1_3 auf 755 stellen

Jetzt das Startcsript deines Gameserverproviders ausführen und schon hast du Zugriff auf den Modordner DEINMODORDNER.

Bekannte Nebenwirkungen:
- Nach dem ersten Serverstart sollte man einen manuellen Mapwechsel durchführen, da es passieren kann, daß die Mod sonst nicht vollständig geladen wird.
- Wenn ihr nicht genügend Zugriffsrechte habt, klappt der Eingriff natürlich nicht. Dann müßt ihr euren Provider bitten, euch einen Modordner anzulegen. Der Modordner sollte einen individuellen Namen haben, den sonst kein anderer Server-Admin verwendet!
- Es klappt nicht, wenn euer Provider ein individuelles Server-Start-Stop-Script verwendet. (= man sieht in dem Fall keine cod2_lnxded-Datei, die man ersetzen könnte)

ACHTUNG: Manche Provider sehen es nicht gerne, wenn man solche Tricks anwendet! Also vorher euren Support fragen, ob ihr diesen Trick anwenden dürft!

cu Mike
PFC_Snake
Frage dazu:

Habe im main-Ordner die Maps jetzt umbenannt nach "a.iwd", "b.iwd" und so weiter (sechs Maps oder so).
Scheint auch zu funktionieren mit sv_pure=1. Zumindest wird mir im RCON-Tool und auf der HP die richtige Map angezeigt (auch bei den Custom-Maps); vorher ging das nicht -> iwd sum/name mismatch und die Custom-Maps wurdn entsprechend nicht ausgeführt.

Muss ich die Maps im Redirect-Ordner auf dem Webspace zum Download auch entsprechend umbenennen? Oder funktioniert das auch mt den normalen Map-Namen?

Für unsere Memeber ist das wurscht, die haben die Maps inzwischen alle, aber es kommen ja auch Gäste...
MikeTNT
Ich vermute ganz stark, daß man dort die gleichen verkürzten Dateinamen verwenden muß. Ob es auch einfacher geht, habe ich nicht getestet. Bei mir laufen im Moment 30 Custom Maps + 1 x Mod-File + 1 x Rcon = 32 iwd-Dateien, bei denen ich eine Zahl oder einen Buchstaben verwendet habe. Mehr scheint nicht möglich zu sein, wenn der Server auf pure läuft.

cu Mike