Autor Wiadomość
Bushido
PostWysłany: Pią 18:13, 28 Mar 2008    Temat postu: Wymarzone ustawienia gracza xD

Na pewno nie raz tocząc zażarte boje w CS, gdy po raz n-ty wyeliminował Cię ten sam przeciwnik i resztę pojedynku zmuszony byłeś podziwiać jako obserwator, zastanawiałeś się w jaki sposób twój oprawca jest takim świetnym graczem i w czym tkwi jego sekret. Nie wątpliwie jego nieprzeciętne umiejętności są wynikiem długiego i ciężkiego treningu... lecz czy aby na pewno ? A gdyby tak można było wpłynąć na naszą szybkość działania, poruszania się a nawet celność wykorzystując kod programu gry ? Czy byłoby to oszustwo czy może dozwolona konieczność ? A może jedno i drugie ? Nawet najlepszy zawodnik w momencie gdy przyjdzie mu grać na "okrągłej" klawiaturze czy dajmy na to padzie, choć nie wiem jaki by był dobry jego szaleńczy potencjał skutecznie hamowany będzie przez "nieludzkie" sterowanie. W takim razie, nie pozbawione sensu jest stwierdzenie, że przyjaźnie skonfigurowana klawiszologia korzystnie wpłynie na efektywność naszej gry. Nikogo chyba nie trzeba przekonywać iż fabrycznie ustawiona klawiszologia gry jest delikatnie mówiąc zła. Kluczowe staje się więc zdefiniowanie życzliwych nam broni pod odpowiednimi klawiszami, tak samo jak oznaczyć musimy te odpowiedzialne za poruszanie a nawet skakanie i kucanie. Wedle uznania oznaczać możemy również opcje dodatkowe takie jak wyświetlanie tablicy wyników czy zwiększenie czułości noktowizora. Zarówno te wymienione opcje jak i te pozostałe o których za chwilę, zapisywane są w pliku o nic nikomu nie mówiącej (jeszcze) nazwie config.cfg, ukrywającego się w folderze cstrike znajdującego się w katalogu z grą. Tak, to ten "config", który jak czytacie gdzieś na tej stronie, wolno wam przynieść ze sobą na turniej. A przynieść go możecie chociażby po to, aby po nadaniu mu własnej indywidualnej nazwy w stylu "moja_wymarzona_konfiguracja.cfg" i skopiowaniu go do wyżej wskazanego katalogu na kafejkowym kompie, zamiast grzebania w konfiguracji gdy przyjdzie wasza kolej gry, po prostu włączycie konsolę gry i wstukacie exec nazwa_configu.cfg a wszystkie wasze ustawienia w nim zapisane zostaną uwzględnione. Prawda że proste i przydatne ? Lecz to dopiero 1/3 możliwości tego pliku.

Trzeba wam wiedzieć, że wpisy do pliku konfiguracyjnego można dokonywać na dwa, trzy, hmm... cztery sposoby. Pierwszym jest wprowadzanie danych za pomocą menu gry, czyli ten zwyczajny sposób konfiguracji ustawień. Drugim zaś dającym o wiele większe możliwości dzięki dostępowi do nieosiągalnych poprzez pierwszy sposób funkcji, jest użycie konsoli gry oraz komendy bind. Trzeci sposób to bezpośrednia edycja tegoż pliku przy pomocy np. niezastąpionego Notatnika. Można również do tego celu wykorzystać specjalny program - jeden z nich (UKTbinder7-2) jest do ściągnięcia pod tym linkiem http://www.cs.ar(...)r7-2.zip . Kolejny sposób to tzw. "Inne", np. edycja za pomocą skryptów PHP, C++, CGI, VBS ale to już inna historia. Nam do dalszych rozważań potrzebna będzie wyłącznie konsola gry oraz edytor tekstu.

