StarCraft II

StarCraft II – aktualizacja PST 4.13.0

Blizzard Entertainment

AKTUALIZACJA EDYTORA

Z przyjemnością ogłaszamy dużą aktualizację edytora map StarCraft II!

Od czasu Wings of Liberty wasze opinie są jednomyślne: edytor powinien być łatwiejszy w obsłudze. Ta aktualizacja ma na celu zaradzić tej kwestii bez ograniczania możliwości narzędzia. W związku z tym zaimplementowaliśmy elementy z edytora Warcraft III zaprojektowane z myślą o łatwości obsługi bez poświęcania istniejących możliwości edytora StarCraft II i jeszcze bardziej rozszerzyliśmy jego możliwości.

Zachęcamy twórców map i modów do odkrycia nowych opcji i przesłania nam swoich opinii, ponieważ jak zawsze jesteśmy zainteresowani dodaniem jeszcze bardziej ekscytujących zmian w przyszłości. Jest to największa aktualizacja edytora, jaką kiedykolwiek wprowadziliśmy i bardzo zależy nam na poznaniu waszych opinii na jej temat! Poniżej znajdziecie przegląd niektórych spośród nowych, ekscytujących funkcji.

Zanim zaczniecie: koniecznie zapiszcie kopie zapasowe swoich map, zanim zaczniecie eksperymentować na PST.


Zbiór danych

  • Zbiór danych jest nowym rodzajem katalogu, który pozwala użytkownikowi na deklarowanie i grupowanie grupy elementów danych w postaci zbioru. Zbiór może być traktowany tak jak każdy inny pojedynczy element, taki jak jednostka, zdolność czy ulepszenie.
  • Podczas kopiowania, zmiany nazwy lub usuwania zbioru danych, edytor w inteligentny sposób zastosuje to samo działanie wszystkich elementów danych w zbiorze. Na przykład: podczas kopiowania zbioru danych, użytkownik zostanie poproszony o podanie nazwy dla nowego zbioru. Edytor następnie zduplikuje każdy wpis danych w zbiorze i nada mu odpowiednią nazwę oraz ustawi wszystkie powiązane pola w taki sposób, aby wszystkie nowe wpisy danych wskazywały na swoje nowe odpowiedniki.

  • Na przykład: skopiujcie zbiór Blizzard i ustawcie nazwę nowego zbioru danych na Activision Blizzard.
  • Usunięcie zbioru danych spowoduje usunięcie wszystkich wpisów danych w zbiorze.
  • Zmiana identyfikatora zbioru danych spowoduje również zmianę identyfikatorów wszystkich wpisów danych w zbiorze.
  • Wpisy danych w zbiorze danych mogą być ustawione na ręczne lub automatyczne uzupełnianie.
  • Zbiory danych wykorzystują nowy kluczowy znak „@” przy nadawaniu nazw pochodnym wpisom danych. System zbierania danych może automatycznie przeszukać cały katalog w celu znalezienia dowolnego wpisu danych, którego identyfikator zaczyna się od identyfikatora zbioru danych, po którym następuje znak „@”. Następnie system automatycznie doda taki wpis do zbioru.
  • Ze względu na tę powiązaną funkcjonalność, za każdym razem, gdy drzewko efektów danej zdolności zostanie zmienione, odpowiedni zbiór danych i jego wpisy danych zostaną automatycznie zaktualizowane.
  • Poniżej przedstawiono przykładowe dane wewnątrz automatycznie uzupełnionego zbioru danych:

    • Chociaż nie będą one automatycznie uzupełniane, to dane, które nie są zgodne z tą konwersją nazewnictwa, mogą być dodawane do zbioru danych ręcznie.
  • Menu: Zbiór danych -> Automatycznie uzupełnij zbiór danych automatycznie przeszuka cały katalog w celu znalezienia dowolnego wpisu danych, którego identyfikator zaczyna się od identyfikatora zbioru danych, po którym następuje znak „@”. Następnie system automatycznie doda taki wpis do zbioru.
  • Menu: Zbiór danych -> Automatycznie nazwij zbiór danych zmieni nazwę wpisów ze zbioru danych w oparciu o jego nazwę.
  • Zbiory danych pozwalają nam również na dodanie dodatkowych informacji o powiązaniach między wpisami. Na przykład: dzięki zbiorom danych gra może teraz zrozumieć informacje takie jak „jaki jest główny aktor tej jednostki?”.
  • Wiele innych funkcji w tej aktualizacji jest zależnych od tej funkcji zbierania danych.
  • Zbiory danych wymagają stosowania określonych konwencji lub wytycznych dotyczących kodowania do wykorzystania ich pełnego potencjału:
    • Wszystkie zbiory danych powinny być jak najbardziej odrębne.
    • Przykładowo „Zbiór zdolności” powinien działać za każdym razem, gdy dodajecie go do jednostki, a zdolność nigdy nie powinna być zakodowana tak, aby działała tylko u określonych jednostek lub jednostek z określoną bronią. Przykład dla przestrogi: w starej bazie danych SC2 istniała pasywna zdolność Promienia otchłani, która zwiększała obrażenia od długotrwałych ataków. Zdolność była w rzeczywistości fałszywa, a jej funkcjonalność została zakodowana w broni samego Promienia otchłani. Teraz, po wprowadzeniu zbiorów, mocno odradzamy takie niewłaściwe wykorzystanie danych. W związku z tym wprowadziliśmy wiele nowych funkcji opisanych poniżej.

„Tryb łatwy” edytora danych

  • „Tryb łatwy” edytora danych to rozszerzona funkcja zbiorów danych. Po jej włączeniu edytor danych będzie pokazywał zbiory i kopiował je tylko tak, jakby były pojedynczymi „danymi zdolności”, „danymi przedmiotu”, „danymi pozycji” lub „danymi ulepszenia” itp. Możecie kopiować, usuwać, lub zmieniać nazwę tych danych tak, jakby były one pojedynczymi obiektami.
  • Tryb ten jest dostępny tylko w widoku tabeli. Łączy on w sobie najważniejsze pola danych, takie jak punkty życia jednostki (Unit HP) lub dane obrażeń od zdolności (Ability Damage).
  • Pola wyświetlane w trybie łatwym są w pełni konfigurowalne dla każdego typu zbioru danych.
  • Jedną z największych skarg większości twórców map na edytor SC2 jest zbytnie skomplikowanie procesu duplikowania jednostek i zdolności. Jest to największa zaleta edytora War3 w porównaniu z SC2.
    • Naszą odpowiedzią na problem jest połączenie zbiorów danych i trybu łatwego.
    • W przyszłości będziemy chcieli tworzyć więcej danych w oparciu o zbiory, aby użytkownikom łatwiej się z nimi pracowało.
  • Zachęcamy twórców do tworzenia własnych modów ze zbiorami danych, aby mogli czerpać z nich korzyści. Zachęcamy również twórców publicznych modów do zdefiniowania widoku w trybie łatwym tak, aby inni mogli łatwo zmieniać i modyfikować istniejące mody.

Kumulatory

  • Kumulatory to nowa funkcja, która pozwala twórcom map na tworzenie formuł opartych na różnych parametrach wejściowych.
  • Kumulatory mogą przyjmować niestandardowe wartości jednostek i dane użytkownika jako parametry.
  • Kumulatory obsługują nie tylko formuły, ale także tabele definiowane przez użytkownika. W połączeniu z weryfikatorami kumulatory mogą być również wykorzystywane do zapewnienia funkcjonalności instrukcji wyboru.
  • Przykładowo, kiedy kumulator jest używany w zachowaniu, które ma różne poziomy i może być wykorzystane przez wielu graczy, kumulator obliczy wynik dla każdego z graczy z osobna.
  • Kumulatory są bardzo uniwersalne i mogą być używane w wielu miejscach. Przykłady to: obrażenia, tempo leczenia, regeneracja życia, redukcja obrażeń, koszt zdolności, premia do pancerza, liczba aktorów, liczba stałych, liczba zachowań, czas działania zachowań, ułamek obrażeń, szybkość ataku, szybkość ruchu, regeneracja sił życiowych, modyfikacja sił życiowych, szansa na zachowanie itd.
  • Nowy token parsowania ciągów: $AccumulatedValue:xxx$
    • Token ten można wykorzystać do obliczania AccumulatedValue (skumulowanej wartości) w IU. Przykładowo:
      • Token ten można wykorzystać do obliczania AccumulatedValue (skumulowanej wartości) w IU, na przykład:
        • Ściąga fale lodowatych odłamków ("d ref="$AccumulatedValue:Effect,JainaBlizzardPersistent,PeriodCount$"/>"). Każda fala zadaje obrażenia jednostkom znajdującym się na danym obszarze.

Reakcja na poziomie gracza

  • Player Response (Reakcja gracza) to nowy katalog danych, który pozwala użytkownikom na definiowanie wzorców odpowiedzi, gdy coś się stanie dla wyposażonego gracza. Projektanci mogą używać wyzwalaczy, aby wyposażyć określonych graczy w te wzorce odpowiedzi, a jednostki gracza będą reagować na zarejestrowane zdarzenia tak, jakby wszystkie miały zachowania reakcji na obrażenia.
  • Użytkownicy mają możliwość ustawienia priorytetu i metod spadku dla reakcji graczy.
  • Reakcja na poziomie gracza eliminuje potrzebę stosowania określonych zachowań dla wszystkich przy tworzeniu dowódców, co znacznie poprawia wydajność gry. Ponadto, ponieważ reakcje trzeba wyposażyć tylko wtedy, gdy odpowiadający im dowódca odpowiada, gra nie musi już za każdym razem przetwarzać danych o zapobieganiu śmierci wszystkich dowódców.
  • Reakcja gracza nie jest już ograniczona do zachowań reakcji na obrażenia typu „Jednostka otrzymuje obrażenia”. Przykładowo może również reagować na pojawianie się gracza, pojawianie się jednostki, śmierć jednostki gracza itp.

Niesegmentowany pasek stanu

  • Działanie wyzwalacza: UI - Override Player Option (IU – Opcja unieważniania dla gracza) pozwala teraz twórcom map na zmianę stylu domyślnych pasków stanu na bardziej liniowy i niesegmentowany. Jest to przydatne dla niestandardowych modów, które wymagają dokładniejszego wyświetlania stanu sił życiowych.

Zaktualizowane dane dla moda zasobów War3 Asset Mod

  • W lutym 2015 roku wydaliśmy War3 Asset Mod. Choć pakiet zawierał tylko zasoby, wielu moderów chciało się nauczyć jak tworzyć zdolności RPG w stylu War3 za pomocą edytora SC2. Przy tak dużej liczbie zmian edytora w tej aktualizacji, chcielibyśmy zapewnić moderom kilka przykładów tych wszystkich nowych funkcji.
  • Współpracowaliśmy z twórcą moda społecznościowego, „Renee's Warcraft III Mod”, aby odtworzyć go z wszystkimi nowymi funkcjami edytora.
  • Teraz oficjalny mod zasobów War3 zawiera cały zestaw danych roboczych, które obejmują rasy, jednostki, budowle i zdolności. Mamy nadzieję, że te przykłady pomogą moderom.

Ruch w formacji

  • StarCraft II obsługuje teraz ruch w formacji, który może być włączany/wyłączany dla każdego gracza poprzez wyzwalacze.
  • Jednostki mogą poruszać się i atakować w formacji kwadratowej z predefiniowanym odstępem.
  • Obecnie ruch w formacji nie zmusza wszystkich jednostek do utrzymywania tej samej szybkości ruchu, w przeciwieństwie do wersji War3.
  • Moderzy mogą zmieniać dane i dostosować zachowanie do własnych potrzeb.

Ścieżkowanie na wodzie

  • StarCraft II obsługuje teraz ścieżkowanie na wodzie!
  • Nowe typy ścieżkowania: Shallow Water (płytka woda) i Deep Water (głęboka woda).
  • Nowe tryby ścieżkowania: Float (unoszenie się) i Amphibious (wodnolądowy).
  • Jednostki naziemne mogą poruszać się po ziemi i płytkiej wodzie.
  • Jednostki unoszące się mogą poruszać się po płytkiej wodzie i głębokiej wodzie.
  • Jednostki wodnolądowe mogą poruszać się po ziemi, płytkiej wodzie i głębokiej wodzie.
  • Jednostki latające mogą poruszać się wszędzie tam, gdzie nie ma blokad ścieżek powietrznych.
  • Te dwa nowe typy ścieżkowania można stosować wyłącznie pędzlem w edytorze terenu.

Wielowarstwowe klify

  • StarCraft II obsługuje teraz do 15 warstw klifów (wcześniej 3).

