Die EX_ Werte - Cheat oder Netconfigverbesserung ?
Eine der am häufigsten gestellten Fragen ist:
"Was machen die EX-Werte? Was nehm ich am optimalsten?"
Zu allererst einmal, die EX-Werte dienen wie viele fälschlicherweise sagten nicht zur Modelpositionsberechnung (das macht doch der Server

), sie beeinflussen selbige auch nicht, sondern beeinflussen "nur" die Aktualität der Darstellung der Modelpositionen wie zB Gegner, fliegende Grens usw.
Die 2 wichtigen EX-Befehle sind nur ex_interp und ex_extrapmax, die restlichen sind ... nunja, ziemlich unwichtig, den großen Effekt erhaltet ihr wirklich nur mit diesen beiden Befehlen. Zur Erklärung:
ex_interp
Erstmal etwas "Theorie": Die Modelanimationen in CS laufen ja (mehr oder weniger) sehr flüssig ab, was daraus resultiert, dass extrem viele Modelpositionen in einer Animation berechnet und dargestellt werden (logisch oder? Ein Zeichentrick (oder neudeutsch: CARTOON) mit weniger Bildern pro Sekunde würde ja auch ruckeln und läuft nur durch VIELE Bilder flüssig ab smile). Aber die Masse an Positionsdaten die man zur flüssigen Darstellung braucht kann man nicht alle vom Server zum Client (und umgekehrt) senden, dies würde einfach zuviel Traffic bedeuten, was die meisten Connections einfach nicht mitmachen. Deshalb "schummelt" die HL-Engine etwas und hat die EX-Werte eingeführt. Es ist eigentlich ziemlich einfach: zur normalen Verzögerung (siehe Ping) wird eine (im Scoreboard nicht sichtbare) Verzögerung von standardgemäß 100ms (ex_interp 0.1 -> Standardwert) dazugerechnet. In dieser Zeit werden fiktive Modelpositionen berechnet, die zwischen 2 übertragenen Modelpostionionen liegen. Wurde zB eine Position 1 und eine Position 10 vom Server übertragen berechnet HL in den 100ms Extraverzögerung noch extra Positionen, evt. 2, 3 bis 9 und macht aus ihnen eine flüssige Modelanimation, was nur mit den 2 übertragenen Werten einfach nur ein Ruckler von einer Posi zur anderen gewesen wäre.
Schön und gut, die Animationen laufen flüssig, aber die Verzögerung von 100ms extra ist schon ziemlich störend. Und genau eben diesen Wert kann man mit ex_interp verändern. Stellt man den Wert zB auf 0, dann werden kaum bis keine Extrapositionen berechnet, die Models ruckeln zwar (etwas) durch die Gegend, aber dafür sieht man nicht mehr 100ms in die Vergangenheit sondern man kann 100ms (immerhin) schneller reagieren.
Sinnvolle Werte:
Nunja. Sinnvolle Werte hm... jeder kommt mit anderen Werten gut zurecht. Im LAN reicht sicher 0.05, da dort genug Posis übertragen werden (ich glaube 0.05 soll auch der Standardwert für CPL werden).
Im I-Net nunja smile manche schwören auf 0, andere auf 0.01 und 0.02, und noch andere verfeinern den Wert auf 0.025
Meine persönliche Empfehlung ist immernoch: ex_interp 0.05, dies ist auch der Standard CPL Wert.
ex_extrapmax
Ok, um es kurz zu machen, bei Standard ex_interp 0.1 verwendet auch Standard ex_extrapmax 1.2 , ansonsten wen ihr ex_interp runtersetzt würde ich sagen nehmt ex_extrapmax 2 dann versucht die Engine aus dem Geruckel doch noch etwas Flüssiges zu machen - ex_extrapmax 2
ex_maxerrordistance
Wie schon oben beschrieben versuchen die Ex-Werte eine flüssige Darstellung trotz mangelnder Positionsübertragung zu erreichen. Ab und zu kommt es aber auch vor, dass Positionen fehlerhaft oder gar nicht (z.B. bei Choke) übertragen werden. Dann versucht die Ex-"Engine" die mögliche Position, die das Gegnermodel nun haben könnte, innerhalb eines bestimmten Radius um das Model rundrum zu berechnen und die Bewegung so flüssig weiterzuführen. Dadurch kann es zu Fehlanzeigen der Gegnerposition kommen, dies lässt sich aber mit ex_maxerrordistance vermeiden. Dieser Wert gibt nämlich genau diesen Radius an, in dem die Posis fiktiv berechnet werden. Stellt man den Wert z.B. auf 0, dann wird sofort bei einer Fehlübertragung versucht die Positionsdaten neu vom Server anzufordern. Dadurch werden euch die Modelpositionen genauer angezeigt, und der "durch-den-Gegner-durchschiess-Effekt" ist etwas kleiner.
Also: ex_maxerrordistance 0
Übrigens kann bei seit CS 1.4 auch super mit den Standard CPL Ex-Settings spielen, d.h. ex_interp 0.05.
Anhang
Vor allem in letzter Zeit kam eine Formel zur "Berechnung" vom optimalen ex_interp-Wert auf, nämlich:
1 / cl_updaterate = ex_interp-Wert
Also bei zB cl_updaterate 34 wäre ex_interp 0.03 (rund).
Ok, schön und gut, aber wäre es nicht viel schöner man trifft genau dahin wo man hinschiesst? Machen wir den Test: Stellt ex_interp auf 0.1 und geht zu zweit auf einen (Internet-)Server. Nun lasst ihr euren Partner ein Stück vor euch von links nach rechts (oder umgekehrt) laufen. Zielt immer nur geradeaus ohne nach links oder rechts zu zielen. Läuft er euch durchs Zielkreuz drückt ab... getroffen? Meistens nicht. Versucht dies noch zweimal: einmal drückt hinter ihm ab einmal schon bevor er im Zielkreuz ist. Getroffen? Ja? Wenn ihr vorzielen musstet stellt den ex_interp-Wert etwas niedriger, wenn ihr HINTER ihm getroffen habt etwas höher (0.01er Schritte sind angebracht). Dies könnt ihr solang tun bis ihr immer genau dahin trefft, wo der Gegner auch ist, saozusagen "adjustieren". Doch diese Methode ist fraglich: anderer Server, anderer Ping... andere Spieler, anderer Ping... usw. Man müsste wohl immer neu adjustieren, und dank dem schlechten Netcode von HL ... ach lassen wir das. Sagen wir es mal so: ruckelt jemand stark in Quake 3 durch Lags und er hängt kurz an einer Stelle und man schiesst dahin dann trifft man auch. Bei CS ist dies eher Glückssache und Highpinger haben sogar oftmals einen kleinen Vorteil gegenüber denjenigen die auf sie zielen.
Thx to MegaTefyt (ehemals mTw.aTn)
weitere Infos, Diskussionen und den Originalthread findet ihr hier:
www.mymtw.de
www.cs-scene.at