Counter-Strike 2: aktualizacja z 24 sierpnia nie wpływa na Twoje rozgrywki — daje mapom społecznościowym interfejs, kamerę i możliwość anulowania podłożenia bomby
Źródło: Valve
Mapa

Counter-Strike 2: aktualizacja z 24 sierpnia nie wpływa na Twoje rozgrywki — daje mapom społecznościowym interfejs, kamerę i możliwość anulowania podłożenia bomby

Fabian Fabian Lainé
Obserwuj nas na

W skrócie

Aktualizacja Counter-Strike 2 z 24 sierpnia nie zmienia niczego w waszych rozgrywkach — zero zmian w broniach, grywalnych mapach czy rozgrywce. Otwiera jednak ogromne możliwości dla twórców: własne interfejsy na ekranie, kontrolę kamery bez przemieszczania gracza, a przede wszystkim możliwość przerwania trwającego podłożenia bomby. Mechaniki, które wydawały się niemożliwe, stają się rzeczywistością.

Valve wydało aktualizację Counter-Strike 2 24 sierpnia, i jeśli szukaliście informacji o tym, co zmienia w waszych rozgrywkach, odpowiedź brzmi: nic. Ani jednej zmienionej broni, ani jednej zmodyfikowanej mapy, ani jednej poprawki gameplayu. Wszystkie wpisy mieszczą się pod jednym nagłówkiem: MAP SCRIPTING.

Nie oznacza to jednak, że jest to aktualizacja bez znaczenia. Daje ona mapom społecznościowym dwie rzeczy, których wcześniej nie miały — własny interfejs i kontrolę nad kamerą gracza — i otwiera drzwi trybom gry, które do tej pory mogły istnieć wyłącznie poza Counter-Strike 2.

Oto, co zawiera ta aktualizacja i co to oznacza dla tego, co znajdziecie w Warsztacie w nadchodzących miesiącach.

Notatki do tej aktualizacji nie zostały opublikowane po polsku przez Valve. Fragmenty w cudzysłowie w tym artykule są naszym tłumaczeniem: nie są to oficjalne sformułowania z polskiego klienta gry.

Pierwsza nowość: mapy mogą wyświetlać własny interfejs

Valve dodaje jednostkę o nazwie custom_hud_layout, opisaną jako „punkt wejścia umożliwiający skryptowanym mapom dostarczanie niestandardowego interfejsu”.

To, na co pozwala, w dokładnych słowach z notatek:

  • cztery typy elementów: Panel, Label, Image i Button;
  • formatowanie w CSS;
  • zachowanie stanu podczas przeładowań w trybie narzędzi — udogodnienie dla twórców, a nie funkcja rozgrywki.

Do tej pory mapa społecznościowa, która chciała wyświetlić wynik, licznik czasu lub cel, musiała umieścić to w świecie 3D albo obejść istniejący interfejs. Teraz może zbudować prawdziwy interfejs na ekranie, z klikalnymi przyciskami — zdarzenie Instance.OnCustomHudClicked pojawia się w tej samej aktualizacji.

Ograniczenie, które warto uważnie przeczytać

Valve od razu stawia barierę: „Zdarzenia i skrypty po stronie klienta nie są obsługiwane”. Cała logika pozostaje na serwerze. Oznacza to, że te interfejsy nie będą mogły reagować natychmiastowo na lokalne działanie gracza: każda interakcja wymaga podróży w obie strony. Dla menu czy panelu informacyjnego nie ma to znaczenia. Dla elementu, który musi śledzić strzał co do milisekundy, nie będzie to odpowiednie.

Druga nowość: kontrola widoku bez przemieszczania gracza

Druga jednostka nazywa się cs_player_camera, a jej opis jest krótki, ale niesie poważne konsekwencje: „daje kontrolę nad widokiem gracza bez przemieszczania jego postaci”. Może być również „skonfigurowana tak, by pozwolić graczowi rozglądać się z zaskryptowanej pozycji”.

Innymi słowy: mapa może teraz przejąć kontrolę nad oczami gracza — scenka wprowadzająca, widok z góry, narzucona kamera obserwatora, statyczne ujęcie na cel — pozostawiając jednocześnie jego ciało w miejscu, w którym się znajduje. Towarzyszą temu trzy funkcje: CSPlayerCamera.IsEnabled, SetEnabled i SetIsControllingAngles.