Przeprojektowany system ulepszeń

  • To ważna część systemu zbioru danych i nowego systemu dowódców.
  • Stary system ulepszeń nie mógł być odrębny – co nie pasowało do nowej filozofii zbiorów danych – ponieważ ulepszenia określały zdolności lub jednostki, na które miały wpływ, wraz z odpowiadającymi im efektami.
  • Nowy system pozwala na większą odrębność ulepszeń. Jednostki muszą teraz deklarować, jakich ulepszeń używają, zamiast pozwalać, aby ulepszenia definiowały objęte nimi jednostki. Przykładowo ulepszenia nie powinny już działać tak: „Zwiększa życie marines o 10 pkt.", a raczej tak: „Zwiększa życie każdej jednostki, która je wykorzystuje o 10 pkt.".
  • Nowe pole CUpgrade: EffectArrayTemplate
    • To pole jest podobne do starego EffectArray z następującymi wyjątkami:
      • Obsługuje dwa dodatkowe tokeny:
        • ^ParamId^: identyfikator dowolnego zbioru danych, który wykorzystuje ulepszenie.
        • ^ParamLevel^: bieżący poziom ulepszenia.
      • Obsługuje odniesienia do danych i stosowanie arytmetyki. Używajcie nawiasów, „{” i „}”, aby tworzyć wzory tak jak w edytorze tekstu.
      • Zbiory danych już teraz zachęcają moderów do nazywania wszystkich powiązanych danych według określonej konwencji, dzięki czemu twórcy mogą łatwo używać ^ParamId^ do wpisów danych związanych z jednostką korzystającą z nich.
      • Przykładowo:
        • EffectArrayTemplate Reference="Effect,^ParamId^@Weapon,Amount" Value="{DataCollection,^ParamId^,UpgradeInfoWeapon.DamagePerLevel+3}"/
        • To ulepszenie zwiększy ilość obrażeń zadawanych przez jednostkę, która go używa, o wartość z pola UpgradeInfoWeapon.DamagePerLevel plus trzy.
        • W kolumnie wartości można umieścić stałą liczbę, np. wartość=„4”.
  • Stare pola CUpgrade nadal istnieją i pozostają funkcjonalnie takie same, więc wszystkie stare ulepszenia wciąż działają. Możecie dalej tworzyć ulepszenia w starym stylu, ale nie jest to zalecane.
  • Obsługa ulepszeń wszystkich jednostek
    • Ponieważ niektóre ulepszenia są zaprojektowane, aby działały dla wszystkich jednostek (określonego typu), CUpgrade posiada teraz flagę, która pozwala na wyliczenie wszystkich jednostek zbioru danych.
    • Do CUpgrade dodano również dwa pola filtrów: EnumExcludedUserFlags oraz EnumRequiredUserFlags, które umożliwiają ulepszeniom filtrowanie wszystkich jednostek ze zbioru danych w oparciu o ich flagi.
  • Nowe działania ulepszeń: AddBaseMultiply oraz SubtractBaseMultiply
    • Te działania modyfikują pole docelowe na podstawie jego domyślnej wartości zamiast na podstawie jego bieżącej wartości, co jest na ogół bardziej użyteczne niż operacja Multiply (mnożenie). Na przykład, jeśli macie 100 poziomów ulepszenia zwiększającego żywotność jednostki o 10%, prawdopodobnie chcecie, aby żywotność rosła o stałą liczbę na każdym poziomie, a nie za każdym razem mnożyła się przez żywotność ostatniego poziomu. Ponadto Add/SubtractBaseMultiply obsługuje osłabienia technologiczne, ponieważ może wycofać się samoczynnie w dowolnym momencie, w przeciwieństwie do Multiply.
  • Ulepszenia mogą być teraz używane do włączania i wyłączania jednostek graczy.
  • Nowe pole CWeapon: Rate Multiplier (mnożnik tempa)
    • Domyślna wartość to 1.
    • Gdy gra próbuje pozyskać opóźnienie działania broni lub efektu, bierze pod uwagę ten mnożnik.
    • Zmiana ta pozwala na ulepszanie szybkości działania broni procentowo, zamiast konieczności bezpośredniej zmiany.

System Kul (plus Wielostrzał i Uderzenie Krytyczne)

  • Kule (Orbs) to modyfikatory ataku, które są ważnym elementem gatunku MOBA.
  • System reakcji na obrażenia w StarCraft II może być używany do tworzenia Kul, ale reakcja na obrażenia i modyfikatory ataku w rzeczywistości bardzo się różnią.
  • Większość starych umiejętności opartych na Kulach w SC2 nie pasuje do tradycyjnej definicji sposobu ich działania, ponieważ są one wbudowane w broń; nie można ich łatwo i dowolnie dodawać lub usuwać. Tak więc, jeśli chcecie stworzyć przedmiot typu Kula, nierealistyczne byłoby wbudowanie jego efektów do wszystkich broni bohatera w grze.
  • Nasz zaktualizowany system Kul jest rozszerzoną wersją standardowych systemów z gier MOBA i obejmuje Wielostrzał oraz Uderzenie Krytyczne.
  • Prawdziwy system Kul wymaga następującej funkcjonalności:
    • Możliwość zastosowania jego efektów do systemów uzbrojenia dla każdego ataku.
    • Możliwość modyfikacji pocisków.
    • Możliwość dodawania efektów specjalnych, gdy broń uderza w cel, np. ogień, mróz, zastosowanie zachowania itp. Powinien również być w stanie zastosować efekty zarówno przed jak i po uderzeniu.
      • Przykładowo zdolność Mroczna Strzała wymaga, aby Kula zastosowała osłabienie celu, a ono z kolei robi coś (ożywia szkielet), gdy cel zostanie zabity. Jeśli system Kul pozwalałby zastosować efekty dopiero po uderzeniu, jednostka mogłaby zostać zabita przez uderzenie, a szkielet nie ożyłby.
      • Innym przykładem działania Kul jest zdolność Kartacze. Ponieważ zadaje ona dodatkowe obrażenia obszarowe w oparciu o obrażenia od pierwotnego ataku, to dodatkowe obrażenia obszarowe muszą pojawić się po uderzeniu, ponieważ najpierw należy wygenerować losowe pierwotne obrażenia.
    • Kiedy zaczyna się zamach bronią, modyfikator ataku zapewniany przez Kulę musi zostać zarejestrowany jeszcze przed uruchomieniem efektu ataku. Pozwala to jednostkom na odtwarzanie specjalnych animacji ataku, np. Uderzenia Krytycznego.
    • Kule muszą być w stanie stosować stałe premie do obrażeń od ataków.
    • Kule powinny mieć możliwość weryfikacji swoich efektów, np. umiejętności Grzmotnięcie i Uderzenie Krytyczne, które nie aktywują się na jednostkach sojuszniczych.
  • Nowa flaga efektu: MainImpact
    • Gdy flaga jest włączona, oznacza ona efekt jako główny efekt trafienia drzewka efektów broni, dzięki czemu modyfikatory ataku wiedzą, kiedy uruchomić efekty modyfikujące.
  • Nowy typ zachowania: CBehaviorAttackModifier
    • Po zastosowaniu modyfikatory zaczną działać razem z bronią. Będzie to mieć zastosowanie dla całego drzewka efektów ataku.
    • Pole Chance (szansa) określa szansę modyfikatora ataku, obliczaną dla każdego ataku.
    • Dodawanie wielu modyfikatorów do jednostki. Pole Unique Id (unikalny identyfikator) pozwala użytkownikom określić, czy wszyscy mogą działać w tym samym czasie. W War3 może wystąpić tylko jeden efekt Kuli, nawet jeśli bohater wyposażył się w ich wiele. Jednak moderzy prawdopodobnie nadal będą chcieli mieć możliwość pracy z kilkoma Kulami jednocześnie.
    • Pole Stack Max (maksymalna kumulacja) określa, ile razy można kumulować premie do obrażeń.
    • Pola Damage Bonus (premia do obrażeń) określają, czy są to premie stałe czy zmienne. Pola te obsługują również kumulatory.
    • Pola Validator (weryfikator) określają, czy modyfikatory będą działać na określonych celach ataku. Na przykład prawdopodobnie nie chcielibyście, aby Uderzenie Krytyczne zadziałało, gdy atakujecie własne jednostki.
    • Pole PreImpactEffect (wstępny efekt trafienia) wywoła efekt zanim dojdzie do trafienia.
    • Pole DamageInheritEffect (efekt dziedziczenia obrażeń) uruchamia efekt po wystąpieniu trafienia, powodując dziedziczenie obrażeń od uderzenia w następującym drzewku efektów. Efekty te pozwalają użytkownikom na stworzenie efektu Łańcucha Błyskawic lub na zadawanie obrażeń obszarowych w oparciu o obrażenia od trafienia.
    • Może określać, czy atak chybi. Patrz sekcja System chybień/odbić/blokowania.
    • Flaga Hallucination Visual Only (tylko grafika halucynacji) pozwala moderom określać, czy modyfikator ataku zastosuje efekt Kuli, jeśli używający jest halucynacją. Jeśli używający jest halucynacją, prawdopodobnie nie chcielibyście, aby zadawała ona obrażenia obszarowe i wskrzeszała szkielety zmarłych. Mimo to niektórzy moderzy mogą chcieć użyć tej opcji.
      • Dzięki tej fladze modyfikator ataku będzie nadal stosowany do drzewka ataku, dzięki czemu jednostka używająca nadal może podrobić animację ataku krytycznego i rzucić zmodyfikowany pocisk. Atak nie spowoduje jednak zastosowania prawdziwego efektu Kuli w momencie trafienia.
    • Pola MultishotEffect (efekt Wielostrzału) i MultishotSearchPattern (wzorzec wyszukiwania Wielostrzału) pozwalają użytkownikom na uruchomienie efektu Wielostrzału dla każdego celu we wzorcu wyszukiwania, jeśli Chance (szansa) zwróci wartość True (prawda) i wszystkie weryfikatory zostaną potwierdzone. Jeśli pole MultishotEffect nie jest ustawione, efekt zostanie cofnięty do oryginalnego efektu broni ataku.
    • Może również określić, czy cele Wielostrzału również uzyskają efekty trafienia.
    • Może aktywować broń według indeksu, dzięki czemu bohaterowie walczący w zwarciu posiadający Kulę mogą użyć swojej ukrytej broni do atakowania celów powietrznych.
    • Po zastosowaniu do ataku, modyfikator może uzupełnić warunek aktora WeaponModifier (modyfikator broni) w zdarzeniu WeaponStart (aktywacja broni), dzięki czemu system aktorów może odtwarzać różne animacje ataku w oparciu o aktualnie działające modyfikatory ataku.
    • Posiadaj flagę „IsCritical”. Po wyborze tej opcji atak może zostać oznaczony jako krytyczny, co pozwala wyzwolić wiadomość dla aktora i uzupełniać wiadomości SetText i SetTextlocalized o wielkości obrażeń. Dzięki temu moderzy mogą tworzyć opisy trafień krytycznych.
  • Nowy typ zdolności: CAbilAttackModifier
    • CBehaviorAttackModifier może obsłużyć większość zdolności typu Kula, ale dla niektórych, takich jak Gorejące Strzały Kapłanki Księżyca, zdolność typu Kula nadal potrzebuje powłoki, aby włączyć i wyłączyć automatyczne użycie.
    • CBehaviorAttackModifier to powłoka CBehaviorAttackModifier, umożliwiająca dodanie powłoki automatycznego/ręcznego użycia do zdolności Kuli.
    • Może ustawić koszt modyfikatora, tak aby za każdym razem, gdy zdolność Kuli jest używana, zużywała zasoby lub siły życiowe.
    • Posiada własność poziomu, dzięki czemu może być awansowana przez zdolność „Opracuj” u bohatera.
  • Nowy typ aktora: CActorActionOverride
    • Używany do obchodzenia grafiki pocisków, trafień i obrażeń CActorAction.
    • Posiada pola Damage Model, Impact Model i Missile Model do ustawiania obchodzących odnośników modeli.
    • Gdy CActorAction zostanie zainicjowany, uruchamia zdarzenie ActionInitModifier.
    • CActorActionOverride może uchwycić to zdarzenie i stworzyć się w zakresie CActorAction. Następnie może użyć ActionOverrideApplyTo, aby zastosować się do CActorActions.
    • CActorAction pobierze dane z CActorActionOverride i unieważni jego modele ataku.

Obsługa dynamicznych zdolności

  • Moderzy mogą teraz używać wyzwalaczy do dodawania lub usuwania zdolności jednostek.

Zamiana zdolności

  • Nowa funkcja: UnitAbilityChangeLink()
    • Funkcja ta pozwala użytkownikom przenieść istniejącą zdolność jednostki na inną jednostkę, zachowując jej stare stany naładowania, odnowienia i poziomu.
    • Różni się od Catalog Replacement tym, że działa dla każdej zdolności z osobna.
    • Dodaliśmy również nowe pole Ability Replace w sekcji Power User Type Behavior, które udostępnia wersję danych tej funkcji.
    • Może zamieniać tylko zdolności z tą samą klasą CAbil, co stara zdolność. Na przykład zdolność wymagająca celu może być zamieniona tylko zdolność wymagającą celu.
    • Wersja danych Ability Swap wpłynie również na zdolności bohaterów, które są do opracowania.

Passing Struct Reference w graficznym interfejsie wyzwalaczy

  • Funkcje i czynności wyzwalające mogą teraz definiować typy rekordów jako parametry.
  • Zmienne rekordów mogą być teraz przekazywane do funkcji i działań jako parametr poprzez odniesienie.
  • Parametry rekordów mogą być odczytywane i modyfikowane. Modyfikacje będą miały wpływ na zmienną rekordu poza zakresem funkcji.

Nowe API wyzwalaczy: Data Table Instance (Instancja tabeli danych)

  • Działa tak samo jak tabele danych, z tą różnicą, że można mieć wiele instancji, zliczać ich wartości i kopiować wartości między tabelami danych.
  • Stara tabela danych jest pojedynczą, globalną tabelą danych. Dodanie wersji instancyjnej pozwoli projektantom lepiej porządkować dane dotyczące czasu działania.

