PDA

View Full Version : Ce face de fapt ex_interp



ADRI
03-08-2014, 11:40 AM
Bun, aceasta postare a venit dupa ce, acum cateva zile am observat ca unii nu prea stiu la ce foloseste ex_interp dar continua sa puna valori , prezentarea ce urmeaza nu-mi apartine, va rog nu-mi multumiti !


Să zicem că trenul X pleacă din gară în minutul 0. Peste 5 minute, știm că trenul a parcurs o distanță de 2 kilometri (2000 metri). Să presupunem prin absurd că viteza trenului era constantă (adică a plecat brusc din gară cu 25 km/h și a menținut acea viteză). Atunci cu siguranță putem spune că la minutul 2.5 (jumate din timpul total) a parcurs 1 kilometru (jumate din distantă). La fel cum putem spune că la minutul 1.25 (un sfert din timpul total) a parcurs 500 metri (un sfert din distanță). Ghicirea aceasta se numește interpolare.
Ok, și ce legătură are trenul ăsta cu cs-ul? Gândește-te la tren ca la un pachet de date trimis de server în care se găsesc pozițiile jucătorilor. Serverul trimite aceste pachete doar de câteva ori pe secundă, nu încontinuu. Știind intervalul acestor pachete (odată la câte milisecunde primești un pachet, sau odată la câte secunde știm exact distanța parcursă de un jucător), putem ghici poziția unui jucător între aceste intervale.
În cazul nostru, intervalul acestor pachete este dat de cl_updaterate, care de obicei este setat la 101 (adică 101 pachete pe secundă). Acum te vei întreba, de ce ne mai trebuie o altă setare dacă știm intervalul. Nu poate cs-ul să-și calculeze singur asta? Ba da, poate, dar dacă ai o conexiune slabă cu serverul, nu vei primi toate aceste pachete, sau le vei primi întârziate. cl_updaterate spune serverului cât de repede vrei să primești datele, nu că le-ai și primi atât de repede. Deci ai nevoie de o altă setare pentru interpolare (ghicire). Aceasta este desigur ex_interp, care este diferența de timp între două pachete care crezi că este reală. Valoarea 0.01 la ex_interp înseamnă că tu bănuiești că următorul pachet are să vină peste 0.01 secunde, sau 10 milisecunde. Valoarea 0.1 pe de altă parte o pui când următorul pachet are să vină peste 0.1 secunde, sau 100 milisecunde. Dacă ești sigur că ai o conexiune stabilă cu serverul, valoarea aceasta ar trebui să o pui la 1/cl_updaterate, adică inversul numărului de pachete pe secundă. Așadar, dacă ai cl_updaterate setat pe 100, ex_interp ar trebui să fie 0.01 (1/100), dacă îl ai setat pe 10, ex_interp ar trebui să fie 0.1 (1/10) și tot așa.
Ce se întâmplă dacă setezi greșit valoarea lui ex_interp?
Să revenim la trenul nostru. Să presupunem că nu știm timpul în care trenul parcurge cei 2 kilometri și că aproximăm la 10 minute. Atunci putem presupune că în 5 minute, trenul a parcurs doar 1 kilometru, când de fapt, trenul a mers 2 km. În cs, dacă setezi ex_interp mai mare decât ar trebui, jucătorul ar merge mai departe decât trebuie, și la următorul pachet primit, va reveni la poziția corectă (ceva gen, 2 pași înainte, 1 pas înapoi). Analog se întâmplă și dacă setezi valoarea lui ex_interp mai mică: jucătorul va merge mai puțin decât trebuie, și la următorul pachet primit, va sări la poziția corectă (1 pas înainte, 2 pași înainte).
Setarea greșită a lui ex_interp nu afectează doar estetica jocului, ci și gameplay-ul. Să zicem că ești cu awp-ul cu ținta la maxim și că la o distanță destul de mare trece un inamic perpendicular pe direcția ta (cazul trasului din bază tero la porți mijloc pe dust2). Dacă tu tragi între 2 pachete primite, există șansa destul de mare să nu fi nimerit jucătorul, chiar dacă tu ai pus ținta pe el, asta pentru că el, de fapt, este mai în față în cazul în care ex_interp este mai mic, sau mai în spate, în cazul în care ex_interp este mai mare.

Nu ai înțeles nimic din ce am spus aici? Nici o problemă. Pentru tine, cea mai bună setare este 0. (adică scrii în consolă ex_interp 0). Clientul îți setează automat valoarea în funcție de cl_updaterate.
Pentru ceilalți, succes la configurări.

OblivioN
03-08-2014, 12:11 PM
<b>You have to register to ba able to see this link</b> sau puteti viziona acest clip, sper sa va faceti o idee din el si sa intelegeti de ce se oftica lumea cand nu aveti 0.01, mai explicit de atat nu cred ca pot.

ツ DemŘnJR ツ
03-08-2014, 02:12 PM
<b>You have to register to ba able to see this link</b>

si sa fiu mai exact COMANDA ex_interp setata pe 0.1 (DOAR I`ti aproximeaza persoana in care tragi ) cu 0.01 (devine mai precisa persoana in care tragi)

ex_interp 0.01 e default.

Abit
05-10-2014, 12:12 AM
Vreau sa fac si eu o precizare,
Valve a modificat de curand cvar-ul ex_interp 0.01 - pentru CS descarcat din STEAM - sa faca acelasi lucru cu ex_interp 0 adica modifica in functie de valoarea cl_updaterate.
Deci fie ca scrii ex_interp 0 fie ex_interp 0.01 valoarea va fi calculata automat.

ADRI
05-10-2014, 10:40 AM
Eu sustin variantaele [ 0 - 0.01 ] tot ce am vrut sa fac a fost sa intelegem mai bine setarea punand cap la cap tot ce stie lumea despre ex_interp.