To brakujący element dla całej kategorii treści: map narracyjnych, prowadzonych samouczków, trybów podzielonych na fazy. Można teraz pokazać coś graczowi bez teleportowania go.

Podkładanie bomby w Counter-Strike 2
Skrypty mapy widzą teraz początek i przerwanie podkładania bomby i mogą je anulować. Źródło: Valve

Blok bomby: cztery nowe obserwowalne momenty i możliwość anulowania

To najciekawsza część dla twórców trybów gry. Przed tą aktualizacją skrypt wiedział, że bomba została podłożona lub rozbrojona. Teraz wie, że podłożenie lub rozbrojenie zaczyna się i że jest przerywane:

  • Instance.OnBombPlantStart — podłożenie zaczyna się;
  • Instance.OnBombPlantAbort — podłożenie zostaje przerwane;
  • Instance.OnBombDefuseStart — rozbrajanie zaczyna się;
  • Instance.OnBombDefuseAbort — rozbrajanie zostaje przerwane.

Do tego dochodzą trzy funkcje związane z C4: C4.GetPlantStartTime, C4.GetPlantFinishTime oraz przede wszystkim C4.AbortPlant. Ta ostatnia niczego nie obserwuje: ona działa. Skrypt może przerwać trwające podłożenie bomby.

W praktyce umożliwia to zasady, które wcześniej nie istniały: strefa, w której podłożenie jest zabronione, odliczanie, które anuluje podłożenie po upływie czasu, cel do wykonania przed możliwością uzbrojenia bomby. To właśnie ten typ mechaniki odróżnia tryb gry od zwykłej mapy.

Wreszcie trzy funkcje dają skryptowi bezpośredni odczyt stanu gracza: CSPlayerPawn.GetC4 (kto niesie bombę), CSPlayerPawn.GetDefuseTarget (co rozbraja) oraz CSPlayerPawn.IsBuyMenuOpen (czy ma otwarte menu zakupów).

Przemieszczanie encji staje się kontrolowalne

Trzy dodatki uzupełniają zestaw: Entity.Move, Entity.GetMoveType, Entity.SetMoveType, wraz z nowym enumeratorem CSMoveType. Mapa może więc zmieniać sposób przemieszczania się obiektu w trakcie rozgrywki, a nie tylko go teleportować.

Do tego dodano Instance.Delay, który pozwala zaprogramować akcję z opóźnieniem bez ręcznego tworzenia timera, oraz Instance.IsDedicatedServer, który pozwala skryptowi sprawdzić, czy działa na serwerze dedykowanym czy lokalnie — przydatne do właściwego wyłączania elementów, które nie mają sensu offline.

Dwie deprecjacje: istniejące skrypty wymagają sprawdzenia

Aktualizacja usuwa dwa parametry:

  • planter zniknął z wydarzenia Instance.OnBombPlant;
  • defuser zniknął z wydarzenia Instance.OnBombDefuse.

To nie jest drobiazg: te dwa parametry identyfikowały gracza odpowiedzialnego za akcję. Każda mapa, która ich używała — do przypisania punktów, wywołania nagrody, wyświetlenia nazwy — musi zostać poprawiona. Nowe funkcje CSPlayerPawn.GetC4 i GetDefuseTarget zaspokajają tę potrzebę w inny sposób, ale trzeba przepisać odpowiedni fragment.

Komfort programowania, potraktowany lepiej niż zwykle

Cztery linijki dotyczą diagnostyki błędów i mówią coś o dojrzałości narzędzia:

  • błędy napotkane podczas pierwszego uruchomienia skryptu wyświetlają się teraz w konsoli;
  • nieobsłużone odrzucenia obietnic (promise) są tam również rejestrowane;
  • numer kolumny został dodany do błędów wykrywanych podczas kompilacji modułu;
  • typy kilku zdarzeń zostały poprawione, „tam gdzie parametry mogły być niezdefiniowane”.