Obchodzenie opisów przedmiotów/zdolności dla jednostek/przedmiotów

  • Nowe funkcje natywne: UnitSetInfoButtonTooltip, UnitClearInfoButtonTooltip
  • Pozwalają użytkownikom na obchodzenie opisów przycisków komend.
  • Akcja wyzwalacza „Set” wymaga trzech parametrów: jednostki/przedmiotu, który jest modyfikowany, klucza modyfikującego i wynikającego z niego tekstu opisu.
  • Klucz modyfikacji akceptuje trzy różne formaty, co pozwala na trzy sposoby dostosowania opisów komend:
    • Obchodzenie opisów komend przez AbilCmd.
      • Kluczem byłby tu AbilCmd, np. „Stimpack,0”.
    • Obchodzenie opisów komend przez przycisk odnośnika
    • Kluczem byłby tu identyfikator przycisku, np. Marine.
    • Obchodzenie opisów przedmiotów samej jednostki
      • W tym przypadku za klucz wystarczy „@”.
  • Działa nawet jeśli panel komend jest obchodzony, aby wyświetlić panele innych jednostek.

Obsługa strzałów mierzonych

  • StarCraft II obsługuje teraz strzały mierzone!
  • Nowe pole flagi Launch Missile Effect: SearchFlags (wyszukiwanie flag)
    • Nowa flaga Launch Missile Effect Search: DynamicSearchArea (dynamiczny obszar wyszukiwania).
      • Umożliwia wyszukiwanie strzałów mierzonych. Bez tego zwraca normalny pocisk.
    • Nowa flaga Launch Missile Effect Search: ArriveOnSearchHit.
      • Konfiguruje to, czy pocisk strzału mierzonego trafia cel, czy też przebija go. Patrz poniżej.
  • Nowe pola Launch Missile Effect:
    • SearchHitArriveEffect (wyszukiwanie efektu trafienia)
      • Działa tylko wtedy, gdy ArriveOnSearchHit jest włączone. Ten efekt aktywuje się, gdy pocisk wybuchnie przez trafienie w cel.
      • Uwaga: efekt ten zostanie uruchomiony w końcowym punkcie poszukiwań przed zniszczeniem pocisku, a nie w jego punkcie docelowym. Funkcjonalność ta jest podobna do efektu końcowego.
    • SearchEffect (wyszukiwanie efektu)
      • Pocisk uruchomi ten efekt w każdej pętli gry, obchodząc parametr Height (wysokość) w obszarze wyszukiwania na podstawie aktualnej prędkości pocisku. Zasadniczo nie pozostawia luk pomiędzy wyszukiwaniami.
      • Uwaga: cheat TVE wyświetli nieprawidłową domyślną wysokość zamiast prawidłowej wysokości efektu obchodzenia wyszukiwania.
    • SearchMaxCount (maksymalna liczba wyszukań)
      • Oznacza maksymalną liczbę wyszukiwań podczas całego czasu podróży pocisku, a nie maksymalną liczbę wyszukiwań dla każdego pojedynczego przypadku. Pocisk przestanie wyszukiwać po znalezieniu liczby celów podanej w SearchMaxCount.
      • Gdy funkcja SearchMaxCount zostanie osiągnięta, a ArriveOnSearchHit nie jest ustawiona, pocisk będzie kontynuował podróż do celu, ale nie będzie już wykonywał wyszukiwania strzałów mierzonych.
      • Gdy funkcja SearchMaxCount zostanie osiągnięta, a ArriveOnSearchHit jest ustawiona, pocisk eksploduje i uruchomi efekt SearchHitArriveEffect w ostatnim punkcie wyszukiwania. Uwaga: nie jest to cel pocisku, ponieważ nie osiągnął on punktu docelowego.
      • Jeśli funkcja SearchMaxCount jest równa 0, a ArriveOnSearchHit jest ustawiona, pocisk nie ograniczy maksymalnej liczby wyszukiwań. Tak długo, jak jeden z efektów wyszukiwania znajdzie cel, pocisk detonuje i uruchomi efekt SearchHitArriveEffect w swoim ostatnim punkcie wyszukiwania.

Usprawniony system bohaterów

  • Nowa klas CUnit (CJednostka): CUnitHero (CJednostkaBohater)
  • Pięć nowych pól (w porównaniu do CUnit):
    • MainAttribute (atrybut główny):
      • Pojedyncze łącze zachowania, które jest stosowane/niestosowane automatycznie przy tworzeniu/przekształcaniu jednostki.
      • Nie różni się od normalnego pola zachowania. Jednak użycie go jako pojedynczego pola pozwala na łatwe odczytanie go za pomocą funkcji katalogowej w celu określenia głównego atrybutu bohatera.
    • MainAttributeDamageBonus (premia do obrażeń głównego atrybutu)
      • Pole to określa, jaką premię do obrażeń od ataku otrzymuje jednostka bohaterska za każdy punkt głównego atrybutu.
    • AttributePointsInfoArray (tabela informacyjna punktów atrybutów):
      • Ustawia punkty atrybutów początkowych i awansu bohatera w oparciu o jego aktualny poziom. Ustawia tylko punkty atrybutów: nie stosuje zachowania atrybutu, jeśli bohater jeszcze go nie posiada.
    • LearnInfoArray (tablica informacyjna opracowywania)
      • Wykorzystuje tę samą strukturę co CAbilLearn_LearnInfo. Jeśli któryś z indeksów ustawi łącze zdolności, to zastąpi on odpowiednie informacje o umiejętności opracowania zdolności bohaterka. W rezultacie nie będziecie już musieli tworzyć osobnych zdolności do opracowania dla różnych bohaterów.
      • Przycisk komendy dla Learn Info może być również generowany automatycznie, gdy flaga „Create Default Button” (stwórz domyślny przycisk) jest ustawiona.
    • TierRequirements (wymagania poziomowe)
      • Pole to jest nadrzędne w stosunku do wymagań technologicznych CAbilTrain (CZdolnośćOpracuj), gdy zdolność jest używana do szkolenia bieżącej jednostki bohaterskiej i istnieje już więcej niż jeden alias technologiczny bieżącej jednostki bieżącego gracza.
  • Nowa flaga CAbilityRevive (CZdolnośćOżyw): Override Alert Icon (ikona alertu o obejściu)
    • Kiedy gracz ożywia bohatera zdolnością CAbilRevive z włączoną ikoną alertu o obejściu, zdolność ta ustawi ikonę alertu na CAbilRevive zamiast ikony jednostki bohaterskiej.
  • Dodano nowe funkcje natywne:
    • TechTreeSetProduceCap (ustaw limit produkcyjny drzewka technologicznego)
    • TechTreeGetProduceCap (pobierz limit produkcyjny drzewka technologicznego)
      • Funkcje te mogą być wywoływane przez wyzwalacze w celu ustalenia limitu technicznego w oparciu o jednostki, ulepszenia, zdolności, zachowania lub efekty.
      • Mogą być również użyte do dostosowania limitu szkolenia bohaterów.
  • Base Attribute Points (podstawowe punkty atrybutów) i Bonus Attribute Points (premiowe punkty atrybutów)
    • Zachowania atrybutów dla CHeroUnit mają teraz dwie różne wartości punktowe: Base (bazowe) i (Bonus) premiowe.
    • Startowe i awansowe punkty atrybutów bohatera (konfigurowane w AttributePointsInfoArray) będą liczone jako wartość bazowa, podczas gdy inne zmiany punktów, takie jak premie od zachowania, będą liczone w wartości premiowej.
    • W panelu informacyjnym jednostki bazowe punktów atrybutów będą wyświetlane jako biała liczba, podczas gdy premiowe punkty atrybutów jako zielona liczba (+X).
    • Premie dodawane przez bazowe punkty atrybutów nie są już wyświetlane jako zielone liczby (+X). Zamiast tego zostaną one dodane do bazowych pól obrażeń od ataku/pancerza/szybkości broni.
    • Atrybuty dodane przez wzmocnienia lub przedmioty będą nadal wyświetlane jako zielone liczby (+X).
    • Nowe flagi CEffectApplyBehavior (CEfektZastosujZachowanie):
      • SetAttributePoints (ustaw punkty atrybutów): kiedy ta flaga jest zaznaczona, efekt ustawi punkty atrybutów dla zachowania atrybutu.
      • SetAttributeBasePoints (ustaw bazowe punkty atrybutów): kiedy ta flaga jest zaznaczona, zmodyfikuje bazowe punkty atrybutów zamiast premiowych.
  • Dodano nowe pole CabilTrain (opracuj zdolność): IgnoreUnitCostRequirements (ignoruj wymagania kosztowe jednostki)
    • Po ustawieniu zdolność szkolenia będzie ignorować koszt jednostki, o ile spełnione są wymagania technologiczne.
    • Może być wykorzystane do wdrażania specjalnych mechanik gry, np. darmowego pierwszego bohatera.
  • Usprawnienia podmenu opracowywania zdolności
    • Nowa flaga Learn Ability (opracuj zdolność): ClearSubmenuOnPointsSpent (czyść podmenu po wydaniu punktów)
      • Po ustawieniu, jednostka korzystająca z tej zdolności automatycznie wyłączy swoją kartę komend w podmenu po wydaniu wszystkich swoich punktów umiejętności.
    • Nowa flaga Learn Ability: HideSubmenuOnLearnedAll (ukryj podmenu po opracowaniu wszystkiego)
      • Po ustawieniu przycisk opracowywania zdolności w podmenu będzie ukrywany, kiedy jednostka korzystająca z tej zdolności nauczy się wszystkich możliwych zdolności.
    • Naprawiono błąd, który powodował, że gdy wszystkie punkty zostały wydane, przycisk „Wymagany poziom:” był wyświetlany jako czerwony tekst, nawet jeśli jednostka spełniała wymogi.
    • Naprawiono błąd, który powodował, że gracze mogli czasami użyć klawisza Shift do pominięcia wymogów dotyczących poziomu podczas opracowywania zdolności.
  • Dodano nowy wymóg stanu jednostki: QueuedOrBetterOrRevivable (w kolejce lub lepiej lub do wskrzeszenia)
    • Przy liczeniu jednostek technologicznych będzie to dotyczyło bohaterów wskrzeszających i możliwych do wskrzeszenia.
    • Jest to bardzo przydatne przy wprowadzaniu ograniczeń w szkoleniu bohaterów. Na przykład, jeżeli istnieją ograniczenia typu „Nie możesz wyszkolić więcej niż 3 bohaterów”, prawdopodobnie nie chcecie, aby zliczano tylko żywych bohaterów.
  • Hero Level (poziom bohatera) i XP Formula (formuła PD)
    • Nowe pole CBehaviorVeterancy (CZachowanieWprawa): Levels (poziomy)
      • Ustawia maksymalny poziom bohatera.
      • Pole to może być również ulepszane, co pozwala moderom na zmianę maksymalnego poziomu umiejętności w czasie rzeczywistym.
      • Pole to ma wartość domyślną 0, co powoduje, że system poziomów będzie znów działał tak, jak wcześniej.
    • Nowe pola CBehaviorVeterancy:
      • MinVeterancyXPBonusPerLevel (minimalna premia do PD na poziom za wprawę)
      • MinVeterancyXPPreviousValueFactor (czynnik poprzedniej wartości minimalnej premii do PD)
      • MinVeterancyXPLevelFactor (czynnik poziomu wartości minimalnej premii do PD)
      • Jeśli rozmiar VeterancyLevelArray (tabeli poziomu wprawy) jest mniejszy niż liczba w polu Levels (poziomy), gra automatycznie wygeneruje minimum PD dodatkowych poziomów w oparciu o te czynniki.
      • Zastosowany wzór jest następujący, gdzie X jest poziomem, a F(X) stanowi minimalne PD poziomu:
        • F(X) = F(X-1) * MinVeterancyXPPreviousValueFactor + MinVeterancyXPLevelFactor * X + MinVeterancyXPBonusPerLevel
      • Używane tylko wtedy, gdy poziom X jest większy niż rozmiar VeterancyLevelArray. W przeciwnym razie minimum PD zostanie pobrane bezpośrednio z tabeli VeterancyLevelArray.
  • XP Receiving Fraction based on Target Type (ułamek otrzymywanych PD w oparciu o typ celu)
    • Nowe pole CBehaviorVeterancy: XPReceiveFraction (otrzymaj ułamek PD)
      • To pole jest tabelą strukturalną, która pozwala użytkownikom określić docelowy filtr i wartość ułamka kumulatywnego dla każdej tablicy.
      • Za każdym razem, gdy bohater otrzyma PD, gra sprawdzi filtry docelowe na jednostce ofiary i zastosuje ułamek PD, jeśli ofiara pasuje do któregoś z tych filtrów.
      • W połączeniu z kumulatorami użytkownicy będą mogli łatwo tworzyć formuły PD takie jak „Wezwane jednostki przyznają połowę XP” lub „Bohaterowie zyskują zredukowane PD od stworów w oparciu o aktualny poziom postaci”.
  • Dodano nowy weryfikator: CValidatorUnitCompareAbilSkillPoint (CWeyrfikatorJednostkaPorównajZdolnośćPunktyZdolności)
    • Sprawdza punkty umiejętności jednostki: wykorzystane, niewykorzystane, dodatkowe lub ich sumę.

