Główna część patcha dotyczy trybu z zakładnikami. Zakładnik jest teraz osobnym obiektem CSHostage, a mapa widzi każdy jego ruch: od pierwszej próby podniesienia go aż po uratowanie lub śmierć.
Jeśli gracie tylko w matchmakingu, w samej grze nic się dla was nie zmieniło. W wykazie zmian z 22 października jest tylko jedna sekcja: MAP SCRIPTING. Nowe możliwości trafią do map z Warsztatu i trybów niestandardowych, gdy ich twórcy zaktualizują skrypty.
Zakładnik przestał być niemym modelem
CSHostage zyskał metody IsBeingPickedUp, IsBeingCarried i IsRescued. Skrypt sprawdza dzięki nim, czy ktoś podnosi zakładnika, niesie go albo doprowadził do punktu ratunkowego. GetRescuer wskazuje gracza, który go uratował, a GetPickUpStartTime i GetPickUpFinishTime podają początek i koniec podnoszenia. Z drugiej strony pojawiła się metoda CSPlayerPawn.GetHostage, więc powiązanie można sprawdzić także od strony gracza.
Nowe metody to także zdarzenia, na które mapa może reagować od razu.
- OnHostagePickUpStart uruchamia się, gdy gracz zaczyna podnosić zakładnika.
- OnHostagePickUpAbort wyłapuje przerwane podnoszenie.
- OnHostagePickUp uruchamia się, gdy zakładnik zostanie podniesiony.
- OnHostageDrop oznacza, że zakładnik został upuszczony.
- OnHostageRescue odnotowuje uratowanie zakładnika.
- OnHostageKill uruchamia się, gdy zakładnik zginie.
Twórca mapy może na przykład przyznać punkty za uratowanie zakładnika albo uruchomić alarm w bazie terrorystów, gdy antyterroryści go podniosą.
Console i GameRules przejęły część zadań Instance
Valve dodało dwie nowe sekcje najwyższego poziomu. Console zbiera wszystko, co dotyczy zmiennych konsoli. Wartość można odczytać w odpowiednim typie (GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor) albo zapisać przez SetConvar. Ta ostatnia metoda nie wymaga sv_cheats i działa synchronicznie, więc nowa wartość obowiązuje już w następnej linii skryptu.
| Było | Jest |
|---|---|
| Instance.Msg | Console.Log |
| Instance.ClientCommand, ServerCommand, RegisterCheatCommand | te same metody w Console |
| Instance.IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod | te same metody w GameRules |
| Instance.GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime | te same metody w GameRules |
| Instance.AddTeamMoney | GameRules.AddTeamMoney |
GameRules zyskał też własne metody. StartWarmup i EndWarmup włączają i wyłączają rozgrzewkę, GetTeamScore i AddTeamScore odczytują oraz zmieniają wynik drużyny, a TerminateRound kończy rundę. Skrypt mapy może teraz sam zdecydować, kiedy runda dobiega końca.
Stare nazwy nadal działają, ale są już oznaczone jako przestarzałe. Zmiana nazw jest prosta, więc najlepiej przenieść wywołania wcześniej, póki w projekcie jest ich niewiele.
Skrypt sprawdza, czy zasoby załadowały się u wszystkich graczy
Instance.Precache zwraca obiekt CSPrecache. Metody IsServerLoading i IsServerLoaded informują, czy zasób ładuje się na serwerze albo jest już załadowany. IsClientLoading i IsClientLoaded robią to samo po stronie klienta. IsLoadedForAll sprawdza, czy zasób jest gotowy u wszystkich graczy. Gdy przestaje być potrzebny, Release go zwalnia.
Interfejs, radar i poprawki
Pozostałe zmiany w patchu to drobne usprawnienia i poprawki. W układzie interfejsu użytkownika (custom_hud_layout) pojawiły się dwie klasy najwyższego poziomu: HUD_TEAMMENU_VISIBLE i HUD_CHAT_VISIBLE. Dzięki nim układ może się zmieniać po otwarciu menu wyboru drużyny lub czatu. Element radar_element jest teraz widoczny na radarze w każdym trybie, a nie tylko w Rush.
- GameRules.AddTeamMoney nie powoduje już awarii gry, gdy jako powód przekazano CSTeamMoneyReason.NONE.
- Wartości wyliczeń CSTeamMoneyReason i CSWeaponAttackType są teraz zgodne z opisem typów w point_script.d.ts.
- CSRadarPoint.IsVisibleToTeam i CSObservablePoint.IsObservableForTeam zwracają teraz wartość logiczną zamiast liczby.
- Ostrzeżenia w dzienniku pokazują stos wywołań JavaScript i szczegóły nieprawidłowych argumentów. Argumenty są numerowane od 0, a nie od 1.
- Convar
- Zmienna konsoli, na przykład ustawienie serwera lub klienta, którą można odczytać i zmienić.
- sv_cheats
- Ustawienie serwera blokujące część poleceń konsoli.
- Precache
- Wstępne ładowanie modeli, dźwięków i innych zasobów, zanim będą potrzebne w grze.
Poradniki















