Team Fortress 2

Team Fortress 2

Ocen: 72
Jak dodać skrypt lub bind do gry - podstawy skryptowania.
Autorstwa: Avaray
Poradnik zaprowadzi was w nieznany, magiczny świat skryptowania waszej ukochanej gry Team Fortress 2.
   
Przyznaj nagrodę
Ulubione
Ulubione
Usuń z ulubionych
Czym jest bindowanie i skryptowanie?
Skryptowanie jest użyciem plików konfiguracyjnych do tworzenia nowych bindów oraz aliasów do tworzenia złożonych operacji oraz sekwencji konsolowych komend.
Komenda BIND przypisuje przycisk do komendy konsolowej, na przykład: wybieranie slotu broni, malowanie spraya czy w celu szybkiego napisania wcześniej oskryptowanego tekstu.
ALIASY tworzą nowe komendy poprzez realizowanie paru komend jednocześnie. Aliasu można użyć do np: wykonania skoku i kucnięcia przy użyciu jednego przycisku.
Jak to wszystko działa w Team Fortress 2?
Team Fortress 2 oprócz konfiguracji głównej (config.cfg) posiada dodatkowo dziewięć konfiguracji - po jednaj dla każdej klasy. Gdy gracz wybiera daną klasę, gra automatycznie próbuje wczytać ustawienia z pliku przypisanego danej klasie.

Zwykłe dodanie Bindu lub całego Skryptu do głównego pliku konfiguracyjnego (config.cfg) lub nawet wpisanie go w konsoli w grze może przyprawić nam sporo problemów. Gdybyśmy dodali jakiś skrypt, który byłby przeznaczony dla jednej klasy, wtedy inne klasy mogłyby mieć problemy.
Przykład błędnego dodania skryptu: Dodajemy skrypt Perfect Rocket Jump[pastebin.com] pod prawy przycisk myszki (mouse2), który będzie nam działać dobrze na Żołnierzu, jednak po zmianie klasy na Demomana nie będzie on mógł detonować swoich Bomb Samoprzylepnych, a po zmianie na Inżyniera, nie będzie on mógł obracać działka przy budowaniu, ani go przenosić.
Dziać się tak będzie z tego powodu, że ostatni bind lub alias jakiego użyjemy, zapisze się nam w config.cfg i nawet restartowanie gry nic nie da.

Oczywiście, możemy nadać na config.cfg atrybut w systemie "Tylko do odczytu", ale to by było bez sensu. Lepiej przeczytać ze zrozumieniem ten poradnik.
Jak zbudować własne configi?
Jak już wiecie, nawet pomimo tego że każda klasa ma swój plik konfiguracyjny, dodanie skryptu nadal może bardzo namieszać w naszej grze. Więc co zrobić, aby skrypty i bindy się ze sobą nie gryzły i nie mieszały w konfiguracjach? To proste - musimy stworzyć jeszcze jeden plik konfiguracyjny, który będzie zawierał podstawowe bindy, a nawet ustawienia gry. Taki plik będzie wykonywany (wczytywany) poprzez polecenie "exec" na początku każdego configu (pliku konfiguracyjnego) klasy. Czyli przy każdym wyborze/zmianie klasy podczas gry.

Specjalnie dla Was stworzyłem gotową paczkę, żebyście mieli przynajmniej wgląd na to jak ma wyglądać budowa.
DOWNLOAD[share.dav.one]

Polecam pobrać i zajrzeć do plików main.cfg oraz autoexec.cfg. Znajdują się tam wyjaśnienia i porady.

Dalsza część poradnika będzie bazować na systemie plików, który znajduje się w tej paczce.
Jak edytować configi?
Do edycji powinniśmy użyć czegoś lepszego niż standardowy notatnik systemowy.
Ja wam rekomenduję:

Notepad++[notepad-plus-plus.org], który zdecydowanie wystarczy.
lub
VSCode[code.visualstudio.com] wraz z tą wtyczką[marketplace.visualstudio.com].
Jak dodawać skrypty i bindy do naszych configów?
Od tej pory działacie na dwunastu plikach.

Kiedy posiadamy jakiś bind/skrypt, który ma działać na każdej klasie - dopisujemy go na samym dole w pliku main.cfg
Jeśli chcemy dodać bind/skrypt dla danej klasy - dopisujemy go na samym dole configu tej klasy.
Wczytywanie głównego configu (exec main.cfg) ma znajdować się na początku każdego pliku klasy.

W przypadku skryptów/bindów dla wielu klas musimy pamiętać, by dobierać odpowiednie klawisze do bindów. Nie chcemy żeby coś nam przestało działać, prawda?
Czym jest main.cfg?
Jest to główny plik, który nadpisuje bindy zapisane w pliku config.cfg lub te wpisane w konsoli. Nie jest on oryginalnym plikiem gry - został stworzony przeze mnie na potrzeby tego poradnika. Powinien zawierać wszystkie standardowe bindy klawiatury dla klawiatury i myszki.