Usprawnienia systemów przedmiotów i ekwipunku

  • Systemy przedmiotów są niezbędne w grach RPG i cieszymy się, że możemy zapewnić wyższy poziom ich obsługi w edytorze.
  • Obsługa tworzenia budowli dzięki przedmiotom
    • Przedmioty znajdujące się w ekwipunku jednostki mogą być teraz wykorzystywane do tworzenia budowli.
    • Ta zdolność przedmiotów może być ustawiona tak, aby wymagała od bohatera jej podtrzymywania. Alternatywnie gracze mogą przyzywać budowle podobnie jak protosi.
    • Ten typ przedmiotów może być pomocny w tworzeniu nowych baz. Bohater może kupić Kieszonkowy Ratusz i umieścić go w nowym miejscu pod ekspansję (budynek będzie wtedy automatycznie budował się sam).
  • Pokazywanie ekwipunku innym graczom
    • Nowa właściwość CInventoryPanel (panel ekwipunku): ShowForAllPlayers (pokaż wszystkim graczom)
      • Jeśli zwraca wartość „prawda”, gracze mogą wybrać jednostki innych graczy, aby zobaczyć ich ekwipunki. Nie będą jednak mogli używać znajdujących się tam przedmiotów.
  • Cast On Items in Inventory (użycie na przedmiotach z ekwipunku)
    • CCommandButton teraz ujawnia swoją własność ButtonOtherUnit. Teraz użytkownicy będą mogli wykorzystać przypisywanie właściwości bind do powiązania przedmiotu jednostki (jego samego, a nie nośnika) z klatką docelową lub innymi.
    • Dzięki tej funkcjonalności użytkownicy będą mogli użyć zdolności na przedmiocie wewnątrz swojego ekwipunku, przenieść go albo ulepszyć.
    • Dzięki tej funkcji użytkownicy mogą teraz również dwukrotnie klikać Portale Miejskie, aby automatycznie przenieść się do ratusza najwyższego poziomu.
  • Globally Accessible Inventory Panel (globalnie dostępny panel ekwipunku)
    • Użytkownicy mogą teraz obchodzić właściwość Inventory Unit w CInventoryPanel, aby pokazać stan ekwipunku jednostki, która nie jest aktualnie wybrana.
    • Użytkownicy mogą również używać wyzwalaczy do tworzenia nowych elementów sterujących w oknie dialogowym ekwipunku. Obsługuje to operatory takie jak karta komend wprowadzona w Legacy of the Void.
    • Użytkownicy mogą ustawić jednostkę, wybierając opcję „Use SetDialogItemUnit”. Ustawienie tej opcji na zero spowoduje zresetowanie jednostki do wybranej jednostki dowodzącej.
  • Show Buyer’s Inventory (pokaż ekwipunek kupującego)
    • Wcześniej StarCraft II miał słabe wsparcie dla neutralnych sklepów z przedmiotami w stylu War3. Przed tą aktualizacją, gdy użytkownicy kliknęli na jednostkę sklepową, nie byli w stanie zobaczyć ekwipunku jednostki kupującej.
    • Teraz sklepy neutralne będą pokazywały ekwipunek kupującego, o ile same nie będą miały ekwipunku, a panel ekwipunku nie będzie wyłączony, aby pokazywać ekwipunek konkretnej jednostki.
  • Dane ładunków dla CUnit
    • Dodano dane ładunków do jednostek i przedmiotów, aby przy sprzedaży ich dane mogły ustawiać swoje domyślne informacje o zapasach (np. rozpoczęcie czasu odnowienia w sklepach, maksymalne zapasy w sklepach itp.).
    • Zdolność CAbilTrain może być oflagowana, aby ignorować te domyślne ustawienia i użyć niestandardowych ustawień samej zdolności.
      • Jeżeli flaga nie zostanie sprawdzona, a zdolność ma swoje własne dane, obie instancje danych ładunków zostaną dodane razem.
  • „Prawdziwe” przedmioty ulepszające
    • Nowy typ przedmiotów: CItemAbilPowerUp
    • Przedmioty ulepszające mogą być teraz implementowane jako prawdziwe przedmioty, zamiast naśladować jednostkę.
    • Funkcja CItemAbilPowerUp jest dziedziczona po CItemAbil. Jedyną różnicą jest to, że będzie ona używana automatycznie po jej podniesieniu i może być podniesiona nawet wtedy, gdy ekwipunek jednostki jest już pełny.
    • Funkcja CItemAbilPowerUp może być używana tylko przez jednostki z ekwipunkiem. Jednostka musi mieć również włączoną flagę CanUseItem.
    • Te nowe przedmioty ulepszające są prawdziwymi przedmiotami, więc uwzględniają zdarzenia ekwipunkowe i mogą być używane w systemie łupu.
    • Funkcja CItemAbilPowerUp sprawdzi, czy używający może użyć zdolności ulepszającej w CItemAbilPowerUp. Jeśli nie może, zwróci komunikat o błędzie i nie zmusi używającego do przejścia do przedmiotu.
    • Flaga KillAfterUse pozwala na niszczenie przedmiotu po użyciu ulepszenia przez używającego.
    • Normalna jednostka z ekwipunkiem, ale bez włączonej flagi CanUseItem, będzie mogła podnosić przedmioty ulepszające i przenosić je do bohatera.
  • Nowa flaga EAbilInventoryFlag: ItemDropOnDeath
    • Ta flaga zmusi jednostkę do upuszczenia wszystkich swoich przedmiotów w chwili śmierci, nawet jeśli jest ona wskrzeszalna. Może to być użyteczne dla normalnych jednostek ze zdolnością plecaka z WarCraft III.
  • Nowa flaga EAbilInventoryFlag: CanUseItem
    • Ta flaga określa, czy jednostki mogą używać przedmiotów. Pomaga w tworzeniu jednostek z ekwipunkami, które mogą przenosić przedmioty, ale nie mogą ich używać.
  • Nowa flaga EAbilInventoryFlag: CanApplyEquipBehavior
    • Flaga ta określa, czy jednostki mogą korzystać z przedmiotów zapewniających wzmocnienia stanu, np. +5 do Siły. Pomaga również w tworzeniu jednostek z ekwipunkami przenoszącymi.
  • Nowa flaga CItemAbil: Transient
    • Po zaznaczeniu tej flagi, zdolność przedmiotu będzie musiała zostać użyta jako przejściowa, nawet jeśli oryginalna zdolność przedmiotu nie jest przejściowa.
  • Naprawiono błąd, który powodował, że ekwipunki nadal próbowałyby podnosić przedmioty niszczone przy podejściu.
  • Naprawiono błąd, który powodował, że funkcja CAbilSpawn nie działała.
  • Naprawiono błąd, który powodował, że zastawianie przedmiotu z ekwipunku z maksymalnej odległości prowadziło do utraty przedmiotu, ale nie do zyskania zasobów.
  • Nowe podnazwy zdarzeń aktora Abil: PawnSource, PawnTarget.
    • Będą odpalać się, gdy zastawicie przedmiot.
  • Nowe pole CAbilInventory: Requirements
    • Po ustawieniu, zdolność ekwipunkowa będzie wyłączona przed spełnieniem wymogów technologicznych.
    • IU ekwipunku również będzie ukryty przed spełnieniem wymogów.
  • Nowa flaga CValidatorUnitInventory: RequireEnabled
    • Po zaznaczeniu weryfikator zwróci e_CmdOK tylko wtedy, gdy docelowa zdolność ekwipunkowa jest włączona i spełnia wymogi technologiczne.
  • Do odpowiedzi na zdarzenia Player Use Effect służy nowe API wyzwalaczy, które pozwala użytkownikom na przechwycenie elementu użytego do stworzenia efektu, jeśli istnieje element i jego typ.
  • Przedmioty zdolnościowe mogą teraz wykorzystywać własne odnośniki czasu odnowienia, zastępując te dziedziczone po zdolności.

Obsługa neutralnych/sojuszniczych sklepów

  • Sklepy neutralne/sojusznicze to budowle neutralne/sojusznicze, z którymi mogą wchodzić w interakcję inni gracze za pomocą zdolności CAbilInteract.
  • Dla wszystkich zdolności, pole Tech Player ma teraz dodatkową opcję: Caster.
    • Po ustawieniu pola Tech Player w CAbilTrain na Caster umiejętność sprawdzi wymogi technologiczne gracza, który wydał komendę.
    • Jest to użyteczne przy tworzeniu zdolności typu „sprzedaj jednostkę/przedmiot w oparciu o drzewko technologiczne kupującego”.
  • Nowe pole CabilTrain: AgentUnitValidator (weryfikator jednostki agenta)
    • Po ustawieniu zdolność zawsze będzie potrzebowała jednostki agenta do użycia i będzie sprawdzać weryfikatory ustawione w tym polu podczas szkolenia jednostek.
    • Dzięki temu polu w SC2 można teraz w prosty sposób tworzyć zdolności sklepu z przedmiotami.
      • W przypadku sklepów z przedmiotami użytkownicy zazwyczaj chcą, aby jednostka kupująca w sklepie posiadała ekwipunek, aby móc dokonywać zakupów.
      • Wcześniej SC2 nie posiadał takiego wsparcia, więc nawet jeśli jednostka kupująca nie posiadała ekwipunku, przedmiot zawsze był tworzony.
      • Dzięki polu AgentUnitValidator, użytkownicy mogą dodawać weryfikatory takie jak „Jednostka ma prawidłowy ekwipunek" i „Ekwipunek nie jest pełny”. Dlatego, jeśli jednostka agenta nie ma ekwipunku, to zdolność po prostu zwróci komunikat o błędzie i nie zostanie użyta.
  • Nowa flaga CAbilTrain: ChargeCasterPlayer (obciąż używającego gracza)
    • Zazwyczaj zdolności z neutralnych sklepów wymagają, aby gracze kupujący i sprzedający dzielili się wydawaniem zasobów między sobą za pomocą flagi „Ally Spending” (sojusznicze wydatki). Jeśli tak nie jest, kupujący otrzymuje komunikat o błędzie „Can’t Spend On that Player” (Nie mogę wydać na tego gracza).
    • Domyślnie neutralni gracze dzielą się kosztami ze wszystkimi graczami. Ale jeśli użytkownik chciałby stworzyć sklep sojuszniczy, czyli taki, w którym sojusznicy mogliby kupować przedmioty lub jednostki, prawdopodobnie nie chciałby dzielić się wydatkami z tymi graczami. W przeciwnym razie gracze mogliby wydawać pieniądze swoich sojuszników.
    • Nowa flaga, ChargeCasterPlayer, została zaprojektowana, aby rozwiązać ten problem. Po jej włączeniu, koszt sprzedanego przedmiotu lub jednostki zostanie pobrany od gracza, który wydał komendę zakupu, nawet jeśli kupujący i sprzedający nie dzielą się wydatkami.
    • Jeśli są inni gracze, którzy dzielą wydatki z kupującym graczem, a ten nie ma wystarczających środków, zdolność nadal będzie obciążać kosztami innych graczy.
  • Nowa flaga CAbilInteract: AlwaysShowCommandCard (zawsze pokazuj kartę komend)
    • Kiedy flaga ta jest włączona, jednostka sklepowa pokaże swoją kartę komend wszystkim graczom, którzy mogą wchodzić z nią w interakcję (decyduje o tym pole CAbilInteract – Target Filter), nawet jeśli gracz nie ma ważnej jednostki agenta w pobliżu sklepu.
    • Dlatego też, nawet jeśli gracz nie posiada jednostki agenta w pobliżu sklepu, nadal będzie mógł podglądać, co sprzedaje sklep.
    • Jednak ten gracz nadal nie będzie mógł korzystać z karty komend, jeśli na przykład nie kontroluje jednostki sklepowej, a w pobliżu nie ma jednostki agenta.
  • Naprawiono błąd, który powodował, że zdolności z interakcjami stale próbowały pobrać jednostkę bez sprawdzania pola ValidatorArray.

System śledzenia zachowania jednostki

  • Nowy typ zachowania: BehaviorUnitTracker (śledzenie zachowania jednostki)
    • Ten typ zachowania działa jak lista jednostek. Może przechowywać wszystkie dodane do niej jednostki oraz posiada pola weryfikacji i maksymalnej liczby. Za każdym razem, gdy członek listy nie pasuje do ustawionego weryfikatora, zostanie on z niej usunięty.
    • Istnieją również flagi, które pozwalają użytkownikom na przekształcenie tego śledzenia w listę globalną lub listę opartą na graczach, która nie wymaga do działania instancji zachowania.
  • Nowy kumulator: CAccumulatorTrackedUnitCount (kumulator liczby śledzonych jednostek)
    • Pozwala użytkownikom na korzystanie z kumulatorów w zależności od tego, ile jednostek znajduje się na danej liście.
  • Nowe efekty: CEffectAddTrackedUnit, CEffectClearTrackedUnits, CEffectRemoveTrackedUnit (dodaj śledzoną jednostkę, wyczyść śledzone jednostki, usuń śledzone jednostki)
    • Pozwala użytkownikom na dodawanie/usuwanie jednostek z listy.
  • Nowy efekt: CEffectEnumTrackedUnits (wymień śledzone jednostki)
    • Pozwala użytkownikom na przeglądanie listy śledzenia jednostek i uruchamianie efektów na każdej z nich w oparciu o filtry.
  • Nowe weryfikatory: CValidatorCompareTrackedUnitsCount, CValidatorIsUnitTracked (porównaj liczbę śledzonych jednostek, czy jednostka jest śledzona)
    • Może służyć do liczenia, ile jednostek jest śledzonych przez zachowanie i sprawdzanie, czy dana jednostka znajduje się na danej liście.
  • System śledzenia jest bardzo przydatny, gdy staramy się zachować mapowanie „jedna do wielu” pomiędzy jednostkami.
    • Przykładowo: może on śledzić jednostkę przywołującą do swoich przywołanych jednostek.