Konsolowa komenda bind nadaje wskazanemu klawiszowi określoną funkcję na zasadzie bind "klawisz" "komenda". Pierwszy parametr przyjmuje postać pojedynczej litery, cyfry lub znaku ewentualnie w przypadku klawisza systemowego - jego nazwę np. CTRL, UPARROW czy MWHEELDOWN. W takim przypadku, gdy nie znamy jego określenia, zawsze możemy sobie pomóc definiując zagadkowy klawisz w menu gry przez co dowiemy się w jaki sposób rozpoznaje go system. O ile ten parametr nie wymaga zbytniego komentarza ze względu na jego oczywistą formę, odmiennie ma się sytuacja z parametrem ostatnim. Tutaj gra wymaga od nas znajomości komend systemowych oraz sposobu ich łączenia. Większość tych komend jesteśmy sobie wstanie przyswoić dzięki naszemu istniejącemu już plikowi konfiguracyjnemu, pozostałe znajdują się w konsoli gry. Przypisując jedną z tych wartości drugiemu parametrowi funkcji bind, spowodujemy jej wykonanie po wybraniu klawisza z parametru pierwszego. Jednakże prawdziwą zaletą takiego sposobu przypisywania klawiszy jest możliwość łączenia zdarzeń. W praktyce oznacza to, że jeżeli tylko pozwalają nam na to fundusze, to klikając jeden klawisz możemy wykupić całą zwartość sklepu wraz z dodatkami ! Dzieje się to w myśl zasady: "wywołaj_okno_zakupów;wybierz_opcję_nr X;wybierz_podopcję_nr X;". Do konsoli wpisujemy natomiast "buy;menuselect X;menuselect X;", gdzie X to oczywiście odpowiednia cyfra. I tak chcąc np. kupić M4A1 wraz z amunicją po wciśnięciu "s", w konsoli musisz wpisać: bind "s" "buy;menuselect 4;menuselect 3;buyammo1; wait; wait; slot10 " lub bind "s" "buyequip; menuselect 2; wait; wait; slot10" w przypadku gdy chcesz zakupić kamizelka + hełm. W taki sam sposób bindować możemy komendy radiowe, np. komunikat "Go Go Go" to bind "s" "radio2; menuselect 1; wait; wait; slot10". W tym wszystkim najlepsze jest to, że poszczególne bindy można ze sobą łączyć ! Dzięki poniższej kombinacji kupimy Desert Eagle + amunicja , M4A1 + amunicja , Kamizelka + hełm , granat rozbłyskowy, noktowizor oraz wydamy z siebie okrzyk Cover Me, a wygląda to tak: bind "s" "buy; menuselect 1; menuselect 3; buyammo2; buyammo2; buyammo2; buyammo2; buyammo2; buyammo2; buy; menuselect 4; menuselect 3; buyammo1; buyammo1; buyammo1; buyammo1; buyammo1; buyequip; menuselect 2; buyequip; menuselect 3; buyequip; menuselect 7; radio1; menuselect 1; wait; wait; slot10" Już jest ładnie i pięknie ale to nie koniec jego możliwości !

Prawdziwe pazurki plik ten pokazuje w momencie konfiguracji skryptów zwanych alias'ami. Również tutaj przypada nam swoboda w wyborze sposobu ich zapisywania. Wpisujemy je w postaci: alias nazwa "działanie". W parametrze ostatnim dopuszcza się używanie wcześniej zdefiniowanych aliasów, przez co znacznie możemy uprościć ich strukturę i wyglądają miej więcej tak: alias nazwa "akcja; akcja; inny_alias;" a następnie możemy bindować je do poszczególnych klawiszy. Jeżeli przed nazwą aliasu postawimy znak "+" to po jego wykonaniu automatycznie uruchomiony zostanie alias o tej samej nazwie lecz ze znakiem "-" na początku. W zależności od wykorzystywanych komend, znak plusa może okazać się niezbędny. Możliwości w tworzeniu skryptów są praktycznie ograniczone wyłącznie waszą wyobraźnią, i tak mogą to być tak banalne skrypty jak rozbrajanie bomby wraz z komunikatem dla drużyny (alias +rozbrajanie "+use; +duck; radio1; menuselect 1; say_team Zaraz się z tym uporam..." alias -rozbrajanie "-use; -duck; wait; wait; slot10"), przeładowywanie wraz z komunikatem (alias +przeladuj "+reload; wait; -reload; radio1; menuselect 1; say_team Kryjcie mnie - przeładowuje bron !; wait; wait; slot10" alias -przeladuj "slot10; wait; wait; slot10" ), do bardziej finezyjnych w stylu kombinacji ruchów podczas strzelania (hmm) czy błyskawiczne chwycenie noża, szybka seria cięć poczym przejście do poprzedniej broni (alias +kiler "weapon_knife; wait; wait; wait; +attack; wait; wait; wait; -attack;" alias -kiler "-attack; lastinv;")

