Medyk może uleczyć Cię maksymalnie do 90% życia.
Konfig, czyli podstawa naszej egzystencji w Urban Terror.
Witam. Zacznijmy może od wyjaśnienia, czym dokładnie jest plik konfiguracyjny. Wikipedia podaje nam następującą definicję: plik komputerowy używany do zmiany ustawień niektórych programów komputerowych. Jest wykorzystywany przez zwykłe aplikacje, programy serwerowe i systemy operacyjne.
Konfig zawiera całą konfigurację naszej postaci w grze. A więc zarówno tak podstawowe kwestie jak przypisanie klawiszy do odpowiednich funkcji (controls), jak i rozdzielczość ekranu czy czułość myszy. Wszystko to interpretowane jest przez odpowiednie komendy (które zamierzam tu przybliżyć).
Taki plik, oprócz tego że może być przez nas ręcznie stworzony, generowany jest też automatycznie przez grę, np. podczas zmiany ustawień w graficznym menu. My jednak chcemy zrobić to sami, ponieważ opcje GUI nie są dla nas wystarczające. Pisząc config mamy po prostu więcej możliwości.
Ustawienia generowane przez silnik zapisywane są w pliku q3config.cfg (dla Windowsa) lub q3ut4.cfg (dla reszty OS) w katalogu q3ut4. Nie ruszajmy go. My stworzymy własny, osobny config, w którym zawrzemy wszystko co nam leży na sercu. W tym celu stwórzmy nowy plik tekstowy i nadajmy mu rozszerzenie .cfg.
Taki plik ładujemy w grze komendą:/exec PRZYKLAD.cfg
Jeśli nie czujemy się komfortowo z wizją wpisywania tej komendy co każde wejście w Urbana, wystarczy, że do pliku autoexec.cfg dopiszemy linię exec PRZYKLAD.cfg
Możemy również odpalić grę z parametrem +exec PRZYKLAD.cfg, co da nam identyczny efekt.
SPIS TREŚCI |
Komentarze służą do opisywania fragmentów pliku zwykłym, ludzkim językiem i są przez silnik gry omijane. Wszystko, co zostanie napisane po znakach "//", będzie zignorowane.
// Lubię misie :)
2. Bindy
Bindy służą do przypisywania klawiszom na klawiaturze odpowiednich funkcji. Składnia:
bind KLAWISZ "AKCJA"
Jak widać, w pliku konfiguracyjnym, w przeciwieństwie do konsoli gry, komendy wpisujemy bez użycia slasha (ukośnika).
Za KLAWISZ podstawiamy jedno z poniższych:
Za AKCJA podstawić możemy wiele funkcji. Nie tylko tych wbudowanych w silnik, ale także własnych (o czym później). Podstawowe funkcje pozwalające godnie poruszać się w grze zawarte są w przykładowym konfigu dołączonym do tego tutorialu. Wiele też można wyciągnąć z konfigu generowanego przez grę.
Zmienne to parametry, którym możemy nadać wartość. Oprócz tych standardowych (typu nick, czułość myszy, model postaci), mamy też dostęp do CVARów czyli zmiennych charakterystycznych dla UrTa. Tworzą one cały nasz HUD i ich zmiany zawsze dotyczą jedynie naszych ustawień. Składnia:
set ZMIENNA "WARTOŚĆ"
Lista CVARów charakterystycznych dla Urban Terror:
CVAR | DOMYŚLNA WARTOŚĆ | ZNACZENIE |
---|---|---|
cg_autoradio | 0 |
Włącza radio komendy "Grenade!", "I'm planting the Bomb", "I've got the Bomb" odtwarzane automatycznie. Odblokowuje też radio komendę "lol" odtwarzającą jeden z trzech odgłosów śmiechu postaci. 1 - wszystko, 2 - wszystko oprócz granatów. |
cg_autorecordmatch | 1 | Automatycznie nagrywanie demka podczas meczu (nie dotyczy serwerów publicznych). |
cg_autoscreenshot | 1 | Zapisuje screenshot statystyk na końcu każdej mapy. Ustawiona na 2 działa jedynie w przypadku meczy (matchmode). |
cg_chatHeight | 4 | Maksymalna ilość wyświetlanych wypowiedzi na czacie podczas gry w jednym momencie. |
cg_chatTime | 4000 | Czas jaki jedna wypowiedź utrzymuje się na ekranie gry (w milisekundach). |
cg_crosshairfriendRGB | 1 0 0 1 | Kolor celownika nakierowanego na przyjaciela z drużyny. |
cg_crosshairnamessize | 0.3 | Wielkość nicku gracza, na którego nakierowany jest celownik |
cg_crosshairnamestype | 3 | Różne typy wyświetlania informacji o towarzyszu, na którego nakierowany jest celownik. Zakres od 0 do 3. |
cg_drawHands | 1 | Ustawiona na 1 wyświetla ręce postaci w widoku z pierwszej osoby. 0 nie pokaże rąk. Wyłączenie może lekko poprawić wydajność. |
cg_drawteamoverlayscores | 1 | Zakres od 0 do 3. 0 wyłącza. 1 wyświetla wyniki obu drużyn. 2 wyświetla wyniki Twojej drużyny i ilość pozostałych na mapie wrogów. 3 wyświetla Twój wynik i ilość pozostałych na mapie wrogów oraz towarzyszy. |
cg_drawteamscores | 1 | Wyłącza wyświetlanie wyników z powyższych zmiennych. |
cg_gunsize | 0 | Ustawiona na 1 zmniejsza model wyświetlanej z widoku pierwszej osoby broni. |
cg_hitsound | 0 | Dźwięk przy trafieniu przeciwnika. |
cg_hudweaponinfo | 2 | Wyświetla informacje o broni; nazwa, liczba magazynków/naboi, rodzaj strzału. Zakres od 0 do 2. |
cg_mapalpha | 0.6 | Przezroczystość minimapy. |
cg_maparrowscale | 1.0 | Rozmiar strzałek reprezentujących graczy na minimapie. |
cg_mappos | 0 | 0 wyłącza minimapę. Wartości od 1 do 9 ustawiają pozycję minimapy w kierunku przeciwnym do ruchu wskazówek zegara. |
cg_mapsize | 128 | Rozmiar minimapy. |
cg_maptoggle | 1 | Włącza/wyłącza minimapę. |
cg_marktotaltime | 5000 | Liczba milisekund po których ślad, taki jak dziura po kuli, znika. Im większa wartość, tym większe obciążenie komputera. |
cg_maxFragments | 32 | Ta wartość określa na ile elementów rozpadną się obiekty zniszczalne. W mapie jest zakodowana określona wartość na każdy z obiektów zniszczalnych, tak więc jeśli Twoje ustawienie to 32 ale mapa wymaga tylko 16, zobaczysz 16. |
cg_msgHeight | 4 | Maksymalna ilość wiadomości wyświetlanych w lewym górnym rogu ekranu w jednym momencie. |
cg_msgTime | 4000 | Liczba milisekund, po których wiadomość od przyjaciela znika. |
cg_nvg | 0 | Kolor w taktycznych goglach. Zakres od 0 do 8. |
cg_optimize | 1 | Ustawiona na 1 optymalizuje kod gry w efekcie zwiększając liczbę FPS (Frames Per Second). |
cg_physics | 1 | Ustawiona na 1 wyłącza zależność FPS (klatek na sekunde) od fizyki gry. Innymi słowy skaczesz na te same odległości bez względu na aktualną ilość FPS. |
cg_rgb | 255 0 0 | Indywidualny kolor dla Twojej opaski, strzałki na minimapie i kwadracika w ekranie wyników (tylko jeżeli serwer na to zezwala). |
cg_scopefriendrgb | 0 0 0 0.8 | Kolor celownika nakierowanego na towarzysza w trybie przybliżenia. |
cg_scopeg36 | 0 | Typ celownika w trybie przybliżenia dla G36. Zakres od 0 do 3. |
cg_scopePSG | 0 | Typ celownika w trybie przybliżenia dla PSG1. Zakres od 0 do 3. |
cg_scopeRGB | 0.9 0 0 0.65 | Kolor celownika w trybie przybliżenia. Domyślnie czarny. |
cg_scopering | 2 | Wyświetla kółko pokazujące aktualny rozrzut w trybie przybliżenia. Domyślnie włączone. |
cg_scopesr8 | 0 | Typ celownika w trybie przybliżenia dla SR8. Zakres od 0 do 3. |
cg_sfxbrasstime | 5000 | Czas, po którym wyrzucone łuski pocisków znikają. Im większa wartość, tym większe obciążenie komputera. |
cg_sfxBreathing | 1 | Ustawiona na 1 odtwarza dźwięk zmęczenia postaci. 0 wyłącza. Pamiętaj jednak, że inni dalej będą w stanie Cię usłyszeć. |
cg_sfxParticles | 1 | Ustawiona na 0 wyłącza wszystkie efekty cząsteczkowe oprócz efektów trafienia. Znacznie zwiększa płynnośc gry, szczególnie podczas sporych akcji. |
cg_sfxShowDamage | 1 | Ustawiona na wartość różną od 0 włącza efekt ran na modelu postaci. Wyłączona pozwala zaoszczędzić trochę pamięci RAM. |
cg_sfxSurfaceImpacts | 1 | Jeśli ustawione na 1, pokazuje dziury po kulach. Ustawienie na 0 może poprawić wydajność, lecz sporo stracimy nie wiedząc, gdzie kto się strzelał. |
cg_sfxTeamBands | 1 | Ustawiona na 0 wyłącza wyświetlanie opasek postaci. Pamiętaj, że inni dalej będą widzieć je na Tobie i reszcie graczy. |
cg_sfxVisibleItems | 1 | Ustawiona na 0 wyłącza wyświetlanie przedmiotów i broni na postaciach. Przyspieszy to nieco działanie gry, ale nie będą widocznie takie rzeczy jak np. kevlar, broń na czyichś plecach etc. |
cg_showbullethits | 2 | Ustawiona na 1 wyświetla informacje o tym, gdzie zostałeś trafiony i gdzie trafiasz innych. Ustawiona na 2 wyświetla dodatkowo ilość zadanych lub otrzymanych przy trafieniu obrażeń. 0 wyłącza. |
cg_SpectatorShoutcaster | 1 | Ustawiona na 1 wyświetla nick gracza, jego broń i zdrowie nad modelem postaci w trybie 'spectator mode' |
cg_speedo | 0 | Ustawiona na 1 wyświetla prędkość Twojej postaci (XY & XYZ) na dole ekranu (obok informacji o broni). |
cg_standardChat | 0 | Urban Terror oddziela czat od reszty wiadomości w grze. Ustaw wartość na 1 jeśli wolisz grupować je ze sobą (tak jak w Quake3). |
Z reszty dostępnych zmiennych można wymienić parę przydatnych:
CVAR | ZNACZENIE |
---|---|
name | Nick postaci |
sensitivity | Czułość myszy (domyślnie: 5.0) |
cl_drawclock | Wyświetla zegarek na górze ekranu (0/1) |
cg_lagometer | Wyświetla lagometr (0/1) |
cg_drawtimer | Wyświetla czas do końca mapy (0/1) |
cg_drawfps | Wyświetla ramkę z aktualną liczbą FPS i pingiem (0/1) |
cg_fov | Obszar widzenia (Field of View). Zakres od 90 do 110. |
r_fullscreen | Pozwala uruchomić UrTa w okienku (0/1) |
password | Ustawia hasło do serwera, z którym nastąpi połączenie |
Jeśli nie jesteśmy pewni co do aktualnie przyjętej wartości dla jednej ze zmiennych, wystarczy że w konsoli UrT napiszemy po slashu jej nazwę, a gra zwróci nam wartość używaną i domyślną, np:
/cg_drawfps
Zamiast komendy set, możesz użyć także seta. Spowoduje to zapisanie wartości danej zmiennej do q3config.cfg, a więc będzie ona ładowana w takiej postaci co każde uruchomienie gry. Uwaga przy wczytywaniu takiego configu na cudzym komputerze! ;) |
Oczywiście, jedną z podstawowych kwestii, jaką chcielibyśmy sobie na trwałe wpisać w config, jest konfiguracja ekwipunku naszej postaci. Jak wiadomo, kombinacji jest wiele. Ciężko byłoby dla każdej z nich stworzyć osobną komendę. Składnia:
set gear "KOD"
Gdzie za KOD wstawiamy ciąg znaków reprezentujących dany przedmiot w kolejności:
Nazwa przedmiotu | Pistolet | Broń Główna | Broń Zastępcza | Granaty | Przedmiot dodatkowy pierwszy | Przedmiot dodatkowy drugi | Przedmiot dodatkowy trzeci |
Beretta 92FS | F | - | - | - | - | - | - |
.50 Desert Eagle | G | - | - | - | - | - | - |
SPAS 12 | - | H | H | - | - | - | - |
MP5K | - | I | I | - | - | - | - |
UMP45 | - | J | J | - | - | - | - |
HK69 | - | K | - | - | - | - | - |
LR300ML | - | L | - | - | - | - | - |
G36 | - | M | - | - | - | - | - |
PSG.1 | - | N | - | - | - | - | - |
SR8 | - | Z | - | - | - | - | - |
AK.103 | - | a | - | - | - | - | - |
Negev LMG | - | c | - | - | - | - | - |
Colt M4 | - | e | - | - | - | - | - |
HE Grenade | - | - | - | O | - | - | - |
Smoke Grenade | - | - | - | Q | - | - | - |
Kevlar Vest | - | - | - | - | R | R | R |
Goggles | - | - | - | - | S | S | S |
Medkit | - | - | - | - | T | T | T |
Silencer | - | - | - | - | U | U | U |
Laser Sight | - | - | - | - | V | V | V |
Kevlar Helmet | - | - | - | - | W | W | W |
Extra Ammo | - | - | - | - | X | X | X |
Gdy chcemy dane pole zostawić puste, zamiast znaku z tabelki podajemy znak A.
Przykładowa komenda dla zestawu broni LR300+DE+Kevlar+Helmet+Laser będzie więc wyglądała tak:
set gear "GLAAVWR"
Pamiętajmy o ograniczeniach nałożonych na ilość posiadanego na raz sprzętu w grze! Nie można mieć wszystkiego ;)
5. Radio i kolorki
Mamy możliwość ustawienia własnego tekstu dla wysyłanych radio komend. Składnia:
ut_radio x y TREŚĆ
Gdzie za x podstawiamy kategorię radio komendy, a za y jej numer. Tak jak robimy to przez menu graficzne w grze. Tak więc dla popularnego Affirmative (wywoływanego domyślnie poprzez wyświetlenie radio menu i kliknięcie 1 i 1) będzie to wyglądało tak:
ut_radio 1 1 TREŚĆ
Za TREŚĆ wpisujemy to, co wyświetli się na czacie towarzyszy po odtworzeniu komendy (którą ciągle będzie męski lub damski głos "Affirmative!").
W celu upiększenia treści możemy ją pokolorować. Mamy do dyspozycji siedem kolorów:
Powyższe kody zwyczajnie wrzucamy przed tekstem, który ma zostać pokolorowany. Przykład gotowego binda na własną radio komendę:
bind F5 "ut_radio 9 1 ^2Dobra robota misie ^7:)"
Odtworzy dźwięk "Good job team." i wyświetli tekst Dobra robota misie :) kolorując jedynie Dobra robota misie.
6. Funstuff
Model naszej postaci może zostać zmodyfikowany poprzez dodanie do niego tzw. funstuffu. Są to przedmioty, które przytwierdzone zostaną do głowy naszej postaci. Składnia:
set funblue "ITEM" // Dla niebieskich
set funred "ITEM" // Dla czerwonych Gdzie za ITEM podstawiamy jeden z przedstawionych na poniższych obrazkach przedmiotów.
Drużyna czerwonych:
Drużyna niebieskich:
Jeśli chcemy umieścić więcej niż jeden przedmiot naraz, oddzielamy je przecinkiem. Dla Sary z zieloną czapką z daszkiem i okularami komenda będzie wyglądać tak:
set funred "capgn,shades"
7. Skrypty
Przejdźmy do zaawansowanej kwestii pisania configów, czyli tworzenia skryptów. Silnik Urban Terrror pozwala nam na wykonywanie wielu akcji na raz przy wciśnięciu danego binda. Składnia dla skryptu wykonującego trzy występujące po sobie akcje:
bind KLAWISZ "AKCJA_1; AKCJA_2; AKCJA_3;"
Napiszmy więc teraz jakiś przykładowy skrypt ułatwiający nam życie (bo do tego one właśnie służą):
bind x "ut_weaptoggle sidearm; ut_weaptoggle secondary"
Od teraz, po wciśnieciu klawisza x, w zależności od posiadanego sprzętu, zmienimy broń na:
- pistolet, jesli nie posiadamy broni zastępczej;
- broń zastępczą, jeśli tylko mamy ją w swoim ekwipunku.
Od strony technicznej gra najpierw zmieni nam broń na pistolet, a potem broń zastępczą. Jeśli jednak tej broni nie posiadamy, zostaniemy przy pistolecie. Zawsze na końcu umieszczamy broń, z którą chcielibyśmy skończyć.
A oto parę elementów urozmaicających nasze skrypty:
1. Echo
Aby bardziej przejrzyście przedstawić działanie naszych skryptów, możemy wyświetlić dowolny tekst na ekranie w górnym lewym rogu (na tej samej zasadzie co np. informacje o fragach).
Składnia:
ut_echo "TEKST" 2. Wait
Możemy zastosować odstęp czasowy między poszczególnymi akcjami. Minusem tego rozwiązania jest jednak zatrzymanie na dany czas całej naszej postaci.
Składnia:
wait CZAS
Gdzie za CZAS podstawiamy liczbę naturalną przedstawiąjącą czas (w milisekundach), jaki gra ma zaczekać przed wykonaniem kolejnej akcji.
3. Toggle
W pisaniu skryptów zmieniających wartości CVARów bardzo pomoże nam akcja toggle.
Składnia:
toggle CVARDziałanie jest proste. Przy wszystkich CVARach mających jedynie dwie możliwe wartości, zmienia wartość z aktualnej na drugą możliwą. Na przykład:
bind F3 "toggle cg_lagometer"Po każdym wciśnieciu F3 albo wyświetli, albo schowa nam lagometr.
4. Funkcje
Funkcja jest to szereg akcji, do których możemy się w dowolnym momencie odwołać. Tworzeniu funkcji odpowiada następującą składnia:
set NAZWA "AKCJE"
Aby odwołać się do danej funkcji, piszemy komendę według następującej składni:
vstr NAZWAZa powyższe gra wstawi akcje zawarte w funkcji o nazwie NAZWA.
PRAKTYKA
Czas napisać nasz pierwszy porządny skrypt. Do dzieła!
Zamierzamy stworzyć mechanizm przełączania pomiędzy różnymi zestawami naszego sprzętu. Posłużymy się przy tym tzw. skryptem rekurencyjnym. Jego działanie polega na "przeskakiwaniu" pomiędzy różnymi ciągami komend nieskończoną ilość razy. Po wywołaniu (poprzez naciśnięcie zbindowanego klawisza) jednego ciągu komend, klawisz jest przebindowywany na inny ciąg. I tak w kółko.
My chcemy przełączać pomiędzy poszczególnymi zestawami broni przy naciśnięciu danego klawisza (niech będzie to F4). Niech każdy zestaw będzie osobną funkcją. W jej treści, oprócz samego zestawu, musimy przebindować nasze F4 tak, by przy kolejnym wywołaniu zmienił nam zestaw na kolejny. Niech za wywoływanie poszczególnych zestawów odpowiada osobna funkcja. Jej zadaniem będzie jedynie odwołanie się do odpowiedniej funkcji z zestawem (tych opisanych wcześniej). Nazwijmy ją load. W celu przebindowania F4 musimy więc zmienić wartość funkcji load z odwołania się do jednej funkcji, na drugą.
Gotowy skrypt będzie wyglądał tak:
set sprzet_01 "set load "vstr sprzet_02"; gear GLAAVWR; ut_echo Lr-300+Laser.;"
set sprzet_02 "set load "vstr sprzet_03"; gear GLACVRA; ut_echo Granaty.;"
set sprzet_03 "set load "vstr sprzet_01"; gear GZJARWA; ut_echo Tryb snajpera.;"
set load "vstr sprzet_02" // Zestaw wywolywany przy pierwszym nacisnieciu F4
bind F4 "vstr load" // Wywolanie funkcji load.Widzimy tu przy okazji praktycznie zastosowanie akcji ut_echo.
Brawo! Jeśli doszedłeś do tego miejsca, wiesz już wszystko o konfigach i jesteś gotowy do napisania własnego. Ograniczeniem w tej dziedzinie jest tylko Twoja kreatywność. Połamania klawiatur.
Do zobaczenia na serwerze!
UpiornyOdkurzacz
Super poradnik. Bardzo ładnie wszystko opisałeś.
Dziękuję. Poradnik przejdzie jeszcze kilka poprawek. Tak szczerze to myślałem, że zostanie dodany dopiero jakiś czas po premierze, lecz musiał wejść na start i nie miałem czasu go dopieścić.
Połowa odpowiedzi z FAQ odwołuje się do tego poradnika, nie było innej możliwości. ;)
Czy ta komenda na Desert Eagle , Sr8 , Spas , Granat , Helmet + Echo jest dobra:
/bind kp_uparrow "gear "GZHCWAA"; ut_echo TEKST"
Ta działa:
/bind kp_home "gear "GLAAVWR";ut_echo TEKST"
A ta pierwsza coś nie chce. Będę wdzięczny za szybką odpowiedź.
Tak, w tabelce jest błąd jeśli chodzi o granaty. Jak mówiłem artykuł miał przejść jeszcze kilka poprawek;)
Spróbuj:
/bind kp_uparrow "gear "GZHOWAA"; ut_echo TEKST"
Błąd jest już poprawiony, tak jak i kilka innych. Sorry za problem :)
Jeśli komuś się przyda lub @UpiornyOdkurzacz chciałbyś to wykorzystać to wklejam wam skrypt na "mini menu" wybierania broni
Steruje się strzałkami lewo/prawo na num padzie a zatwierdza 5 na num padzie. (oczywiście można dodać swoje zestawy broni)
Sęk w tym, że nie o to w tym artykule chodzi. Tutaj wkleiłem tylko proste przykłady skryptów i wyjaśniłem ich działanie. Gotowe skrypty to inny temat i można je zamieścić w formie wątku na forum albo osobnego artykułu. Lub ewentualnie tutaj, w komentarzach:)
Medyk może uleczyć Cię maksymalnie do 90% życia.
Bardzo przydatny poradnik :)!