Hlavní část patche se věnuje režimu s rukojmími. Rukojmí je nově samostatný objekt CSHostage a mapa může sledovat každý jeho krok, od prvního pokusu o zvednutí až po záchranu nebo smrt.
Pokud hrajete jen matchmaking, nic se pro vás ve hře nemění. Seznam změn z 22. října obsahuje jedinou sekci: MAP SCRIPTING. Nové možnosti se objeví na mapách z Workshopu a v uživatelských režimech, až jejich autoři aktualizují skripty.
Rukojmí už není jen nehybný model
CSHostage nově nabízí metody IsBeingPickedUp, IsBeingCarried a IsRescued. Skript tak zjistí, jestli někdo rukojmího zvedá, nese nebo už ho dovedl na místo záchrany. GetRescuer vrací jméno zachránce a GetPickUpStartTime a GetPickUpFinishTime čas začátku a konce zvedání. Z druhé strany je k dispozici CSPlayerPawn.GetHostage, takže vztah lze ověřit i z pohledu hráče.
Spolu s metodami přibyly i události, na které může mapa okamžitě reagovat.
- OnHostagePickUpStart se spustí, když hráč začne zvedat rukojmího.
- OnHostagePickUpAbort zachytí přerušené zvedání.
- OnHostagePickUp se spustí po zvednutí rukojmího.
- OnHostageDrop označuje odhození rukojmího.
- OnHostageRescue označuje záchranu rukojmího.
- OnHostageKill se spustí při smrti rukojmího.
Autor mapy může například přidělit body za záchranu nebo spustit poplach na základně teroristů ve chvíli, kdy rukojmího zajme CT.
Console a GameRules převzaly část funkcí Instance
Valve přidala dvě nové sekce nejvyšší úrovně. Console sdružuje vše, co souvisí s konzolovými proměnnými. Jejich hodnotu lze načíst v požadovaném typu (GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor) a změnit pomocí SetConvar. Poslední metoda není omezená nastavením sv_cheats a provede se synchronně. Nová hodnota tedy platí už na následujícím řádku skriptu.
| Předtím | Nyní |
|---|---|
| Instance.Msg | Console.Log |
| Instance.ClientCommand, ServerCommand, RegisterCheatCommand | stejné metody v Console |
| Instance.IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod | stejné metody v GameRules |
| Instance.GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime | stejné metody v GameRules |
| Instance.AddTeamMoney | GameRules.AddTeamMoney |
GameRules dostal také vlastní nové metody. StartWarmup a EndWarmup spouštějí a ukončují rozehřívací fázi, GetTeamScore a AddTeamScore načítají a mění skóre týmu a TerminateRound ukončuje kolo. Skript mapy teď může sám rozhodnout, kdy kolo skončí.
Staré názvy zatím fungují, jsou ale označené jako zastaralé. Přejmenování je čistě mechanické, takže se vyplatí upravit volání předem, dokud jich v projektu není moc.
Skript zjistí, jestli se prostředky načetly všem hráčům
Instance.Precache vrací objekt CSPrecache. Metody IsServerLoading a IsServerLoaded informují, jestli se prostředek načítá na serveru, zatímco IsClientLoading a IsClientLoaded totéž zjišťují u klienta. IsLoadedForAll ukazuje, jestli je vše připravené pro každého hráče. Až prostředek nebude potřeba, Release ho uvolní.
Rozhraní, radar a opravy
Zbytek patche tvoří drobná vylepšení a opravy. V uživatelském rozvržení HUD (custom_hud_layout) přibyly dvě třídy nejvyšší úrovně, HUD_TEAMMENU_VISIBLE a HUD_CHAT_VISIBLE. Rozvržení se podle nich může měnit při otevřené nabídce výběru týmu nebo chatu. Prvek radar_element se teď zobrazuje na radaru ve všech režimech, i mimo Rush.
- GameRules.AddTeamMoney už nezpůsobí pád hry, pokud jako důvod předáte CSTeamMoneyReason.NONE.
- Hodnoty výčtových typů CSTeamMoneyReason a CSWeaponAttackType nyní odpovídají popisu typů v point_script.d.ts.
- CSRadarPoint.IsVisibleToTeam a CSObservablePoint.IsObservableForTeam nyní vracejí logickou hodnotu místo čísla.
- Varování v logu teď obsahují zásobník volání JavaScriptu a podrobnosti o neplatných argumentech. Argumenty se navíc číslují od 0, ne od 1.
- Convar
- Konzolová proměnná hry, například nastavení serveru nebo klienta, kterou lze načíst a změnit.
- sv_cheats
- Nastavení serveru, bez kterého jsou některé příkazy konzole zablokované.
- Precache
- Přednačtení modelů, zvuků a dalších prostředků ještě předtím, než je hra potřebuje.
Návody