To właśnie w tym pliku będziecie mogli zamieścić wasze wszystkie ważne ustawienia i bindy.
Więcej informacji znajdziecie wewnątrz tego pliku.
Jak wygląda hierarchia naszych configów?
  • nazwa_klasy.cfg (najważniejszy)
  • main.cfg (ważny)
  • config.cfg (najmniej ważny)
  • autoexec.cfg (ten jest ważny tylko w przypadku, gdy mamy w configach ustawienia graficzne)

Liczy się kolejność wczytywania. To co zostanie wczytane ostatnie, nadpisze to co zostało wczytane pierwsze.

- Włączamy grę i ładuje się nam config.cfg
- Wchodzimy na serwer, wybieramy klasę i ładuje się nam najpierw to co jest w pliku main.cfg,
a dopiero na samym końcu to co jest w configu klasy.
- Gdy zmieniamy klasę to znów pierw ładuje się nam to co jest w pliku main.cfg - czyli następuje reset ustawień/klawiszy - no i na końcu wczytuje się to co jest w configu klasy na którą zmieniliśmy.

W przypadku, gdy mielibyśmy dwa bindy dla prawego przycisku myszki - jeden w main.cfg, a drugi w soldier.cfg - ostatni byłby wczytany ten z pliku soldier.cfg i to właśnie jego bind by nam działał w grze.
Czy mam na coś uważać podczas tworzenia/dodawania skryptów?
Należy pamiętać, że bardzo dużo skryptów zamieszczonych w internecie jest napisana błędnie.
Wiele z nich jest "przeterminowanych" i nie działa ze względu na zmiany w silniku gry.
Jeśli jakiś skrypt nie będzie Wam działać to po prostu będziecie musieli szukać innej wersji napisanej przez kogoś innego, lub po prostu będziecie musieli własnoręcznie z nimi eksperymentować i je naprawiać. Czasami bywa to ciężkie, ale dzięki temu nauczycie się podstaw i nie będziecie musieli błagać o pomoc na forach internetowych.

Dość niedawno przywrócono możliwość stosowania komendy "wait", która była dostępna tylko na serwerach z włączonymi oszustwami (sv_cheats 1).
Jest to komenda, która służy do odczekania danego czasu między wykonywaniem czynności.
Niestety, liczy ona czas w klatkach na sekundę (FPS).
Zwykle autorzy skryptów używają tej komendy dla swojej własnej ilości klatek, które mają w grze, a później zamieszczają takie skrypty w internecie. Następnie te skrypty jednym graczom działają, a innym nie. Z prostego powodu - dlatego, że gracze mają różne ilości FPS w zależności od sprzętów na których grają, od ich ustawień grafiki itp.
Przykłady:
- Jeśli mamy w grze 300 FPS i użyjemy polecenia wait 30 - gra będzie czekać 0.1s
- Jeśli mamy w grze 30 FPS i użyjemy polecenia wait 30 - gra będzie czekać 1s
Osobiście radzę unikać skryptów z komeną "wait", gdy nie mamy stałej ilości FPS.
Gdzie znajdę więcej informacji o skryptowaniu/bindowaniu?
Gdzie znajdę gotowe skrypty do Team Fortress 2?
Najwięcej skryptów znajdziecie na GAMEBANANA[tf2.gamebanana.com]
Trochę też znajdziecie na TF2Wiki[tf2wiki.net]
Pomoc w skryptowaniu możecie uzyskać na REDDICIE
Gdzie przetestować nasze skrypty/bindy?
Najprostszym sposobem jest wejście na jakiś serwer publiczny.

Innym, prostym sposobem jest włączenie swojego własnego serwera.
1. Włączamy grę
2. Otwieramy konsolę
3. Wpisujemy map nazwa_mapy

Jeśli nie wiesz jak włączyć konsolę, oto poradnik: http://steamcommunity.com/sharedfiles/filedetails/?id=153692265
Co dalej?
W tej chwili powinniście być gotowi do zabawy.

Jeżeli czujecie chęć podziękowania za poradnik to po prostu oceńcie go pozytywnie (łapką w górę).

Wszelkie uwagi odnośnie poradnika możecie zamieszczać w komentarzach.

Pozostaje Mi życzyć wam pomysłowości i sukcesów w tworzeniu własnych skryptów.
Komentarzy: 4
Shadows 15 czerwca 2018 o 23:22 
jak usunąć bindy?
Mitannian God-Emperor 28 listopada 2015 o 9:10 
elo jak zbindow komendy sm typu sm_gimme 14 lub wogóle gimme
Cooyon 21 czerwca 2013 o 13:41 
Mnie natomiast uratował przed zostaniem totalnym noobem, polecam!
orzel 18 czerwca 2013 o 9:56 
Świetny poradnik, uratował mnie przed popadnieciem w nałóg, polecam!