Der wichtigste Teil des Updates dreht sich um den Geisel-Modus. Die Geisel ist jetzt ein eigenes Objekt vom Typ CSHostage. Die Map erkennt jeden Schritt, vom ersten Aufhebeversuch bis zur Rettung oder zum Tod.
Wenn Sie nur Matchmaking spielen, ändert sich für Sie nichts: Die Patchnotes vom 22. Oktober haben nur einen Abschnitt, MAP SCRIPTING. Die neuen Funktionen kommen in Workshop-Maps und benutzerdefinierten Modi zum Einsatz, sobald deren Entwickler die Skripte aktualisieren.
Die Geisel ist jetzt mehr als nur ein stummes Modell
CSHostage hat die Methoden IsBeingPickedUp, IsBeingCarried und IsRescued bekommen. Das Skript erkennt damit, ob eine Geisel gerade aufgehoben oder getragen wird und ob sie den Rettungspunkt erreicht hat. GetRescuer gibt den Retter zurück, GetPickUpStartTime und GetPickUpFinishTime den Anfang und das Ende des Aufhebens. Auch CSPlayerPawn.GetHostage liefert jetzt eine Verbindung zur Geisel, sodass sich der Status vom Spieler aus prüfen lässt.
Mit den Methoden kommen auch Events, auf die eine Map sofort reagieren kann.
- OnHostagePickUpStart wird ausgelöst, wenn ein Spieler beginnt, eine Geisel aufzuheben.
- OnHostagePickUpAbort erfasst einen abgebrochenen Aufhebeversuch.
- OnHostagePickUp wird ausgelöst, wenn ein Spieler eine Geisel aufgehoben hat.
- OnHostageDrop wird ausgelöst, wenn eine Geisel fallen gelassen wird.
- OnHostageRescue markiert die Rettung einer Geisel.
- OnHostageKill wird ausgelöst, wenn eine Geisel stirbt.
Ein Map-Entwickler kann zum Beispiel Punkte für eine Rettung vergeben oder die Terroristenbasis alarmieren lassen, sobald die CT eine Geisel aufnehmen.
Console und GameRules übernehmen einen Teil der Aufgaben von Instance
Valve hat zwei neue Bereiche auf oberster Ebene eingeführt. In Console finden Sie alles rund um Konsolenvariablen. Sie können ihren Wert mit dem passenden Typ auslesen (GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor) und mit SetConvar ändern. Für die letzte Methode muss sv_cheats nicht aktiviert sein. Sie wird synchron ausgeführt, der neue Wert gilt also schon in der nächsten Skriptzeile.
| Vorher | Jetzt |
|---|---|
| Instance.Msg | Console.Log |
| Instance.ClientCommand, ServerCommand, RegisterCheatCommand | dieselben Methoden in Console |
| Instance.IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod | dieselben Methoden in GameRules |
| Instance.GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime | dieselben Methoden in GameRules |
| Instance.AddTeamMoney | GameRules.AddTeamMoney |
GameRules hat außerdem eigene neue Methoden bekommen. StartWarmup und EndWarmup starten und beenden die Aufwärmphase, GetTeamScore und AddTeamScore lesen und ändern den Team-Score, und TerminateRound beendet die Runde. Das Kartenskript kann jetzt selbst entscheiden, wann eine Runde vorbei ist.
Die alten Namen funktionieren vorerst weiter, gelten aber als veraltet. Die Umbenennung ist rein mechanisch. Am besten passen Sie die Aufrufe früh an, solange das Projekt noch überschaubar ist.
Das Skript erkennt, ob alle Spieler die Ressourcen geladen haben
Instance.Precache gibt ein CSPrecache-Objekt zurück. IsServerLoading und IsServerLoaded zeigen, ob eine Ressource auf dem Server gerade geladen wird oder bereits geladen ist. IsClientLoading und IsClientLoaded liefern dieselben Infos für den Client. IsLoadedForAll prüft, ob die Ressource bei allen Spielern bereit ist. Wenn sie nicht mehr gebraucht wird, gibt Release sie wieder frei.
HUD, Radar und Bugfixes
Der Rest des Updates besteht aus kleineren Anpassungen und Bugfixes. Für benutzerdefinierte HUD-Layouts (custom_hud_layout) gibt es jetzt zwei Klassen auf oberster Ebene: HUD_TEAMMENU_VISIBLE und HUD_CHAT_VISIBLE. Damit kann sich das Layout ändern, wenn das Teamauswahlmenü oder der Chat geöffnet ist. Das radar_element wird jetzt in allen Modi auf dem Radar angezeigt, nicht mehr nur in Rush.
- GameRules.AddTeamMoney lässt das Spiel nicht mehr abstürzen, wenn Sie als Grund CSTeamMoneyReason.NONE übergeben.
- Die Enum-Werte von CSTeamMoneyReason und CSWeaponAttackType stimmen jetzt mit der Typbeschreibung in point_script.d.ts überein.
- CSRadarPoint.IsVisibleToTeam und CSObservablePoint.IsObservableForTeam geben jetzt einen booleschen Wert statt einer Zahl zurück.
- Warnungen im Log zeigen jetzt den JavaScript-Call-Stack und Details zu ungültigen Argumenten. Außerdem beginnt die Argumentnummerierung bei 0 statt bei 1.
- Convar
- Konsolenvariable des Spiels, etwa eine Server- oder Client-Einstellung, die Sie auslesen und ändern können.
- sv_cheats
- Servereinstellung, ohne die einige Konsolenbefehle gesperrt sind.
- Precache
- Modelle, Sounds und andere Ressourcen werden vorgeladen, bevor sie im Spiel gebraucht werden.
Guides