Debugowanie, które przechodzi od ciszy do zlokalizowanego komunikatu o błędzie, robi więcej dla ilości publikowanej zawartości niż jakakolwiek nowa encja.

Co z tego powinien zapamiętać gracz

  1. Wasza dzisiejsza gra nic się nie zmienia. Żadna broń, żadna mapa, żadna ekonomia nie zostaje dotknięta tą aktualizacją.
  2. Mapy społecznościowe zyskają interfejsy. Wyniki, cele, klikalne menu: to, co było domowym prowizorką, staje się oficjalną funkcją.
  3. Możliwe staną się tryby gry z własnymi regułami, w szczególności dotyczące bomby, dzięki czterem nowym obserwowalnym momentom i możliwości anulowania podłożenia.
  4. Niektóre istniejące mapy przestaną działać do czasu, gdy ich autorzy zastąpią parametry planter i defuser.

Uwaga na temat języka

Valve zwykle tłumaczy swoje notatki aktualizacji na francuski: te z 19 sierpnia, dotyczące Bouldera, Poseidona i prędkości modeli przy ścianach, zostały opublikowane pod tytułem „Mise à jour de Counter-Strike 2”. Te z 24 sierpnia pozostały w języku angielskim, nawet dla gracza, którego klient jest ustawiony na francuski.

Nazwy jednostek i funkcji przywołane tutaj to identyfikatory kodu: nie są tłumaczone na żaden język i nie będą. Zapisuje się je tak, jak w skrypcie, i tak właśnie należy ich szukać.

Udostępnij ten artykuł

Co najbardziej was ekscytuje w tej aktualizacji?

Najczęstsze pytania

Czy ta aktualizacja zmienia coś w moich normalnych rozgrywkach?
Absolutnie nic. Zero zmian w broniach, mapach, ekonomii czy rozgrywce. To czyste skryptowanie dla twórców treści społecznościowych.
Co nowego będzie można robić z mapami?
Znacznie więcej: czyste interfejsy na ekranie, przerywniki filmowe bez teleportacji, a przede wszystkim tryby gry z własnymi zasadami dotyczącymi bomby. Rzeczy, które wcześniej wymagały hacków, stają się oficjalne.
Czemu niektóre mapy przestaną działać po tej aktualizacji?
Valve usunęło parametry planter i defuser z eventów związanych z bombą. Twórcy, którzy z nich korzystali, muszą przepisać swój kod, aby zamiast tego użyć nowych funkcji CSPlayerPawn.GetC4 i GetDefuseTarget.
Czy mogę reagować na kliknięcie przycisku interfejsu w czasie rzeczywistym?
Nie, cała logika pozostaje po stronie serwera — każda interakcja wymaga komunikacji w obie strony. Działa to bardzo dobrze w przypadku menu i paneli, ale odpada w przypadku elementów, które muszą śledzić strzał z dokładnością do milisekundy.
Czemu notatki nie są tym razem po polsku?
Valve pozostawiło je w języku angielskim. To wyjątek — zwykle są tłumaczone. Nazwy jednostek i funkcji w kodzie i tak nie są tłumaczone, niezależnie od języka klienta.

Najważniejsze informacje

  • Mapy społecznościowe mogą wreszcie wyświetlać własny interfejs na ekranie z klikalnymi przyciskami, zastępując wcześniejsze prowizoryczne rozwiązania 3D.
  • Skrypt może teraz kontrolować widok gracza bez jego przemieszczania, co otwiera drzwi do przerywników filmowych i prowadzonych tutoriali.
  • Bomba zyskuje cztery obserwowalne momenty (początek/przerwanie podłożenia i rozbrojenia) oraz możliwość przerwania trwającego podłożenia — to tworzy mechaniki rozgrywki niemożliwe wcześniej.
  • Skrypty wreszcie wiedzą, kto niesie bombę i kto ją rozbraja, ale trzeba przerobić mapy, które korzystały ze starych parametrów planter i defuser.
  • Debugowanie się poprawiło: błędy teraz się wyświetlają, zamiast bezgłośnie znikać w nicości.

Komentarze

Brak komentarzy. Bądź pierwszy i zabierz głos!

Dodaj komentarz

Najnowsze artykuły