League of Legends r.

Jak zrealizować misję z Hecarimem? Wystarczy rzucić w kogoś śnieżką na ARAM-ie. Kolejna edycja League of Bugs

Jak wiadomo, wydarzeniu Worlds 2019 towarzyszą misje, dodawane seriami co tydzień. Wydawałoby się, że ich działanie jest proste: realizujesz zadanie, które notuje misja, a następnie dostajesz nagrodę. League of Legends nie byłoby jednak sobą, gdyby wszystko szło zgodnie z planem - niektóre misje okazały się dość kapryśne. Ten sam błąd pojawił się w pierwszym tygodniu i w trzecim.

Artykuł powiązany:

W artykule interesują nas dwie misje (a konkretniej ich pierwsze części – do realizacji jako Riven lub Hecarim):

Misja z pierwszego tygodnia

Week 1 – Broken Pathway

Tylko dobierane gry.

Nagroda: 10 tokenów.

Jako Riven wyrzuć w powietrze wrogiego bohatera trzecim trafieniem Broken Wings (Q) trzy razy.
LUB
Rozegraj pięć gier.

Misja z trzeciego tygodnia (obecnego)

Week 3 – Desperado

Tylko dobierane gry.

Nagroda: 10 tokenów.

Jako Hecarim odrzuć wrogiego bohatera za pomocą Devastating Charge (E) pięć razy.
LUB
Rozegraj pięć gier.

Co jest z nimi nie tak?

W pierwszym tygodniu misję z Riven dało się zrealizować na bohaterze niebędącym Riven. W jaki sposób? Wystarczyło zagrać ARAM-a i… nakarmić poro. Oczywiście zadziałał tutaj spaghetti code – jak się okazało, kod misji z Riven wykorzystywał te same elementy, co jedna ze starych misji związanych z karmieniem poro.

Ten sposób realizacja zadania oczywiście okazał się dużo łatwiejszy i szybszy. Misja została naprawiona po nieco ponad dobie. Gracze, którzy ją wypełnili przez nakarmienie poro, nie musieli jej robić ponownie. Postęp został zaliczony.

Podobna rzecz pojawiła się w misji z trzeciego tygodnia (czyli tego, który rozpoczął się wczoraj). Misję z Hecarimem ponownie można zrealizować w prostszy sposób: wystarczy… użyć śnieżki na ARAM-ie. Przyczyna jest właściwie identyczna – ponownie kod misji z Hecarimem wykorzystuje te same elementy, które pojawiły się w jednej ze starych misji (tylko tym razem związanej z użyciem śnieżki).

Dlaczego misje odwołują się do innych? Przeważnie ich zaliczanie opiera się na sprawdzaniu statystyk, które widzimy po zakończeniu gry (np. obrażenia, złoto, uzdrawianie, punkty wizji etc.). Jeżeli misje muszą odwołać się do czegoś spoza tych statystyk (np. konkretnej akcji bohatera), jednym ze sposobów na to jest użycie listy zmiennych, które mogą być oznaczone przez cokolwiek. Żeby więc śledzić np. wykonanie akcji jako Hecarim, designer sprawdza jego umiejętności, a następnie dopisuje do określonej z nich jedną z tych zmiennych i ustawia ją na jakąkolwiek liczbę. Następnie misja nasłuchuje tej liczby. Jeżeli pojawi się ona w procesie nasłuchiwania, misja jest uznawana za zakończoną.

Wychodzi na to, że śnieżka na ARAM-ie w przeszłości również miała powiązaną z nią misję. Misja ze śnieżką używała tej samej liczby w zmiennej, co misja z Hecarimem.

Progres misji nie sprawdza, czy Hecarim zastosuje jakąś misję – a nasłuchuje liczb kryjących się w zmiennych. Nie wie, gdzie i co oznaczyło liczbę w zmiennej. Wie, że to wystąpiło. Widzi zmianę wartości zmiennej.

Po problemie z misją z Riven Riot wyczyścił skrypty starych misji, jednak pominął jeden plik, który wpłynął na misję z Hecarimem.

Błąd ma zostać naprawiony jutro.

Rioter Xenogenic podsumował cała sytuację:

Za pierwszym razem to było zabawne, teraz jest to tylko żenujące, że stało się ponownie.