I w tym miejscu nasz przygoda z hackingiem zbliża się ku końcowi. Teraz niechaj każdy zerknie do swojego configa i porządnie w nim pogrzebie, nie zapomni wszy uprzednio zrobić jego kopii zapasowej - tak na wszelki wypadek. Dobry config to ok. 4 KB dodatkowego tekstu co przekłada się na miej więcej 120 nadobowiązkowych wierszy. Radzę także rozejrzeć się po necie, gdyż można znaleźć wiele cennych informacji łącznie z opisanymi i nieopisanymi tutaj skryptami jaki i gotowymi configami. Jeżeliby któryś z przytoczonych tu skryptów nie działał poprawnie, zamiast bombardować ludzi mailami - popraw go, ulepsz a następnie pochwal się nim poniżej. Jak wspomniałem na początku, config to tylko mniejsza część mająca swój wkład w zwycięstwo i należy go traktować jako uzupełnienie swoich umiejętności. Oficjalnie panuje przekonanie iż "nic co nie jest zabronione - jest dozwolone", jednakże nie brakuje też przeciwników takiego tiuningowania gry. Świetny plik nadaje przeto pewną, większą lub mniejszą przewagę nad przeciwnikiem nieuświadomionym i nie wykorzystującym jego dobrodziejstw. Nie zależnie od rozmiarów owej dysproporcji, bezsporne dla kogoś kto chce odnosić zwycięstwa, wydaje się stwierdzenie iż winna ona przemawiać na jego korzyść, do czego, mam nadzieję niniejszy tekst się przyczyni...

przykladowy cfg (mój):

unbindall
bind "TAB" "+showscores"
bind "ESCAPE" "cancelselect"
bind "SPACE" "+jump"
bind "-" "amxmodmenu"
bind "0" "slot10"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "5" "slot5"
bind "6" "slot6"
bind "7" "slot7"
bind "8" "slot8"
bind "9" "slot9"
bind "" "say SIE//a!!!!!"
bind "`" "toggleconsole"
bind "a" "+moveleft"
bind "c" "radio3"
bind "d" "+moveright"
bind "e" "+reload"
bind "f" "+voicerecord"
bind "i" "+use"
bind "l" "say he he he =]"
bind "o" "say timeleft"
bind "p" "say nextmap"
bind "q" "lastinv"
bind "r" "drop"
bind "s" "+back"
bind "t" "impulse 201"
bind "u" "messagemode2"
bind "w" "+forward"
bind "x" "radio2"
bind "y" "messagemode"
bind "z" "radio1"
bind "~" "toggleconsole"
bind "ALT" "+use"
bind "CTRL" "+speed"
bind "SHIFT" "+duck"
bind "F1" "buy"
bind "F2" "buyammo1"
bind "F3" "buyammo2"
bind "F4" "buyequip"
bind "F5" "chooseteam"
bind "F9" "snapshot"
bind "MOUSE1" "+attack"
bind "MOUSE2" "+attack2"
_cl_autowepswitch "1"
_snd_mixahead "0.1"
ati_npatch "1.0"
ati_subdiv "2.0"
bgmvolume "0"
bottomcolor "6"
brightness "1.500000"
cl_allowdownload "1"
cl_allowupload "1"
cl_backspeed "400"
cl_cmdbackup "2"
cl_cmdrate "30"
cl_corpsestay "600.000000"
cl_crosshair_color "50 250 50"
cl_crosshair_size "small"
cl_crosshair_translucent "1"
cl_dlmax "128"
cl_download_ingame "0"
cl_dynamiccrosshair "1"
cl_forwardspeed "400"
cl_himodels "0"
cl_idealpitchscale "0.8"
cl_lc "1"
cl_logocolor "#Valve_Green"
cl_logofile "{"
cl_lw "1"
cl_minmodels "0"
cl_radartype "0"
cl_righthand "1"
cl_shadows "1"
cl_timeout "35"
cl_updaterate "20"
cl_vsmoothing "0.05"
cl_weather "1"
con_color "650 650 650"
console "1.000000"
crosshair "1.000000"
fastsprites "1"
fps_max "70"
fps_modem "0.0"
gamma "3.000000"
gl_dither "1"
gl_flipmatrix "0"
gl_fog "1"
gl_monolights "0"
gl_overbright "0.000000"
gl_polyoffset "4"
hisound "1"
hpk_maxsize "0"
hud_capturemouse "1"
hud_centerid "1"
hud_draw "1"
hud_fastswitch "1"
hud_saytext_internal "1"
hud_takesshots "0"
joystick "0"
lookspring "0.000000"
lookstrafe "0.000000"
m_filter "1"
m_forward "1"
m_pitch "0.022"
m_side "0.8"
m_yaw "0.022"
model "gordon"
MP3FadeTime "2.0"
MP3Volume "0.800000"
mp_decals "20"
name "|F|"
net_graph "3"
net_graphpos "3"
net_scale "5"
r_bmodelhighfrac "5.0"
s_a3d "0.0"
s_automax_distance "30.0"
s_automin_distance "2.0"
s_bloat "2.0"
s_distance "60"
s_doppler "0.0"
s_eax "0.0"
s_leafnum "0"
s_max_distance "1000.0"
s_min_distance "8.0"
s_numpolys "200"
s_polykeep "1000000000"
s_polysize "10000000"
s_refdelay "4"
s_refgain "0.4"
s_rolloff "1.0"
s_verbwet "0.25"
sensitivity "2.2"
skin ""
spec_autodirector_internal "1"
spec_drawcone_internal "1"
spec_drawnames_internal "1"
spec_drawstatus_internal "1"
spec_mode_internal "4"
spec_pip "0"
suitvolume "0.620000"
sv_aim "0"
sv_voiceenable "1"
team ""
topcolor "30"
viewsize "120.000000"
voice_enable "1"
voice_forcemicrecord "1.000000"
voice_modenable "1"
voice_scale "1"
volume "7"
setinfo "_hl" "1"
setinfo "dm" "1"
setinfo "lefthand" "0"
setinfo "ah" "0"
setinfo "vgui_menus" "1"
setinfo "portal" "pw"
setinfo "_cm_pw" "yoogi"
setinfo "_vgui_menus" "1"
setinfo "_ah" "1"
setinfo "_pw" "jebac"
+mlook
+jlook
exec f.cfg
// CHODZENIE \
bind "UPARROW" "say_team RUSH! PROSTO! GO! GO! GO!"
bind "DOWNARROW" "say_team RUSH! DOLEM! GO! GO! GO!"
bind "LEFTARROW" "say_team RUSH! W LEWO! GO! GO! GO!"
bind "RIGHTARROW" "say_team RUSH! W PRAWO! GO! GO! GO!"
// KUPOWANIE \
bind "," "ak47;+; m4a1; defuser; primammo"
bind "." "awp; defuser ; primammo ; deagle; secammo"
bind "/" "hegren"