Inne zmiany systemu zachowań

  • Alias kumulacji zachowań
    • Funkcja ta pozwala na kumulowanie zachowań na podstawie identyfikatora kumulacji zamiast identyfikatora zachowania.
    • Przykładowo: w WC3 zarówno Arcymag jak i różne stwory mają swoją wersję Aury Błyskotliwości. Są to dwa różne wzmocnienia, a gdy posiadasz oba te rodzaje jednostek, możesz nie chcieć, aby otaczające cię jednostki otrzymywały obie Aury Błyskotliwości. W tym przypadku aura bohaterska powinna być zawsze traktowana priorytetowo.
    • Dwa nowe pola CBehaviorBuff fields: StackAlias (alias kumulacji – ciąg) i StackAliasPriority (priorytet aliasu kumulacji – liczba całkowita).
      • Jeśli dwa wzmocnienia tego samego aliasu kumulacji zostaną zastosowane do tej samej jednostki, będą posiadały wspólną liczbę maksymalną (priorytet ma niższa). Jeśli ich łączna liczba przekroczy wspólną maksymalną liczbę, gra zacznie usuwać kumulacje, zaczynając od wzmocnienia o najniższym StackAliasPriority, a następnie o najkrótszym czasie działania. Będzie to trwało do momentu, gdy całkowita liczba kumulacji będzie odpowiadała wspólnej maksymalnej liczbie.
    • Nowy aktor zdarzenia: BehaviorStackAlias (alias kumulacji zachowań)
      • Pozwala użytkownikom na przechwytywanie zdarzeń zachowań (wł., wył., odpowiedź na obrażenia itp.) na podstawie StackAliasu zachowania zamiast identyfikatora.
      • Pozwala również na dzielenie się aktorami pomiędzy zachowaniami z tymi samymi StackAliasami, ponieważ prawdopodobnie chcecie, aby wszystkie wersje Aury Błyskotliwości miały tę samą grafikę.
    • Nowe pole CEffectRemoveBehavior: StackAlias
      • Pozwala użytkownikom na usuwanie wzmocnień opartych na StackAliasach.
    • Nowy weryfikator: CValidatorUnitBehaviorStackAlias (alias kumulacji zachowań jednostek)
      • Pozwala użytkownikom na zliczanie kumulacji zachowań przez StackAlias. Będzie on zliczał wszystkie zachowania jednostki z danym StackAliasem i ma możliwość zliczania tylko włączonych zachowań.
  • Obsługa opisów odpowiedzi na obrażenia aktora
    • Kiedy CActorMsgBehavior uruchamia zdarzenie o podnazwie DamageHandled, użycie wiadomości SetTextLocalized i SetText po zdarzeniu automatycznie ustawi tekst za pomocą zmodyfikowanej wartości obrażeń.
    • Obrażenia te zastąpią token „%AMOUNT%” w tekście docelowym.
    • Jest to przydatne do tworzenia opisów obrażeń dla odpowiedzi na obrażenia.
  • Lepsza obsługa zdarzeń aktorów włączających/wyłączających zachowania
    • Zdarzenia włączające i wyłączające zachowania będą teraz ustawiać parametry efektu dla ostatniej zastosowanej kumulacji lub ostatniej usuniętej.
    • Jest to przydatne do dokładniejszej konfiguracji aktorów zachowań. Poprzednio użytkownicy nie mogli tworzyć odnośników dla używających zachowania w zdarzeniach wł./wył. zachowania.
  • Nowy stan zachowania: Cannot Die (nie może umrzeć)
    • Oznacza jednostkę jako „nie mogącą umrzeć” dopóki zachowanie nie zostanie usunięte.
    • Chociaż wykorzystanie odpowiedzi na obrażenia jest w stanie osiągnąć podobny efekt, to jednak odpowiedzi na śmierć mogą jedynie zapobiec śmierci przez obrażenia. Ten stan zachowania zapobiega śmierci z jakiegokolwiek powodu, np. życia ustawionego na 0.
    • Stanowi prostą alternatywę dla systemu zapobiegania śmierci opartego na wyzwalaczach.
  • Nowy stan zachowania: Suppress Kill Credit (wstrzymaj przypisywanie zabójstw)
    • Zapobiega przyznawaniu przez jednostkę zasługi za jej zabicie lub zniszczenie zasobów zabijającemu graczowi.
    • Przydatne do tworzenia jednostek halucynacyjnych.
  • Nowe pole CBehaviorBuff: DeathType (typ śmierci)
    • Może unieważnić typ śmierci jednostki i zignorować rodzaj śmierci dla efektów zabójczych obrażeń.
    • W ten sposób nie można pominąć śmierci typu „Remove” (usuń).
    • Domyślną wartością jest „Unknown” (nieznany), co oznacza „nie nadpisuj”.
  • Nowy typ śmierci: Reincarnation (reinkarnacja)
    • Zapobiega to upuszczaniu przez jednostki łupów i przedmiotów po śmierci.
  • Weryfikator CValidatorUnitCompareBehaviorCount i efekty CEffectRemoveBehavior oraz CEffectTransferBehavior mają teraz wspólne i szczegółowe następujące pola konfiguracyjne:
    • BehaviorCategories, BehaviorClass, BehaviorAlignment, ExcludeOriginPlayer, ExcludeCasterUnit, RequireOriginPlayer, RequireCasterUnit
  • Wcześniej te weryfikatory/efekty posiadały tylko pole CEffectBehavior, a te nowe dodatkowe pola były wyłączne dla CEffectBehavior.
  • Dodatki te pozwalają użytkownikom na liczenie, usuwanie i przenoszenie zachowań z większą kontrolą.
  • Przykład: użytkownicy mogą teraz usuwać kumulacje zachowań, które zostały dodane przez użytkownika jednostki docelowej itp.
  • Jest to również przydatne w implementacji „inteligentnych odczarowań”, takich jak usuwanie wyłącznie wzmocnień stosowanych przez wrogie jednostki.
  • Nowe pola CValidatorUnitCompareBehaviorCount, CEffectRemoveBehavior i CEffectTransferBehavior: Matches All (pasuje do wszystkiego)
    • Określa, czy efekt/weryfikator zostanie uruchomiony, jeśli któreś z pól konfiguracyjnych jest spełnione, czy też wszystkie pola konfiguracyjne muszą być spełnione.

Lepsza obsługa zwłok

  • Nowa flaga CEffectModifyUnit_ModifyFlags: Remove (usuń)
    • Ta flaga bezpośrednio usunie jednostkę z gry i zniszczy cały zakres jej aktora.
    • Dodano to, ponieważ użytkownicy nie mogą używać efektu „Remove” z CEffectDamage do usuwania zwłok.
  • Nowy filtr jednostek: Decaying (rozkładające się)
    • Rozkładająca się jednostka to taka, która znajduje się obecnie na ziemi i od jakiegoś czasu jest martwa. Jest to przeciwieństwo jednostki, która już została zabita, ale nadal jest w trakcie upadku na ziemię i generowania zwłok. Z technicznego punktu widzenia jest to „prawda”, gdy aktywny jest czas śmierci, a opóźnienie ożywienia się skończy.
    • Zadaniem tego filtra jest to, aby zdolności, których celem są zwłoki, nie działały na jednostkach, które niedawno zginęły i nadal są w trakcie generowania zwłok.
    • Jeśli czas śmierci jednostki ustawiono na -1, faza rozkładu zostanie pominięta. Przykład: bohaterowie Warcraft III nie powinni nigdy się rozkładać.
  • Nowy filtr jednostek: Raiseable (wskrzeszalna)
    • CEffectModifyUnit może teraz ustawić zwłoki jako Unraiseable (niewskrzeszalne).
    • Niewskrzeszalność pozwala nam oznaczyć, czy zwłoki zostały już użyte.
      • Na przykład, kiedy ghul zjada zwłoki, one nadal istnieją, ale moder może nie chcieć, aby były ożywione lub powstały jako nieumarły. W tym przypadku może ustawić zdolności tak, aby akceptowały tylko wskrzeszalne zwłoki i ustawiać zwłoki jako niewskrzeszalne, kiedy są zjadane.
  • Nowa flaga: Allow Corpse (zezwól na zwłoki)
    • Z tą flagą włączoną zdolności transportowe będą mogły przenosić zwłoki w swoim ładunku.

Systemów typów ataku, obrażeń i pancerza

  • Nowe pole CWeapon: Attack Type (typ ataku)
    • Moderzy mogą zmieniać mnożniki obrażeń dla każdego typu ataku i pancerza w danych gry.
    • Typ ataku będzie miał wpływ na wszystkie efekty obrażeń w całym drzewku broni, więc moderzy będą teraz mogli modyfikować mnożniki obrażeń na poziomie broni, zamiast przechodzić przez każdy wpis w drzewku efektów, aby zmienić współczynniki obrażeń.
  • Nowe pole CUnit: Armor Type (typ pancerza)
    • Typ pancerza decyduje o mnożnikach obrażeń broni używanej przeciwko jednostkom.
  • Nowy weryfikator: CValidatorUnitArmor (pancerz jednostki)
    • Pozwala użytkownikom na sprawdzenie typu pancerza jednostki.
  • Nowe pole CEffectDamage: Damage Type (typ obrażeń)
    • Moderzy mogą zmieniać filtry celu dla typów obrażeń w danych gry.
    • Używanie filtrów celu na typach obrażeń pozwala użytkownikom na konfigurowanie wszystkich obrażeń i efektów obrażeń obszarowych w grze. Może również decydować, czy pewne efekty obrażeń mogą kiedykolwiek zadać obrażenia konkretnym celom.
    • Przykład: poprzez proste odfiltrowanie celów sojuszniczych w każdym typie obrażeń, użytkownicy mogą łatwo sprawić, że wszystkie bronie z obrażeniami rozpryskowymi w grze nie będą już ranić sojuszników. Jest to przydatne przy tworzeniu modów kooperacyjnych, ponieważ trzeba je budować na wielu innych modach, a broń i zdolności obszarowe w tych innych modach mają różne sojusznicze efekty ognia.

Szansa na chybienie efektu, blokowanie i odbijanie

  • Struktura zachowań w odpowiedzi na obrażenia została teraz rozszerzona, aby obsłużyć więcej niż tylko przypadki odpowiedzi na obrażenia.
  • Miss Chance (szansa na chybienie)
    • Nowa flaga CWeapon: NeverMiss (nigdy nie chybiaj)
      • Domyślnie, uzbrojenie zachowa swoje stare zachowanie.
    • Modyfikatory ataku mogą również dodać właściwość NeverMiss do drzewka efektu broni.
    • Jeśli drzewko efektu broni mówi, że broń może chybić, kiedy wystrzeliwuje, to sprawdza szansę na chybienie zarówno po stronie atakującego jak i obrońcy. Następnie zaznacza, czy efekt chybi w oparciu o weryfikatory i szanse ustawione w strukturze odpowiedzi.
    • Jednostki naziemne atakujące cele na wyższych poziomach klifu mogą mieć również dodatkową szansę na chybienie, którą można modyfikować w danych gry.
    • Jeśli drzewko efektów broni zostało oznaczone jako „Missed” (chybienie), broń nie zadaje żadnych obrażeń od trafienia, ani żadnych efektów kulistych przy trafieniu.
    • Kiedy broń chybia, wysyła zdarzeniu aktora broni „Missed” jako podnazwę. W ten sposób moderzy mogą zdecydować, czy chcą przechwycić to zdarzenie, aby utworzyć zmienny opis „Chybienie!” nad jednostką, czy też wyświetlić efekt uniku.
  • Block Chance (szansa na blok)
    • Nowe pole CEffect: CanBeBlocked (można zablokować)
      • Określa, czy efekt może zostać zablokowany. Domyślnie opcja jest ustawiona na wył.
    • Po uruchomieniu efektu, gra zapyta o strukturę odpowiedzi na jednostkę trafienia i sprawdzi jej szansę ba blok oraz wszelkie weryfikatory.
    • W przypadku zablokowania efekt zostanie anulowany i nie zostanie uruchomiony. Następnie efekt wyśle zdarzenie aktora efektu, którego nazwa zostanie zablokowana, dzięki czemu użytkownicy będą mogli ustawić odpowiednich aktorów.
    • Funkcja ta jest przydatna do tworzenia zachowań blokujących zdolności.
  • Deflect Chance (szansa na odbicie)
    • Nowa flaga CEffect: ValidateImpactDeflection (weryfikuj odbicie przy trafieniu)
      • Określa, czy efekt może zostać odbity. Domyślnie opcja jest ustawiona na wył.
    • Odbicie jest prawie identyczne co szansa na blok, ale efekt, który wystąpi, zostanie powielony i odbity z powrotem na rzucającego.
    • Odbity efekt będzie miał odwrócone właściwości rzucającego i celu, i będzie liczył się jako strzał oryginalnej jednostki docelowej w kierunku oryginalnej jednostki używającej. Premia za obrażenia w drzewku efektu odbicia będzie nadal ustawiona na użycie premii za obrażenia oryginalnego używającego.
    • Inną różnicą między odbiciem a blokowaniem jest to, że drzewka efektów będą szacować odbijanie tylko raz. Jeśli jakiś efekt przeszedł kontrolę odbicia raz, reszta drzewka nie sprawdzi ponownie szans na odbicie, nawet jeśli w drzewku są kolejne efekty, które mają zaznaczoną flagę ValidateImpactDeflection.

