Zum Inhalt springen
Alle News
update

Counter-Strike 2 Update erweitert Scripting-API für Map- und Mode-Entwickler

Counter-Strike 2 Update erweitert Scripting-API für Map- und Mode-Entwickler

Counter-Strike 2 Update erweitert die Scripting-API

Dieses Update betrifft vor allem das point_script-System, das für benutzerdefinierte Spielmodi und Maps genutzt wird. Es bringt neue Top-Level-Exporte, ordnet bestehende Funktionen neu und behebt mehrere Inkonsistenzen in der API.

Precache-System

Der neue Aufruf Instance.Precache liefert ein CSPrecache-Objekt, mit dem Scripts das Laden von Assets präziser verfolgen können:

  • IsServerLoading / IsServerLoaded
  • IsClientLoading / IsClientLoaded
  • IsLoadedForAll
  • Release

Dadurch erhalten Map-Autoren mehr Kontrolle darüber, wann Assets auf Server und Client bereitstehen, bevor Gameplay-Events ausgelöst werden.

Geisel-Scripting

Eine neue CSHostage-Klasse macht den Geisel-Status direkt für Scripts zugänglich:

  • IsBeingPickedUp, IsBeingCarried, IsRescued
  • GetRescuer
  • GetPickUpStartTime / GetPickUpFinishTime

CSPlayerPawn.GetHostage verknüpft einen Spieler mit der Geisel, die er trägt. Zusätzlich gibt es neue Events für den gesamten Geisel-Lebenszyklus: OnHostagePickUpStart, OnHostagePickUpAbort, OnHostagePickUp, OnHostageDrop, OnHostageRescue und OnHostageKill. Damit lassen sich eigene geiselbasierte Spielmodi mit sauberem Scripted Feedback umsetzen.

Neuer Console-Export

Ein neuer Top-Level-Export namens Console bündelt den Zugriff auf Konsole und Convars:

  • GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor
  • SetConvar, das synchron ausgeführt wird und nicht durch sv_cheats eingeschränkt ist

Instance.Msg wurde in Console.Log umbenannt, und ClientCommand, ServerCommand sowie RegisterCheatCommand wurden von Instance zu Console verschoben. Die ursprünglichen Instance-Varianten funktionieren weiterhin, gelten aber als veraltet.

Neuer GameRules-Export

Ein neuer Top-Level-Export GameRules bündelt Runden- und Match-Steuerung:

  • StartWarmup / EndWarmup
  • GetTeamScore / AddTeamScore
  • TerminateRound

Mehrere bestehende Funktionen wurden ebenfalls von Instance hierher verschoben, darunter IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod, GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime und AddTeamMoney. Wie bei den Console-Änderungen bleiben die alten Instance-Zugänge nutzbar, sind aber veraltet.

HUD- und Radar-Updates

Zwei neue custom_hud_layout-Klassen, HUD_TEAMMENU_VISIBLE und HUD_CHAT_VISIBLE, geben Scripts mehr Kontrolle über die Sichtbarkeit von HUD-Elementen. Außerdem kann radar_element nun in jedem Spielmodus auf dem Radar erscheinen, nicht mehr nur im Rush-Modus.

Fehlerbehebungen und Verbesserungen

Das Update behebt außerdem mehrere Scripting-Bugs und bringt Komfortverbesserungen:

  • Unterstützung für GameRules.AddTeamMoney mit CSTeamMoneyReason.NONE plus Betrag hinzugefügt, zugehöriger Absturz behoben.
  • Abweichungen zwischen den Enums CSTeamMoneyReason und CSWeaponAttackType und ihren Definitionen in point_script.d.ts korrigiert.
  • CSRadarPoint.IsVisibleToTeam und CSObservablePoint.IsObservableForTeam gaben zuvor fälschlich Zahlen statt booleschen Werten zurück – das wurde behoben.
  • Protokollierte Warnungen enthalten nun den JavaScript-Call-Stack sowie Details zu ungültigen Argumentwerten; die Argumentzählung beginnt jetzt bei 0 statt bei 1.
  • Die Autovervollständigung für den Befehl map_workshop wurde verbessert.

Insgesamt geben diese Änderungen Community-Entwicklern tiefere und zuverlässigere Kontrolle über Spiellogik, Geisel-Mechaniken, HUD-Verhalten und Konsoleninteraktion über die Scripting-API.