bind "m" "name |F|"

bind "MWHEELUP" "volup" //Podgłoś
bind "MWHEELDOWN" "voldown"
alias vol0 "volume 0.0; developer 1; echo -No Sound- (__________) ; developer 0; alias volup vol1; alias voldown vol0"
alias vol1 "volume 0.1; developer 1; echo Volume 10% (*_________); developer 0; alias volup vol2; alias voldown vol0"
alias vol2 "volume 0.2; developer 1; echo Volume 20% (_*________); developer 0; alias volup vol3; alias voldown vol1"
alias vol3 "volume 0.3; developer 1; echo Volume 30% (__*_______); developer 0; alias volup vol4; alias voldown vol2"
alias vol4 "volume 0.4; developer 1; echo Volume 40% (___*______); developer 0; alias volup vol5; alias voldown vol3"
alias vol5 "volume 0.5; developer 1; echo Volume 50% (____*_____); developer 0; alias volup vol6; alias voldown vol4"
alias vol6 "volume 0.6; developer 1; echo Volume 60% (_____*____); developer 0; alias volup vol7; alias voldown vol5"
alias vol7 "volume 0.7; developer 1; echo Volume 70% (______*___); developer 0; alias volup vol8; alias voldown vol6"
alias vol8 "volume 0.8; developer 1; echo Volume 80% (_______*__); developer 0; alias volup vol9; alias voldown vol7"
alias vol9 "volume 0.9; developer 1; echo Volume 90% (________*_); developer 0; alias volup vol10; alias voldown vol8"
alias vol10 "volume 1.0; developer 1; echo Volume Max (_________*); developer 0; alias volup volmax; alias voldown vol9"
alias volmax "developer 1; echo -Max Sound-; developer 0"
alias volup "vol6"
alias voldown "vol1"

Powered by phpBB © 2001,2002 phpBB Group