Zmiana systemu przekształcania jednostek

  • Morph/Unmorph Toggle (przełączanie przekształcania)
    • Nowa flaga CAbilMorph: Toggle (przełącz)
    • Nowe pole CAbilMorph: InforArrayUnmorph (cofanie przekształcenia)
      • Kiedy przełącznik jest ustawiony na włączony, zdolności przekształcania mogą być używane do przełączania się tam i z powrotem pomiędzy dwoma łańcuchami różnych typów jednostek.
    • Nowy indeks komendy CAbilMorph: Unmorph (cofanie przekształcenia)
      • W przypadku przełączanej zdolności przekształcającej, po tym jak jednostka już wykonała przekształcenie, nadal można wydać komendę jego cofnięcia, która spowoduje, że jednostka rozpocznie proces przekształcenia zdefiniowany w polu InforArrayUnmorph.
      • W większości przypadków pole InforArrayUnmorph powinno być tak ustawione, aby jego końcowy typ jednostki był normalnym typem jednostki stanu. W ten sposób jednostka zostanie przywrócona do normalnego stanu za pomocą polecenia Unmorph.
    • Nowe pole CabilMorph: ValidatorArrayUnmorph (cofanie przekształcenia)
      • Weryfikuje, czy jednostka przekształcona może użyć polecenia Unmorph.
    • Nowa flaga CabilMorph: AutoUnmorph (automatyczne cofnięcie przekształcenia)
      • Określa, czy jednostka przekształcona będzie automatycznie próbowała przekształcić się z powrotem, kiedy będzie to możliwe.
    • Nowe pola CabilMorph: BehaviorOn/BehaviorOff (zachowanie wł/wył)
      • Po ustawieniu, zdolność będzie stosować bufor BehaviorOn do jednostki, gdy ta jest w stanie przekształconym i będzie stosować bufor BehaviorOff, gdy jednostka jest w stanie normalnym. Te dwa pola będą działać tylko wtedy, gdy zdolność przekształcenia jest oznaczona jako przełączalna („Toggle”).
    • Nawet jeśli jednostka jest bezpośrednio stworzona jako typ jednostki przekształcanej, zdolności przekształcania nadal będą uznawać ją za jednostkę, która przeszła proces przekształcenia. Zastosują one odpowiednie zachowania i pozwolą jej na użycie komendy Unmorph.
  • Morph Tech Count (liczba technologii przekształcania)
    • Nowa flaga CAbilMorph: ProvideSourceUnitTech (zapewnij technologię jednostki źródłowej)
      • Po włączeniu, CAbilMorph przekaże typ jednostki źródłowej do jednostki, w którą się przekształciła. Ostatnia jednostka automatycznie odziedziczy łącze jednostki źródłowej jako swój alias technologiczny.
      • Ta właściwość jest dziedziczona w całym łańcuchu przekształcania.
      • np. Ratusz -> Twierdza -> Zamek
      • Zamek liczyłby się zarówno jako twierdza, jak i ratusz. Nawet bezpośrednio stworzony zamek liczyłby się zarówno jako twierdza, jak i ratusz, mimo że nie był wcześniej żadną z tych budowli.
      • Dlaczego po prostu nie dodamy ratusza i nie zachowamy aliasów zamku (dodając je do pola aliasu technologicznego zamku)? Używamy tej bardziej pośredniej metody, ponieważ ProvideSourceUnitTech działa tylko wtedy, gdy jednostka jest w stanie ukończonym. Tylko wtedy liczyłaby się jako jednostka źródłowa w polu Tech Alias. Gdybyśmy mieli użyć pola TechAlias, alias istniałby w dowolnym stanie, nawet gdy jednostka jest w stanie przekształcania (InProgress). W tym przypadku, kiedy przekształcamy twierdzę w zamek, pojawia się niewygodny stan przejściowy: mamy ukończoną twierdzę i zamek w toku, więc system liczenia technologii mógłby uznać, że macie twierdzę w toku, co nie jest prawdą.
  • Obsługa „ruchu a potem przekształcania”
    • Nowe flagi CAbilMorph: RequireAcquiredTarget, RequireAcquiredTargetUnmorph (pobierz nabyty cel, pobierz nabyty cel i cofnij przekształcenie)
    • Nowe pola CAbilMorph: Range, TargetSorts (zasięg, sortowanie celów)
      • Kiedy te pola są ustawione, jednostka przeszuka swój promień automatycznego użycia, spróbuje znaleźć cel w zasięgu, który pasuje do weryfikatora, a następnie przeniesie się do tego celu. Jednostka zacznie przekształcać się po dotarciu do celu. Pole Range wskazuje największy zasięg, z którego jednostka może zacząć przekształcanie.

Jednostki wyłącznie zasobowe

  • Nowa flaga jednostki: NeverThink (nigdy nie myśl)
    • Normalnie, każda jednostka w grze będzie sprawdzać ścieżkowania, skanowanie wroga, nabywanie zdolności i wiele innych danych logicznych w każdej pętli gry (0,0625 sekund gry). Ta flaga zwalnia jednostki z tych zadań, co może pomóc poprawić wydajność na niestandardowych mapach. Jednostki o fladze NeverThink nie mogą mieć zachowań i zdolności z wyjątkiem zachowań zasobów.

Inne zmiany jednostek

  • Unit Max Speed (maksymalna szybkość jednostki)
    • Nowe pole CUnit: SpeedMaximum (szybkość maksymalna)
      • Określa maksymalną szybkość, jaką jednostka może osiągnąć, nawet jeśli otrzymuje premie do szybkości.
    • Nowe pole zachowania: MoveSpeedBaseMaximumBonus (szybkość ruchu, bazowa, maksimum, premia)
      • Służy do zmiany maksymalnej szybkości jednostki.
  • Nowy typ CUnit: Warcraft
    • Pole Mob jednostki posiada teraz do wyboru typ „Warcraft”.
    • Pozwala wyzwalaczom na odróżnienie jednostek Warcraft od jednostek StarCraft.
  • Nowe pola CUnit: LifeRegenRateNight, EnergyRegenRateNight, ShieldRegenRateNight (tempo regeneracji życia w nocy, tempo regeneracji energii w nocy, tempo regeneracji osłon w nocy)
    • Może służyć do umożliwienia regeneracji jednostek nocnych elfów w nocy bez ustawiania zachowania każdej z nich.
  • Nowe pole CUnit: BuildTime (czas tworzenia)
    • Dodatkowe miejsce do przechowywania czasu tworzenia w danych jednostki, które może być wykorzystane do konfiguracji czasu tworzenia w CAbilBuild, CAbilTrain i CAbilMorph.
    • Nowe flagi CAbilBuild i CAbilTrain: IgnoreUnitBuildTime (ignoruj czas tworzenia jednostki)
      • Jeśli nie jest zaznaczone, czas tworzenia jednostki zostanie dodany do czasu tworzenia zdolności.
    • Nowa flaga tabeli CAbilMorph dla każdej fazy każdej sekcji: UseBuildTimeArray (użyj tabeli czasu tworzenia)
      • Dla każdej fazy z ustawioną tą flagą czas tworzenia jednostki zostanie dodany do czasu trwania danej fazy.
  • Nowy weryfikator: CValidatorUnitCompareAbilStage (porównuj etapy zdolności jednostki)
    • Pozwala użytkownikom na weryfikację etapu zdolności CAbilEffect.
    • Jeśli pole Ability (zdolność) jest ustawione na None (brak), będzie ono weryfikować etap zdolności niezależnie od tego, jaka zdolność jest aktualnym używana. Oznacza to, że użytkownicy mogą teraz sprawdzać, czy dana jednostka podtrzymuje daną zdolność, której używa.
  • Nowe filtry celów:
    • Powerup (ulepszenie): jest „prawdą”, kiedy wartość pola CUnit_PowerupEffect jest prawidłowa.
    • PowerupOrItem: ulepszenie lub przedmiot.
    • HeroUnit: jednostki z flagą bohatera. Różni się od „Heroic” (bohaterska), który jest atrybutem.
  • Nowe pole CUnit: Unit Level (poziom jednostki)
    • Po ustawieniu na > 0, jeśli jednostka jest podświetlona, jej opis pokaże ten poziom pod nazwą jednostki.
    • To pole może być użyte do sortowania celów lub weryfikacji. Może być również używane w kumulatorach.
  • Addon Parent Behavior (nadrzędne zachowanie dobudówki)
    • Nowe pole CUnit: ParentBehaviorLink (łącze nadrzędnego zachowania)
      • Kiedy dobudówka jest połączona z budowlą nadrzędną, zachowanie z ParentBehaviorLink zostanie zastosowane do tej drugiej. Używającym to zachowanie jest dobudówka, a nie budowla nadrzędna.
      • Dzięki temu zachowanie ParentBehaviorLink może kontrolować budowlę nadrzędną w oparciu o stan dobudówki.
      • Zdolności przekształcania mogą weryfikować to zachowanie w celu wysłania komunikatu o błędzie, gdy budowla nadrzędna otrzymuje polecenie wzlotu, podczas gdy w załączonej dobudówce trwa opracowywanie ulepszenia.
  • CUnit_LifeDamageGain można teraz ulepszać.
  • CValidatorUnitState zostało znacznie ulepszone, aby można było sprawdzać do 100 różnych stanów jednostki (wcześniej tylko 1).
    • Na przykład: Idle, Jumping, Highlighted, ArmorDisabled, Revivable, Dying, ArmySelect itd.

Inne zmiany systemu zdolności

  • Autogeneracja przycisków zdolności
    • W celu umożliwienia łatwego dodawania zdolności do dowolnej jednostki, wszystkie przyciski posiadają teraz właściwość pozwalającą moderom na ustawienie domyślnej pozycji przycisku i identyfikatora podmenu na karcie komend.
    • Na dowolnej zdolności moderzy mogą ustawić, czy dana komenda zdolności będzie automatycznie generować przycisk zdolności (Generate Ability Buttons) tak, aby zdolność działała od razu po zastosowaniu do jednostki. Użytkownicy nie będą już musieli ręcznie ustawiać tych przycisków i ikon na karcie komend jednostki.
  • API wyzwalaczy do dodawania i usuwania zdolności jednostek w trakcie działania
    • Nowe działania API wyzwalaczy: Unit Add Ability, Unit Remove Ability (dodaj zdolność jednostki, usuń zdolność jednostki)
  • Łatwiejsza konfiguracja poziomów
    • Większość typów zdolności posiada teraz pole Levels (poziomy), które może bezpośrednio ustawić maksymalny poziom zdolności. W połączeniu z systemem kumulatorów, moderzy nie będą już potrzebowali implementacji 1000 zestawów zdolności dla tych, które mają 1000 poziomów.
    • Pole to może być również ulepszane, co pozwala moderom na zmianę maksymalnego poziomu zdolności w czasie działania.
    • Kiedy pole Levels jest ustawione na 0 (wartość domyślna), system poziomów zdolności cofnie się do poprzedniej funkcjonalności.
  • Nowe pole CCharge TimeDelay (opóźnienie)
    • Działa dla wszystkich ładunków zdolności/przedmiotów/zachowań.
    • Działa podobnie jak TimeStart, ale wpływa tylko na pierwszy ładunek zdolności, przedmiotu lub zachowania.
    • Gdy TimeDelay = 0, system ładunków będzie działał jak poprzednio.
    • Gdy TimeDelay > 0, TimeStart będzie ignorowany.
    • Gdy zdolność zaczyna kumulować ładunki, czas regeneracji pierwszego będzie wykorzystywał wartość TimeDelay, a kolejne – wartość TimeUse.
    • Nowa flaga: IgnoreTimeDelay (ignoruj opóźnienie)
      • Pozwala to zdolności na ignorowanie ustawień TimeDelay jednostki i korzystanie z własnych.
  • Catalog Replacement (zastępstwa katalogowe) obsługują teraz Item Abilities (zdolności przedmiotów).
    • Zastępstwo nie opiera się na właścicielu, lecz na użytkowniku przedmiotu.
    • Pozwala to różnym graczom używać tego samego przedmiotu z różnymi efektami.
      • Na przykład, moderzy będą mogli tworzyć różne jednostki, gdy przedmiot jest używany w oparciu o rasę gracza.
  • SEffectParamsShared ma teraz członka typu m_level, który zapisuje poziom zdolności, która uruchomiła drzewko efektów.
    • Drzewka efektów mogą wykorzystać to jako migawkę, aby uzyskać powiązane dane poziomu, tak aby nawet jeśli zdolność zmienia poziom po uruchomieniu drzewka efektów, ono i tak zapamiętało stary poziom zdolności.
    • Kumulatory mogą również wykorzystywać te dane jako dane zdolności.
  • CEffectCreateUnit_SpawnUnit można teraz skonfigurować do tworzenia różnych typów jednostek w zależności od poziomu drzewka efektów.
  • CAbilBheavior może teraz ustawić różne weryfikatory dla włączonego i wyłączonego automatycznego przełącznika zamiast tylko jednego dla automatycznego użycia.
  • Nowe kategorie zdolności i zachowań
    • Dodano różne nowe kategorie zdolności i wzmocnień.
    • Zachowania wzmocnień mogą teraz włączać/wyłączać zdolności według kategorii.
  • Nowe pole dla wszystkich zdolności: State Behavior (zachowanie stanu)
    • To pole tworzy zachowanie, gdy tworzona jest zdolność i usuwa je, gdy zdolność zostanie usunięta, a także wyłączy lub włączy je, gdy zdolność zostanie wyłączona lub włączona.

Inne zmiany systemu obrażeń

  • Nowe pole CEffectDamage: DamageInheritEffect (efekt dziedziczenia obrażeń)
    • Efekt ustawiony w tym polu zostanie uruchomiony po zadaniu podstawowych obrażeń.
    • Odziedziczy ona wartość podstawowych obrażeń.
  • Nowa flaga CEffectDamage: NoZeroDamageInherit (nie dziedzicz zerowych obrażeń)
    • Mówi DamageInheritEffect, aby nie uruchamiać się, gdy zadane obrażenia są równe 0.
  • Nowa funkcja CEffectDamage: Fraction (ułamek)
    • Dodatkowy ułamek, który zostanie pomnożony przez wszystkie inne istniejące ułamki.
    • Pole to obsługuje kumulatory, więc moderzy będą mogli tworzyć formuły oparte na tum ułamku.

Wstępny efekt broni

  • Nowe pole broni: PreEffect (wstępny efekt)
    • To efektowa wersja PreEffectBehavior, która obsługuje weryfikację wskazanej jednostki w celu podjęcia decyzji, czy efekt wstępny powinien zostać uruchomiony.

Obsługa przerwanie jednorodnego

  • Nowa flaga CAbilEffect flag: HomogenousInterrupt (przerwanie jednorodne)
    • Kiedy ta flaga jest włączona, użytkownicy zaobserwują następujące zachowania: jeśli gracz wybierze jednostkę, która podtrzymuje zdolność i każe jej ruszyć, zatrzyma podtrzymywanie i ruszy. Jeśli gracz wybierze więcej niż jedną jednostkę, a przynajmniej jedna z nich nie podtrzymuje zdolności, natychmiast poruszą się tylko jednostki, które nie podtrzymywały zdolności. W tym scenariuszu kolejność ruchów będzie ustawiona w kolejce dla wszystkich jednostek, które aktualnie podtrzymują zdolności.
    • Kiedy flaga jest wyłączona, gracze będą obserwować stare zachowanie SC2.

Zmiana systemu budowania

  • Jednostki robotnicze ustępują podczas budowy
    • Kiedy flagi HomogenousInterrupt i Interrupt są w funkcji CAbilBuild, która nie powoduje, że jej jednostki robotnicze znikają w budowli w trakcie budowy, to na tym etapie jednostki te nie będą blokować umieszczania innych budowli. Zamiast tego odsuną się, a następnie wrócą, aby znaleźć lepsze miejsce do kontynuowania budowy.
  • Automatyczne skalowanie czasu animacji budowy
    • CAbilBuildable wyśle teraz do systemu aktorów zdarzenia Start, Cancel, Complete, Pause, i Resume.
    • Wydarzenia Start będą również zawierały informacje o czasie stawiania budowli. Aktorzy automatycznie ustawią animację budowli na taką samą długość czasu budowy. W ten sposób budowle zakończą swoje animacje powstawania zaraz po ukończeniu budowy.

Obsługa kursora obszarowego ataku naziemnego

  • Funkcja ta składa się z dwóch następujących zmian kodu:
    • CActorMsgAbil przenosi teraz informacje cmd, dzięki czemu moderzy mogą korzystać z CActorTermAbilCmd, aby odpowiedzieć na CActorMsgAbil. W ten sposób system aktorów będzie w stanie stwierdzić, czy tryb kursora jest wyzwalany przez zwykły atak, czy przez prowadzony atak naziemny poprzez cmdIndex.
    • CAbilAttack przekazuje teraz efekt DisplayEffect do systemu aktorów jako efekt kursora. W ten sposób system aktorów może filtrować cele i skalować kursor ataku obszarowego.
      • Jeśli jednostka posiada wiele rodzajów broni, użytkownik użyje pierwszego ważnego efektu DisplayEffect broni, aby zdecydować o ich wyglądzie.

System utrzymania

  • Nowe pole rasy: UpkeepTax (podatek od utrzymania)
    • Dzięki temu moderzy mogą dostosować tempo przyrostu zasobów gracza na podstawie liczby zaopatrzenia.

Budowanie na rampach

  • Wcześniej gracze nigdy nie byli w stanie budować rampach w SC2, ponieważ były one wbudowane w kod źródłowy gry.
  • Nowe pole danych typu terenu: Ramp No Build (brak budowania na rampach)
    • Pozwala użytkownikom wybrać, czy rampy będą zawsze oznaczone jako nie do zabudowania.
    • Po wyłączeniu, gracze będą mogli budować na rampach.

Usprawnienia zdolności zbierania

  • Nowe pole CAbilHarvest: ResourceAmountCapacity (pojemność ilości zasobów)
    • Domyślna wartość to 0.
    • Za każdym razem, gdy jednostka robotnicza kończy zbieranie zasobów, porównuje ich ilość z wartością ResourceAmountCapacity. Jeśli przenoszona ilość jest mniejsza niż ResourceAmountCapacity, jednostka robotnicza będzie próbowała kontynuować zbieranie zasobów aż do osiągnięcia oczekiwanej ilości, chyba że stanie w kolejce do innej komendy lub otrzyma komendę odejścia.
    • Nawet jeśli jednostka robotnicza nie osiągnie oczekiwanej ilości wydobytych surowców, gracz nadal może nakazać jej zatrzymanie się i zwrócenie wydobytych surowców, które aktualnie niesie.
    • Jeżeli jednostka robotnicza otrzyma polecenie wykonania innego zadania w czasie wydobycia, to przed wykonaniem tego zadania spróbuje przynajmniej raz wydobyć.
    • Jeśli jednostka robotnicza będzie próbowała kontynuować zbieranie, ale zasób docelowy uległ zniszczeniu, będzie próbowała znaleźć inny zasób w pobliżu.
  • Nowa flaga CabilHavrest: No Extract (brak wydobycia)
    • Po włączeniu zdolność zbierania nie usunie zasobów z węzłów zasobów, ale nadal będzie je zdobywać.

Usprawnienia systemu pór dnia

  • Nowe zdarzenie wyzwalacza do uwzględniania zmian dzień/noc: Game Day/Night State Change (zmiana dzień/noc)
  • Nowa funkcja wyzwalacza to pobieranie/ustawianie pory dnia według ustalonej wartości: Set Time Of Day (ustaw porę dnia w sekundach), Current Time Of Day (bieżąca pora dnia w sekundach)
  • Nowa funkcja wyzwalacza do określania bieżącego stanu dnia/nocy: Current Day/Night State (bieżący stan dnia/nocy)
  • Nowy weryfikator do sprawdzania wartości pory dnia: Game Compare Time Of Day (porównaj porę dnia)

Obsługa podrzucania zasobów przez aktorów

  • Nowa wiadomość aktora: UnitResourceDrop (podrzucanie zasobów)
    • To wydarzenie aktora pojawia się, gdy jednostka podrzuca zasób do ratusza (lub dowolnej jednostki zrzutu zasobów).
    • Pole nazwy źródłowej jest aktorem jednostki, która podrzuciła zasób.
    • Pole podnazwy jest typem zasobu. Moderzy będą mogli rozróżniać zrzuty na podstawie podnazwy.
    • Użycie wiadomości SetTextLocalized i SetTextLocalized po zdarzeniu automatycznie ustawi tekst docelowy na ilość podrzucanych zasobów.
    • Rzeczywista wartość zrzutu zastąpi token „%AMOUNT%” w tekście docelowym.

Tworzenie wielokrotności tego samego aktora

  • Nowy typ aktora: CActorBatch (partia aktora)
    • Rozwiązuje to problem, w którym użytkownicy nie byli w stanie powtórzyć tworzenia aktora.
    • Ten aktor posiada pole Count, które może być użyte do stworzenia wielokrotności tego samego typu aktora podrzędnego.
    • Domyślnie, utworzony aktor używa CActorBatch.

Obsługa wymuszonego zapętlenia systemu aktorów

  • System aktorów obsługuje teraz wymuszone pętle odtwarzania animacji.
  • Nowa flaga EAnimsFlags: ForceLooping (wymuszone zapętlanie)
    • Jeśli zarówno ta flaga jak i PlayForever są ustawione, system będzie odtwarzał losowo wybrany wariant animacji za każdym razem, gdy animacja zostanie zakończona, niezależnie od tego, czy animacja ma być zapętlona, czy nie.
    • Priorytet flag: AssetDrivenLooping > ForceLooping > NonLooping (zapętlanie zasobowe > wymuszone zapętlanie > brak zapętlania)
  • Nowa flaga EAnimBracketStartFlag: ContentForceLooping (wymuszone zapętlanie zawartości)
    • Jeśli zarówno ta flaga jak i ContentPlayOnce są wyłączone, system będzie odtwarzał losowo wybrany wariant animacji za każdym razem, gdy animacja zawartości zostanie zakończona, aż do wiadomości AnimBracketStop, niezależnie od tego, czy animacja ma być zapętlona, czy nie.

Ulepszenia taktycznego SI

  • Nowe pole CUnit: AIExecuteAbilTactical (uruchom zdolność taktyczną SI)
    • To uruchomi taktyczną funkcję haka SI ze wzorem: Unit, galaxyFuncName, scanned group, inAbility, inItem.
  • Naprawiono niespójność pomiędzy danymi taktycznymi a funkcją taktyczną w przypadku, gdy funkcja taktyczna nie działała na wrogich i neutralnych graczach SI.

Obsługa terrazytu i niestandardowych zasobów SI

  • Ulepszono SI Synapse tak, aby była w stanie zrozumieć terrazyt i niestandardowe zasoby jako rodzaje zasobów. SI będzie mogła je teraz zbierać.

Ożywianie przy ołtarzach przez SI

  • SI może teraz interpretować komendę gromadzenia jako komendę ożywienia bohatera, jeśli nie może znaleźć sposobu na wyszkolenie konkretnego typu bohatera.
  • Skrypt SI musi zarejestrować budynki ożywiające poprzez AIReqAddSpecialMaker(), tak samo jak zarejestrować zdolności atomówki.
  • Kiedy SI próbuje zgromadzić bohatera i nie może znaleźć zdolności szkolenia, przeszuka listę ożywienia i spróbuje ożywić bohatera tego samego typu.

Zastępstwa gromadzenia SI

  • SI respektuje teraz zastępstwa katalogowe przy próbie budowy lub szkolenia.
  • Na przykład, jeżeli marine zostanie zastąpiony przez zelotę gracza SI, to SI będzie prawidłowo rozpoznawać umiejętność szkolenia marine jako zeloty i będzie w stanie wydać prawidłową komendę szkolenia.
  • Ma to również wpływ na scalanie, budowę, opracowywanie, szkolenie i przesył.
  • Nowa flaga jednostek: AIPreplacedForceBully (wymuszone wstępne rozmieszczenie)
    • Po wstępnym umieszczeniu na mapie, jednostka ta będzie uważana za możliwą do zastąpienia przez komputer, nawet jeśli w danej chwili komputer nie może tego zrobić. Pozwala to na wykorzystanie przez komputer zdolności zyskanych dzięki działaniu wyzwalacza Replace Ability w celu zastąpienia.

Ulepszony konwerter klasycznych map

  • Ulepszono konwerter klasycznych map. Podczas konwersji map w WarCraft III nie tylko konwertuje siatkę terenu, ale również tekstury terenu i wstępnie rozmieszczone jednostki, dekoracje, elementy zniszczalne, kamery i regiony.

System łupów wykorzystujący dane

  • Nowe funkcje natywne w Galaxy: UnitLootDropUnit, UnitLootDropPoint (jednostka zrzucająca zasoby, punkt zrzutu zasobów)
    • Moderzy mogą konfigurować swoje łupy w edytorze danych łupów, a następnie używać tych funkcji natywnych do generowania łupów. Łup może być przedmiotem, jednostką, efektem, a nawet losowym przedmiotem poziomu X/klasy X, itd.
  • Nowe funkcje natywne: UnitLootLastCreated, UnitLootLastCreatedGroup (ostatnio stworzony łup, ostatnio stworzona grupa łupów)
    • Moderzy mogą za ich pomocą przejmować przedmioty łupów, które zostały właśnie wygenerowane za pomocą UnitLootDropUnit lub UnitLootDropPoint.
  • Nowa flaga przedmiotów: IncludeInLootItemPool (dołącz do puli łupów)
    • Po zaznaczeniu, przedmiot zostanie włączony do losowej puli wyboru CLootItem. Moderzy mogą w ten sposób oznaczać przedmioty jako „niemożliwe do losowego upuszczenia”.
  • Funkcja CLootItem.ClassArray może być teraz ulepszana, a moderzy będą mogli używać wyzwalaczy do losowego tworzenia przedmiotów różnych klas.

Modyfikator komend Ctrl

  • Domyślnie modyfikator jest wyłączony. Użyj akcji wyzwalacza, UISetCommandAllowed, aby go włączyć lub wyłączyć.
  • Kiedy ten modyfikator jest włączony: gdy trzymasz wciśnięty klawisz Ctrl podczas wydawania komendy, zostanie ona wysłana tylko do jednostek w aktualnie podświetlonej podgrupie zamiast do wszystkich wybranych jednostek. Na przykład: powiedzmy, że gracz wybiera marine i zelotę, upewniając się, że tylko marine jest zaznaczony. Jeśli następnie wyda rozkaz ruchu prawym przyciskiem myszy, trzymając wciśnięty klawisz Ctrl, tylko marine otrzyma rozkaz ruchu.

Inne zmiany właściwości klatek IU

  • Dodano właściwość do CUnitFrame: UseSelectionLeader (wybierz lidera zaznaczenia)
    • Daje IU możliwość uchwycenia aktualnej jednostki lidera dla aktualnego wyboru (pierwszej jednostki aktywnej podgrupy).
    • Po zaznaczeniu, CUnitFrame automatycznie ustawi LocalObservedSelectionLeaderUnit() jako swoją jednostkę. Zaktualizuje również swoją właściwość UnitTag, aby mogła wykonać powiązanie właściwości z innymi klatkami.
    • Po zaznaczeniu, CUnitFrame zignoruje wszystkie powiązania właściwości, które łączą znacznik UnitTag z innymi klatkami, ponieważ powinien on odzwierciedlać tylko lidera zaznaczenia.
    • Po odznaczenia, CUnitFrame będzie zachowywać się tak jak poprzednio.
  • Naprawiono błąd, który powodował, że CUnitButton nie aktualizowała swojej właściwości UnitTag.

Inne zmiany API wyzwalaczy

  • Etap zdolności
    • CAbilRally może teraz rzucać zdarzenie sceny wyzwalacza: miejsce, gdzie ustawiony jest punkt zborny.
  • Handicap gracza
    • Handicap gracza może teraz przekraczać poprzedni limit 100%.
  • Zarządzanie magazynem jednostek
    • Nowe API Galaxy: UnitMagazineAssign (przypisanie jednostki do magazynu)
      • Dodaje istniejącą jednostkę do magazynu jednostek.
    • Nowe API Galaxy: UnitMagazineRemove (usunięcie jednostki z magazynu)
      • Usuwa istniejącą jednostkę z magazynu jednostek.
  • Nowe API stanu gracza: AlwaysShowUnitTooltip (zawsze pokazuj opis jednostki)
    • Kiedy ten stan jest włączony, jednostki tego gracza zawsze będą pokazywały podświetlone opisy, nawet jeśli nie są one oznaczone jako Highlight Tooltipable.
  • Nowe API stanu gracza: GivesBounty (daje nagrodę)
    • Domyślnie włączone dla wszystkich graczy. Po włączeniu, jednostki gracza będą zapewniały surowce po zabójstwie wrogim graczom, którzy je zabili.
  • Nowe API aktorów: ActorScopeMoveTo (przenieś zakres do)
    • Przenosi zakres aktorski na współrzędne danego aktora.
  • Nowe zdarzenie wyzwalacza: Player Spent Vital Event (zdarzenie użycia sił życiowych)
    • Działa, gdy gracz użył siły życiowej.
    • Potrafi rozróżnić, których sił życiowych użyto i ile w odpowiedzi na zdarzenie wyzwalające.

Inne zmiany edytora danych

  • Edytor danych może teraz zlokalizować właściwą linię XML, gdy użytkownik wybierze domyślny wpis danych.
  • Linki wymagań (const CTechRequirementsGraph*) uwzględniają teraz wymianę tokenów XML.
    • Dzięki temu większość zdolności może teraz używać tokenów do wskazywania swojego łącza wymagań, aby być tym samym identyfikatorem co sama zdolność.
  • CBehaviorLinkArraynow uwzględnia teraz wymianę tokenów XML.
  • Rekwizyty animacji (CAnimProps) w wiadomościach aktorów uwzględniają teraz wymianę tokenów XML.
  • Próba usunięcia nieistniejącego rekwizytu TintColor aktorowi nie będzie już zwracać komunikatu o błędzie.
  • CActorQuad posiada teraz flagi, które pozwalają na automatyczne rozciąganie w zależności od pozycji odpalenia i trafienia.
  • Nowy typ sortowania celów: CTargetSortValidator (weryfikator)
    • Sortuje cele w zależności od tego, czy spełniają one określone kryteria weryfikacji.
  • Nowa flaga komendy: Attack Once (atakuj raz)
    • Przy wydawaniu rozkazu ataku można teraz wydać rozkaz „atakuj raz”.
    • Do ustawienia tej flagi można użyć działania wyzwalającego Order Set Flags.
  • Pola CEffectOffset mogą być teraz rozszerzone o operacje dodawania, odejmowania, mnożenia i dzielenia, działające jak wektor 3D. Poprzednio dostępny był tylko zestaw.
  • Nowa funkcja kinetyczna: CKineticDistance (odległość kinetyczna)
    • Wystawia jednostkę docelową z pozycji wyjściowej na określoną odległość w kierunku pierwotnej pozycji parametru kinetycznego.
  • Nowe pole CWeapon: DisplayName (wyświetlana nazwa)
    • Służy do obchodzenia nazwy broni w opisie.
  • Nowa flaga CEffectModifyUnit: StartingVitals (początkowe siły życiowe)
    • Ustawia życie, energię i osłony jednostki na jej początkowe siły życiowe.
  • Nowa flaga CEffectModifyUnit: SetVitals (ustaw siły życiowe)
    • Bezpośrednio ustawia siły życiowe jednostki.
  • Efekty leczenia dla CActorActon
    • CEffectHeal może teraz dostarczać wiadomości ActionParticipantsMessage i ActionCommenceMessage dla CActorAction. Pozwala to efektom leczącym na konfigurowanie działań aktora.
    • Naprawiono błąd, który powodował, że funkcja CEffectHeal nie mogła we właściwym czasie uruchamiać podnazwy zatrzymywania efektu działania.
  • Nowa flaga CValidatorUnitOrderCValidatorUnitOrder: CheckStateOnly (sprawdź tylko stan)
    • Po zaznaczeniu, weryfikator będzie oceniał tylko to, czy komenda zdolności jest wyłączona dla danej jednostki, niezależnie od tego, czy komenda może być wykonana z powodów takich jak „za mało many”.
  • Nowa flaga CEffectModifyUnit: ResourceDrop (zrzut surowców).
    • Po zaznaczeniu, jednostka trafiona natychmiast upuści zasób, który obecnie nosi, bez konieczności udawania się do ratusza. Gracz-właściciel otrzyma ten zasób.
  • Nowa flaga CEffectEnumArea: UnCreep (wyklucz stworzenia)
    • Po włączeniu, efekt wyszukiwania wykluczy stworzenia w swoim promieniu wyszukiwania.
  • API losowego rozsiewania jednostek:
    • Nowe API wyzwalacza do ustawiania, pobierania lub resetowania losowego rozsiewania jednostek.
    • Losowe rozsiewanie jednostki określa jej losową nazwę, warianty itd.
    • Jest to przydatne, gdy chcemy stworzyć dokładną kopię jednostki.
  • Naprawiono błąd, który powodował, że funkcja CEffectSwitch czasami zwracała nieprawidłową wiadomość o błędzie.
  • Nowa flaga zdolności szkolenia: Copy Life Percentage (kopiuj procent życia)
    • Określa, czy jednostka szkolona odziedziczy procent życia jednostki szkolącej.
  • Nowa flaga zdolności szkolenia: Bypass Food Restriction (pomiń ograniczenia zaopatrzenia)
    • Pozwala na pominięcie ograniczeń dotyczących zaopatrzenia.
  • Nowa flaga zdolności budowania: Smart Cast (inteligentne użycie)
    • Określa, czy dana zdolność może być kliknięta prawym przyciskiem myszy, aby wykonać inteligentne użycie.
  • Nowa flaga zdolności efektów: External Acquire Passenger (zewnętrzne pozyskanie pasażera)
    • Pozwala na pozyskanie jednostek wewnątrz transportera.
  • Naprawiono błąd, który powodował, że weryfikator zasięgu broni jednostki zawsze zawodził, gdy jednostka znajdowała się pod wpływem kontroli umysłu.
  • Nowa flaga efektu tworzenia uzdrowiciela: Continue When Full (kontynuuj przy pełnym stanie)
    • Określa, czy efekt tworzenia uzdrowiciela będzie kontynuowany, jeśli przywrócono wszystkie siły życiowe.
    • Domyślnie wyłączone.
  • Naprawiono błąd, który powodował, że tworzenie efektów jednostkowych tworzyło jednostki bezpośrednio w punkcie zbornym zamiast przenosić je do punktu, jeśli pole Rally Unit zostało ustawione.
  • Nowe pole Set Effect: RecycleCount (liczba ponownych użyć)
    • Pozwala na wielokrotne wykonywanie efektów podrzędnych, aż do momentu osiągnięcia wymaganej liczby.
  • Nowa flaga zdolności efektów: Cancel Reset Auto Cast (anuluj resetowanie automatycznego użycia)
    • Określa, czy stan automatycznego użycia zdolności zostanie zresetowany, gdy gracz ręcznie anuluje jej podtrzymywanie.
  • Nowe pole weryfikatora poziomu wprawy: Result Max Level (wynikowy maksymalny poziom)
    • Sprawdza, czy dana jednostka osiągnęła maksymalny poziom bohaterski.
  • Naprawiono błąd, który powodował, że alerty ożywiające nie wskazywały prawidłowo na ożywione jednostki ani nie odtwarzały właściwych kwestii.
  • Nowa flaga Set Effect: Set Source (ustaw źródło)
    • Ustawia jednostkę/punkt źródłowy swoich efektów podrzędnych jako punkt/jednostkę docelową aktualnej jednostki/punktu docelowego.
  • Dodano pole wyszukiwania do okna dialogowego listy komend zdolności w edytorze danych.

Poprawki niestandardowych ras

  • Rozwijane menu w poczekalniach gry teraz poprawnie wymienia niestandardowe rasy do ustawienia na mapie, zamiast zawsze wyświetlać terran, zergi i protosów.
  • Uwaga: ta zmiana nie ma na razie wpływu na modyfikacje rozszerzeniowe, gdyż obecnie nie umożliwiają one dodawania niestandardowych ras do rozwijanych list.
  • Naprawiono błąd, który powodował, że mapy z niestandardowymi rasami mogły powodować zawieszanie się programu z powodu funkcji skórek konsoli.

Obsługa niestandardowych nazw drużyn

  • Edytor SC2 obsługuje teraz niestandardowe nazwy drużyn.
  • Niestandardowe nazwy drużyn mogą być ustawione inaczej w zależności od różnych trybów gry.
  • Aby dostosować nazwy zespołów, należy przejść do Maps/Mod_>Game Variants (Mapa/Mod->Warianty gry).

Rozszerzony znacznik tekstowy "d time/"

  • Dodano pięć nowych typów czasu do znacznika tekstowego „time”, który pokazuje różne czasy gry.
  • Przy podawaniu tych nazw typów, zamiast bezpośredniej liczby znacznik tekstowy wyświetli odpowiedni czas w grze.
  • Przykłady:
    • Tekst wejściowy
      • Ustawiony czas: "d time="9125"/>
      • Czas gry: "d time="GameTime"/>
      • Czas misji: "d time="MissionTime"/>
      • Czas SI: "d time="AITime"/>
      • Czas i data: "d time="DateTime"/>
      • Pora dnia: "d time="TimeOfDay"/>
    • Wyświetlany tekst
      • Ustawiony czas: 9125 sek.
      • Czas gry: 11:50
      • Czas misji: 11:50
      • Czas SI: 11:50
      • Czas i data: 2020:06:12:12:12:23
      • Pora dnia: 22:06:34

Inne zmiany właściwości klatek IU

  • Nowe właściwości CHeroFrame: HeroTag, Skill Point (znacznik bohatera, punkt zdolności)
    • Pokazuje znacznik jednostki bohatera i niewykorzystane punkty zdolności.
    • Moderzy mogą korzystać z tych właściwości, aby dostosować swoje własne klatki bohatera.

Drobne zmiany

  • Zwiększono maksymalną liczbę roślinności w edytorze terenu do 10 na komórkę.
  • Naprawiono błąd, który powodował, że przy próbie ożywienia jednostki, która zginęła podczas przekształcania pojawiał się czerwony tekst błędu.
  • Nowe pole w danych GameUI: Suppress Skins In Replay (wyłącz skórki w powtórce)
    • Pozwala to WCS Game Heart na wyłączanie skórek w powtórkach.

POPRAWKI BŁĘDÓW

  • Naprawiono błąd, który powodował, że pierwsza fala ataku mogła utknąć podczas misji Szepty o zagładzie w kampanii Legacy of the Void.
  • Naprawiono błąd, który powodował, że generatory osłon nie wykonywały poleceń stop na budowlach nieobronnych, gdy włączona była funkcja automatycznego użycia.
  • Portret centrum dowodzenia w skórce konsoli zremasterowanych terran jest teraz poprawnie wyświetlany na środku.
  • Naprawiono błąd, który powodował, że niektóre dekoracje wodne czasami migały nad wodą.