Przestrzenie nazw
Widoki
MT2009 PLUS 2.0 — Podziękowania
Wydanie 2.0, ostatnia zmiana 23.09.2026. Wszystkie nowości · Jak zaktualizować · Changelog na GitHubie
Wersja 2.0.99 (23.09.2026)
Tylko serwer i launcher; klient zostaje 2.0.26. Zawiera wszystko z 2.0.98.
Launcher rozpoznaje zepsuty dysk Dockera
Gdy Docker Desktop przy budowaniu serwera trafi na błąd zapisu, jego dysk (plik docker_data.vhdx) przełącza się w tryb tylko do odczytu. Od tej chwili każda próba kończyła się „kodem 1”, a Diagnostyka mówiła, że można uruchomić serwer. Zgłosił to gracz, który w ten sposób pięć razy pobrał i podmienił tę samą aktualizację.
- Launcher sprawdza, czy da się zapisać na dysku Dockera: w Diagnostyce, przed aktualizacją i przed każdym budowaniem. Gdy się nie da, mówi to wprost i podaje kroki naprawy, a aktualizacji w ogóle nie pobiera.
- Diagnostyka ostrzega, gdy na dysku z Dockerem zostało mniej niż 15 GB wolnego miejsca. Brak miejsca to najczęstsza przyczyna takiego błędu.
- Ponowna aktualizacja tylko dokańcza budowanie. Gdy pliki nowej wersji są już na dysku, a budowanie się nie udało, launcher nie pobiera ich drugi raz i nie robi kolejnej kopii plików.
- Launcher nie gubi zapisanej wersji klienta, gdy budowanie serwera nie doszło do końca. Wcześniej proponował potem aktualizację klienta, który był już aktualny.
Paczka z logami
- Nie zawiera hasła do panelu WWW. Launcher wypisuje je po polsku, a filtr haseł rozpoznawał tylko angielskie wpisy. Panel działa domyślnie tylko na Twoim komputerze, więc nikt z zewnątrz nie mógł go użyć, ale hasło nie powinno trafiać do plików, które wysyła się innym.
- Zawiera informację o wolnym miejscu na dyskach i rozmiarze dysku Dockera, bo przy takich błędach to pierwsze pytanie.
Wersja 2.0.98 (23.09.2026)
Serwer 2.0.98 i klient 2.0.26. Zaktualizuj też klienta („AKTUALIZUJ wszystko” w launcherze). Kto gra po niemiecku, hiszpańsku, włosku, portugalsku, rumuńsku albo turecku, bez nowego klienta nie ulepszy przedmiotu u kowala. Zawiera wszystko z 2.0.97.
Kowal i zablokowany ekwipunek w innych językach niż polski
Po oddaniu przedmiotu kowalowi nic się nie działo, a potem nie dało się ruszyć w ekwipunku niczego: przesunąć, wyrzucić, użyć. Pomagało dopiero ponowne zalogowanie. Zgłosili to gracze z kanału angielskiego („nothing happens when I put the item on him”). Dotyczyło to wszystkich grających po niemiecku, hiszpańsku, włosku, portugalsku, rumuńsku i turecku.
Przyczyna: w tych językach tekst „koszt ulepszenia” w pakiecie tłumaczeń oczekiwał liczby, a gra podaje kwotę jako tekst („1.000 Yang”). Okno kowala wywracało się, zanim się pokazało. Serwer w tym czasie czekał już na odpowiedź z tego okna i blokował cały ekwipunek.
- Klient 2.0.26 ma poprawione teksty we wszystkich językach. Sprawdziliśmy cały pakiet tłumaczeń tak, jak czyta go gra, i poprawiliśmy 89 tekstów w siedmiu językach, także angielskim. Każdy z nich mógł wywrócić jakieś okno albo komunikat: podnoszenie yang, zrzut ekranu, przycisk kupna w ItemShopie, cofanie punktów statystyk, odnawianie Ducha Smoka w gildii, długość ryby, umiejętności drużyny, sprzedaż kilku sztuk u handlarza.
- Okno kowala nie zablokuje już ekwipunku. Jeśli mimo wszystko się nie otworzy, klient sam anuluje ulepszanie, więc serwer odblokowuje ekwipunek. Koszt i szansa pokażą się wtedy jako zwykłe liczby.
- Po stronie serwera: kto odejdzie od kowala dalej niż 20 metrów, odzyskuje ekwipunek, nawet ze starym klientem. Dopóki ktoś nie zaktualizuje klienta, wystarczy odejść od kowala, bez wylogowywania.
- Klient po hiszpańsku w ogóle się nie uruchamiał. W hiszpańskim pliku tłumaczeń brakowało znaku końca ostatniej linii. Gra obcinała przez to ostatnią literę i przed ekranem logowania pokazywała błąd. Poprawione.
- Po angielsku: szept do osoby, którą masz zablokowaną, pokazuje teraz komunikat zamiast błędu w tle.
Launcher nie przycina się przy zmianie rozmiaru okna
Przeciąganie krawędzi nowego okna launchera było bardzo powolne: przy każdym ruchu myszy okno przeliczało i od nowa rysowało tło oraz wszystkie przyciski. Tło jest teraz przygotowane raz dla danego rozmiaru, a układ przelicza się dopiero po puszczeniu krawędzi. W naszym pomiarze jeden krok przeciągania trwa teraz około 29 ms zamiast 378 ms. Wygląd okna jest taki sam jak wcześniej.
Czat z botami 1.1b — ĹŌŞƬĒĶ (l0st3k)
Druga wersja systemu rozmów od ĹŌŞƬĒĶ (l0st3k), wydana dzień po pierwszej.
- Bot wie, co ma na straganie. Zapytany o przedmiot, który ma wystawiony (na przykład „masz ku aura miecza?”), odpowiada, że go ma, w którym mieście stoi sklep i za ile. Dotyczy to też sklepu offline, a na tej linii serwera każdy stragan bota jest sklepem offline. Wersja 1.1a przeszukiwała tylko zwykłe stragany i na takie pytanie odpowiadała, że nic nie ma.
- Słownik metinowca. Bot rozumie skróty, którymi piszą gracze: KK (Kawałek Klejnotu), KD (Kamień Duszy albo Kamień Duchowy), KU (księga umiejętności), FMS, RIB, 12D, bodzio, ebo, PD i inne. Rozumie też nazwy map (M1, M2, M3, V1, V2, DT, Sohan, Czerwony Las) i kwoty (500k, 2kk, 1,5kk, 300 tys).
- Ceny i targowanie. Na „ile chodzi FMS?” bot podaje najniższą cenę z wystawionych straganów, a gdy nikt tego nie wystawia, cenę, za którą ostatnio się sprzedawało. Na „sprzedasz mi FMS za 2kk?” porównuje ofertę ze swoją ceną: zgodzi się, powie, że to za mało, albo że na straganie stoi taniej.
- Wołaj. Gdy na Wołaj napiszesz „Kupię …”, na priv odpisze bot, który ma to na straganie. Teraz dotyczy to także sklepów offline i skrótów ze słownika („Kupię FMS”, „Kupię KK”). Na „Sprzedam …” odzywa się bot, który tego potrzebuje, i on również rozumie skróty.
- Krótkie zwroty z gry: gz, gl, brb, gotowy, „ksujesz”.
Nasze poprawki do wersji autora, znalezione w teście na żywo:
- Nazwa przedmiotu, w której jest słowo ze słownika, znów działa. „Szpon” to w słowniku Miecz Szponu Ducha i przez to „Kupię szpon wilka” zostawało bez odpowiedzi, choć bot miał Szpon Wilka na straganie.
- „Kupię księgę misji” na Wołaj jest szukane jak zwykły przedmiot. Wcześniej „księga” oznaczała wyłącznie księgę umiejętności, a taka linia przepadała bez śladu.
- Na „gdzie masz stragan?” bot mówi, gdzie ma stragan, zamiast szukać na nim przedmiotu o nazwie „gdzie”.
- Dwuliterowe skróty („Kupię KK”) przechodzą przez Wołaj, a „Sprzedam …” korzysta ze słownika.
- Wolne miejsca w plecaku są liczone tak jak w grze, a absurdalnie duża kwota w targowaniu nie psuje rachunku.
Sprawdzone na naszym serwerze testowym przy około 850 botach. W dwóch przebiegach boty zadały sobie ponad 900 pytań, także o przedmioty, które naprawdę stoją na ich straganach. Po poprawkach wszystkie 35 wołań „Kupię …” dostało odpowiedź od bota, który ma dany przedmiot. Odpowiedź na wołanie zajmuje serwerowi około 2 ms, a żaden rdzeń nie padł.
Czego bot jeszcze nie rozumie: pytanie „masz księgę misji?”, „masz marmur polimorfii?” albo „masz kamień duchowy?” bierze za rozmowę o umiejętnościach albo o Metinach. Działa skrót („masz km?”, „masz kd?”) i wołanie „Kupię …”.
Wersja 2.0.97 (23.09.2026)
Serwer 2.0.97. Klient zostaje przy 2.0.25, więc aktualizacja klienta nie jest potrzebna. Zawiera wszystko z 2.0.96.
Boty odpisują na priv — system rozmów od ĹŌŞƬĒĶ (l0st3k)
System napisany przez ĹŌŞƬĒĶ (l0st3k) sprawia, że bot odpisuje na szept tak, jak zrobiłby to gracz. Całość jest w C++ i działa lokalnie w rdzeniu gry, bez żadnej zewnętrznej usługi. Wchodzi w całości, z kilkoma naszymi poprawkami. Co potrafi:
- Rozumie zwykłe pytania: co robisz, gdzie expisz, jaki masz poziom, ile masz yang, jak drop, czy jest w PT albo w gildii, co ma w sklepie, czy sprzeda lub kupi przedmiot albo księgę („masz ku aura miecza?”). Rozmawia też o luźnych rzeczach: czy lubi zimę, czego się boi, czy jest botem.
- Odpowiada tym, co naprawdę robi w tej chwili: mapą, celem, poziomem, bronią i zbroją, drużyną, gildią i nastrojem z systemu osobowości Iwakury.
- Pamięta rozmowę: rozumie dopytania („a dlaczego?”, „a potem?”, „a ty?”), nie powtarza w kółko tych samych zdań, a stałego rozmówcę z czasem traktuje jak znajomego.
- Odpisuje po chwili, jak człowiek (około sekundy). Kilka szybkich wiadomości łączy w jedną odpowiedź, a na zalew wiadomości odpowiada krótko, zamiast gubić wątek.
- Czasem sam zagada do gracza, z którym już wcześniej rozmawiał.
„Kupię …” i „Sprzedam …” działają jak dotąd, czyli odpowiada bot, który ma towar. „Luruj” też działa bez zmian.
Nasze poprawki: bot wie o swoim sklepie offline. Mówi, w którym mieście stoi sklep i co na nim jest, a na „sprzedasz mi …” odpowiada ceną z własnych półek. Wcześniej na tej linii serwera każdy bot odpowiadał, że straganu nie ma. Poprawiliśmy też liczenie wolnych miejsc w plecaku, tak jak liczy je gra.
Dla administratora: plik playerbot_conv_debug w katalogu rdzenia włącza
szczegółowe linie PLAYERBOT_CONV w logu, a playerbot_conv_noinit sprawia,
że boty nie zaczynają rozmów same. Oba działają bez restartu.
Sprawdzone na naszym serwerze testowym przy około 850 botach: przez 12 minut boty zadały sobie nawzajem 885 pytań, w tym serie po sześć wiadomości naraz. Boty udzieliły 542 odpowiedzi (130 z nich łączyło kilka wiadomości), a żaden rdzeń nie padł. Z żywymi graczami system działa już na serwerze autora.
Bot po śmierci nie biegnie w ścianę
Po wstaniu bot odchodzi kawałek od miejsca śmierci. Kierunek był losowany z ośmiu, a w wąskich komnatach Lochu Małp większość z nich to ściana. Bot planował wtedy drogę donikąd przy każdym ruchu, aż się wyleczył, i były to najczęstsze linie w syserr serwera. Teraz wybiera pierwszy kierunek, do którego naprawdę da się dojść, a gdy żadnego nie ma, zostaje w miejscu, niewidzialny, i się leczy.
Wersja 2.0.96 (23.09.2026)
Serwer 2.0.96, klient 2.0.25. Zawiera wszystko z 2.0.95. Zaktualizuj też
klienta (przycisk „Aktualizuj klienta”): Auto Łowy 2.0 potrzebują nowego
metin2client.exe.
Auto Łowy 2.0 od Colide'a
Colide przebudował Auto Łowy i przysłał swój kod — łącznie z częścią dla klienta w C++. Wchodzi w całości, a do tego nasze poprawki. Nowości:
- Moby, Metiny, Bossy — trzy przełączniki w oknie ustawień decydują, co postać atakuje. Gdy włączone są wszystkie, serwer zawsze wybiera najpierw bossa, potem Metina, a dopiero potem zwykłe potwory. Domyślnie włączone są Moby i Metiny.
- Po zabiciu potwora postać od razu bierze następny cel. Martwy potwór leży na mapie jeszcze 2–3 sekundy, a postać czekała przy nim na kolejną odpowiedź serwera. Teraz klient sam widzi, że potwór padł, i od razu prosi o następny cel.
- Łuk w ręce strzela z daleka — do 2400 jednostek. Z mieczem lub sztyletami postać podchodzi jak dotąd.
- Zasięg widać na ziemi. Przy otwartym oknie ustawień gra rysuje okrąg: niebieski idzie za postacią, a zielony, gdy włączone jest „Wracaj”, stoi w miejscu startu z krzyżykiem w punkcie powrotu. Zasięg ustawia się suwakiem (300–5000).
- Bez „Wracaj” zasięg idzie za postacią, zamiast trzymać się miejsca startu.
- Okna pamiętają swoje miejsce (
autohunt/config.cfg), a każda postać ma swoje ustawienia wautohunt/postacie/<nick>.cfg. Ustawienia z poprzednich wersji są czytane do pierwszego zapisu, więc nic nie ginie.
Okrąg, zasięg łuku i puszczanie trupa to funkcje nowego exe klienta. Ze starszym exe Auto Łowy działają bez nich — łucznik ze szkołą łuku nadal strzela z daleka.
Nasze poprawki w tej wersji: mikstura, której nie ma w plecaku, jest szukana raz na sekundę zamiast w każdej klatce (przeszukanie czterech stron plecaka kosztowało klatkę), niebieska mikstura jest rozpoznawana po tabeli przedmiotu, a próg HP po wskrzeszeniu nie może przekroczyć 100%.
Szybkie podnoszenie działało tylko do pierwszego teleportu
Zgłosił GorącyDelfin: klawisz podnoszenia wszystkiego naraz (`) działał tylko w M1. Zegar klienta liczy od zera przy każdym połączeniu z serwerem, czyli po każdym teleporcie, a klawisz pamiętał czas sprzed teleportu — więc blokował się na tyle, ile postać grała przed przeniesieniem. To samo dotyczyło przycisku „Scal i uporządkuj”, przenoszenia stosów do magazynu, pompy cen w sklepie, tytułów botów i Auto Łowów. Wszystkie liczą teraz czas zegarem, który teleport nie zeruje.
Boty w drużynie gracza trzymają się gracza
Zgłosił SIZOWSKI: szamani dodani do drużyny robili swoje, zamiast iść za graczem, więc nikogo nie buffowali. Bot szuka potworów do 6000 jednostek od siebie, a za graczem idzie tylko wtedy, gdy nie walczy. Bot, który zawsze miał następnego potwora w zasięgu, odchodził więc paczka po paczce i nie wracał. Teraz bot w drużynie gracza atakuje tylko potwory do 2500 jednostek od gracza — chyba że potwór bije jego samego, bo obrony nic nie wstrzymuje. Gdy nie ma z czym walczyć, wraca do gracza i go buffuje.
Bot bez broni na 30 poziom nie kręci się już w kółko przy M3
Zgłosił urtopy, na przykładzie bota Champion: bot bez broni na 30 poziom, któremu skończył się czas wizyty w M3, szedł do M2 i po dwóch sekundach wracał do M3 — bez końca. Status pokazywał przy tym cel planera („Zbieram dla Biologa: Ząb Orka”), choć Ząb Orka nie leży w M3. Teraz po wizycie, która skończyła się bez broni, bot wraca do M3 dopiero po 45–90 minutach i w tym czasie załatwia resztę (dolina, koń, Biolog). W M3 jego status to „Szukam broni na 30 poziom na M3”.
Nowy wygląd launchera
Launcher dostał nowy wygląd z tłem:
- menu po lewej: Pulpit, Świat i boty, COOP, Baza danych, Logi i diagnostyka;
- pod menu wersje serwera, launchera i klienta oraz przycisk „Postaw kawkę”;
- w nagłówku link do metin2singleplayer.com i przełącznik języka;
- akcje jako karty z opisem;
- log operacji, który można zwinąć;
- przycisk rat EXP / DROP / YANG, który otwiera edytor rat w panelu WWW.
Wszystkie przyciski robią dokładnie to samo co wcześniej, z tymi samymi
oknami potwierdzeń. Zniknął tylko „URUCHOM DOCKER” — Dockera, jak dotąd,
uruchamia przycisk GRAJ. Okno mieści się też na mniejszym ekranie (laptop
1366×768). Gdyby nowy wygląd nie uruchomił się na danym komputerze, launcher
powie o tym i przy następnym uruchomieniu otworzy się w starym wyglądzie
(zostawia plik .m2launcher-classic-layout; jego usunięcie to kolejna próba).
Tło to grafika w klimacie Metin2, nie oficjalny render z gry.
Wersja 2.0.95 (22.09.2026)
Serwer 2.0.95, klient 2.0.24. Zawiera wszystko z 2.0.94. Większość tej wersji to Community Patch 2 od Iwakury — zmiany osobowości opisane niżej — oraz najpoważniejsze błędy z kanału „błędy i bugi".
Boty wracają z odpoczynku („Boty grają jak żywi ludzie")
Zgłosił Kuszaa, z wykresem: po włączeniu przełącznika boty schodziły z
serwera na odpoczynek i świat pustoszał, bo odpoczynek trwa kilka godzin, a
sesja jedną–dwie. Rachunek dawał to samo co jego wykres — po kilku godzinach
większość kohorty odpoczywała naraz. Teraz odpoczywa najwyżej 40% botów
jednocześnie; bot, którego sesja kończy się, gdy limit jest pełny, gra dalej
jeszcze 10–40 minut. Spis w logu (PLAYERBOT_LIFE: census) podaje też
held_on= i cap=.
Wojny gildii
Zgłaszało wielu graczy, najdokładniej prodnathin (zrzuty z 21 i 22 września) i Dixdros: boty na wojnie tylko rzucały umiejętności, nie biły zwykłym atakiem, stały w ścianach i uciekały z pola. Przyczyny były trzy:
- Zwykły atak bota działał tylko w pojedynku. Wróg z wojny gildii i gracz, z którym bot walczy w ramach Anti-PK, nie byli przeciwnikami w pojedynku, więc bot bił ich samymi umiejętnościami, a między nimi stał. Teraz zwykły atak dosięga wszystkich trzech; o tym, czy cios może paść, nadal decyduje silnik.
- Pole bitwy nie miało granic. Bot gonił wroga przez całą mapę gildii, w tym w skały między polem a mostem. Teraz bot walczy tylko w promieniu 1800 jednostek od miejsca zbiórki; kto z niego wyjdzie, wraca, a wróg poza polem nie jest celem.
Sklepy offline: wygasłe sklepy i sklepy-widma
Zgłosili ElGrande i Iwakura: sklep, który wygasł, nie dawał się otworzyć ponownie, a w M1 i M2 stały sklepy, w które nie dało się kliknąć. To jedna przyczyna: sklep offline liczy czas na dwóch zegarach — rdzenia gry i rdzenia bazy — a o wygaśnięciu decyduje ten drugi. Zegar obciążonego rdzenia gry chodzi szybciej (zmierzyliśmy 26,6 taktu na sekundę zamiast 25), więc sklep dochodził u niego do zera wcześniej. Przez ten czas stał na mapie, ale kliknięcie nic nie robiło, a odnowienie — już po pobraniu opłaty — rdzeń bazy odrzucał bez słowa. Na naszym świecie testowym tak utknęło 368 odnowień botów. Teraz o zerze decyduje wyłącznie rdzeń bazy, a odnowienie bez odpowiedzi jest po pięciu minutach porzucane i ponawiane.
Czerwone Konary u Biologa
Zgłosił ! AmaZing ¡: zadanie Biologa z Czerwonymi Konarami (85 poziom) nie dawało się oddać. Paczkowy quest sprawdzał w plecaku inny przedmiot (30166) niż ten, którego żąda (30167). Wysyłamy poprawioną kopię questa.
Pilne z Community Patch 2
- Exp w drużynie „Na równym" (SIZOWSKI): postać gracza nie dostawała doświadczenia za potwory zabite przez boty z drużyny, dopóki sama czegoś nie uderzyła. Przyczyną była blokada doświadczenia Grindera: silnik pomijał zablokowanego napastnika w podziale łupu całkowicie, także dla drużyny. Teraz jego ciosy liczą się dla drużyny, jeśli ktokolwiek w niej może zdobywać doświadczenie.
- Suwak wędkowania (blasty): przy 200% liczba rybaków nie rosła, bo boty na mapach frontu (Dolina Orków, pustynia i dalej) nigdy nie ruszały na ryby — łowisko jest w pierwszej wiosce. Teraz bot z frontu, który ma wędkować, wraca na nie jak na każdą inną sprawę w mieście.
- Fasolki Zen nie trafiały na sklepy: bot trzymał cały swój stos, więc u blastyego w plecakach leżało 18 000 fasolek, a na ladach żadna. Teraz bot zatrzymuje losowo od 10 do 15 sztuk na trening umiejętności do P (Kamienie Duchowe kosztują rangę, a fasolka ją odbudowuje) i wystawia nadwyżkę po 5 sztuk.
Community Patch 2 — zmiany osobowości (Iwakura)
Broń na 30 poziom. Bot od 30 poziomu bez broni na 30 poziom swojej klasy — Miecza Pełni Księżyca, Ostrza z Czerwonej Stali, Łuku z Rogu Jelenia, Kozika Czarnego Liścia, Antycznego Dzwonu albo Wachlarza Jesiennego Wiatru — kupuje ją na rynku przy najbliższej wizycie w mieście, niezależnie od swojego poziomu. Z ofert wybiera tę z najwyższymi średnimi obrażeniami, a cena rozstrzyga dopiero remis („12% za 300k albo 26% za 450k — weźmie droższą"). Przy włączonych osobowościach na zakup i ulepszanie razem idzie najwyżej 60% jego yang, a ulepsza ją jak Perfekcjonista: 60% botów do +6, 13% do +7, 8% do +8, 5% do +9 (pozostałe 14%, których patch nie przydzielił, też do +6), a przy każdej kolejnej wizycie dalej, aż do +8 (+9 dla tych, które wylosowały +9). Ta broń jest pierwsza w kolejce do kowala. Broń z 34%+ średnich idzie od +3 pod Zwój Błogosławieństwa, a taką z rynku bot dokupuje, jeśli ma wyższe średnie niż każda, którą już ma — w ramach tego samego budżetu. Bot, który może ją kupić, nie jedzie już po nią farmić na M3.
Grinder. 13% botów w ogóle nie zatrzymuje się na blokadach poziomu i ulepsza postać głównie przedmiotami z rynku. Kolejne 10% może porzucić styl Grindera: na każdym tierze, gdy jego sprzęt spełni Prawo Awansu, ma 33% szans, że przestanie się blokować na zawsze.
Bonusy. Poprawka błędów z Patcha 1, przez które boty bonowały przypadkowo:
- Buty, naszyjnik i bransoleta przed 45 poziomem są bonowane na każdym poziomie ulepszenia — wcześniej próg +4 wykluczał prawie całą biżuterię młodego bota.
- Są zmieniane, dopóki nie mają wymaganych linii: PŻ i co najmniej jednej z pozostałych (buty: kryt, szybkość ataku; naszyjnik: kryt, przeszywanie; bransoleta: % obrażeń do PŻ, przeszywanie, silny na zwierzęta, silny na orki).
- Broń dostaje kamienie dopiero, gdy dwa z tych trzech przedmiotów mają PŻ, a jej celem jest 30%+ średnich.
- Wymiana sprzętu: nowy przedmiot czeka w plecaku, dopóki jego bonusy nie przebiją bonusów noszonego — i jest bonowany tam, gdzie leży. Czeka tylko wtedy, gdy bot ma kamień, który może na nim użyć, a sam przedmiot nadaje się do bonowania (od +4; buty, naszyjnik i bransoleta młodego bota na każdym plusie). Inaczej bot zakłada go od razu, jak dotąd — bez tego zbroja +0 kupiona u handlarza czekałaby w plecaku bez końca.
Loch Małp (Tier 4). Dropków medali jest około cztery razy więcej niż dotąd. Pod osobowościami wylosowany dropek medali zostawał Wędrowcem, więc medale dropiło tylko 26 botów na tysiąc; teraz zostaje dropkiem, a kolejne 14% botów bez innej roli jest nim dodatkowo. Na naszym świecie testowym dropkiem medali jest teraz co dziesiąty bot spoza kohorty operatora. Blokują się na poziomie swojego lochu (33), nie na blokadzie Grindera, i nie „awansują" z niej na Zdobywcę; panele pokazują im właśnie tę blokadę. 3% z nich zbiera medale tak długo, aż starczy im na broń i zbroję +9 oraz hełm i tarczę +7 na swój poziom — wtedy kończą z lochem i kupują: najpierw broń od 30 poziomu, poniżej niego zbroję.
Księgi umiejętności. Bot w mieście w roli Handlarza kupuje księgi swoich umiejętności na poziomie M (do G) bez względu na stan sprzętu, za najwyżej 30% yang na wizytę, i czyta je od razu. Księgi innych klas wystawia chętniej: trafiają na ladę przed zwykłym towarem, a już trzy takie księgi są powodem, by otworzyć sklep.
Szkatułki z bossów (50070–50082, 50090, 50097, 50098) podnoszą nastrój bota o jeden stopień.
Łup przed AFK. Bot w słabym nastroju przed odejściem od klawiatury najpierw podnosi z ziemi swój łup — najwyżej przez półtorej minuty, żeby łup, do którego nie da się dojść, nie odbierał mu nawyku na zawsze.
Inflacja. Każde 2,5 miliarda yang zgromadzone łącznie na wszystkich
postaciach serwera podnosi ceny z cennika o 5%, ponad przelicznik dropu yang.
Suma jest liczona z bazy co dziesięć minut; sklepy dostosowują ceny, gdy
inflacja przeskoczy próg. W logu: PLAYERBOT_MARKET: world yang=... inflation=....
Hazardzista i Lista Przydatnych Przedmiotów. Lista jest teraz dokładnie tą z patcha: wymienione z nazwy kolczyki, bransolety, naszyjniki i buty, bronie z jego listy, wszystkie zbroje powyżej 33 poziomu i wszystkie tarcze powyżej 20. Przedmioty z listy trafiają do magazynu przy każdej wizycie, a nie dopiero z pełnego plecaka. To, czego lista nie zatrzymuje, idzie na sklep dla innych Hazardzistów, a nie do handlarza. Broni na 30 poziom swojej klasy bot trzyma do czterech; takich broni innych klas nie chomikuje już wcale.
Hazardzista w mieście. Bot w pierwszej wiosce z bronią +7, zbroją +6 i 3 000 000 yang (według przelicznika dropu yang i inflacji) zostaje Hazardzistą bez losowania: wybiera przedmiot, dokupuje brakujące ulepszacze i ulepsza go według zasad tej osobowości.
Perfekcjonista na rynku. 15% Perfekcjonistów przed pójściem do kowala sprawdza rynek: gdy stoi na nim broń, zbroja, tarcza albo hełm +8/+9 na ich poziom (nie niższy niż o 10), kowal czeka 20 minut na zakup, a bot płaci z budżetu Perfekcjonisty. Gdy nic takiego nie ma, ulepsza sam.
Śmieciowe bronie na rynku. 54 bronie z listy Iwakury na +0..+3 mogą stać najwyżej w pięciu sztukach łącznie na sklepach wszystkich botów; każda następna idzie do handlarza, a nadwyżka wystawiona wcześniej wraca z lady. Broń z cennymi bonusami nie jest śmieciem i do limitu się nie liczy.
Farma w M1. Boty w pierwszej wiosce biją zaprzysiężonych i niedźwiedzie, z których lecą ulepszacze, zamiast psów przy bramie: wybierają miejsca, gdzie te potwory stoją (zmierzone na plikach serwera — 15–18 takich miejsc w każdej wiosce). 1% Grinderów pierwszej wioski zostaje tam, dopóki nie zbierze na broń na 30 poziom +8 i zbroję na 18 lub 26 poziom +9.
Obrona gildii (pomysł Amosa). Gdy gracz zaatakuje bota, boty z jego gildii w promieniu 12 000 jednostek od napastnika rzucają wszystko i atakują go razem. Nad głową: „Bronię gildii przed …".
Pomysły
- Sklepy botów bez kłódek (Iwakura; na warunek SIZOWSKIEGO — tylko boty): boty mają do dyspozycji całą ladę, a gracz nie widzi na ich sklepach kłódek. Sklepy graczy bez zmian.
- Sklepy tylko w M1 (pomysł Kuszaa): nowe sklepy botów stają tylko w pierwszych wioskach, bo tam kupują gracze. Sklep, który stał w drugiej wiosce, po wygaśnięciu zostaje odnowiony na rynku pierwszej wioski. Przełącznik na stronie AI panelu klasycznego przywraca sklepy w obu wioskach.
Inne poprawki
- Raty podczas eventu (Monek, CarloMontana): zmiana rat w panelu w czasie eventu wyglądała, jakby się nie zapisała, i nie działała też po jego końcu. Teraz panel zapisuje ją jako stawkę bazową eventu, a koniec eventu wraca właśnie do niej. Stawkę bazową, którą zostawił event zakończony przy wyłączonym serwerze albo stara wersja, serwer sprząta po starcie — to przez nią rat nie dało się zmienić nawet wtedy, gdy żaden event nie trwał.
- Kopia świata (uxietoszef): kopia przerywała się na uszkodzonej bazie
log, a razem z nią reset świata. Teraz zrzut próbuje jeszcze raz z pominięciem uszkodzonych tabel, a gdy i to się nie uda, kopia idzie dalej bez tej bazy (to sama historia, gra jej nie czyta) i pisze o tym w pliku README kopii. Każda inna baza to sam świat i nadal zatrzymuje kopię. - Pierścień Teleportacji działa — poprawkę znalazł Mur4s, potwierdził NerrVoVy.
- Zmiana cen w sklepie offline (blastyw, klient 2.0.24): na dużym świecie czat zgłaszał nieudane zmiany, choć wszystkie ceny zmieniły się za pierwszym razem — klient nie czekał wystarczająco długo na odpowiedź serwera i wysyłał zmiany jeszcze raz.
- Mur Joan (świat Sammy Suricate): bot, który wrócił do przerwanej wizyty w mieście po złej stronie muru, stał w miejscu, aż po półtorej minuty ruszył go strażnik bezczynności. Teraz przechodzi z powrotem przez bramę.
- Mapa gildii Jinno (logi urtopy): jedno z miejsc polowań leżało na odciętym kawałku terenu, do którego nie da się dojść; zastąpione osiągalnym.
Czego nie sprawdziliśmy
Obie linie silnika kompilują się bez błędów i bez nowych ostrzeżeń, wszystkie testy jednostkowe przechodzą, a świat testowy chodzi na tej wersji bez żadnej awarii. Na nim już widać działanie części zmian: inflację (+5% przy 3,19 mld yang), licznik śmieciowych broni na rynku, 95 Grinderów, którzy przestali się blokować, i dwóch, którzy porzucili ten styl, Perfekcjonistów sprawdzających rynek przed kowalem, pierwsze nowe przedmioty wybonowane w plecaku ponad noszone i dropki medali w Lochach Małp.
Większości tego patcha nie da się jednak dziś zmierzyć, bo nasz świat testowy jest świeżo wyzerowany: boty mają poziomy 0–29, a od 30 poziomu wzwyż są tylko cztery. Broń na 30 poziom, Hazardzista w mieście, zakupy Perfekcjonisty, cel dropków medali, wojny gildii i obrona gildii przed graczem ruszą dopiero na światach z wyższymi poziomami, a obrony gildii i wymiany expa w drużynie z graczem nie mamy na czym sprawdzić — na naszym świecie nie gra żaden człowiek. Limit odpoczynku przy „Boty grają jak żywi ludzie" jest policzony, ale nie obejrzany: u nas ten przełącznik jest wyłączony. Poprawka zegara sklepów offline działa od startu; to, że odnowienia nie utykają, pokażą dopiero godziny.
Pomogą w tym linie w logu: PLAYERBOT_MARKET: level-30 census (co dziesięć
minut: ile botów od 30 poziomu nie ma broni i na jakim plusie są pozostałe),
PLAYERBOT_ANTIPK: guild called, PLAYERBOT_PERSONA: medal dropper met its
goal, PLAYERBOT_LIFE: census ... held_on=, PLAYERBOT_OFFLINE: renewal
went unanswered, PLAYERBOT_BONUS (teraz także w paczce wsparcia) oraz
PLAYERBOT_OFFLINE: reopen ... moved_from=.
Wersja 2.0.94 (20.09.2026)
Serwer 2.0.94. Klient bez zmian (2.0.23). Zawiera wszystko z 2.0.93.
Boty nie zatrzymują się już całą wsią na jednym poziomie
Zgłosił Iwakura: „boty masowo zatrzymują się na 25 lvlu, a ja nawet takiego przedziału nie dawałem". Reguła tierów jest czystą funkcją, więc dało się ją policzyć poza silnikiem, dla całej kohorty — i liczby przyznały mu rację.
Gdzie zatrzymywał się bot rosnący od pierwszego poziomu (2500 botów): na poziomach 19–24 po 3,4–3,8% każdy, a na 25 aż 15,6% — cztery i pół raza więcej, choć Community Patch 1 obiecywał, że blokada M3 jest „losowana równo". W logach naszego świata testowego to samo: blokada 25 padła 118 razy, a każda z 19–24 od 6 do 16 razy.
Przyczyna. Losowanie było jedno na bota, wspólne dla wszystkich tierów, a pierwsza wioska (13–19) i M3 (19–25) mają tę samą szerokość — siedem poziomów. Bot, który wylosował szóstą pozycję w przedziale, dostawał w wiosce blokadę 19, której jej pasmo (10–18) nigdy nie osiąga; wychodził z wioski niezatrzymany, wchodził na M3 z poziomem 19 i losował tę samą szóstą pozycję — czyli 25, szczyt tieru. Co siódmy bot świata, z konstrukcji.
Każdy tier losuje teraz osobno. Ten sam rachunek daje po poprawce 4,8–5,4% na każdym z poziomów 19–25.
Powyżej Góry Sohan nie ma już blokady
Tabela tierów kończy się na Sohanie (55–62), a bot, który ją przerósł, blokował się dokładnie tam, gdzie akurat stanął. W historii naszego świata testowego są blokady na 63, 64, 65 i wyżej — w tym 112 botów zamrożonych na 71 poziomie, na liczbie, której żaden tier nie wymienia. Powyżej ostatniego tieru Grinder nie jest już trzymany nigdzie, a blokada zapisana pod starą regułą jest zdejmowana przy pierwszym sprawdzeniu.
Czego to jeszcze nie naprawia
Uczciwie, bo Iwakura wskazał więcej: awans nadal kończy blokady na zawsze. Bot, który raz spełnił Prawo Awansu w pierwszej wiosce albo na M3, nigdy nie dostaje blokady M2 (30–35), Doliny (40–48) ani Sohanu (55–62) — wraca pod nią tylko przez trzy śmierci, i wtedy staje tam, gdzie zginął. Dokument mówi co innego: „Grinder NIGDY nie przechodzi na kolejny Tier bez odpowiedniego przygotowania", czyli awans ma być wejściem w następny tier, nie końcem blokad.
Do tego Iwakura zaprojektował rozłam po pierwszej wiosce: garstka botów zostaje na M1 po ulepszacze i księgi umiejętności, reszta rozchodzi się na M2, M3 i loch małp. To jest zmiana zachowania całego świata i wymaga własnego wydania — wchodzi w następnym.
Wersja 2.0.93 (20.09.2026)
Serwer 2.0.93. Klient bez zmian (2.0.23). Zawiera wszystko z 2.0.92.
Lurowanie na zlecenie gracza
Zgłoszone tego samego wieczora przez ĹŌŞƬĒĶ (l0st3k) i nerrvous_s, z logami — i okazało się, że to dwie różne awarie naraz, a dwie z trzech przyczyn wprowadziliśmy sami w dwóch poprzednich wydaniach.
Bot przyjmował zlecenie i nie ruszał się. W 2.0.89 stojące zlecenie przestawiało bota w tryb „jestem w drodze, nie poluję" — po to, żeby między kursami nie zabijał tego, co miał przyprowadzić. Tyle że reguła oceniająca, czy warto z czymś walczyć, odrzuca w tym trybie wszystko — również paczkę, po którą kurs właśnie wyszedł. Zlecenie przyjęte, „Juz dla ciebie luruje" powiedziane, i każdy kurs kończył się „brak paczki" ułamek sekundy później. W logu nerrvous_s to widać co do milisekundy: kurs otwarty, 957 ms, koniec, i tak w kółko.
Bot otwierał kurs i zamykał go w tym samym momencie. 2.0.90 obniżyło próg życia, przy którym kurs się zaczyna, do 55% — a próg, przy którym kurs się przerywa, został na 70%. Bot między jedną a drugą wartością robił to co sekundę.
Teraz na zlecenie od człowieka lur zbiera to, co stoi wokół: bez minimalnej odległości, bez odstępu od miejsca zbiórki, okno poziomu liczone od gracza, a plan to pięć grup i dwanaście strzałów zamiast dwóch grup i siedmiu. Oddawanie agro graczowi działało wcześniej i jest nietknięte.
Bot towarzysz robił zakupy zamiast słuchać
Drugi log — l0st3ka — pokazał coś innego: kurs w ogóle się nie zaczynał,
przez cztery minuty, z powodem busy. Powód okazał się workiem na siedem flag
naraz, więc najpierw dostał osobne nazwy (town_visit, biologist, stable,
market_trip, fishing, retreat, recovering, off_frontier, dead) —
bez tego następne zgłoszenie też byłoby nie do odczytania.
Czego nie sprawdziliśmy
Uczciwie, bo tym razem wyszło mniej, niż chcieliśmy. Obie linie silnika kompilują się bez błędów i bez nowych ostrzeżeń, nowy kod jest w gotowym pliku wykonywalnym (sprawdzone po napisach, żeby mieć pewność, że optymalizator go nie wyciął), świat testowy chodzi na tej wersji bez ani jednego padnięcia rdzenia, a wizyty w mieście i drużyny działają jak przedtem.
Czego nie zmierzyliśmy: samego lurowania. Dla człowieka nie da się — na świecie testowym nie ma gracza, który stanąłby w drużynie bota. A własnej roli botów nie dało się dziś zmierzyć, bo nasz świat testowy ma obecnie cztery postacie od 30 poziomu wzwyż, a ta rola działa tylko na mapach frontu, dokąd nikt z tak niskim poziomem nie idzie.
Zostaje więc to, co zobaczą zgłaszający. W logu szukać:
PLAYERBOT_LURE: planned (kurs ruszył), pack answered (paczka odpowiedziała),
pack handed to the player (agro przeszło na gracza) oraz
PLAYERBOT_LURE: waiting reason= z konkretnym powodem, jeśli bot dalej stoi.
Wersja 2.0.92 (20.09.2026)
Serwer 2.0.92, klient 2.0.23. Zawiera wszystko z 2.0.91.
Gra mówi w ośmiu językach
Polski, English, Deutsch, Español, Italiano, Português, Română, Türkçe. Język wybiera się w oknie konfiguracji przy logowaniu, obok rozdzielczości — zmiana wymaga ponownego uruchomienia klienta.
Paczka językowa jest w całości robotą ĹŌŞƬĒĶ (l0st3k): siedem nowych katalogów locale, tabele przedmiotów i potworów, opisy, okna logowania. My wstawiliśmy to do naszego klienta i sprawdziliśmy, co następuje:
- wszystkie 762 pliki naszej dotychczasowej paczki językowej są w jego bajtowo identyczne — nic naszego nie zginęło (tło wyboru postaci, ekran ładowania, regulamin);
- jego root był zbudowany na starszym naszym kliencie i niósł starsze wersje trzech naszych plików — auto-łowów, tytułów botów i sklepu. Wzięliśmy z niego wyłącznie wybór języka, a nasze pliki zostały nasze, więc zmiana zachowania auto-łowów, którą po drodze wprowadził, nie wchodzi;
- nasz
metin2client.exejuż umiałGetLanguage, więc nie trzeba było nowego pliku wykonywalnego.
Angielski interfejs
Dodatkowo 281 napisów interfejsu i komunikatów po angielsku, nakładanych tylko przy wybranym „en" — każdy inny język widzi dokładnie to, co dotąd. Doszły do tego cztery nagłówki, które do tej pory stały w skryptach na sztywno i były polskie w każdym języku: „Status postaci", „Atrybuty" w oknie postaci oraz „Kategorie" i „Stan Konta" w sklepie z przedmiotami.
Sprawdzone uczciwie, bez klikania w grze: wszystkie 33 skrypty kompilują się w
Pythonie 2.7 klienta, a prawdziwe loadery locale uruchomione z atrapami silnika
dla PL, EN, DE i TR potwierdzają, że po angielsku wchodzą angielskie
wartości, a w pozostałych językach żaden napis się nie ruszył
(tests/client_locale_loader_test.py). Przepakowany root różni się od
poprzedniego dokładnie jedenastoma naszymi plikami.
Czego to jeszcze nie tłumaczy
Żeby nie było niespodzianki po wybraniu angielskiego — po polsku zostają:
- nazwy NPC („Agent Lądowy"), treści questów („Osiągnij 1 poziom jeździectwa…") i wszystko, co przysyła serwer: to jest baza i questy serwera, nie klient;
- nazwy przedmiotów i kategorie w sklepie z przedmiotami — też z serwera;
- część opisów w oknie bonusów postaci i opisy umiejętności: to brakujące
wiersze w plikach
locale_game.txtwybranego języka (dla angielskiego 676 kluczy), a nie kod.
To jest osobna, większa robota po stronie serwera i danych — nie chcemy mówić, że gra jest przetłumaczona, kiedy przetłumaczony jest interfejs.
Paczka klienta urosła z 68 MB do 96 MB — to te siedem nowych katalogów językowych.
Wersja 2.0.91 (20.09.2026)
Serwer 2.0.91, klient bez zmian (2.0.22). Zawiera wszystko z 2.0.90.
Drużyny botów były w większości jednoosobowe
I dlatego wyglądały, jakby ich nie było. CParty::Quit wyjmuje członka i
zostawia drużynę stojącą; silnik kasuje ją tylko wtedy, gdy odchodzi lider.
Więc kiedy z pary wychodził zwykły członek — a wychodził stale, bo hub do
polowania bywa dwadzieścia kilometrów od drugiego bota — drugi zostawał sam
w „drużynie" jednoosobowej. Dla kodu to wciąż drużyna: GetParty() odpowiada,
pass drużyn wraca w pierwszej linii, i ten bot przestaje szukać kogokolwiek.
Własny kod silnika nigdy na to nie pozwala: przy dwóch członkach rozwiązuje drużynę. Dlatego gracz nie może być w drużynie jednoosobowej i od strony gracza nie dało się tego zobaczyć.
Jak to wyglądało na naszym świecie testowym — od 94 do 2519 założonych drużyn na godzinę, i w każdym spisie tyle samo drużyn co botów w drużynach. Teraz boty wychodzą z drużyny tą samą drogą co gracz, a drużyna jednoosobowa, jeśli się gdzieś ostała, jest rozwiązywana w minutę. Zmierzone dziesięć minut po wdrożeniu: stosunek z 1,00 na 1,375 (świat samych par daje 1,33 — spis ogląda połowę botów, więc to jest wartość docelowa, nie 2).
Przy okazji wraca lurowanie dla drużyn botów: kurs Łucznika potrzebuje trzech osób i przez pięć godzin nie odpalił ani razu, bo trójki nie miały z czego powstać. Zlecenie od gracza („luruj" z 2.0.90) działało niezależnie od tego — tam wystarczy para.
Świeża instalacja nie wywala się już na pustym katalogu
„Launcher każe mi ogarniać pliki r40250" (dekri) — przy serwerze 2.0.89,
czyli na linii, która paczki r40250 nigdy nie używa. Brakowało dokładnie
jednego katalogu, i to pustego: serverfiles\share\package. Jest pusty na
każdej instalacji obu linii, Docker tylko go kopiuje — ale git pustego katalogu
nie przechowa wcale, a paczka niesie go jako jeden z dwunastu gołych wpisów
w zipie, które część programów do rozpakowywania po prostu pomija.
Zamiast odmawiać, launcher tworzy go teraz sam — na wszystkich trzech
drogach, które prowadzą do budowy, i tak samo update.sh na Linuksie. Komunikat
odsyłający do instalatora r40250 nie pojawi się już z tego powodu.
Wersja 2.0.90 (20.09.2026)
Serwer 2.0.90, klient 2.0.22. Zawiera wszystko z 2.0.89.
Lurowanie na zlecenie: Ninja w końcu wychodzi po moby
„Ninja zabija ich zamiast przynieść do mnie i pisze mu cały czas »Czekam żeby lurować dla nick«" (marcinxboss). Jedno i drugie to ten sam błąd: kurs nie mógł się zacząć, więc bot spadał do zwykłego zdobywania celu i zabijał to, co miał przyprowadzić.
Trzy bramki zamykały go na zawsze, i wszystkie trzy są z czasów, gdy lurował tylko dla drużyny botów stojącej bezczynnie i czekającej na pakiet:
- „drużyna jest zajęta" — kurs nie ruszał, gdy w pobliżu było więcej niż trzy potwory na drużynie. Cztery moby na graczu stojącym na spocie to zwykła niedziela. Ta zasada istnieje po to, żeby bot nie zasypał drużyny, która już ma pełne ręce — ale ktoś, kto napisał „luruj", sam o to poprosił, a jak ma dość, to napisze „przestań lurować".
- dziewięć dziesiątych życia — przy graczu bot obrywa od tego, z czym gracz walczy, więc ten próg nie otwierał się nigdy. Na zlecenie wystarczy 55%.
- „coś mnie goni" — ta zostaje, bo odejście z paczką na plecach to jest właśnie zgubiony lur. Ale teraz sama schodzi do zera, bo:
bot ze zleceniem nie poluje na własną rękę. Tego nie mówiła żadna zasada, więc między kursami Ninja szła bić jak każdy inny bot — i już nie mogła wyruszyć, bo miała potwory na sobie. Obrona własna i pomoc osobie, dla której luruje, zostają bez zmian; znika chodzenie do potworów z własnej woli. Do kompletu: łuk zostaje w ręce na czas zlecenia (sztylet dobyty na jednego metina wyłączał cały kurs, bo lurowanie idzie z łuku).
A gdy bot naprawdę na coś czeka, mówi na co: „Czekam, żeby lurować dla X (hp)", „(monsters_on_me)", „(no_bow)", „(safe_zone)". Poprzednia wersja powtarzała samo „Czekam" i nie dało się z tego nic zgłosić.
Zastrzeżenie, bo na takie rzeczy zasługuje jasna odpowiedź: to jest skompilowane i przeczytane, ale nie obejrzane w grze z żywym graczem — nasz świat testowy nie ma ani jednego. Jeśli dalej będzie coś nie tak, słowo w nawiasie nad głową bota powie, co go blokuje.
Świeża instalacja na Linuksie znów się buduje
Jeśli stawiałeś serwer od zera na VPS-ie albo mini PC i nic nie wstawało — to było to. Cały build przewracał się na jednej linii:
target seban-panel: failed to solve: failed to compute cache key: "/VERSION": not found
a razem z nim gra, panel i itemshop — więc nie startowało nic, i żadne „kliknij jeszcze raz" nie mogło pomóc.
Plik, którego brakowało, jest w .gitignore, a tworzą go tylko dwa skrypty:
ten od instalacji na starej linii i launcher windowsowy. Czyli istniał na
każdej maszynie, która kiedykolwiek któryś z nich uruchomiła — i na niczyjej
innej. Instalacja 2.x na Linuksie nie uruchamia żadnego z nich, a paczka nie
mogła go przenieść, bo powstaje z czystego eksportu z repozytorium.
Build nie zależy już od tego pliku, a aktualizacja sama go dokłada. Zgłosił superjerry925 z pełnym logiem — bez niego to by leżało dalej.
Przy okazji naprawione narzędzie, które miało takie rzeczy wyłapywać przed wydaniem: pytało dysk zamiast repozytorium, więc wierzyło plikowi, który jest tylko u nas. Teraz pyta, kto dany plik tworzy i czy ten ktoś w ogóle działa na danej linii.
Ceny hurtem w sklepie: powtarza to, co nie weszło
„Zmienianie cen działa, ale potrafi ominąć nawet parę itemów, gdy ma się ich dużo w sklepie" (blastyw). Ctrl + prawy wysyłał pakiety w odstępach, bo serwer przyjmuje jedną operację na sklepie co 200 ms — ale wysyłał i zapominał. Ćwierć sekundy liczona zegarem klienta potrafi dolecieć wewnątrz jednego okna serwera po zaciętej klatce, a wtedy ta jedna pozycja przepadała bezpowrotnie.
Teraz klient sprawdza, co faktycznie weszło: czeka na powrót listy sklepu, porównuje ceny i powtarza to, co się nie udało — trzy podejścia, a potem mówi na czacie, ile zostało. Pozycja sprzedana w międzyczasie nie liczy się jako pominięta. Zaktualizuj też klienta.
Liczba botów per królestwo nie otwiera się już na zerach
Pola otwierają się teraz na równym podziale twojej liczby botów, a zero wpisane świadomie jest honorowane i powiedziane wprost: „UWAGA: Shinsoo i Jinno nie wystartuje żadnego bota".
To nie jest potwierdzona przyczyna „nowe postacie tworzą się tylko w Chunjo" (NerrVoVy) — on sam dopisał tego samego dnia, że widział to również przy wyłączonym ptaszku, samym suwakiem. Dwie rzeczy zmierzone u nas, żeby wykluczyć to, co się najpierw nasuwa: podział liczby botów między królestwa jest równy (przy 1000 botów rdzeń zgłasza „world split 334/333/333"), a drugi kanał nie ma z tym nic wspólnego — przy ch2 włączonym oba kanały niosą wszystkie trzy królestwa (kanał 1: 320 / 1185 / 347, kanał 2: 180 / 315 / 153). Zostaje liczba zdatnych tożsamości w danym świecie; rdzeń wypisuje ją przy starcie i to jest pierwsza linia, o którą poprosimy przy następnym zgłoszeniu:
PLAYERBOT_AUTH: loaded N registered bot identities (shinsoo=.. chunjo=.. jinno=..)
PLAYERBOT_AUTH: registry rows=.. usable=.. rejected: ...
Wersja 2.0.89 (20.09.2026)
Serwer 2.0.89, klient bez zmian (2.0.21). Zawiera wszystko z 2.0.88.
Poproś ninję o lurowanie
Bot z łukiem w twojej drużynie przyjmuje teraz dwie komendy na priv:
- „luruj" — bierze zlecenie (rozumie też „lur", „pull", „przyciągnij", „ciągnij")
- „przestań lurować" — oddaje je (albo „koniec", „dość", „stop")
Kiedy zlecenie stoi, kurs jest twój, a paczka ląduje na tobie, nie na bocie. To jedyne miejsce w całym lurowaniu, które rusza agro silnika — kiedy boty lurują dla siebie, potwory trzeba odbić walką — i robi to dwoma wywołaniami silnika w kolejności, która się trzyma: bot oddaje ci potwora z większym agro, niż zdążył zarobić strzałami, a potem odwraca go na ciebie. Masz około trzech sekund na pierwsze uderzenia, zanim silnik znów zacznie liczyć agro normalnie.
Ustępują tylko te reguły, które istnieją po to, żeby bot nie lurował dla nikogo: trzech w drużynie → dwóch (para to drużyna), odbiorcą może być człowiek, znika wymóg mapy frontierowej, a przerwa między kursami spada z 20-50 s do 4-9 s. Próg życia, strefa bezpieczeństwa i „czy ta walka jest warta" zostają.
Bot odmawia konkretnie: „Najpierw zaproś mnie do drużyny", „Nie mam teraz łuku w ręce", „Jesteśmy w strefie bezpieczeństwa — wyjdź na łowisko". Nad jego głową i w panelu widać, dla kogo luruje.
Raty: jedna prawda dla obu paneli
„Jak ustawiałem wcześniej raty u tiera, to u sebana narzucał poprzednie" (NerrVoVy) i „ustawiłem 10000%, a boty działają jakby miały x3/5" (marcol_) to było to samo.
Rata to flaga zdarzenia w bazie — wszystko inne to jej kopie. Flagi zapisują cztery rzeczy (oba panele, pomocnik w grze, eventy czasowe) i nie wszystkie odświeżają każdą kopię. Panel zaawansowany czytał plik ze spoola jako pierwszy, a ten się rozjeżdżał: na świecie testowym mówił drop 150 / yang 120, kiedy świat naprawdę chodził na 200 / 200 — i w chwili kliknięcia „Zapisz" wpisałby te stare liczby jako nowe raty.
Oba panele czytają teraz flagi. W trakcie eventu strona pokazuje twoje ustawienie, nie podbicie, więc zapis podczas eventu nie zamieni podbicia w nową normę.
+7 nigdy nie jest złomem, sprzęt startowy też
Jedna liczba była dwoma progami naraz: od ilu stragan bierze przedmiot i poniżej ilu handlarz go skupuje. Dla broni i zbroi na 1 lvl próg wynosił +8, więc +7 wpadał między nie i szedł do handlarza — kilkanaście sztuk dziennie. Teraz +7 trafia na stragan; do handlarza idzie tylko +4 do +6.
Ciszej w logach, i jedna prośba, której silnik nigdy nie spełniał
Bot prosił o dosiadanie konia w chwilach, w których silnik zawsze odmawiał — przy otwartym straganie, przy magazynie, w sklepie z przedmiotami, przy warzeniu mikstur. Tysiące linii błędu dziennie, a koń był w porządku. Teraz bot pyta o to zawczasu i po prostu czeka.
Audyt siatki plecaka pisał do logu błędów przy każdym sortowaniu, także wtedy, gdy niczego nie zepsuł: 2285 przebiegów na 1002 plecakach w ciągu dnia i ani jednego, który skończył gorzej, niż zaczął. Pisze teraz tylko wtedy, gdy naprawdę coś się pogorszyło.
Support bundle dostaje mniej śmieci, a prawdziwe błędy przestają w nich ginąć.
Wersja 2.0.88 (20.09.2026)
Serwer 2.0.88, klient 2.0.21. Zawiera wszystko z 2.0.87.
Nazwy osobowości wracają nad głowy botów
Serwer od 2.0.86 wysyła nad głową bota nazwę osobowości, która go teraz trzyma — Grinder, Zdobywca, Handlarz i tak dalej. Klient 2.0.20 tych nazw nie znał: poprawka leżała w repozytorium od 19 września, ale nie trafiła do paczki klienta, więc bot dostawał numer, którego klient nie umiał nazwać, i nie rysował nic. Kto zauważył, że osobowości zniknęły — miał rację. Zaktualizuj też klienta.
Auto Łowy: odpały idą po jednym
Silnik przyjmuje jedno użycie przedmiotu naraz i odrzuca resztę, więc klatka wysyłająca cztery odpały kończyła się tym, że działał pierwszy. Teraz między dwoma użyciami jest sto milisekund, a reszta idzie w następnych przebiegach. Poprawka od Colide, autora tego okna.
Nowy cennik Iwakury
Ceny w tym projekcie nie są wpisywane ręcznie — są renderowane z arkusza Iwakury. Ten jest z 20 września i ruszył się w nim prawie każdy numer, większość materiałów o jakieś siedemdziesiąt procent:
| było | jest | |
|---|---|---|
| Ząb Orka | 136 730 | 232 441 |
| Zwój Błogosławieństwa | 180 000 | 550 000 |
| Kamień duchowy | 500 000 | 750 000 |
Doszły też receptury zielarskie — czterdzieści pozycji, wszystkie po 450 000, których cennik wcześniej w ogóle nie wyceniał.
Stragany, które już stoją, przecenia się same przy najbliższej wizycie właściciela — nie trzeba nic robić ani zaczynać od nowa.
Wersja 2.0.87 (20.09.2026)
Serwer 2.0.87. Zawiera wszystko z 2.0.86.
Nowy świat zaczyna się wtedy, kiedy chcesz
Do tej pory po wyzerowaniu świata serwer ruszał natychmiast, a panel pokazywał 650% doświadczenia, którego w grze nie było: mnożniki stawek na tej wersji silnika powstają dopiero przy pierwszym kliknięciu Zastosuj na stronie „Stawki”, więc świeży świat chodził na 100%, a panel obiecywał coś innego. Pierwsze kliknięcie — choćby bez ruszania pól — robiło z tej obietnicy prawdę.
- Launcher pyta o stawki, gdy zakładasz nowy świat. Normalnie (100/100/100), Spokojnie (300/200/200), Szybko (1000/500/500) albo własne liczby. To, co wybierzesz, jest zapisywane zanim rdzenie wstaną, więc pierwszy bot gra już na Twoich ustawieniach. Świat, który raz je dostał, zmienia się wyłącznie ze strony „Stawki” w panelu — tak jak dotąd.
- Boty mogą poczekać przy drzwiach. Przy zerowaniu świata możesz zaznaczyć, że świat ma wstać pusty. Ustawiasz wtedy spokojnie stawki, respawny, osobowości i cokolwiek jeszcze, a potem klikasz Wpuść boty do świata na stronie AI w panelu. Boty wchodzą stopniowo, tak jak po zwykłym starcie. Domyślnie wyłączone — kto nic nie zaznaczy, dostaje to, co dotąd.
Iwakura Community Patch 1
Pierwsza poprawka Iwakury do systemu osobowości:
- Grinder nie zatrzymuje się już całą wsią na jednym poziomie. Blokada pierwszej wioski jest losowana równo z przedziału 13–19, a blokada M3 z 19–25. Co czwarty bot w ogóle nie zatrzymuje się w pierwszej wiosce — od 13. poziomu idzie prosto na M3 i dopiero tam staje.
- Od 35. poziomu Prawo Awansu jest ostrzejsze: broń przynajmniej +8, a do zbroi i tarczy dochodzi maska albo hełm na +6. Wcześniej hełmu nikt nie wymaga — w pierwszych wioskach nie ma go gdzie kupić.
- Przed 45. poziomem bot bonuje najpierw naszyjnik, bransoletę i buty, bez względu na to, jak słabe są i na ile ulepszone, i celuje w linie z tabeli Iwakury dla każdego z tych slotów. Młody bot sięga po to zwykły kamień zmiany/dodania — zielone działają wyłącznie na broni i zbroi, więc inaczej reguła nie miałaby jak zadziałać.
- Ulepszanie idzie kolejnością: bronie, zbroje, tarcze, hełmy.
- Kamień Duszy +2 wolno włożyć w słaby sprzęt wczesnej gry; +0 i +1 już nie.
Walka botów
- Cios trafia to, co jest przed botem. Bot bił do czterech potworów w promieniu 300 jednostek, także tych za plecami. Gracz trafia wszystko przed sobą, bo łuk broni zakreśla się z przodu — bot ma teraz ten sam łuk. Liczby celów nie zmieniamy: gracz może trafić szesnaście, bot najwyżej cztery.
- Słaba broń bije jak słaba broń. Gdy wyliczone obrażenia wychodziły małe, bot podstawiał wymyśloną liczbę — około trzystu dla bota z siedemdziesiątki, niezależnie od tego, co trzymał. Teraz cios jest wart tyle, ile liczy gra.
Panel
- Z okna ekwipunku znika przycisk odśwież: wejście w postać i tak pobiera dane od nowa, a teraz robi to z gwarancją, że przeglądarka nie poda starej kopii.
Wersja 2.0.86 (20.09.2026)
Serwer 2.0.86, klient 2.0.20. Zawiera wszystko z 2.0.85.
Zalecamy zaczac na nowym swiecie. To wydanie zmienia zachowanie botow i ich gospodarke mocniej niz jakiekolwiek wczesniej. Swiat, ktory gral na starych zasadach, niesie ze soba plecaki, sklepy i magazyny ulozone pod nie. Nowy swiat pokaze te systemy tak, jak maja dzialac. W launcherze: KOPIA / NOWY SWIAT.
System osobowosci Iwakury
Najwieksza zmiana w dzialaniu botow od poczatku projektu. Do tej pory bot dostawal osobowosc raz, przy wejsciu do gry, i trzymal sie jej do konca. Teraz o tym, kim jest w danej chwili, decyduje jego wlasna sytuacja — sprawdzana co dwie sekundy.
Nastroje (BMS). Kazdy bot ma nastroj: SLABY, NORMALNY albo BARDZO DOBRY. Posucha bez niczego wartosciowego go obniza, dobry drop albo udane ulepszenie podnosi, spalenie przedmiotu na +8 czy +9 obniza o jeden, a piec smierci z reki gracza blokuje na SLABYM na trzy kwadranse. Tylko bot w slabym nastroju robi przerwy miedzy grupami potworow, odchodzi na chwile od klawiatury i odpoczywa w miescie. W towarzystwie — w druzynie, w lochu, na rajdzie, na wojnie, w pojedynku, na kontrakcie — kazdy gra jak NORMALNY, niezaleznie od tego, co czuje.
Najemnik. Bot, ktory trzy razy w pol godziny zginal od potworow, jest w tarapatach. Silniejszy bot z jego krolestwa, na tej samej mapie, podchodzi i proponuje godzine opieki za 250 000 yang przeliczone przez stawki. Prowadzi druzyne, poluje tam, gdzie jest klient, klient dostaje polowe z kazdego zabicia. Pelny plecak najemnika wstrzymuje kontrakt — druzyna zostaje, zegar staje, najemnik wraca sam — a po godzinie klient placi dalej, jesli nadal potrzebuje.
Lista Przydatnych Przedmiotow. Decyduje, co bot odklada u Dozorcy, zamiast sprzedawac: bizuteria i buty tieru 3-6, bronie z jego pasm poziomow, tarcze z 61 i zbroje z 66, oraz kazdy przedmiot z linia tieru 5-6 wyrzucona co najmniej do polowy. Dwie sztuki broni albo zbroi i trzy drobne dla swojej klasy, jedna dla obcej. Co bot przerosnie — wraca na rynek.
Hazardzista dokupuje bazy i materialy z lokalnych sklepow offline, w ramach budzetu sesji.
Calosc chodzi na przelaczniku OSOBOWOSCI na stronie AI w panelu klasycznym — domyslnie wlaczonym. Wylaczenie wraca dokladnie do starego zachowania. Dawne osobowosci zostaly jako ukryty charakter, ktory tylko przechyla szanse; dropki Metinow, M2 i M3 zastapily progi Grindera, a kohorta dropkow medali operatora zostaje bez zmian.
Nad glowa bota, w panelu i w pliku statusu widnieje ta sama odpowiedz;
PLAYERBOT_PERSONA: census liczy je co dziesiec minut razem z nastrojami.
Okno ulepszania nie zamyka sie po kazdej probie
- Ulepszasz dalej bez klikania od nowa w kowala i w przedmiot. System byl w
serwerze od 2.0.31, ale tylko dla kogos, kto wiedzial o komendzie
/refine_keep_open 1— teraz dziala u kazdego (podpowiedzial sizowski). - Kto woli po staremu, wpisuje
/refine_keep_open 0. Wybor zostaje po wylogowaniu, a kto juz wczesniej ustawil sobie wlaczone, niczego nie traci. - Bez zmian w Wiezy Demona — tamto ulepszanie zamyka sie jak dotad.
GRAJ moze uruchomic sam serwer
- Pod przyciskiem GRAJ jest „Uruchom takze klienta gry”. Odznacz, jesli trzymasz swiat wlaczony dla innych i nie chcesz, zeby za kazdym razem otwieralo Ci sie okno gry.
- Napis na przycisku mowi wtedy „GRAJ (SAM SERWER)”, wiec widac, co sie stanie. Wybor pamieta sie na stale — odznaczasz raz.
Kazde ustawienie w .env opisane po polsku
- Opis musi byc w osobnej linii nad ustawieniem. Dopisanie komentarza w tej
samej linii (
KLUCZ=1 # opis) psuje wartosc — Docker czyta wtedy „1 # opis”.
Zmiana ceny wielu przedmiotow w sklepie (klient 2.0.20)
- Ctrl + prawy przycisk na przedmiocie w swoim sklepie zmienia cene wszystkich takich samych. Dotad zmieniala sie cena jednego, a reszta wyrzucala blad „poczekaj chwile” — serwer przyjmuje jedna operacje na 200 ms, a klient wysylal wszystkie naraz (zglosili uxietoszef i Nagash). Teraz wychodza po kolei; dwadziescia przedmiotow zajmuje okolo pieciu sekund.
Poprawki
- Swiat opisany osobno dla kazdego krolestwa liczyl sie jako maly i trafial na jeden rdzen. Trzy razy po 700 botow to 2100 botow, a nie „nic”: taki swiat zostaje teraz na trzech rdzeniach, tak jak mial.
- Log serwera przestal straszyc przy sortowaniu ekwipunku. Kontrola zajetosci
liczyla dolna polowe kazdego miecza i kazdej zbroi jako bled i pisala o tym do
syserr— 2188 wpisow o plecakach, z ktorymi nic nie bylo nie tak. Samo sortowanie bylo i jest bezpieczne: w 2188 pomiarach nie zmienilo stanu ani jednej komorki. - Kamienie bonusu (zmianki, dodania): sprawdzone do konca. Nie da sie ich wystawic na straganie i nie jest to wina botow — sam silnik na to nie pozwala (te przedmioty maja blokade sklepu, gracz tez ich nie wystawi). Boty ich uzywaja normalnie do mixowania; zajmuja srednio 1,6 komorki, bo sie stackuja.
Wersja 2.0.85 (20.09.2026)
Serwer 2.0.85. Klient bez zmian (2.0.19).
Wszystkie trzy krolestwa na jednym swiecie, domyslnie
Poprawki
- Sortowanie ekwipunku nie zostawia juz slotow, ktorych nie da sie uzyc (Dearminder). Po „Scal i uporzadkuj" miejsca zwolnione przez sortowanie potrafily zostac dla klienta zajete — nie dalo sie tam nic przeniesc z magazynu, a pomagalo dopiero przelogowanie. Serwer na koniec operacji podaje klientowi jeszcze raz stan kazdej komorki, ktorej dotknal, i sprawdza przy okazji wlasna siatke zajetosci.
- Boty nie chomikuja juz medali konnych (Greess). Bot z koniem na dziesiatym poziomie i powyzej 35 poziomu postaci nie mogl ani wydac medalu (czeka na probe konia bojowego), ani go sprzedac — wiec zbieral je bez konca; jeden z graczy pokazal ponad czterdziesci sztuk w plecaku. Teraz wszystko ponad dwa medale trafia na sklep jak kazdy inny towar. Na swiecie testowym bylo 37 627 medali w plecakach przeciwko 5 346 na ladach.
- Boty wystawiaja nadmiar kamieni bonusu (Nagash). Kamien zmiany, kamien dodania i Marmur Blogoslawienstwa nigdy nie moga trafic do handlarza — i zadna lada ich tez nie przyjmowala, wiec to, czego bot nie zdazyl zuzyc, zostawalo w plecaku na zawsze; jeden z graczy pokazal sto dziewiecdziesiat sztuk u jednego bota. Na swiecie testowym bylo 20 387 kamieni w plecakach i zero na ladach, 374 boty ponad dziesiec sztuk. Teraz bot trzyma dziesiec na wlasne mixowanie, a reszte wystawia.
- Drugi kanal jest osiagalny takze na Linuksie (GorącyDelfin). Kanal 2 nasluchuje na portach 13010-13012, ale otwieral je tylko launcher na Windows — wiec na serwerze linuksowym (i po wlaczeniu kanalu w panelu) boty na CH2 graly, a nikt z zewnatrz nie mogl sie tam zalogowac. Aktualizacja ustawia zakres portow sama, zanim wystartuja kontenery.
- Panel zaawansowany pokazuje, ile botow jest na ktorym kanale (hunmar). Rozbicie pojawia sie obok lacznej liczby tylko wtedy, gdy drugi kanal faktycznie dziala.
Wersja 2.0.84 (19.09.2026)
Serwer 2.0.84 i klient 2.0.19. W launcherze ZAINSTALUJ AKTUALIZACJE: nowe Auto Łowy są w kliencie.
Drugi kanał dostaje swoich botów (SIZOWSKI, Xewi, Mkls)
- Z włączonym drugim kanałem CH2 dostaje tylu botów, ile ustawia suwak (domyślnie 40%). Wcześniej każdy bot, który miał kiedyś sklep offline, był na stałe przypisany do CH1. Na świecie, który już trochę pograł, sklep ma prawie każdy bot, więc CH2 dostawał kilkadziesiąt botów zamiast kilkuset.
- Sklepy dalej stoją tylko na CH1. Bot z CH2, który chce otworzyć albo obsłużyć swój sklep albo coś kupić, przechodzi na CH1, a wolny bot z CH1 przechodzi na jego miejsce na CH2. Przejście to wylogowanie z jednego kanału i zalogowanie na drugim. Bot nigdy nie jest na obu kanałach naraz.
- Bot z CH2 obsługuje swój sklep co 45–75 minut, a nie co kwadrans: przejście między kanałami kosztuje więcej niż zwykła zmiana mapy.
- Ustawiony udział to najmniej tyle botów na CH2. Gdy nikt nie czeka na przejście, CH2 może przejąć do 10 punktów więcej. Dropki medali zostają na CH1.
- Projekt przejść między kanałami przysłał SIZOWSKI. Dziękujemy!
Serwer wstaje po nagłym wyłączeniu komputera (Greess)
- Launcher sam naprawia taki plik przy następnym starcie albo aktualizacji: przywraca kopię z ostatniego udanego startu, a gdy jej nie ma, odczytuje ustawienia i hasła z kontenerów serwera. Uszkodzony plik zostaje obok jako kopia. Postacie i baza zostają nietknięte.
Kamienie Duszy według tierów Iwakury
- Boty wkładają Kamienie Duszy według nowej listy Iwakury: tylko +3 i +4, i tylko te, które do expienia ocenił co najmniej na 3. Kamień +3 albo +4 trafia do przedmiotu od +6 w górę, a przedmiot +8 i +9 czeka na +4. Kamienie klasowe (Wojownika, Sury, Ninja, Szamana) są tylko do PvP i boty ich nie wkładają.
- Kamienie +0, +1 i +2 bot wkłada tylko wtedy, gdy mu wypadną, i tylko do słabego przedmiotu: do 21 poziomu i najwyżej +6. Rodzaj kamienia musi mieć u Iwakury ocenę co najmniej 3. Takich kamieni boty nie kupują.
- Na targu boty kupują tylko Kamienie Duszy +3 i +4.
- Przy wyborze ekwipunku liczą się włożone kamienie, więc bot nie zamieni przedmiotu z dobrymi kamieniami na goły.
Nowe nicki od Iwakury
- Lista nicków urosła do 1800. Bot, który ma już nick, zostaje przy nim. Nowe nicki dostają tylko boty, które jeszcze nie mają nicku.
Auto Łowy od Colide'a, wersja druga (klient 2.0.19)
- 12 przedmiotów na czasie, w dwóch rzędach.
- Podnoszenie ma własne, przesuwane okno „Auto Łowy – Łupy”, więc oba okna mieszczą się na ekranie 800×600.
- Ustawienia zapisane w poprzedniej wersji zostają.
Klient 2.0.19
- Auto Łowy w drugiej wersji od Colide'a (opis wyżej).
Wersja 2.0.83 (19.09.2026)
Serwer 2.0.83 i klient 2.0.18. W launcherze ZAINSTALUJ AKTUALIZACJE: nowe okno magazynu potrzebuje obu.
Magazyn: sortowanie, łączenie i rozdzielanie stosów (blasty)
- W oknie magazynu, obok tytułu, jest przycisk „Scal i uporządkuj”, taki sam jak w ekwipunku. Scala stosy tych samych przedmiotów i układa magazyn: najpierw mikstury, potem ekwipunek, księgi, ulepszacze, skrzynki i reszta.
- Przy otwartym magazynie ekwipunek działa normalnie: można w nim rozdzielać i łączyć stosy, a także go porządkować. Wcześniej serwer po cichu odmawiał każdego przesunięcia w torbie, dopóki magazyn był otwarty.
- Przedmiot przeciągnięty na taki sam przedmiot łączy się z nim: z magazynu do ekwipunku, z ekwipunku do magazynu i w samym magazynie. Gdy docelowy stos jest pełny albo leży tam inny przedmiot, czat mówi, czemu nic się nie stało.
- Shift i kliknięcie stosu w magazynie otwiera okno wyboru ilości, jak w ekwipunku. Wybraną część można upuścić w ekwipunku, na wolnym polu magazynu albo na takim samym przedmiocie. Część stosu z ekwipunku (też Shift i kliknięcie) trafia tak samo do magazynu.
- Boty układają swoje magazyny przy każdej wizycie.
Wojny gildii: koniec z biciem się w kółko w miejscu (Hiob)
- Bot, który zginął na wojnie, wstaje niewidzialny, odpoczywa do trzech czwartych życia i dopiero wtedy wraca do walki. Wcześniej wstawał z jedną piątą życia wprost pod miecze zabójców i ginął od nowa, a wrogowie machali w niewidzialnego. Stąd boty, które „w nieskończoność biją się w miejscu”. Wrogowie nie atakują już wstających.
- Wyłączenie wojen w panelu kończy też wojnę, która trwa: boty od razu schodzą z pola bitwy i wracają do wioski. Wcześniej wyłącznik blokował tylko następną wojnę, a trwająca szła do końca swoich 30 minut.
Okrzyk o ulepszeniu podaje stopień raz (archonek)
- Bot chwali się ulepszeniem tak: „Pajęcza Włócznia z +6 na +7, kowal dziś łaskawy”. Wcześniej stopień padał dwa razy: „no i mam +7 na Pajęcza Włócznia+7”.
Klient 2.0.18
- Okno magazynu: przycisk „Scal i uporządkuj”, Shift i kliknięcie oraz łączenie przez przeciąganie (opis wyżej). Potrzebuje serwera 2.0.83.
- COOP w testach u patronów: Dolacz.bat mówi, którego VPN brakuje, gdy świat jest hostowany przez VPN.
Wersja 2.0.82 (19.09.2026)
Serwer 2.0.82, klient bez zmian (2.0.17). W launcherze ZAINSTALUJ AKTUALIZACJE.
COOP w testach u patronów
- Hostowanie w COOP działa też przez VPN (Radmin VPN, Tailscale, ZeroTier, Hamachi) tam, gdzie operator internetu nie daje publicznego adresu.
Wersja 2.0.81 (19.09.2026)
Serwer 2.0.81, klient bez zmian (2.0.17). W launcherze ZAINSTALUJ AKTUALIZACJE.
Tereny gildii z paczki są wolne (Mat, NerrVoVy)
- Baza z paczki przyniosła 28 terenów gildii i 62 budynki z serwera, z którego ją zrobiono, ale żadnej z gildii, do których należały. Te tereny uchodziły więc za zajęte: nie stał przy nich zarządca terenu i nie dało się ich kupić, a budynki stały na ziemi, której nikt nie miał. Gildia bota założona pod jednym z tamtych numerów „dostawała” cudzy teren z budynkami.
- Przy pierwszym starcie po aktualizacji te wpisy znikają: tereny z paczki są do kupienia, zarządca terenu stoi na każdym, a budynki z paczki znikają. Tereny kupione przez graczy i postawione na nich budynki zostają.
Dropki nie robią próby konia (Urtopy)
- Dropki (Metinów, M2, M3, medali) to postacie do dropu: nie robią Biologa ani próby konia bojowego. Status „Zdobywam konia bojowego na pustyni (0/100)” u dropka stojącego w M3 był fałszywy i już się nie pokazuje, a dropek nie jest też kierowany na pustynię.
- Panel przy dropku pokazuje w Biologu „nie dotyczy — dropper nie robi Biologa” zamiast 0/7.
Wieża Demonów: boty biją kilka potworów naraz (Nagash)
- Paczka botów na piętrze nie ustawia się już w kolejce do jednego potwora. Każdy bot bierze jednego z kilku potworów stojących najbliżej paczki (mniej więcej dwa boty na potwora), więc piętra idą szybciej, a boty dalej walczą w jednym miejscu. Metiny i bossów biją wszyscy razem.
Launcher po aktualizacji (Urtopy)
- Po aktualizacji launcher uruchamia się ponownie sam. Na Windows 11 nowe okno potrafiło paść z błędem „cmd.exe — Aplikacja nie została właściwie uruchomiona (0xc0000142)”. Stare okno czeka teraz, aż nowe naprawdę wystartuje, a gdy nowe padnie, launcher próbuje drugi raz inną drogą. Zadziała od następnej aktualizacji, bo tę uruchamia jeszcze stary launcher.
Wersja 2.0.80 (19.09.2026)
Serwer 2.0.80, klient 2.0.17. W launcherze ZAINSTALUJ AKTUALIZACJE.
Nowe okno Auto Łowów (Colide)
- Okno Auto Łowów (klawisz K) przebudował Colide, gracz, który zrobił je dla siebie i przysłał: 12 umiejętności w dwóch rzędach, 6 miejsc na mikstury, każde z własnym progiem w procentach, i 6 przedmiotów używanych co podaną liczbę sekund (peleryny, rosy).
- Mikstura na manę sama pilnuje PE, a każda inna HP. Nie trzeba już trzymać czerwonej na pierwszym miejscu i niebieskiej na drugim.
- Przełączniki: Atak, Umiejętności, Wskrzeszenie, Mikstury, Odpały, Metiny i Wracaj. Umiejętności działają na swoich zegarach także przy wyłączonym ataku (wtedy wyłącz też Wracaj, bo postać wraca w miejsce startu).
- „HP po wskrz. %”: po odrodzeniu postać pije mikstury i nie rusza do walki, dopóki nie ma tylu procent HP, także po ręcznym „Odródź tutaj”.
- Ustawienia każdej postaci zapisują się w folderze autohunt obok klienta. Dotychczasowe ustawienia przechodzą same: umiejętności zostają na swoich miejscach, mikstury HP i PE trafiają na dwa pierwsze miejsca mikstur, a przedmioty do rzędu Odpały.
Serwer nie budował się przy źle ustawionym zegarze Windows (Xewi)
- Docker bierze czas od Windows. Gdy zegar Windows jest cofnięty (u Xewi o 3 godziny), serwery pakietów odrzucają pobieranie („Release file ... is not valid yet”) i każde GRAJ zatrzymywało się na budowie panelu. Panel i serwer gry budują się teraz mimo takiego zegara.
- Launcher przy starcie porównuje zegar Windows z czasem z internetu, a zegar Dockera z zegarem Windows. Gdy któryś odbiega o ponad 5 minut, mówi, co ustawić: Ustawienia → Czas i język → Data i godzina → „Ustaw czas automatycznie” i „Synchronizuj teraz”, potem zamknij Docker Desktop i kliknij GRAJ.
COOP w testach u patronów
- COOP, czyli gra ze znajomymi przez internet, jest na razie w testach u patronów: przycisk COOP w launcherze prosi o hasło, które dostają patroni.
Wersja 2.0.79 (19.09.2026)
Serwer 2.0.79, klient bez zmian (2.0.16). W launcherze ZAINSTALUJ AKTUALIZACJE.
Klątwa małp usunięta (SIZOWSKI)
- Quest z paczki mt2009 (
monkey_curse) po 55 minutach w łatwym Lochu Małp (35 w średnim, 25 w trudnym) zamieniał postać na 5 minut w małpę i wyrzucał ją do wioski, chyba że działało zioło z małp. Boty tych ziół nie używają, więc dropiarze medali wylatywali z lochów jako małpy. Klątwy nie ma już dla nikogo, ani dla graczy, ani dla botów: obraz gry przy każdej budowie usuwa pliki tego questa, więc następna aktualizacja jej nie przywróci. - Zioła z małp zostają w dropach, bo quest poboczny na poziomy 55–57 wymaga zioła z trudnych małp. Samo użycie zioła niczego już nie robi.
Przedmioty na „stall” też mają limit linii na ladzie (Tieru)
- Przedmiot ustawiony w panelu (Polityka przedmiotów) na „stall” dalej trafia na ladę przed wszystkim innym i nigdy do handlarza, ale na jednej ladzie stoją najwyżej 3 linie tego samego przedmiotu, a marmurów najwyżej 3, każdy innego potwora. Reszta czeka w plecaku. Do tej pory taki wpis zapychał całe lady jednym przedmiotem: na naszym serwerze testowym Kawałek Lodu ustawiony na „stall” stał w 46 liniach na jednej ladzie.
- Linie ponad limit wracają z lad same, po jednej przy każdej wizycie sprzedawcy.
Wersja 2.0.78 (18.09.2026)
Serwer 2.0.78, klient bez zmian (2.0.16). W launcherze ZAINSTALUJ AKTUALIZACJE.
Aktualizacja, która nie mogła zbudować serwera (archonek)
- Paczka aktualizacji zawiera teraz fabryczny
messenger_manager.cpp, więc po kliknięciu ZAINSTALUJ AKTUALIZACJE plik wraca do wersji z paczki i serwer się buduje. Przeróbka tego pliku (lista znajomych z forka) znika. - Launcher przy takim błędzie budowy mówi teraz wprost, który plik silnika pochodzi z cudzej przeróbki i jak przywrócić fabryczny, zamiast ogólnego „Operacja nie powiodła się”.
Różnorodność na ladach (Tieru, Hiob)
- Na jednej ladzie stoją najwyżej 3 linie tego samego przedmiotu. Do tej pory zdarzały się lady z 46 liniami Kawałka Lodu albo z kilkunastoma liniami jednej farby do włosów. Nadmiar wraca do torby sprzedawcy, po jednej linii przy każdej wizycie przy sklepie, i robi miejsce innemu towarowi. Księgi umiejętności, Zwoje Zapomnienia i Kamienie Duchowe mają dalej własne limity.
- Marmury Polimorfii: najwyżej 3 na ladzie, nigdy dwa tego samego potwora. Przez dwa dni nie sprzedał się ani jeden z 6581 wystawionych, a zapychały lady, na których brakowało miejsca na materiały.
- Materiał, którego w danej wiosce nikt nie wystawia, trafia na ladę przed zwykłym sprzętem. W drugich wioskach (Bokjung, Jayang, Bakra) sprzedawcy mieli brakujące materiały w torbach, ale ich lady były pełne.
Broń na 30 poziom innej klasy (Tieru)
- Połowa broni na 30 poziom, których bot nie może założyć, idzie najpierw do kowala. Ulepsza je na zwykłym kowadle, bez zwojów, do sufitu z tabeli dla jej średnich obrażeń: do +7 przy średnich do 21%, do +6 przy 22–29%, do +4 przy 30–36%. Gotowy przedmiot trafia na ladę droższy, a te, które spłoną, przestają zapychać lady. Broń z co najmniej 37% średnich albo 15% obrażeń umiejętności nie idzie na kowadło i trafia na ladę jak dotąd.
- Dla porządku: przy szansach tej rodziny (90/85/75/65/55/45/35/25/20%) +9 zostaje rzadkością. Od +5 do +9 pod Zwojem Błogosławieństwa to średnio ok. 200 zwojów, a na zwykłym kowadle dochodzi 0,8% broni.
Farby do włosów i fryzury (Tieru)
- Farby do włosów z łowienia boty wyrzucają, tak jak robi większość graczy. Zostawiają jedną, jeśli same nie mają jeszcze koloru włosów, i bardzo rzadko (3 na 100) jakąś na sprzedaż. Farby już wystawione wracają z lad.
- Co trzeci sprzedawca, któremu Smocze Monety nie są potrzebne na nic własnego, kupuje w ItemShopie fryzurę, której sam nie założy, i wystawia ją na ladę z ceną wyjściową ok. 2 mln yang (więcej przy wyższych stawkach yang). Fryzury z ItemShopu w tej paczce nie mają bonusów, więc sprzedaje się wygląd. Monety boty mają z kuponów z metinów i bossów, więc przy domyślnej szansie na kupon takich fryzur będzie niewiele.
Wojny gildii: pole bitwy dalej od strefy bezpiecznej (gregory_955)
- Pole bitwy na mapach gildyjnych Chunjo i Jinno stało przy samej granicy strefy bezpiecznej (50–100 jednostek od niej), więc część walczących zawsze stała w strefie, gdzie nie da się zadać ciosu. W wojnie Chunjo z 18 września było to 11 z 67 botów. Pole bitwy trzyma się teraz co najmniej 800 jednostek od strefy: na mapie Chunjo przesuwa się o ok. 1000 jednostek, na mapie Jinno o ok. 800.
- Ostatnia para wojny zapisuje się w bazie, więc restart przy aktualizacji nie oddaje pierwszej wojny tym samym dwóm gildiom.
Wersja 2.0.77 (18.09.2026)
Serwer 2.0.77, klient bez zmian (2.0.16). W launcherze ZAINSTALUJ AKTUALIZACJE.
Aktualizacja i zbieranie logów (archonek, Urtopy, DUDU)
- „ZBIERZ / WYŚLIJ LOGI” w 2.0.76 kończyło się błędem „You cannot call a method on a null-valued expression” na każdym serwerze bez drugiego kanału. Naprawione, działa od razu po zainstalowaniu tej aktualizacji.
- Starszy Docker Compose próbował przy starcie pobrać z internetu obraz panelu zaawansowanego (metin2/seban-panel), który serwer buduje sam, i przerywał start albo aktualizację błędem „pull access denied”. Od 2.0.77 go nie pobiera.
- Launcher pokazywał „Kanał aktualizacji nie został jeszcze opublikowany”, gdy w logach nieudanej akcji trafiła się gdziekolwiek liczba 404, choć manifest był na miejscu. Teraz ten komunikat oznacza tylko prawdziwy brak manifestu, a błąd pobierania obrazu ma własną wskazówkę.
- Aktualizacja klienta odmawia, gdy gra jest włączona. Zamknij grę (sprawdź też Menedżer zadań, czy metin2client.exe nie został w tle) i kliknij ZAINSTALUJ AKTUALIZACJE jeszcze raz.
Więcej materiałów na ladach (Hiob, Xewi)
- Rynek botów liczył tylko to, czego brakuje botom, a zakupów gracza nie widzi, więc większość materiałów uznawał za nadmiar. Boty trzymały w torbach i magazynach ok. 1,3 mln sztuk materiałów, a na ladach było ok. 105 tys. W prawie co trzeciej parze „materiał × wioska” nie było ani sztuki (np. Czarny Uniform w Pyongmoo i Bakrze, Księga Klątw i Ząb Orka nigdzie).
- Teraz każda wioska ma na ladach co najmniej 50 sztuk każdego materiału do ulepszania, który boty w niej mają ponad własny zapas na kowala. To, czego bot potrzebuje do własnych ulepszeń, zostaje w torbie.
- Sklepy botów uzupełniają się szybciej: budżet zmian w sklepach offline jest dwa razy większy i nie gubi wolnych sekund.
- Nowe linie przybywają stopniowo, bo sprzedawca dokłada jedną przy każdej wizycie przy sklepie (co 10–15 minut), więc ladom trzeba dać godzinę lub dwie.
- Wyszukiwarka przedmiotów pokazuje sklepy tylko z mapy, na której stoisz. Szukaj w wiosce, w której stoją sklepy.
Wojny gildii (gregory_955)
- Boty nie gonią już przeciwników stojących w strefie bezpiecznej, gdzie nikogo nie da się uderzyć. Bot, który sam stoi w strefie, najpierw wychodzi na miejsce zbiórki.
- Te same dwie gildie nie walczą już co dwie godziny. Para z ostatniej wojny w królestwie czeka, a pierwszeństwo mają gildie, które dawno nie walczyły.
- Wynik trwającej wojny widać w panelu na stronie gildii (⚔ z gildią … wynik:wynik).
Czerwony Las
- Punkt wyjścia z Czerwonego Lasu stał na zablokowanym terenie: boty, które chciały opuścić mapę, co 20 sekund planowały drogę donikąd. Wejście, wyjście i po jednym hubie w obu Lasach przeniesione na sprawdzony teren.
Wersja 2.0.76 (18.09.2026)
Cały drop pod tyldą ` (vanderro, SIZOWSKI)
- Z działa jak dotąd — podnosi jeden przedmiot.
- ` (tylda, klawisz nad Tab) podnosi naraz wszystko, co leży w zasięgu podnoszenia i należy do Ciebie albo do Twojej grupy, zaczynając od najbliższego. Gdy plecak się zapełni, przestaje i nic nie ląduje na ziemi. Przytrzymany klawisz ponawia co pół sekundy.
Liczba botów osobno dla każdego królestwa (Greess)
- Launcher → LICZBA BOTÓW → Indywidualne wartości dla królestw. Trzy pola: Shinsoo (czerwone), Chunjo (żółte), Jinno (niebieskie). Każde królestwo uruchamia tyle botów, ile mu wpiszesz, ale nie więcej, niż ma postaci. Nagłówek okna pokazuje ich sumę.
- Bez zaznaczenia wszystko działa jak dotąd: jedna liczba dzielona po równo.
- Menu tekstowe launchera też o to pyta. Zmiana działa po restarcie serwera.
Drugi kanał (CH2) — domyślnie wyłączony (pomysł i pomiary: SIZOWSKI)
- Włączasz go w launcherze (LICZBA BOTÓW → Drugi kanał (CH2) dla botów i graczy, z ustawieniem, ile procent botów gra na CH2; domyślnie 40) albo w panelu WWW na stronie Stawki.
- Serwer uruchamia wtedy trzy kolejne rdzenie gry, a boty dzielą się między dwa kanały. Serwer rozkłada je więc na dwa rdzenie procesora i udźwignie więcej botów naraz. Każdy bot gra zawsze na tym samym kanale.
- Liczba botów z launchera dotyczy całego świata: najpierw dzieli się na królestwa, potem każde królestwo między kanały. Tak samo liczby indywidualne dla królestw.
- Wszystkie sklepy offline, botów i graczy, stoją tylko na CH1. Na CH2 nie da się otworzyć sklepu. Bot, który kiedykolwiek miał sklep, gra na CH1 na stałe, żeby zawsze mógł obsłużyć swoją ladę.
- Boty z CH2 nie handlują: nie wystawiają sklepów i nie kupują z lad, bo te stoją na CH1, a bot nie przechodzi na inny kanał. Towar, którego nie sprzeda, przy pełnym plecaku oddaje handlarzowi albo odkłada do magazynu. Im większa część botów na CH2, tym mniej botów handluje.
- Wojny gildii botów wypowiada CH1, a walczą w nich boty z obu kanałów. Rajdy Wieży Demonów, zakładanie gildii i eventy czasowe prowadzi CH1. Boty z CH2 oddają swojej gildii doświadczenie jak dotąd.
- Po włączeniu z launchera otwierane są porty 13010–13012. Klient 2.0.16 pokazuje CH2 na liście kanałów tylko wtedy, gdy serwer go uruchomił.
- Zmiana działa po restarcie serwera. Ustawienie z panelu WWW przenosi boty na CH2 przy najbliższym restarcie. Gracze wejdą na CH2, gdy launcher otworzy porty, czyli po następnym GRAJ.
- CH2 zajmuje około 1 GB pamięci więcej.
Płynny ruch przy dużej liczbie botów (SIZOWSKI)
- Budżet czasu z 2.0.74 zostawiał na chwilę bez ruchu boty, do których przebieg AI jeszcze nie dotarł. Przy ponad ~1100 botach na jednym rdzeniu „robiły dwa kroki i stawały”.
- Teraz każdy bot w każdym takcie idzie dalej swoją trasą i bije cel,
a na swoją kolej czeka tylko planowanie. Linia
PLAYERBOT_LOADma nowe polelight_ms.
Wyrzucanie z serwera przy szkoleniu konia (Dearminder)
- Rdzeń padał, gdy zadanie usuwało swój własny cel w chwili dojścia do punktu (szkolenie konia na Ognistej Ziemi, trzeci punkt). Po ponownym zalogowaniu obok punktu padał znowu.
- Przyczyną był błąd w silniku zdarzeń: zdarzenie anulowane w trakcie działania zapisywało do zwolnionej pamięci. Po aktualizacji misja idzie dalej, także z miejsca, w którym utknęła.
Szybkość biegu z panelu działa (archonek)
- „Szybkość biegu” na stronie postaci dawała na tej wersji serwera punkty many zamiast prędkości. Teraz daje prędkość, na 30 dni albo do wybrania „Normalna”.
- Nie rusza serwerowego bonusu biegu ani premii od Biologa.
- Przy pierwszym użyciu zdejmuje manę dodaną wcześniej przez pomyłkę.
Boty nie oddają handlarzowi cennych rzeczy
- Czerwone Nasiono, Zwój Kamienia Duszy, Instr. Oswajania Konia, Zaaw. Ks. Polimorfii i reszta przedmiotów, które cennik Iwakury wycenia na ponad 5000 yang, idą na stragan zamiast do handlarza. Handlarz dostaje je tylko przy pełnym plecaku, gdy nie da się otworzyć straganu.
- Materiały z receptur ulepszeń wyższych poziomów boty zatrzymują na własne ulepszanie.
Tłum botów na jednym wzgórzu w wiosce (Remigiusz)
- Bot, który przerósł wszystkie tereny wioski, szedł zawsze na te same dwa miejsca. Przykład: poziom 28–35 w Joan, gdzie najsilniejsze potwory mają około 21 poziomu.
- Teraz rozchodzi się po najwyższych terenach wioski, na co najmniej sześć miejsc.
Panel zaawansowany
- W Zarządzaniu wróciło 🎁 Masowe nadawanie przedmiotów. Link zniknął przy aktualizacji panelu Sebana 16 września, a sama strona działała cały czas (archonek, DUDU).
- „Plan wejścia botów” jest opisany prostym językiem. Na serwerze bez integracji Sebana zamiast niedziałającego formularza jest wskazówka, gdzie to ustawić: launcher, LICZBA BOTÓW (Remigiusz).
- Oba panele pokazują też boty z CH2.
Na VPS: brak ikon przedmiotów w panelu WWW (DUDU, GorącyDelfin)
Serwer aktualizowany z wersji starszej niż 2.0.74 skryptem update.sh nie
kopiował ikon do panelu. Skrypt z 2.0.74 robi to już sam, ale pierwszą
aktualizację po nim wykonuje jeszcze stara wersja. Jeśli ikon nadal nie ma,
raz w folderze serwera:
sh linux-port/tools/update.sh stage
cd linux-port/docker && docker compose up -d --build panel
Wersja 2.0.75 (18.09.2026)
Serwer 2.0.75, klient 2.0.15. W launcherze ZAINSTALUJ AKTUALIZACJE — przycisk porządkowania potrzebuje nowego serwera i nowego klienta.
„Scal i uporządkuj” — jedno kliknięcie, cały ekwipunek (Tieru; plan z audytu Codexa)
Przycisk w oknie ekwipunku (dotąd „automatyczne łączenie”) wysyła teraz do serwera jedno polecenie. Serwer w ułamku sekundy:
- łączy stosy tego samego przedmiotu, ale tylko identyczne — te same kamienie, bonusy i wygląd — i tylko do limitu stosu danego przedmiotu; najpełniejszy stos zostaje, a wyczerpane znikają tak jak przy ręcznym łączeniu;
- układa wszystkie cztery strony od nowa według rodzaju: najpierw mikstury, potem broń, zbroje i biżuteria, księgi, ulepszacze i kamienie, skrzynie i klucze, inne przedmioty użytkowe, rybactwo i zbieractwo, przedmioty z misji i cała reszta;
- przepina skróty z paska na nowe miejsca przedmiotów.
Nic nie jest tworzone od nowa: każdy przedmiot zachowuje swoje kamienie, bonusy i numer. Strona konia, pas, założony sprzęt, smocze kamienie i magazyn zostają nietknięte, a włączony Eliksir Słońca lub Księżyca zostaje na swoim polu. Przy prawie pełnym ekwipunku serwer próbuje kilku sposobów ułożenia i wybiera taki, który się mieści — nigdy nie wyrzuca niczego na ziemię.
Porządkowanie nie działa podczas handlu, przy otwartym sklepie, magazynie, ulepszaniu i innych oknach (czat powie dlaczego), po śmierci, z przedmiotem trzymanym kursorem ani częściej niż co 2 sekundy. Wynik — ile przedmiotów przestawiono i ile stosów połączono — pojawia się na czacie dopiero wtedy, gdy serwer skończy. Drugie kliknięcie na uporządkowanym ekwipunku niczego nie rusza.
Dotychczasowy przycisk wysyłał setki pojedynczych ruchów (wcześniej wyrzucał za to z gry) i potrafił tylko łączyć stosy.
Boty porządkują torby tak samo
Boty na linii 2.x co mniej więcej pół godziny robią dokładnie to samo porządkowanie zamiast dotychczasowego przesuwania mikstur na początek, więc ich torby oglądane w panelu są ułożone jak po kliknięciu przycisku. Łączenie stosów co 5 minut zostaje bez zmian.
Liczba potworów w respie (Kiciamol)
Na stronie Stawki panelu jest nowa karta „Liczba potworów w respie”: osobno dla Metinów i bossów, osobno dla zwykłych potworów, od ×1 do ×4 (także ×1,5 i ×2,5). ×2 znaczy, że w każdym miejscu respu stoi dwa razy więcej potworów niż normalnie. Nie trzeba restartu, a ustawienie zostaje po restarcie. Dodatkowe potwory pojawiają się przy najbliższym odrodzeniu danego miejsca: zwykłe potwory w ciągu kilku minut, Metiny i bossowie po swoim czasie odradzania (zwykle 15–25 minut).
Bez zmian zostają postacie niezależne (sklepikarze, portale, konie), żyły rud i krzaki ziół, lochy i jednorazowe respy z misji. Po zmniejszeniu mnożnika nadmiarowe potwory znikają dopiero wtedy, gdy ktoś je zabije.
Uwaga: więcej potworów to więcej pracy dla serwera i botów.
„Czas odradzania” Metinów i bossów wreszcie działa
Pole „Metiny i bossowie” w karcie „Czas odradzania” (od 2.0.64) nie działało: serwer sprawdzał, czy linia respu to boss albo Metin, zanim odczytał, co to za potwór, więc żadna linia nim nie była, a bossowie i Metiny odradzali się według pola zwykłych potworów. Teraz każde pole działa na swoją grupę. Linie zapisane jako „grupa grup” serwer sprawdza tak samo jak zwykłe grupy, więc Metin z takiej linii też liczy się jako Metin. Pole „Metiny i bossowie” obejmuje też żyły rud i krzaki ziół, które stoją w plikach Metinów.
Launcher: aktualizacja klienta przy włączonej grze (Ratorex)
Gdy gra była uruchomiona (albo jej kopia wisiała w tle), aktualizacja klienta pobierała całą paczkę i dopiero przy podmianie pliku kończyła się komunikatem Windowsa „plik jest używany przez inny proces”. Launcher sprawdza to teraz przed pobieraniem — przy „aktualizuj wszystko” jeszcze przed aktualizacją serwera — i mówi wprost: zamknij grę, sprawdź Menedżer zadań, kliknij ponownie. Poprawka launchera działa od następnej aktualizacji po tej (aktualizację wykonuje zawsze poprzednia wersja).
Reset świata i kopia na dużym świecie (uxietoszef)
NOWY ŚWIAT (reset) i KOPIA kończyły się błędem „Stream was too long”
(„Strumień jest za długi”), gdy któryś zrzut bazy — zwykle historia w bazie
log — przekraczał 2 GB. Reset zawsze najpierw robi kopię, więc na takim
świecie nie dało się go zrobić (świat zostawał nietknięty). Kopia jest teraz
pakowana w sposób, który nie ma tego limitu. Sprawdzone na pliku 2,4 GB,
razem z przywróceniem kopii. Po aktualizacji wystarczy spróbować jeszcze
raz — ta poprawka działa od razu, nie dopiero od następnej wersji.
Skrót z paska przy miksturach w pasie
Gdy kończył się stos mikstur położony w pasie, skrót mógł przeskoczyć na zupełnie inny przedmiot w torbie (błąd z 2.0.74, gdy pas przesunął się razem z czterema stronami ekwipunku).
Sprawdzone przed wydaniem
Na świecie testowym (1099 botów, cztery strony ekwipunku):
- Porządkowanie botów: w pierwszych dziesięciu minutach 397 uporządkowanych toreb (mediana 68 przedmiotów, 61 przestawionych), najdłuższe trwało poniżej milisekundy. Serwer po każdym porządkowaniu przelicza przedmioty — ani razu nie zgadzało się inaczej niż przed nim — a po restarcie baza nie miała ani jednego podwójnie zajętego pola w 2505 torbach.
- Przycisk gracza: sprawdzony testami modułu klienta (Python 2.7 i 3); w samym kliencie jeszcze nie klikany.
- Liczba potworów w respie: przy ×1 na mapach stało około 41 tys. potworów, po ustawieniu ×2 w panelu 80 tys. po dwóch minutach. Przy Metinach na ×2 i zwykłych potworach na ×1 Metinów przybywało w miarę odradzania się kolejnych miejsc (113 → 231 w dwadzieścia minut), a żyły rud i zioła wracały pojedynczo, tak jak powinny. Nadmiarowe zwykłe potwory po powrocie z ×2 na ×1 schodziły same, przez zabijanie (81 tys. → 72 tys. w dwadzieścia minut). Przy ×2 czas pracy botów na tym świecie wzrósł z około 13–14 do 16–18 sekund na minutę.
- Wszystkie testy (C++ i Pythona na wersjach 2.7 i 3, testy launchera) przechodzą.
Wersja 2.0.74 (18.09.2026)
Serwer 2.0.74, klient 2.0.14. Serwer i klient muszą mieć tę samą wersję. Stary klient nie zaloguje się do nowego serwera. Przycisk ZAINSTALUJ AKTUALIZACJE w launcherze aktualizuje oba naraz.
Cztery strony ekwipunku
Ekwipunek ma cztery strony (I–IV, 180 pól) zamiast dwóch. Dotyczy to graczy i botów.
- Wyjątek od reguły „aktualizacja nie rusza bazy”. Przy pierwszym starcie
serwer przenosi w bazie przedmioty, które leżały za drugą stroną: stronę
konia i pola pasa przesuwa na ich nowe miejsca, a pasek skrótów zapisuje w
nowym, szerszym formacie. Dzieje się to raz, zanim ktokolwiek się zaloguje.
W logu rdzenia bazy zostaje linia
INVENTORY_PAGES: four pages .... Tego nie da się cofnąć: powrót do 2.0.73 lub starszej wersji wymaga kopii świata sprzed aktualizacji. Jeśli chcesz mieć drogę powrotu, zrób ją przed aktualizacją (launcher: KOPIA / NOWY SWIAT). - Starszy klient przy logowaniu dostaje komunikat „Wymagana aktualizacja klienta gry przez Patcher.” Wystarczy zainstalować aktualizację w launcherze.
- Boty też mają cztery strony, więc dłużej noszą łupy, zanim je sprzedadzą albo odłożą do magazynu.
- Oba panele pokazują w podglądzie postaci wszystkie cztery strony. Panel klasyczny nie pokazywał wcześniej niczego ze stron III i IV, a panel Sebana rysował te przedmioty na stronie II.
Klient 2.0.14
- Klient jest skompilowany u nas z kodu źródłowego z paczki: to ten sam klient co 2.0.13, z czterema stronami ekwipunku.
- Discord Rich Presence pokazuje „Metin2 SinglePlayer”, a przycisk prowadzi na kanał YouTube. Przycisków nie widać na własnym profilu — tak działa Discord, a nie błąd.
- Auto Łowy: z włączonymi Metinami kamień ma pierwszeństwo przed potworami. Cel, do którego postać nie może dojść, jest pomijany przez minutę, zamiast wracać do niej od razu (blasty).
Szkatułki Blasku Księżyca tylko w trakcie eventu (NerrVoVy)
Szkatułki wypadały także poza eventem, z dwóch powodów:
- rdzeń, na którym nie ma botów (w układzie
unifiedrdzenie first i game2), nigdy nie zamykał u siebie bramki skrzynek; - bez żadnego harmonogramu bramka stała otwarta wszędzie.
Teraz każdy rdzeń ma własny zegar, a Szkatułki wypadają wyłącznie w trakcie eventu skrzynkowego ze strony Eventy (w harmonogramie albo po „Aktywuj teraz”). Bez eventu nie wypadają wcale.
Logowanie na dużym świecie (SIZOWSKI)
Rdzeń gry obsługuje boty i graczy w jednym wątku. Długi przebieg botów (przy
starcie ponad 0,7 s) wstrzymywał więc każde logowanie. Teraz przebieg botów
ma budżet 120 ms, a to, co się nie zmieści, dokończy następny przebieg ćwierć
sekundy później. Na serwerze testowym z budżetem 20 ms najdłuższy przebieg
przy 1099 botach spadł z 343 do 34 ms. Budżet ustawia klucz TICK_MS w
pliku wag (0 oznacza brak budżetu).
Boty
- Boty poniżej 40 poziomu używają zielonych kamieni bonusów (dodawania i zmiany) na broni i zbroi do 40 poziomu. Do tej pory kamienie leżały im w torbach (Sammy).
- Siano, marchewki i Księgi Misji nie trafiają już do handlarza: boty je podnoszą i wystawiają w sklepach (Greess).
Panel na Linuksie / VPS (DUDU)
Budowa panelu na Linuksie kończyła się błędem /schema: not found. Paczka nie
wiozła schematu, a katalog panelu przygotowywał tylko launcher na Windowsie.
Teraz przygotowuje go update.sh przed budową, a paczka zawiera schemat.
Sprawdzone przed wydaniem
Serwer testowy z 1099 botami:
- logowanie nowym klientem i przenoszenie przedmiotów między stronami I–IV sprawdził Tieru;
- migracja poszerzyła 1143 paski skrótów;
- przez 17 minut po zmianie nie wypadła żadna Szkatułka, a godzinę wcześniej w 6 minut było ich 39;
- bot na 25 poziomie dodał bonusy zielonymi kamieniami do Gilotynowego Ostrza+7 i Zbroi Płytowej Tygrysa+6;
- boty podnosiły Księgi Misji około trzy razy częściej;
- oba panele pokazują strony I–IV.
Wersja 2.0.73 (18.09.2026)
Serwer 2.0.73, klient bez zmian (2.0.13).
Księgi i Kamienie Duchowe na ladach po jednej sztuce (przegląd Codexa)
Bot kupuje z lady linię tylko wtedy, gdy cała mieści się w tym, czego mu brakuje. Tymczasem sklep offline wystawiał księgi i Kamienie Duchowe całymi stosami (do dziesięciu sztuk), więc bot, któremu brakowało trzech kamieni, nie mógł kupić dziesięciu. Teraz nadwyżka idzie na ladę po jednej sztuce, najwyżej trzy linie jednego rodzaju naraz (księgi liczone osobno dla każdej umiejętności). Linia kamieni dłuższa niż trzy wraca przy najbliższej wizycie do torby, żeby wyjść ponownie po sztuce.
Poprawiona jest też rezerwa, którą bot zostawia sobie:
- Kamienie Duchowe: liczone były tylko kamienie w komórkach torby przed danym stosem, więc jeden stos dziesięciu kamieni przy rezerwie trzech nigdy nie trafiał na ladę. Teraz rezerwa liczy się w sztukach w całej torbie, a na ladę idzie wyłącznie nadwyżka.
- Księgi własnej umiejętności: rezerwa („dwanaście ksiąg do czytania”) liczyła stosy zamiast sztuk, więc przy stosach po dziesięć bot trzymał do stu dwudziestu ksiąg jednej umiejętności. Teraz dwanaście znaczy dwanaście.
- Bot nigdy nie wystawia tego, co za chwilę sam chciałby kupić: rezerwa sprzedawcy to dokładnie ta liczba, której brakuje kupującemu.
Bot nie „czyta” już księgi, której silnik mu nie da
Silnik czyta księgę tylko postaci, która ma przy sobie 20 000 doświadczenia
(każde czytanie tyle kosztuje). Z mniejszą ilością odmawia, zostawia księgę —
a bot próbował dalej co 8 sekund i w logu wyglądało to jak nieudane czytanie.
Na serwerze testowym w 12 minut było 7 095 takich prób i tylko 23 prawdziwe
odczyty. Najczęściej dotyczyło to dropperów z zablokowanym doświadczeniem i
botów na 40 poziomie w drugich wioskach. Teraz bot czeka na doświadczenie, a
log mówi to wprost (book read waits for experience).
Pomiary
W logu serwera każda sprzedaż z lady offline ma teraz linię
PLAYERBOT_OFFLINE: sold z czasem, przez jaki oferta stała na ladzie.
Sprawdzone przed wydaniem
Serwer testowy z 1099 botami, 32 minuty nowej wersji wobec 37 minut 2.0.72: 80 linii ksiąg poszło na lady po jednej sztuce i żadna nie naruszyła rezerwy właściciela, boty kupowały 93 księgi na godzinę wobec 69, na lady trafiały 872 linie na godzinę wobec 736, a pustych prób czytania było 57 na godzinę zamiast 33 383. Zero resetów strażnika bezczynności i żadnego padu rdzenia.
Wersja 2.0.72 (18.09.2026)
Serwer 2.0.72, klient bez zmian (2.0.13).
Boty kupują to, czego brakuje im do rozwoju (Tieru; wdrożył Codex)
Do tej pory bot kupował z lad materiały, sprzęt i kilka rzeczy strategicznych, a księgi umiejętności, Kamienie Duchowe i okazy dla Biologa zdobywał raczej przypadkiem. Teraz liczy, czego mu brakuje, i kupuje dokładnie tyle:
- księgi umiejętności, która jest na poziomie M — do zapasu dwunastu;
- Kamienie Duchowe, gdy ma umiejętność na G1–G10 — do trzech;
- okazy do otwartej zbiórki Biologa (Ząb Orka, Księga Klątw, Pamiątka po Demonie) — tyle, ile brakuje do oddania.
Linia z lady jest kupowana tylko wtedy, gdy cała mieści się w tej potrzebie, więc bot nie wykupi stosu dwudziestu ksiąg, bo brakowało mu jednej. Na zakup rozwojowy przeznacza najwyżej 30% własnych wolnych pieniędzy i nie zapłaci więcej niż dwukrotność uczciwej ceny. Tuż przed zakupem jeszcze raz sprawdza cenę i to, czy wciąż czegoś potrzebuje — zmieniona cena albo rzecz już zdobyta odwołują zakup.
Co jakiś czas bot wybiera się też na targ pierwszej wioski, kiedy na ladach są księgi, kamienie albo okazy, a jemu ich brakuje. Naraz robi to najwyżej 3% botów — bez tłumu przy bramach — a droppery, boty w drużynie gracza i boty w trakcie próby konia nie wybierają się wcale. Jeśli bot sam wystawił coś, czego teraz potrzebuje, zdejmuje to z własnej lady.
Przeglądając duży sklep, bot nie zaczyna już za każdym razem od początku: dociera też do pozycji dalszych niż 64. na ladzie.
Księgi i trening arcymistrza
- Gdy umiejętność główna czeka na kolejną księgę, bot czyta księgę innej swojej umiejętności, zamiast nie czytać nic.
- Przy włączonym przełączniku ksiąg w panelu bot nie zużywa już Zwoju Egzorcyzmu, który i tak nic by mu nie dał.
- Trening arcymistrza pomija umiejętność, na którą bota nie stać rangą, i trenuje inną. Gdy żadnej, bot poluje, żeby rangę odrobić.
Sklepy offline botów
- Przeceny i dokładanie towaru nie blokują się już nawzajem: bot przecenia dwie linie, potem przychodzi kolej na nowy towar, i tak na zmianę. Wcześniej sklep, któremu zawsze było co dołożyć, nie przeceniał niczego.
- Przecena idzie co godzinę, a co 10 minut tylko wtedy, gdy w trakcie gry zmieniono kurs yang w panelu. Restart serwera nie uruchamia już przeglądu wszystkich lad od nowa: pierwsza wizyta bota przy sklepie po restarcie dokłada towar. Wszystkie sklepy dzielą jedną operację na sekundę, a ten przegląd zabierał ją dokładaniu towaru i zakupom botów przez pierwsze minuty po starcie.
- Oferta, która stała na ladzie już przed restartem, jest przeceniana za zaleganie od chwili, gdy bot pierwszy raz po restarcie ją przelicza.
- Kamień Duchowy może trafić na ladę, jeśli bot ma go ponad własny zapas (wcześniej nigdy).
- W logu serwera co minutę jest linia
PLAYERBOT_OFFLINE: budget: ile operacji na sklepach offline boty dostały, a ile musiało poczekać.
Sprawdzone przed wydaniem
Serwer testowy, 1099 botów, 15 minut po restarcie, w porównaniu z 2.0.71: towaru dokładanego na lady tyle samo (170 wobec 169 pozycji), wypraw na targ po rzeczy do rozwoju naraz najwyżej 32, zero resetów strażnika bezczynności i żadnego padu rdzenia. Boty kupiły mniej ksiąg (9 wobec 24), bo nie dokupują już ponad własny zapas — wcześniej liczyły tylko część ksiąg z własnej torby.
Wersja 2.0.71 (18.09.2026)
Serwer 2.0.71, klient bez zmian (2.0.13).
Boty uczą się zielarstwa (Iwakura)
Paczka od zawsze zawierała cały system zielarstwa u Baek-Go — misję startową, jego sklep z Nożykiem Zielarza i pustymi butelkami oraz 77 receptur w tabeli wytwarzania — i nikt go nigdy nie użył. Receptury wypadające z metinów boty sprzedawały handlarzowi jako nieznany przedmiot, a zioła szły na lady jako zwykły towar.
Teraz bot przechodzi misję startową u Baek-Go na tych samych warunkach co gracz (dziesięć Kwiatów Brzoskwini), czyta zdobyte receptury z tą samą szansą i tym samym licznikiem wiedzy co człowiek, a przy warsztacie kupuje butelki po cenie z jego sklepu, zużywa zioła, płaci i rzuca na szansę — dokładnie w kolejności, jakiej używa okno wytwarzania, łącznie z tym, że nieudana próba zużywa materiały. Gotowe wzmocnienia bot pije przed bossem i metinem, a nadwyżkę wystawia na ladzie: do tej pory mikstur zielarskich nie dało się kupić w tym świecie nigdzie.
Po drodze okazało się, że boty podnosiły z ziemi tylko dwa z szesnastu ziół — Korzeń Gango i Grzyb Tue, bo tych chcą misje Biologa. W bagażach leżało 86 496 korzeni i 14 515 grzybów, a Kwiatu Brzoskwini, którego wymaga misja startowa, było w całym świecie jedenaście sztuk. Teraz boty zbierają wszystkie zioła zielarskie i zostawiają sobie zapas, zanim reszta trafi na ladę.
Uwaga dla zbierających: zioła Biologa i zioła na mikstury to osobne przedmioty mimo identycznych nazw. Pierwsze wypadają tylko przy aktywnej misji i idą prosto do torby, drugie lecą na ziemię jak każdy inny łup — boty pracują wyłącznie na tych drugich.
Bot z małym HP nie ucieka już bez końca (Urtopy)
Bot, który zaczął taktyczną ucieczkę, mógł z niej nigdy nie wyjść: warunkiem było, żeby potwór przestał go ścigać, a potwór, który nie może dojść — bo bot stoi za ścianą na skraju mapy — nie przestaje nigdy. Do tego ucieczka nie miała żadnego limitu czasu, a strażnik bezczynności jej nie łapał, bo bot cały czas biegał. Efekt: zdrowa postać dreptająca po tym samym skrawku pustyni godzinami.
Ucieczka kończy się teraz po oddaleniu się na bezpieczny dystans albo po minucie, niezależnie od tego, co potwór o tym sądzi. Powód trafia do logu.
Broń 30 poziomu: kowal do progu, dalej zwoje (Tieru)
Ile stopni bot wywalczy u kowala, zależy teraz od średnich obrażeń broni — im lepsza broń, tym wcześniej przestaje ryzykować:
- do 14% — kowal do +7, a powyżej i tak czasem spróbuje;
- 15–21% — kowal do +7;
- 22–29% — kowal do +6;
- 30–36% — kowal do +4;
- od 37% — wyłącznie zwoje, od +0.
Bez zwoju powyżej swojego progu bot czeka, zamiast spalić dobrą broń. (Sprawdzone w tabeli ulepszeń: dla broni 30 lv kowal nigdy nie daje stu procent — szanse spadają od 80% na +1 do 10% na +8.)
Zmieniło się też, co bot z taką bronią robi: dwie trzecie sztuk zatrzymuje dla siebie i ulepsza, resztę wystawia. Wcześniej praktycznie wszystkie lądowały na ladach nieulepszone — w dniu wydania stało ich tam 2603 na +0, a nosiło je 28 botów.
Biolog: kolejka wypraw posprzątana
Trzy poprawki z audytu:
- odczyt misji Biologa przydzielał i zwalniał miejsca na wyprawy przy każdym wywołaniu — a robi to również panel, więc samo zaglądanie do bota zmieniało grę. Teraz miejsca przydzielają tylko te przebiegi, które faktycznie decydują o podróży;
- bot, który niósł już okazy, mijał własną misję, gdy nie dostał miejsca w kolejce. Oddawanie okazu nie jest wyprawą i nie wymaga już miejsca;
- po wyczerpaniu czasu wyprawy bot wraca na koniec kolejki, zamiast zajmować zwolnione miejsce od razu z powrotem.
Broń 30 poziomu przestała blokować szukanie lepszej
Bot noszący taką broń na +7 odrzucał każdą ofertę z rynku niezależnie od tego, co miał na niej wyrolowane. Teraz decyduje porównanie potencjału: dobra broń dalej odrzuca oferty, słaba pozwala szukać lepszej.
Wersja 2.0.70 (17.09.2026)
Serwer 2.0.70, klient 2.0.13.
Boty nadrabiają misje Biologa (Tieru)
Bot z wysokiego poziomu, któremu zostały pierwsze wiersze Biologa (zioła z pierwszej wioski), czekał na nie godzinami: wyjazd po zioła ma limit, żeby nie powtórzyła się sytuacja z 2.0.60, gdy pół świata ruszyło naraz do M1. Teraz:
- bot, który i tak jest w pierwszej wiosce (zapasy, targ, oddawanie okazów), zbiera zioła z otwartego wiersza przy okazji, przez 10 minut od przyjścia i bez zajmowania miejsca w limicie — to nie dokłada ani jednego przejścia między mapami;
- na osobny wyjazd po zioła jedzie naraz 7% botów zamiast 2,5%, a wyprawa trwa do 2 godzin zamiast godziny;
- wyprawa nie wygasa, póki bot niesie zebrane okazy — wcześniej zegar potrafił skończyć wyprawę tuż przed oddaniem i cała podróż szła na marne.
Reguła „żaden wiersz nie jest za niski” i pierwszeństwo próby konia zostają bez zmian.
Koniec krążenia materiałów do magazynu i z powrotem (Tieru)
Bot wkładał do magazynu cały stos materiału razem z rezerwą, którą trzyma na
własne ulepszanie, a sekundę później — już z pustą torbą — wyjmował go z
powrotem, bo „brakuje mu na kowala”. I tak co kilka minut. Na naszym serwerze
3574 z 4698 wyjęć z magazynu w godzinę to były rzeczy włożone w tej samej
wizycie, a przy okazji sypało to do logu błędy ITEM_ID_DUP (650 dziennie u 26
botów), bo baza nie nadążała zapisać, że przedmiot jest już w torbie. Teraz do
magazynu idzie tylko nadwyżka ponad rezerwę kowala, a wyjmowanie nie rusza tego,
co ta sama wizyta włożyła.
Sklep bota widoczny w panelu (Tieru)
W oknie ekwipunku bota, obok magazynu, jest ikona sklepu: otwiera okno z nazwą lady, mapą i pozycją oraz listą wystawionych rzeczy z cenami. Wcześniej widać było tylko torbę i magazyn, a to, co bot sprzedaje, leży w jego sklepie offline. Obok jest też przycisk odświeżania.
Ekwipunek w panelu bez opóźnienia (Tieru)
Panel czyta bazę, a rdzeń trzymał zmianę przedmiotu w pamięci nawet siedem minut — dlatego zaraz po założeniu tarczy slot potrafił świecić pustką. Teraz założony i zdjęty element zapisuje się od razu.
Klient 2.0.13: osobowość bota w osobnym wierszu (ĹŌŞƬĒĶ)
Osobowość bota ma własny wiersz nad głową, między nickiem a nazwą gildii, więc ranga jest znowu zawsze widoczna i nic się nie bije o to samo miejsce. Przełącznik w opcjach gry („Osobowość / Wyłączone”) działa od razu, bez ponownego logowania. Cała zmiana po stronie klienta jest autorstwa ĹŌŞƬĒĶ.
Wersja 2.0.69 (17.09.2026)
Serwer 2.0.69; klient bez zmian (2.0.12).
Karta Wędkarska od 30 poziomu (Hiob, Tieru)
Wędkę na tym serwerze zakłada się od 30 poziomu i od 30 można łowić, ale sklep Rybaka sprzedawał Kartę Wędkarską dopiero od 50 — gracz między 30 a 49 poziomem miał wędkę i nie mógł łowić. Próg karty w sklepie Rybaka jest teraz 30, tak samo jak w opcji „Karta Wedkarska”. Cena i limit (25 000 yang, 5× Materiały Rzemieślnicze, raz na 22 godziny) bez zmian; do łowienia nadal trzeba ukończyć misję wprowadzającą Rybaka.
Wersja 2.0.68 (17.09.2026)
Serwer 2.0.68; klient bez zmian (2.0.12).
Zioła na ladzie w dużych paczkach, ulepszacze w małych (Tieru, Hiob, uxietoszef)
Sklep offline bota wystawiał przy każdej wizycie jedną linię — taki stos, jaki akurat leżał w komórce torby. Korzenie Gango i Grzyby Tue szły więc po 1–2 sztuki (na naszym serwerze 3343 linie ziół, z tego 1171 pojedynczych, jeden sklep z 34 liniami ziół), a ulepszacz, który nie był „zapasem”, szedł całym stosem razem z rezerwą na własne ulepszanie (1084 linie ponad 10 sztuk, np. 25 Kawałków Lodu za 19,7 mln w jednej linii). Teraz:
- tanie towary (według cennika Iwakury do 5000 yang przed przelicznikiem stawek, czyli zioła i rudy) idą paczkami po 50, nigdy poniżej 10 sztuk, najwyżej dwie linie jednego rodzaju;
- ulepszacz idzie paczkami po 5 (zapas ponad 50 sztuk — po 10), najwyżej trzy linie jednego rodzaju, i nigdy z rezerwy, którą bot trzyma na swoje ulepszanie;
- stojące już linie ziół poniżej 10 sztuk i linie ulepszaczy ponad 10 sztuk bot zdejmuje przy kolejnych wizytach przy sklepie, żeby wystawić je od nowa.
Po wdrożeniu u nas linii ziół było już 1955 (pojedynczych 545), a linii ulepszaczy ponad 10 sztuk 657 — i dalej ubywa, bo bot zdejmuje jedną linię na wizytę.
Biolog nie ściąga całego świata do Doliny Orków (SIZOWSKI)
U SIZOWSKIEGO 997 z 1621 botów stało w Dolinie Orków, u nas 277 z 1098 — prawie wszystkie na Zębach Orka, a 129 w drużynach „Szukam celu dla grupy”. Przyczyny z plików tego świata: skrypt misji daje ząb tylko z „Orka” (601), który w Dolinie stoi w dwóch punktach przy bossach; zęby spadają naprawdę z Czarnych Orków (46 lvl), a silnik tnie taki drop do 1% przy 15+ poziomach różnicy — bot 70 lvl miał ząb raz na ok. 17 000 zabójstw. Bot polował tylko na potwora z nazwy misji, więc resztę orków odrzucał jako bezwartościowe. Teraz:
- cel misji to cała rodzina potworów, z których przedmiot faktycznie spada (Zęby: Ork i Czarne Orki; klucz: Elitarne Orki 631–637; Księgi Klątw: oba Dręczyciele; klucz: 701–707 i 731–737; Pamiątka i jej klucz: demony wieży);
- bot ponad poziomem potwora dostaje brakującą część szansy, którą zabrała różnica poziomów — dokładnie tyle, ile dostałby gracz na poziomie potwora, z uwzględnieniem stawek świata; tylko dopóki Biolog jeszcze czegoś potrzebuje;
- bot z misją, który nie widzi takiego potwora, skanuje mapę i idzie do najbliższego, a walka po drodze nie odsyła go już do obozu wybranego po poziomie (wcześniej 51 z 86 botów w Dolinie stało w drużynach „Szukam celu dla grupy”);
- na przerośnięte misje zbierackie (Zęby, Księgi, Pamiątka) naraz jedzie najwyżej 10% botów, każdy na 2 godziny; reszta gra normalnie na swoich mapach;
- status mówi, co bot robi: „Zbieram dla Biologa: Zab Orka” w drodze do potworów, a „Ide do Biologa” tylko wtedy, gdy niesie okazy do oddania.
Po wdrożeniu u nas: w Dolinie 46 botów zamiast 277, „Szukam celu dla grupy” u 8 zamiast 129, a w kwadrans po restarcie 10 botów oddało komplet zębów i przeszło do drugiej części misji.
Mniej teleportów do sklepów offline (gregoszky)
W 95 minut na naszym serwerze było 7951 przejść między mapami: 3405 to przeskoki botów do własnego sklepu, a większość reszty — powroty (250 razy tam i z powrotem w niecałe 30 sekund). To jest ten ruch przy teleporterach. Bot, który stoi na innej mapie niż jego sklep, obsługuje go teraz raz na 45 minut; na mapie sklepu nadal co 10–15 minut. Po pierwszej fali wizyt takich przeskoków było 2–12 na minutę zamiast 36.
Karta Wędkarska do kupienia u Rybaka (Greess, SIZOWSKI)
Paczka sprzedaje Kartę Wędkarską tylko w specjalnym sklepie Rybaka (25 000 yang i 5× Materiały Rzemieślnicze, od 50 lvl, raz na 22 godziny), ale żaden skrypt tego sklepu nie otwierał, więc gracz nie mógł łowić. Rybak ma teraz opcję „Karta Wedkarska”. Do łowienia nadal trzeba ukończyć jego misję wprowadzającą. Quest jest skompilowany i wgrany na nasz serwer, ale opcji nie klikaliśmy jeszcze w kliencie — jeśli sklep się nie otworzy, dajcie znać.
Wersja 2.0.67 (17.09.2026)
Serwer 2.0.67; klient bez zmian (2.0.12).
Próba konia bojowego od pierwszego do setnego zabójstwa
Po 2.0.66 boty z próbą docierały na pustynię i dwa ją ukończyły, ale reszta dalej wracała: reguła „blokuje podróż” liczy torbę bez wolnej kolumny trzech komórek (handlarz z 16 luźnymi wolnymi komórkami ma to na stałe — GumbASSx wracał pięć razy w 40 minut, pobyty 97–426 s), a zegar wizyty na froncie kończył próbę w dwóch trzecich („frontier_visit_complete” po 41 minutach). Na próbie bot wraca tylko, gdy nie może walczyć (brak broni, zbroi, mikstur, strzał), wizyta nie wygasa, a łucznik bierze u handlarza pełny kołczan (jak dropek), żeby strzał starczyło na sto zabójstw.
Pierścień Teleportacji: druga paczka i samonaprawa stanu
Paczka NerrVoVy z 12:43 (2.0.65) pokazała 20 linii QUEST_ITEM: use — użycie
dociera do silnika (flagi 0, żaden quest nie zawieszony, poziom 75, mapa 1), a
handler questu nie rusza i nie ma błędu Lua. Quest jest zarejestrowany i ma
jeden stan; jedyne, czego dopasowanie nie umie uruchomić, to gracz ze stanem
teleport_ring innym niż start. 2.0.67 loguje przy każdym użyciu przedmiotu
questowego, ile questów dopasowano i pominięto (QUEST_ITEM: event), a
użycie pierścienia ze stanem innym niż start najpierw zeruje ten stan (quest
nie ma innych stanów, więc nic nie ginie).
Wersja 2.0.66 (17.09.2026)
Serwer 2.0.66; klient bez zmian (2.0.12).
Bot z próbą konia bojowego zostaje na pustyni
Po 2.0.65 (zioła ustępują próbie) boty z otwartą próbą i tak niczego nie kończyły: na m2zip w godzinę 85 wjazdów na pustynię, 75 pobytów po średnio 344 s (67 krótszych niż 10 minut), licznik zabójstw próby rósł o 25 co pół godziny, a 102 ze 120 botów z próbą stało w wioskach z „0/100”. Do wioski wysyłał je hand-in Biologa, który nieśli (29 wyjazdów na godzinę), i obsługa własnego sklepu co 10–15 minut (23 na godzinę). Oba czekają teraz, dopóki próba na pustyni trwa; potrzeba blokująca (brak broni, mikstur) nadal wygrywa. I druga połowa: bot z otwartą próbą w wiosce w ogóle rzadko na pustynię ruszał (126 takich botów, 3 wjazdy w 25 minut) — trzymała go „miękka” potrzeba sprawunków, torba zapełniona w 45 %, którą handlarz z towarem nosi zawsze: wizyta w mieście → rynek → drużyna → wizyta w mieście, przez cały dzień. Dla bota z próbą ta połowa nie liczy się; brak broni, zbroi, mikstur, strzał albo wolnej kolumny nadal wysyła do miasta. A „brak wolnej kolumny” był u handlarzy stanem trwałym: bot 40 lvl z 200 mln yang nosił 38 stosów materiałów „na ladę” (lada mieści kilka linii) przy 4 przedmiotach w magazynie, bo materiał, którego ktoś na świecie szuka, nigdy nie szedł do Dozorcy. Przy pełnej torbie (80 %) idzie; wypłata z magazynu wraca po niego na ladę tylko, gdy torba ma miejsce.
Launcher ponawia pobieranie paczki (Hiob)
Aktualizacja 2.0.61 → 2.0.65 padła dwa razy sekundę po odczycie manifestu: „połączenie nieoczekiwanie zakończone”, potem „(500) Wewnętrzny błąd serwera” — odpowiedź GitHuba, ten sam zip minutę później schodził normalnie. Launcher pobierał raz i przy pierwszym potknięciu kończył błędem; teraz próbuje trzy razy z pięciosekundową przerwą (blokada antywirusa nadal od razu). Nowy launcher przyjeżdża w paczce, więc działa od następnej aktualizacji.
Karta czasu odradzania z mnożnikami (kiciamol)
Przy każdym z dwóch pól na stronie „Stawki” są przyciski ×1 … ×10 (wpisują
odpowiedni procent) i podpis „≈ ×N szybciej niż w grze” liczony na żywo. Pod
spodem zostaje procent, więc polecenie REGEN i flagi silnika bez zmian.
Wersja 2.0.65 (17.09.2026)
Serwer 2.0.65; klient bez zmian (2.0.12). Dwie rzeczy z przedpołudnia po 2.0.64.
Pierścień Teleportacji: użycie zostawia ślad w logu (NerrVoVy)
Po 2.0.64 pierścień (70058) u gracza dalej „nic nie robi”, a paczka
diagnostyczna nie ma o tym ani jednej linii. Diagnoza z 2.0.62 była chybiona:
flaga 8192 na pierścieniu to w tym silniku ITEM_FLAG_LOG, nie APPLICABLE
(ta jest 1<<14), więc gałąź „przeciągnij na inny przedmiot” nigdy nie była
przyczyną, a migrator czyścił nieszkodliwą flagę. Od 2.0.65 każde zwykłe użycie
przedmiotu questowego zapisuje w syslogu linię QUEST_ITEM: use z flagami,
mapą, poziomem i informacją, czy gracz ma zawieszony quest (otwarte okno
zadania — wtedy silnik po cichu odrzuca każde nowe zdarzenie questowe; gracz
dostaje teraz podpowiedź na czacie), a sam quest pierścienia loguje, że się
uruchomił. Paczka diagnostyczna zbiera tag QUEST_ITEM. To pozwoli nazwać
przyczynę z następnej paczki zamiast zgadywać.
Kopanie rud pieszo (Remigiusz)
Bot kopał rudę siedząc na koniu (zrzut: TheBlady2 z kilofem na białym koniu przy Stercie Muszli) — silnik nie pyta o konia ani przy machnięciu, ani przy założeniu kilofa. Górnik schodzi teraz z konia przy żyle i odsyła go, jak wędkarz przy wodzie; wsiada z powrotem na drogę.
Zioła Biologa ustępują otwartej próbie konia bojowego
Bot z otwartą próbą konia (70+, koń na 10) szedł do pierwszej wioski po zioła Biologa (wiersze 1–6) i przez cały ten czas nad głową miał „Zdobywam konia bojowego na pustyni (0/100)” — na m2zip 88 ze 124 takich botów miało za cel Biologa, a na pustyni stało ich 8. Losowanie frontu i wiersz z potworem ustępowały próbie od 2.0.61, wyprawa po zioła nie. Teraz zioła czekają na konia; hand-in już niesionych okazów nadal idzie. Przy okazji: miejsce na wyprawę po zioła jest przydzielane dopiero dla wybranego wiersza, nie przy każdym sprawdzeniu — bot niosący Zęby Orka brał miejsce i oddawał je w tej samej klatce (300 linii logu na minutę po restarcie).
Wersja 2.0.64 (17.09.2026)
Serwer 2.0.64; klient bez zmian (2.0.12). Poranne zgłoszenia z Discorda po nocnych wydaniach 2.0.62/2.0.63 i panel Sebana 1.55.0.
Szkatułki Blasku Księżyca dropiły dwa razy częściej, niż mówił suwak
W dostarczanym item_manager.cpp blok losowania szkatułki (i kuponu Smoczych
Monet) siedział w CreateDropItem dwa razy — od co najmniej 2.0.50 każde
zabójstwo i każdy Metin losowały szkatułkę dwukrotnie, więc 10‰ z panelu
znaczyło w praktyce ~20‰. Przyczyna: skrypt portu rozpoznawał „już nałożone”
po pełnym tekście bloku, a każda zmiana komentarza w tym bloku wstawiała go
ponownie. Blok jest teraz jeden, a skrypt rozpoznaje go po stałym markerze.
Szkatułki tylko w oknie eventu — dwie dziury zamknięte (NerrVoVy)
„Mam włączone blaski 10/100, harmonogram na 2 h dziennie, a dropią też poza konkursem”: po pierwsze, każdy zapis pliku wag z panelu wpisywał suwak wprost do silnika i bramka eventu zerowała go dopiero w następnej sekundzie; teraz wartość suwaka jest trzymana obok, a silnik dostaje ją tylko, gdy okno jest otwarte. Po drugie, własne tabele dropu paczki mają linie ze szkatułką (50011), których żadna bramka nie obejmowała: gdy oba suwaki są na zerze (okno zamknięte albo wyłącznik), szkatułki z tabel też nie wypadają. Trzeci powód to podwójne losowanie z sekcji wyżej.
Wędkarze: karta wchodzi na zajęte sloty, Rybak ma własny próg dojścia (seban latino)
Dwie paczki diagnostyczne z 1013 i 1044 botami: na pierwszej nie łowił nikt — każda linia wędkowania to „karta w torbie, ale nie założona”. Karta Wędkarska jest unikatem, a bot z dwoma zajętymi slotami unikatów (np. Symbol Króla Przepowiedni + pierścień) nie mógł jej założyć i próbował znów za godzinę. Teraz zdejmuje jeden unikat (najpierw taki, który nic mu nie daje, pierścień na zegarze na końcu), a przy każdym zarzuceniu sprawdza, czy karta jest na sobie — 730 odmów silnika „You need to have a fishing pass” w dwie minuty i 24 sesje zakończone bez rzutu to była karta, która zeszła w trakcie sesji. Osobno: bot zawieszony na „Idę do Rybaka po przynętę” (Przepotenszny, MrocznyNinjaxD… na Yongan i Pyongmoo) stał 119–177 jednostek od punktu podejścia, bo punkt leżał na zablokowanym gruncie, a próg dojścia był stanowiskiem wędkarskim (100) — Rybak to lada, dostała własny próg (400) i dopasowany snap celu. Do tego bot, który oznaczył swoje stanowisko jako suche (brak wody obok), dostawał je z powrotem, gdy wędkarzy było więcej niż stanowisk — stał na piasku do końca limitu bezczynności; teraz dzieli z kimś mokre stanowisko, a gdy cały brzeg jest suchy, kończy sesję od razu.
Wojna gildii botów pieszo i od razu na środku (NerrVoVy, Tieru)
Boty odwołują konie na polu bitwy (dotąd bojowy koń zostawał w siodle) i obie strony zbierają się na tym samym otwartym gruncie na środku mapy gildyjnej, zamiast w dwóch kolumnach 700 jednostek od siebie.
Zbroja na plecach nie idzie na ryzykowny ulepszacz bez zastępstwa (THC)
Reguła „broni w ręce” z 2.0.49 dostała bliźniaczkę dla zbroi: na kroku, który może spalić (od +4 na +5 wzwyż), noszona zbroja idzie pod zwój albo czeka, jeśli w torbie nie ma innej, którą bot mógłby założyć. Dotąd bot na 20. poziomie przepalał jedyny pancerz i szedł farmić bez zbroi.
Czas odradzania Metinów, bossów i potworów — suwak w panelu (Hiob)
Silnik od dawna czyta flagi fastBossSpawn<mapa> / fastMobSpawn<mapa>
(procent zwykłego czasu odradzania linii regenu); 2.0.64 dodaje ich wersje
bez numeru mapy jako domyślne dla całego świata i formularz na stronie
„Stawki” panelu klasycznego: osobno Metiny i bossowie, osobno zwykłe potwory,
10–100 % zwykłego czasu. Działa od razu przez pomocnika w grze (polecenie
REGEN questu web_admin) i zostaje po restarcie (flagi w player.quest).
update.sh dopisuje brakujące klucze .env (GorącyDelfin)
Panel Sebana 1.55.0
Wersja 2.0.63 (17.09.2026)
Serwer 2.0.63; klient bez zmian (2.0.12). Ostatnie poprawki nocy po pierwszych testach Wieży Demonów z 2.0.62.
Wieża Demonów: na 7. piętrze grupa toruje sobie drogę do Metina Morderstwa
Na 7. piętrze grupa toruje sobie drogę do Metina Morderstwa: potwory są wybierane od kamienia, więc czyszczony jest teren wokół niego i kamień jest rozbijany, gdy nic przy nim nie stoi. Dotąd grupa szła za najbliższym demonem i kamień stał nietknięty, choć boty żyły i zabijały (na serwerze testowym: 9 minut, 63 zgony, cztery Metiny Śmierci rozbite w 49 s, Metin Morderstwa nietknięty). Ta poprawka została skompilowana i przeczytana, ale nie obejrzana na żywo — serwer testowy był już wyłączany; skrzynia i mapa z 7. piętra, klucz z 8. i Rozpruwacz z 9. nie były jeszcze osiągnięte przez żadnego bota. Prosimy o zgłoszenia z pięter 7–9 na Discordzie.
Wersja 2.0.62 (16.09.2026)
Serwer 2.0.62; klient bez zmian. Wydanie do testów Wieży Demonów — prosimy o zgłoszenia na Discordzie.
Gildie botów chodzą do Wieży Demonów (przełącznik „Gildie botów chodzą do Wieży Demonów”, domyślnie włączony)
- Wyprawa: mniej więcej co półtorej godziny (pierwsza kilkanaście minut
po starcie serwera) jedna gildia botów rdzenia — z co najmniej czterema
członkami od 40. poziomu online, najchętniej taka, w której ktoś ma 75. —
zwołuje na czacie gildii zbiórkę na parterze Wieży (do 16 najsilniejszych
członków), a serwer ogłasza to wszystkim: „Gildia X (Chunjo) rusza na Wieżę
Demonów: zbiórka na parterze wiezy, start za 4 minuty. Kto stoi na parterze,
wchodzi razem z nimi.” Po czterech minutach (albo gdy wszyscy dotarli) boty
razem rozbijają Metin Twardości. Log:
PLAYERBOT_TOWER: raid called / breaking the stone / raid inside / raid over. - Kto stoi na parterze, wchodzi — bot na własnej misji (Pamiątka po Demonie), gracz, który przyszedł popatrzeć: gra wciąga do nowej instancji wszystkich z mapy zabójcy kamienia, a w środku każdy bot gra według zasad piętra, wyprawa czy nie.
- Piętra jak w grze: 2. — wybić wszystko; 3. — Król Demonów i reszta; 4. — Metin Diabła, potem siedem Metinów Upadku (fałszywe znikają przy 50 %, prawdziwy trzeba rozbić); 5. — Kamienie Otwarcia z demonów niesione do pięciu Starożytnych Pieczęci; 6. — Elit. Król Demonów, potem kowal Wieży; 7. — cztery Metiny Śmierci, potem Metin Morderstwa, Nieznana Stara Skrzynia i Mapa Wieży Zin-Sa-Gui; 8. — Klucz Zin-Bong-In z Nieśm. Duchów do Sa-Soe; 9. — Umarły Rozpruwacz. Klucze zbiera zwykły pas lootu, bot ich używa albo oddaje, komu trzeba. Od 6. piętra potrzebny jest bot z 75. poziomem (zasada gry: kowal puszcza dalej tylko takiego); bez niego wyprawa kończy się na szóstym piętrze i boty wychodzą. Run bez postępu przez 20 minut, piętro powyżej 35 minut albo całość powyżej 2 godzin — boty wychodzą. Polegli wstają na miejscu jak dotąd.
- Gildia gracza: gdy mistrz gildii (gracz) stoi na parterze Wieży, jego boty od 40. poziomu przychodzą i stoją przy nim; gdy gracz rozbije kamień, wchodzą z nim i walczą piętro po piętrze. Bot w drużynie gracza wchodzi jak dotąd z drużyną.
-
Panel klasyczny: przełącznik na stronie zachowania botów i przycisk „Wyprawa do Wieży Demonów teraz” (rdzeń zwołuje wyprawę przy najbliższym sprawdzeniu, jeśli żadna nie trwa); na stronie „Gildie” przy gildii w Wieży stoi „w Wieży Demonów”. Status nad głową: „Wieza Demonow: pietro N”, „Zbiorka gildii: Wieza Demonow”. Gildia w Wieży nie jest wybierana do wojny.
-
Zmierzone na serwerze testowym (16 września, jedna wyprawa 16 botów gildii MINISTRANCI, bez wycieków z instancji): 2. piętro 208 s, 3. z Królem Demonów 253 s, 4. Metiny 107 s, 5. pięć Kamieni Otwarcia do Pieczęci 177 s, 6. Elitarny Król Demonów 104 s i kowal Wieży przepuścił bota 75. poziomu. Na 7. piętrze pierwsza wyprawa utknęła: 214 demonów, boty rozproszone po piętrze, połowa w pętli śmierć/wskrzeszenie, 6 minut bez zabójstwa. Stąd walka w grupie w tym wydaniu: cel wybierany od środka gildii (wszyscy biją tego samego demona), kamienie piętra dopiero gdy zostanie najwyżej 25 potworów, maruder bez celu wraca do grupy. Wieża idzie jako nowość do testów; piętra 7–9 prosimy zgłaszać na Discordzie.
-
Po pierwszym teście na serwerze testowym boty walczą na piętrach w grupie: cel jest wybierany od środka grupy, więc szesnastka bije tego samego demona, a maruder bez celu wraca do reszty — na 7. piętrze zgony spadły z 253 na 43 na dziesięć minut, a zabójstwa z zera do piętnastu na minutę. Kamień piętra (Metin Morderstwa, Metiny Śmierci) jest rozbijany, gdy grupa oczyści teren wokół niego, bo regen 7. piętra dorzuca potwory szybciej, niż da się je wybić do końca. Drugi przebieg z walką w grupie: piętra 2–6 w 222/256/153/206/156 s, kowal przepuścił bota 76. poziomu; 7. piętro było w toku w chwili wydania.
Koniec pętli Joan↔Bokjung u botów z ziołowym wierszem Biologa
Bot z otwartym ziołowym wierszem (potwór w pierwszej wiosce) wchodził z Bokjung do Joan po zioła, a w Joan reguła „wyrosłeś z tej mapy” od razu wysyłała go z powrotem — punkty wejścia obu bram stoją obok bramy powrotnej, więc okrążenie trwało 4 sekundy (Greess, log TAKAMURU1: „nie przechodzą przez teleporty”). Polowanie na zioła jest teraz powodem, by zostać w pierwszej wiosce, tak samo jak było powodem, by do niej przyjść. Przy okazji policzone: Teleporter działa w każdej pierwszej i drugiej wiosce trzech królestw (na serwerze testowym w 45 min: z 1/21/41 do Doliny 361/377/252 razy, na pustynię 44/58/58; z 3/23/43 do Doliny 103/54/67), a bramy M1↔M2, do Lochów Małp i z M3 po wojnie tak samo.
Koniec pętli M2↔M3 u dropperów M3
Dropper M3 (osobowość, która farmi mapę gildyjną pod bronie 30 lvl na sprzedaż) z taką bronią w torbie był wysyłany na M3 jako dropper, a gałąź M3 odsyłała go do M2 jako bota, który „znalazł broń” — punkt przybycia Teleportera na mapie gildyjnej stoi obok bramy powrotnej, więc okrążenie trwało 5 sekund (paczka seban latino: po dwa boty na Shinsoo i Jinno, 62–65 okrążeń w 6 minut, „level30_weapon_to_m3” / „m3_weapon_found”). Dla droppera M3 broń w torbie to towar, nie powód do powrotu; obie reguły — wejścia i wyjścia — pytają teraz o to samo.
Próba konia bojowego tylko tam, gdzie jest jej mapa
W układzie split pustynia (i Wieża Demonów dla konia wojskowego) stoi na jednym rdzeniu, a próba pytała tylko o poziom, konia i zabójstwa: 58 botów Shinsoo i 42 Jinno stało w drugich wioskach z napisem „Zdobywam konia bojowego na pustyni (0/100)” (paczka seban latino), losowanie frontieru odpowiadało pustynią i było filtrowane do niczego, a od 2.0.61 Biolog ustępował próbie — więc te boty nie miały ani frontieru, ani wiersza Biologa. Próba jest otwarta tylko na rdzeniu, który hostuje jej mapę; na pozostałych bot jest losowany po poziomie i robi Biologa jak każdy inny.
Naprawa paczki: 5. piętro Wieży Demonów było nie do przejścia
Quest paczki liczył na 5. piętrze zabójstwa Brutalnego Demona Łucznika (1062), a regen tego piętra w tej paczce stawia Demonów Żołnierzy, Łuczników, Włóczników i Szamanów oraz ich Podłe odmiany (1002–1004, 1031–1034) — nigdy 1062. Żaden Kamień Otwarcia nie mógł więc wypaść i nikt, gracz ani bot, nie przechodził dalej. Kopia questu w obrazie serwera liczy potwory, które na tym piętrze naprawdę stoją.
Bot przechodzi przez każdy warp gry
Silnikowy WarpSet — skok lochu, wyjście z lochu (d.exit_all), pc.warp
questu, /warp GM-a — zdejmował bota z mapy i czekał na klienta, którego
bot nie ma (ratunek stawiał go na starcie jego mapy). Teraz bot na tym
rdzeniu przechodzi po stronie serwera tam, gdzie gra go posłała, z
członkostwem w lochu jak gracz po ponownym połączeniu; warp na mapę innego
rdzenia jest odmawiany z wpisem w logu (PLAYERBOT_WORLD: warpset refused).
Wersja 2.0.61 (16.09.2026)
Serwer 2.0.61 i klient 2.0.12. Wydanie z tabelą tierów Iwakury, cennikiem 1.2 i poprawkami z wieczoru 16 września.
Tiery ekwipunku i bonusów Iwakury (PvE)
Iwakura ocenił każdą rodzinę bransolet, kolczyków, naszyjników, butów i broni
oraz każdy bonus w skali 1 (bardzo zły) – 6 (wspaniały), osobno do PvE i do
PvP, z dopiskami „+1 dla Wojownika” itp. (data/iwakura_tiery.txt; zbroje,
hełmy i tarcze ocenia po poziomie i bonusach, więc nie są w tabeli). Boty
używają kolumny PvE:
- Ocena sprzętu przesuwa się o 8 % na stopień od neutralnej trójki (tier 6 to +24 %, tier 1 to −16 %), a każda linia bonusu na przedmiocie liczy się z wagą tieru (wspaniały ×1,3 … bardzo zły ×0,25). To dopisek do dotychczasowej, mierzonej oceny, nie nowy ranking: bot nadal nie zamieni Miedzianych Kolczyków +9 z bonusami na Ebonitowe +1 bez bonusów.
- Losowanie bonusów (kamienie i marmury) używa tych samych wag, więc to, co kowal losuje, i to, co bot zakłada, ocenia jedna tabela.
- Zapas lepszego tieru w torbie (np. Ebonitowe Kolczyki u bota w Miedzianych) jest traktowany jak zapas wyższego poziomu: nie idzie do handlarza, kowal go ulepsza i bonuje, a założony zostaje dopiero wtedy, gdy naprawdę wygrywa — zgodnie z instrukcją Iwakury „najpierw ulepszyć i wybonować”.
- Kolumna PvP jest w tabeli, ale jeszcze nieużywana — czeka na drugi zestaw ekwipunku botów.
- Narzędzie:
tools/generate_iwakura_tiers.pyrenderujeplayerbot_item_tiers.h(161 rodzin, 45 bonusów) i przerywa, gdy jakiejś nazwy nie da się związać z przedmiotem — jak generator cennika.
Cennik Iwakury 1.2
Nowe pozycje (m.in. szkatułki i klucze, zwoje ulepszeń, księgi pasywne, przedmioty konia, przedmioty z łowienia, receptury) i dostrojone ceny; poprawione pisownie. Wszystkie lady przeceniają towar według nowej tabeli w ciągu kilku wizyt serwisowych.
Boty przyjmują zaproszenia do gildii od graczy
Zaproszenie do gildii wysłane botowi trafiało do deskryptora bez klienta i po dziesięciu sekundach wygasało — zaproszenie bota nie robiło nic. Teraz bot bez gildii przyjmuje zaproszenie od gracza od razu (każdy bot, także dropki), zapraszający widzi na czacie „X przyjmuje zaproszenie do gildii Y”, a bot w gildii gracza co godzinę oddaje jej część zdobytego doświadczenia (10 %, jak w zwykłej gildii botów) i poza tym niczego w niej nie zmienia. Warunki silnika bez zmian: to samo królestwo, wolne miejsce, gildia nie w wojnie.
Wojny gildii botów rozłożone między królestwa, z zapowiedzią
Wszystkie trzy królestwa zaczynały wojnę pół godziny po starcie serwera i kończyły razem, a potem przez dwie godziny nie było czego oglądać. Teraz pierwsza wojna Shinsoo jest po 30 minutach, Chunjo po 70, Jinno po 110, a kolejne 90 minut po zakończeniu poprzedniej (co 2 h w królestwie) — w świecie prawie zawsze gdzieś trwa wojna. Przy wypowiedzeniu, minutę–dwie przed pierwszymi ciosami, idzie ogłoszenie „Za chwile wojna gildii botow (Chunjo): A kontra B. Pole bitwy: mapa gildyjna.”, a strona Gildie w panelu klasycznym pokazuje „Następna wojna gildii botów: Shinsoo za ok. N min, …” (trwa teraz / niezaplanowana).
Pierścień Teleportacji działa u gracza
Przedmiot 70058 ma w tej paczce flagę APPLICABLE, przez którą gra traktuje go jak „przeciągnij na inny przedmiot” i przy zwykłym użyciu w ogóle nie pyta questu — dlatego quest z 2.0.52 nigdy nie odpalał. Migrator zdejmuje flagę przy starcie; pierścień otwiera okno z listą miejsc jak Teleporter (za tę samą opłatę, od 11 poziomu).
Biolog: ziołowe wyprawy po trochu, koń bojowy przed nimi
2.0.60 kazało botom robić wiersze Biologa po kolei bez względu na poziom
— i każdy bot z nieskończonym ziołowym wierszem ruszył do pierwszej
wioski naraz: na serwerze testowym przejścia M2→M1 skoczyły z ok. 300 na
godzinę do 1 826 i 2 766, w pierwszych wioskach stało 580 z 1 099 botów,
a gracze nagrali tłum botów na koniach wjeżdżających w bramy i „boty
40–50+ expiące w M1” (uxietoszef, Bierzyn, 16 września). Wiersze nadal
idą po kolei, ale bot, który przerósł ziołowy wiersz o więcej niż 10
poziomów, jedzie po niego do wioski tylko wtedy, gdy ma wolne miejsce w
puli 2,5 % żywych botów (miejsce trzymane najwyżej godzinę, oddawane po
skończeniu ziół); bez miejsca robi następny wiersz w kolejności (Ząb Orka
w Dolinie) — także bot, który już stoi w pierwszej wiosce, więc wioski
opróżniają się z botów 40+ w kilkanaście minut po aktualizacji. Log:
PLAYERBOT_BIOLOGIST: herb errand.
Koń bojowy przed ziołami
Po 2.0.60 bot 70+ z koniem na 10. poziomie miał iść na pustynię, ale ziołowy wiersz Biologa (Korzeń Gango w pierwszej wiosce) wysyłał go najpierw do M1 — w Jayang stało 35 takich botów z napisem „Zdobywam konia bojowego na pustyni (0/100)”, w innych wioskach podobnie. Dopóki bot ma otwartą próbę konia (bojowego albo wojskowego), potwór wiersza Biologa nie jest celem podróży; oddanie okazów nadal idzie normalnie. Na serwerze testowym pół godziny po restarcie: wyjazdy Teleporterem na pustynię i pierwsze zabójstwa próby u botów, które dotąd stały w wioskach.
Niesprzedany towar na ladach tanieje z czasem
Linia na sklepie offline, której nikt nie kupił, tanieje o 10 % za każde
2 godziny stania, najwyżej o 50 %, i nigdy poniżej tego, co zapłacono
kowalowi za ulepszenie. Klasyczny stragan miał taką przecenę od dawna; sklep
offline dostaje ją na wizycie serwisowej (log PLAYERBOT_OFFLINE: marked
down).
Klient 2.0.12
- Przełącznik „Tytuły botów” w opcjach gry wypisuje na czacie, że zmiana będzie widoczna po ponownym zalogowaniu (klient rysuje tytuł do następnej zmiany rangi bota).
Wersja 2.0.60 (16.09.2026)
Serwer 2.0.60; klient bez zmian (2.0.11). Wydanie do testów systemu gildii i zakupów botów w ItemShopie — prosimy o zgłoszenia na Discordzie.
Gildie botów: klasy, rekrutacja według siły, exp dla gildii, umiejętności gildyjne
Dotąd gildia bota była nazwą i listą: bot zakładał ją losowo, zapraszał kogo spotkał na placu, a gildia nigdy nie dostała punktu doświadczenia (na serwerze testowym 25 gildii, wszystkie na poziomie 1). Teraz:
- Siła bota to jedna liczba: poziom, cios broni w ręce, poziomy
umiejętności buildu, koń i zbroja. Co 10 minut rdzeń spisuje siłę botów
każdego królestwa i dzieli je na percentyle (log
PLAYERBOT_GUILD: strength census); pierwszy spis 10 minut po starcie. - Klasa gildii wynika z percentyla założyciela: Elitarna (górne 3 % królestwa), Silna (górne 15 %), Średnia (górna połowa), Zwykła (reszta). Elitarnych jest najwyżej 2 na królestwo, silnych 6; gdy klasa jest pełna, założyciel schodzi o jedną niżej. Elitarna ma 24 miejsca, silna 40, pozostałe tyle, ile daje gra (48 + 4 na poziom).
- Rekrutacja: mistrz zaprasza najsilniejszych botów bez gildii z całego swojego królestwa (nie tylko z zasięgu wzroku), wyłącznie powyżej progu swojej klasy, po trzech na przebieg. W gildii nadal tylko jedno królestwo; dropki nadal poza gildiami.
- Awans: członek, którego siła przerosła klasę jego gildii, odchodzi do lepszej gildii z wolnym miejscem (raz na 6 godzin, najwyżej 3 na królestwo na spis). Mistrz nie odchodzi.
- Exp dla gildii: co godzinę członek oddaje gildii część doświadczenia
zdobytego od poprzedniej ofiary — 15 % w gildii elitarnej, 12 % w silnej,
10 % w pozostałych; co najmniej 10 000, nigdy więcej niż ma na bieżącym
poziomie, więc bot nie traci poziomu. Gildia dostaje setną część oddanego
expa, dokładnie jak u gracza (tabela poziomów gry: 15 000 na 2. poziom,
685 000 na 10.). Log:
PLAYERBOT_GUILD: offered exp,PLAYERBOT_GUILD: guild X reached level N. - Umiejętności gildyjne: punkt z każdego poziomu mistrz wydaje schodkowo: Krew Smoczego Boga, Święta Zbroja, Gniew, Przyspieszenie, Błogosławieństwo, Pomoc w Rzucaniu. Uwaga: w tej wersji gry umiejętność gildyjną można użyć tylko na arenie wojennej, więc w wojnach polowych botów nie działa — punkty służą graczom w gildii bota i arenom.
- Istniejące gildie botów (założone przed 2.0.60) dostają klasę przy
pierwszym sprawdzeniu po spisie, według siły mistrza. Klasa i królestwo
gildii trzymane są w nowej tabeli
player.playerbot_guild(tworzy ją migrator przy starcie).
Wojny gildii botów (przełącznik „Wojny gildii botów”, domyślnie włączony)
- Mniej więcej co 2 godziny w każdym królestwie dwie gildie botów (co najmniej 8 botów online w każdej, najbliższe sobie klasy, rotacja) toczą wojnę polową silnika: wypowiedzenie przez jednego mistrza, przyjęcie przez drugiego, 30 minut, zabójstwa liczone przez grę, rozliczenie i ranking (ladder ±7 %) przez rdzeń bazy. Pierwsza wojna pół godziny po starcie serwera.
- Pole bitwy to mapa gildyjna królestwa (Waryong i jej odpowiedniki): komunikat na czacie „Wojna gildii: A kontra B! Pole bitwy: mapa gildyjna (Chunjo), 30 minut.”, zbiórka na najbliższym otwartym terenie przy punkcie wejścia mapy (na mapach Chunjo i Jinno sam punkt wejścia leży w strefie bez PvP, gdzie gra nie liczy żadnego ciosu), strony 700 jednostek od siebie. Boty schodzą z konia transportowego i biją najbliższego wroga tak jak w pojedynku (bufy, dystans casterów, szarża wojownika, skille, cios), polegli wracają z wioski na pole; po wojnie wszyscy wracają do drugiej wioski. Status nad głową: „Wojna gildii z X”. Bot w drużynie gracza na wojnę nie idzie.
- Wojna wypowiedziana gildii bota przez gracza nie jest przyjmowana (to
osobna decyzja na później). Wyłączenie przełącznika wstrzymuje nowe
wypowiedzenia; trwająca wojna dobiega końca. Log:
PLAYERBOT_GUILD: war declared / accepted / on / over.
Boty korzystają z ItemShopu (przełącznik „Boty kupują w ItemShopie”, domyślnie włączony)
- Kupon bot wymienia od razu na Smocze Monety swojego konta, tą samą drogą co gracz (doładowanie przez rdzeń db, wpis w logu kuponów), tylko bez okienka. Saldo trzyma w pamięci i odczytuje z konta raz na godzinę.
- Zakup to zwykły zakup w sklepie gry (poziom, cena, log zakupów silnika, towar do torby), najwyżej raz na godzinę, i tylko to, z czego bot naprawdę korzysta: Kamień Duchowy (49 SM) dla bota z umiejętnością Wielkiego Mistrza gotową do treningu; Zaczarowanie Przedmiotu (69 SM) dla bota, którego noszona broń jest jeszcze warta losowania bonusów, a w torbie nie ma kamienia; za Smocze Znaki (naliczane 1:1 za wydane monety) Zwój Błogosławieństwa przy pracy pod zwój i Atak Boga Smoków x5; oraz fryzura (39 SM) — raz, dla jednego bota na czterech, gdy nic innego nie jest potrzebne.
- Bot nie kupuje przedmiotów VIP ani Przepustki Triumfu: każdy bot ma subskrypcję premium od zawsze (5 lat od spawnu), a sklep i tak odmawia VIP-a subskrybentowi. Nie kupuje resetów, Wykrywacza Metinów ani Magicznego Metalu.
- Naprawa poza botami: silnik logował każdy zakup w sklepie do tabeli
log.itemshop, której paczka nigdy nie miała — migrator ją tworzy, więc zakupy graczy przestaną kończyć się błędem SQL w syserr.
Biolog: żaden etap nie jest „za niski dla bota”
Bot robił misje Biologa tylko w swoim paśmie poziomów, a wiersze, z których wyrósł, pomijał — stąd „Ząb Orka 4/10 • za niskie dla bota, pominięte: 4” nad botem 78 poziomu, który ani zębów nie dokończył, ani do ziół nie wrócił. Teraz wiersze idą po kolei niezależnie od poziomu: bot kończy ten, którego okazy nosi, potem pierwszy nieukończony. Po okaz jedzie tam, gdzie stoi potwór: po ziołowe wiersze do pierwszej wioski (i tam poluje w paśmie wiersza, nie swoim), po Ząb Orka i Księgę Klątw do Doliny Orków, po Pamiątkę po Demonie do Wieży Demonów. Okaz daje własny hak questa, więc różnica poziomów nie przeszkadza. Panel nie pokazuje już „pominięte”.
Koń bojowy: bot 70+ z koniem na 10. poziomie robi próbę na pustyni
Na serwerze testowym 161 ze 178 botów 70+ z koniem na 10. poziomie nie miało ani jednego zabójstwa z próby konia bojowego: polityka walki odrzucała skorpiony i węże pustyni jako bezwartościowe dla tak wysokiego bota, więc bot na pustyni nic nie bił i wracał do miasta. Potwory próby (dwóch łuczników pustyni; dla konia wojskowego cztery demony Wieży) są teraz celem questowym — bite bez względu na poziom — a pustynia jest dla takiego bota mapą pogranicza, dopóki nie zbierze stu zabójstw; potem Stajenny za 500 000 yang wydaje konia bojowego jak dotąd.
Panel klasyczny: strona „Gildie”
- Karta na pulpicie i przycisk na stronie zachowania botów: lista gildii
botów z królestwem, klasą, poziomem, liczbą członków i botów online,
mistrzem, średnią siłą, rankingiem, bilansem wojen (Z/R/P), expem
otrzymanym od startu rdzeni i toczoną wojną z wynikiem. Rdzenie zapisują
playerbot_guild_status.tsvco minutę; panel składa trzy pliki.
Wersja 2.0.59 (16.09.2026)
Serwer 2.0.59; klient bez zmian (2.0.11).
Stopniowe wpuszczanie botów
- okno wejścia — w ciągu ilu minut od startu wchodzi kohorta (1–180; 1 = jak dotąd);
- dodatkowi boty — ilu botów ponad liczbę kohorty dołącza później, pojedynczo i równomiernie, w ciągu ilu godzin (1–168). Np. 1000 botów w 15 minut i 500 kolejnych w ciągu doby.
Dodatkowi dołączają jako „następne postacie za kohortą” każdego królestwa
(w proporcji do zarejestrowanych), a od chwili wejścia są traktowani jak
reszta: uzupełnianie po wypadnięciu i bany działają tak samo. Log:
PLAYERBOT: late joiners, PLAYERBOT: late joiner.
Boty grają jak żywi ludzie (eksperymentalne, domyślnie wyłączone)
Na stronie zachowania botów panelu klasycznego doszedł przełącznik
„Boty grają jak żywi ludzie”. Włączony: każdy bot gra sesję 3–6 godzin
(pierwszą po starcie serwera od pół godziny wzwyż, żeby wylogowania
rozłożyły się w czasie), wylogowuje się, odpoczywa 3–9 godzin i wraca —
w danej chwili online jest około dwóch botów na pięć. Bot w drużynie gracza
czeka z wylogowaniem; jego stragan (sklep offline) stoi dalej jak u gracza.
Wyłączenie sprowadza odpoczywające boty z powrotem w kilka minut. Działa
w ciągu minuty od zapisania, bez restartu. Log: PLAYERBOT_LIFE, także
w pakiecie wsparcia.
Stajenny: zmiana poziomu trudności skraca też trwające czekanie
Postać, która zamówiła konia (kucyka, Księgę Konia) albo trening pod
dłuższym czekaniem — np. 12 h z poziomu hard — czekała dalej stary czas
po przełączeniu na easy czy medium; 2.0.57 obiecywało inaczej (Hiob:
„zmieniałem tryby na łatwy, własny, dalej trzeba czekać”). Teraz przy
logowaniu i przy każdej rozmowie ze Stajennym pozostałe czekanie jest
przycinane do bieżącego ustawienia: na easy koń jest od razu (Stajenny
mówi „Gotowe! Porozmawiaj ze mną jeszcze raz”), na medium co najwyżej
4 h od tej chwili. Dotyczy pięciu questów konia: kucyk, dwie Księgi
Konia, treningi 1–10 i 11–19. Sama zmiana poziomu nadal wymaga restartu
serwera (reload q nie odświeża flag trudności).
Metiny: przedział 16 poziomów, a kamienie Wieży Demonów jako cel
Przedział postaci bijących zwykły kamień Metin to najwyżej 16 poziomów w każdą stronę: bot dołącza do bitego kamienia najwyżej 16 poziomów ponad sobą (dotąd 30) i nie bije kamienia, z którego wyrósł o więcej niż 16 (krzywa dropu daje 1 % przy piętnastu poziomach przewagi — z takiego kamienia nic już nie leci). Sam zaczyna kamień do 9 poziomów ponad sobą, jak dotąd. Kamienie Wieży Demonów (8015–8019) to nie metiny, tylko cel piętra: bot wspinający się z graczem (w jego drużynie, gracz na tej samej mapie) bije je bez względu na poziom, a splash i zamach w ich pobliżu nie są już wstrzymywane; bot sam omija je jak dotąd, bo ich rozbicie teleportuje wszystkich z mapy.
Wersja 2.0.58 (16.09.2026)
Serwer 2.0.58; klient bez zmian (2.0.11).
Bot w drużynie gracza nie zmienia podziału doświadczenia
Bot dodany do drużyny gracza przy każdym sprawdzeniu drużyny (co kilkanaście sekund) ustawiał podział z powrotem na równy, choć liderem był gracz — reguła pisana dla drużyn botów była pytana także o drużynę gracza (Dearminder). W drużynie prowadzonej przez gracza podział ustawia wyłącznie lider; drużyny botów dalej dzielą po równo.
Boty nie wykupują wszystkich Szkatułek Blasku Księżyca
Od 2.0.53 bot bez szkatułek kupował je z lad, i tysiąc botów opróżniało wszystkie lady świata (sizowski: „wykupują dosłownie WSZYSTKIE”). Dwa hamulce: gdy księga rynku liczy 30 lub mniej szkatułek na wszystkich ladach świata, żaden bot nie kupuje kolejnej, a bot, który kupił jedną, czeka 20 minut przed następną. Otwieranie szkatułek z własnych dropów bez zmian.
Druga wioska: boty docierają do jej drugiej połowy
Boty z Shinsoo omijały północ Jayang, a z Jinno południe Bakry (blasty). Mosty i granice map są w porządku — sprawdzone na plikach map, z miasta osiągalne jest 99,9 % terenu i 100 % grup spawnu. Bot wchodził bramą (na Jayang na południu, na Bakrze na północy), zaczynał bić to, co miał pod nosem, i tak rozchodził się od bramy do końca życia: tabela miejsc łowów drugiej wioski nie miała pasm poziomów, a przejście do kolejnego miejsca uruchamia się tylko wtedy, gdy nic w zasięgu nie jest warte bicia — bot na 33 poziomie dalej bił tygrysy z 18. Druga połowa mapy (Wielka Banda, 29–36 lvl) stała pusta.
- Każde miejsce łowów w M2 (Jayang, Bokjung, Bakra) ma zmierzone pasmo poziomu (mediana potworów w promieniu 25 m) i bot idzie tylko na miejsca swojego pasma (a gdy pasmo ma ich mniej niż cztery, dobiera najbliższe); tabele urosły z 12 do 24 miejsc na mapę. Dwanaście ręcznych miejsc Bokjung zmierzono przy okazji: trzy stały 2–4 km od najbliższego spawnu, dwa przy kilkunastu punktach.
- Potwór 6 i więcej poziomów pod botem, dalej niż 8 m, przestaje być celem także w drugiej wiosce (tak jak w pierwszej) — dzięki temu bot, który wyrósł z terenu przy bramie, rusza na teren swojego pasma. Obrona, zadania, materiały i sprzęt jak dotąd mają pierwszeństwo.
Wersja 2.0.57 (16.09.2026)
Serwer 2.0.57; klient bez zmian (2.0.11).
Poziom trudności świata: easy / medium / hard / własny
| poziom | Biolog | kucyk i Księgi Konia | treningi 1–10 / 11–19 |
|---|---|---|---|
| easy (domyślnie, jak dotąd) | 0 | 0 | 0 |
| medium | 8 h | 4 h | 6 h / 7 h |
| hard (jak w oryginale) | 24 h | 12 h | 18 h / 21 h |
| custom | własna liczba godzin | własna liczba godzin (jedna na wszystko) | jak obok |
Zmiana działa od następnego startu serwera (migrator zapisuje flagi zdarzeń, questy je czytają). Postać, która już czeka, dostaje konia po upływie nowego czasu. Botów to nie dotyczy — ich Biolog i stajenny nigdy nie czekali. Z dyskusji na ogólnym („z harda na easy nieeee”).
Eventy: szkatułki i raty o wybranych porach
- Szkatułki Blasku Księżyca — gdy w harmonogramie jest choć jedno okno szkatułek, szkatułki dropią wyłącznie w oknach (suwaki na stronie AI mówią, jak często w oknie). Bez okna wszystko działa jak dotąd.
- Doświadczenie, drop, yang — w oknie raty serwera rosną o podany procent (50 = +50%) i wracają po jego końcu; raty ustawione ręcznie w trakcie eventu zostają, jak je ustawiono.
- Aktywuj teraz — włącza event na wybraną liczbę minut (15–360), z własnym procentem; przycisk Zakończ kończy go wcześniej.
- Na czacie pojawia się ogłoszenie na początku eventu, co piętnaście minut w jego trakcie i na końcu („Event: +50% doswiadczenia do 21:00!”).
Rdzeń gry odczytuje harmonogram w pięć sekund; nic się nie restartuje. Status („aktywny do”, „następny”) pokazuje strona Eventy.
Metiny dla każdego bota, bite razem
Zajęty kamień nie odstrasza już reszty: dotąd cel jednego bota był celem zajętym, więc przy jednym metinie bił jeden bot, a reszta szła dalej (Kiciamol). Kamień może bić do sześciu botów naraz. Każdy bot ocenia metin w swoim paśmie wyżej niż zwykłe potwory, a kamień, który już ktoś bije, staje się najważniejszym celem w zasięgu — bot dołącza nawet do metina do 30 poziomów ponad sobą, jeśli bije go inny bot. Kamień, który bije tylko gracz, boty zostawiają graczowi (drop idzie do tego, kto zadał najwięcej obrażeń).
Loot po bossie
Po zabiciu bossa bot dostaje takie samo okno na loot jak po rozbitym metinie: przez 20 sekund zbiera, co leży w promieniu 15 m, zanim raid „wróci do pracy”. Zgłoszenie Ciapka: skrzynia Umarłego Rozpruwacza (bronie 75 ze średnimi) zostawiona na śniegu.
Księgi Kombo i Dowodzenia
Sztuka Combo (trzy księgi) i Sztuka Wojny Sun Zi / Wu Zi / WeiLiao Zi (Dowodzenie) szły do handlarza za tysiąc yang, bo nie są zwykłymi księgami umiejętności. Bot czyta je teraz, gdy może (Kombo od 30 i od 50 poziomu, Dowodzenie po dwadzieścia poziomów na księgę), zostawia sobie do trzech sztuk, a resztę wystawia na straganie; handlarz ich nie dostaje. Kombo daje botowi cios w więcej celów naraz, Dowodzenie liczy się dla bonusów grupy. Zgłoszenie sizowskiego.
Drobne
- Linia „login phase does not handle this packet! header 100” w syserr rdzenia logowania zniknęła: to logowanie osobnego połączenia klienta po znaki gildii, nie błąd (sizowski, wątek o logowaniu).
Wersja 2.0.56 (16.09.2026)
Serwer (rdzeń gry i AI botów); klient bez zmian (2.0.11).
Zwoje Błogosławieństwa trafiają na lady
Boty miały zwoje (na świecie testowym 1405 w torbach 294 botów), a na ladach stało 5. Reguła „zostaw trzy dla własnego kowala” liczyła zwoje leżące w torbie przed danym stosem, a wizyta serwisowa sklepu offline niczego wcześniej nie dzieli — więc jedyny stos bota był zatrzymywany w całości niezależnie od wielkości, a cięcie po 5 z 2.0.55 nie miało czego ciąć. Teraz zapas to liczba zwojów: bot zostawia sobie trzy (handlarz surowcami jeden, bot bez pracy dla zwoju żadnego), a nadwyżkę wystawia w liniach po 1–5. Zgłoszenie z kanału ogólnego („A bodzi jak nie było tak nie ma”).
Dropek medali z pełnym zapasem nie wraca do lochu
Dropek medali z pełnym zapasem (200 medali w torbie) wychodził z Lochu Małp regułą wyjścia i w tej samej minucie wracał regułą wyprawy: na świecie testowym 703 z 854 wizyt w godzinę trwały poniżej dziesięciu sekund, jeden bot co pięćdziesiąt sekund. Reguła wyprawy pyta teraz o zapas tak jak reguła wyjścia; pełny dropek poluje na ziemi swojej wioski, aż linia na jego ladzie się sprzeda.
Scalanie stosów według limitu przedmiotu
Medal Konny i Zwój Błogosławieństwa mają w tej wersji silnika stos po 20, strzały po 1000. Scalanie stosów w torbie liczyło wszystko do 200, więc pełne stosy medali były „scalane” bez skutku co pięć sekund u 110 botów (14 321 wpisów w logu w dziesięć minut). Torba i magazyn liczą teraz według limitu przedmiotu; zabezpiecza to też wpłatę do magazynu, która przy złym limicie mogła zgubić stos.
Drobne
- Łucznik zakłada strzały z torby przed zwykłym strzałem, nie dopiero przy umiejętności. Bot nigdy nie strzela bez strzał — silnik tego nie pozwala; zgłoszenie o strzelaniu bez strzał najpewniej brało się z widoku torby, który nie pokazuje kołczanu.
- Status podróży nie ogłasza już pustyni ani Doliny Orków botowi, którego podróż tam nie wysyła (dropki medali w drodze do Lochu Małp).
Stajenny wydaje konia od razu
Kupno kucyka i każde ulepszenie konia (Księga Konia Wojskowego) kazało czekać dwanaście godzin i wrócić po odbiór, a trening poziomów 11–19 — dwadzieścia jeden godzin między dwoma treningami. Wszystkie te czasy są zniesione, niezależnie od poziomu konia; poziomy 1–10 nie czekały już od 2.0.12. Zgłoszenie greess.
Panel: wyłącznik dropu Szkatułek Blasku Księżyca
Na stronie AI panelu (pod suwakami szkatułek) jest pole „Wyłącz drop Szkatułek Blasku Księżyca”. Zaznaczone i zapisane zeruje oba suwaki dla gry (działa w pięć sekund), a ich ustawienie pamięta i przywraca po odznaczeniu.
Wersja 2.0.55 (16.09.2026)
Serwer (rdzeń gry i AI botów) i klient 2.0.11.
Zwoje Błogosławieństwa w liniach po 1–5
Sklep offline bota wystawiał przy wizycie serwisowej cały stos — 20 zwojów za 4,7 mln w jednej linii, których nikt nie kupi do jednego ulepszenia. Bezpieczne zwoje ulepszania (Zwój Błogosławieństwa, Magiczny Kamień, Zwój Boga Wojny +10 i +15) idą teraz w liniach po najwyżej 5 sztuk, do 3 takich linii na jednym straganie. Linia większa niż 5, która już stoi, wraca do torby przy najbliższej wizycie serwisowej i wchodzi z powrotem podzielona. Zgłoszenie jaksiezabic.
Sklep gracza od 15 poziomu bez 800 zabójstw
Silnik wymagał od gracza ośmiuset zabitych potworów, zanim otworzył „tobołek”, jak na serwerze publicznym. Boty i GM-owie byli już zwolnieni, teraz gracz też: wystarczy 15 poziom. Zgłoszenie gregoszky.
Biolog bez limitu czasu również dla gracza
Doba oczekiwania między kolejnymi oddaniami okazów jest wyłączona; kolejny okaz można oddać od razu. Eliksir Poszukiwacza nie jest już zużywany, bo nie ma czego skracać. Boty nigdy tego czasu nie trzymały. Zgłoszenie namiot_.
Tytuły botów do wyboru (klient 2.0.11)
W opcjach gry jest nowy wiersz „Tytuły botów”: Osobowość (jak od 2.0.53) albo
Klasyczne (tytuł rangi). Wybór zapisuje się w pliku playerbot_titles.cfg
obok klienta. Po przełączeniu na Klasyczne tytuł osobowości znika przy
najbliższej zmianie rangi bota, czyli po jego następnym zabiciu potwora.
Propozycja NerrVoVy. Sprawdzone kompilacją i testami, nie w grze — dajcie
znać, czy wiersz jest widoczny i przełącza.
Panel Sebana 1.54.1
Aktualizator Seban dla VPS (skrypty hosta w seban-panel/updater/), wersja
mobilna, rankingi z prawdziwymi graczami, poprawiony ranking +9 i skuteczności
ulepszeń, liczba transakcji w gospodarce sklepów. Trzy nowe odczyty jego panelu
sięgały do tabeli, którą ma tylko jego serwer, i strona główna, /manage oraz
rankingi odpowiadały błędem 500 — panel tworzy ją teraz sam przy starcie.
Nasze poprawki z 2.0.47–2.0.49 zachowane.
Wersja 2.0.54 (16.09.2026)
Serwer (rdzeń gry i AI botów) i klient 2.0.10.
Auto Łowy podnoszą drop (klient 2.0.10)
Auto Łowy nie podnosiły dropu niezależnie od ustawień. Klient liczy pozycje od rogu swojej mapy, a serwer podawał położenie przedmiotu we współrzędnych całego świata, więc dla klienta każdy przedmiot leżał daleko poza zasięgiem podniesienia. Teraz serwer podaje, gdzie leży przedmiot względem postaci, a klient dolicza to do swojej pozycji. Tak samo punkt startu: zasięg łowów liczy się od miejsca, w którym włączono Auto Łowy, a nie od miejsca, w którym postać akurat stoi.
Wymaga serwera 2.0.54 i klienta 2.0.10. Tego nie dało się sprawdzić w kliencie na naszym świecie testowym — dajcie znać, czy postać podnosi drop.
Skrzynie startowe w pełnej torbie
Skrzynia startowa, której gra nie pozwalała otworzyć z braku wolnej kolumny trzech pól (na przykład Skrzynia Mistrza II), otwiera się teraz tak jak Szkatułka Blasku Księżyca: bot najpierw przekłada drobne przedmioty, żeby zrobić miejsce.
Wersja 2.0.53 (15.09.2026)
Serwer (AI botów, rdzeń gry, pliki gry, panel) i klient 2.0.9.
Szkatułki Blasku Księżyca
Boty kupują i otwierają dużo Szkatułek Blasku Księżyca, a dropki je zbierają i sprzedają. Do tej pory żaden bot szkatułek nie kupował, a te wystawione na ladach się nie sprzedawały. Teraz:
- dropki (medali, M2, M3 i Metinów) podnoszą szkatułki, trzymają do 30 na sklep i wystawiają je w paczkach po 5; nadmiar otwierają,
- handlarz surowcami trzyma na ladę najwyżej 6 szkatułek, resztę otwiera,
- pozostałe boty szkatułek nie wystawiają, tylko je otwierają; gdy w pełnej torbie brakuje wolnej kolumny trzech pól, której gra wymaga przy otwarciu, bot przekłada drobne przedmioty, żeby ją zrobić,
- bot od 20 poziomu kupuje szkatułki z lady, dopóki ma ich mniej niż 10, gdy ma na nie miejsce i wolne złoto równe trzykrotności ceny (nie mniej niż milion), a na targ po szkatułkę idzie tylko wtedy, gdy któraś lada ją ma,
- na ladzie stoją najwyżej 3 linie szkatułek po 5 sztuk; większe linie, za drogie dla kupujących, wracają do torby przy obsłudze sklepu,
- szkatułkę, której gra nie pozwoliła otworzyć, bot próbuje znowu po minucie.
Na świecie testowym przed zmianami było 4643 szkatułki w torbach i 1916 na ladach. Kwadrans po ostatnim wdrożeniu było ich 2761 w torbach i 851 na ladach, a boty otwierały około 85 szkatułek na minutę zamiast 39. Najwięcej zostaje w pełnych torbach: 26 botów z najwyżej dwoma wolnymi polami trzyma 601 szkatułek.
Skrzynie Mistrza od 70 poziomu
Skrzynia Mistrza II (70 poziom) nie dawała nic ani botom, ani graczom: na serwerach 2.x łańcuch skrzyń kończył się na 60 poziomie, a gra przy każdej próbie otwarcia zapisywała błąd w syserr. Doszły zawartości Skrzyni Mistrza II, Skrzyni Mistrza III i Skrzyni Arcymistrza, takie same jak na serwerach 1.x. Bot, któremu gra odmówiła otwarcia skrzyni, nie próbuje już znowu co kilka sekund. Na świecie testowym w pierwszych dziesięciu minutach 201 botów otworzyło Skrzynię Mistrza II.
Koń: boty nie schodzą bez potrzeby
Boty schodziły z konia na końcu każdej drogi, przed każdą księgą i przy stajennym, a zaraz potem wsiadały z powrotem: na świecie testowym 24 389 zejść w 36 minut, a 14 502 z 24 379 wsiadań wypadało w ciągu 6 sekund po zejściu. Teraz jeździec zostaje w siodle przy NPC, ladzie, kowalu, skrzyni, księdze, zmianie ekwipunku i w drodze do portalu. Z konia schodzi tylko wtedy, gdy wymaga tego gra: do walki na zwykłym koniu, do pojedynku, do umiejętności i do łowienia. Po każdym zejściu wsiada najwcześniej po 6 sekundach.
Książki boty czytają z siodła, a stajenny obsługuje jeźdźca. W pierwszych dziesięciu minutach: 214 wsiadań na minutę zamiast 682, ponowne wsiadanie w ciągu 6 sekund 20 razy na minutę zamiast 406, a przeczytanych książek 231 na minutę zamiast 106.
Prędkość ruchu +20% na serwerach 2.x
Serwerowy bonus +20% prędkości ruchu na linii 2.x nigdy nie dawał prędkości: quest podawał numer bonusu, a ten silnik oczekuje numeru cechy postaci, więc każda postać dostawała +20 do maksymalnych PE. Teraz postać dostaje prędkość, a stary bonus do PE znika przy najbliższym sprawdzeniu (co minutę). Klient 2.0.8 niczego w prędkości ruchu nie zmieniał, a limit prędkości w grze wynosi 200.
Biolog po kolei
Zadania Biologa idą w kolejności z gry: Ząb Orka, potem Księga Klątw, potem Pamiątka po Demonie. Boty rozpoczynały dalsze zadania bez ukończenia poprzednich (na świecie testowym 866 postaci miało Księgę Klątw bez Zęba Orka). Rozpoczęte już zadania zostają, ale bot bierze kolejne dopiero po ukończeniu poprzedniego. Panel pokazuje ten sam etap co gra.
Osobowość bota nad nickiem (klient 2.0.9)
Fryzury z ItemShopu
Fryzury znów można zakładać. Pozostałe kostiumy nadal są wyłączone.
Cennik Iwakury 1.1
Ceny botów pochodzą z nowego cennika Iwakury: niższe mnożniki części bonusów (między innymi silny przeciwko ludziom, maks. PŻ, wartość ataku, odporności), nowe ceny ulepszaczy, szkatułka 85 000, medal konny 180 000, złoty i srebrny klucz, Gourou, wybielacz i farby do włosów. Wszystkie lady przeliczają ceny przy najbliższej obsłudze sklepu.
Zasady wystawiania ekwipunku ustalone wcześniej zostają: ekwipunek poniżej 30 poziomu trafia na ladę od +6, a broń i zbroja na 1 poziom (np. Miecz) od +8. Niżej idą do handlarza.
Ekwipunek na ladzie
- Limit dwóch linii ekwipunku poniżej 30 poziomu liczy tylko przedmioty poniżej +7, więc +7 i wyżej bot wystawia bez limitu.
- Bot zatrzymuje w torbie jedną broń zapasową, a pozostałe wystawia.
Ogłoszenia ulepszeń
Bot ogłasza na czacie tylko udane ulepszenie na +7, +8 albo +9, z nazwą nowego przedmiotu. Wcześniej ogłaszał też nieudane próby ze zwojem („+4 na +3”).
Płaszcze, symbole i martwe ryby
- Boty nie podnoszą Płaszcza Uciekiniera ani Symb. Króla Przepowiedni, a te, które mają w torbie (także z łowienia), sprzedają u handlarza. Założony symbol zostaje; gdy oba sloty są zajęte, jego miejsce zajmuje pierścień doświadczenia albo rękawica złodzieja.
- Z martwych ryb bot zatrzymuje najwyżej 10 (gdy ma drewno na ognisko), resztę sprzedaje.
Auto Łowy (klient 2.0.9)
Uwaga: podnoszenie dropu w Auto Łowach nadal nie działa, niezależnie od ustawień. Panel wymaga naprawy podnoszenia i będziemy nad tym pracować w następnych aktualizacjach.
- Przełączniki podnoszenia to zwykłe przyciski z napisem, tak jak Metiny, Wstawaj i Wracaj: „Podnos: tak”, „Bron: nie”. Wcześniej wciśnięty przycisk znaczył „podnosi”, łatwo było go wziąć za wyłączony.
- Gdy podnoszenie jest wyłączone, przy starcie Auto Łowów pisze o tym czat.
Tło wyboru postaci (klient 2.0.9)
Nowe tło ekranu wyboru postaci przy logowaniu, autorstwa ĹŌŞƬĒĶ.
Questy
W questach i quizie gra nazywa się Metin2 SinglePlayer zamiast Metin2009 (plik tłumaczeń od l0st3ka).
Wersja 2.0.52 (15.09.2026)
Serwer (AI botów, rdzeń gry, baza, panel) i klient 2.0.8.
Auto Łowy dla graczy
Nowe okno Auto Łowów pod klawiszem K, za darmo i bez wymagań, z tym, co w oficjalnej grze jest płatne: sześć umiejętności, dwie mikstury i trzy przedmioty na zegarze, wskrzeszenie z ustawianym opóźnieniem, kamienie Metin na życzenie i powrót na miejsce startu. Cel wskazuje serwer: potwory w zasięgu od miejsca startu, najpierw te, które atakują gracza. Podnoszenie według rodzaju: broń, zbroje, biżuteria, mikstury, księgi, kamienie i reszta. Każdy rodzaj włącza się osobnym przyciskiem, a yang postać zbiera przy każdym włączonym rodzaju. Przedmiot, do którego postać nie dojdzie w sześć sekund, jest pomijany na dziesięć. Wymaga serwera 2.0.52 i klienta 2.0.8.
Poprawki klienta
- Przycisk łączenia stosów w ekwipunku wysyłał wszystkie przesunięcia w jednej klatce (300 dla 25 stosów), a serwer przy 300 pakietach na sekundę zamyka połączenie, więc gracz wracał do ekranu logowania. Przesunięcia idą teraz po sześć co dziesiątą część sekundy.
- Kliknięcie pustego pola w edycji sklepu offline nie wywołuje już błędu.
- Opis Zielonej i Fioletowej Mikstury (prędkość ataku i ruchu) znów się wyświetla.
Dropki zajmują się dropieniem
Dropki medali na 25 poziomie robiły wszystko poza lochem: Biologa, wyprawy, odpoczynek na placu, gildie, targ, łowienie, kopanie i wyprawy po materiały. Teraz żadna dropka (medali, M2, M3 ani Metinów):
- nie robi Biologa i nie odpoczywa w mieście,
- nie zakłada gildii ani do niej nie wstępuje, a z obecnej wychodzi (mistrz przekazuje gildię najsilniejszemu botowi, który nie jest dropką, a gildia jednoosobowa jest rozwiązywana),
- nie chodzi na targ, nie łowi, nie kopie i nie szuka materiałów,
- swój sklep offline obsługuje co 40–60 minut zamiast co 10–15.
Dropki medali, M2 i M3 nie jeżdżą na wyprawy po Metiny. Dropka medali nie idzie na pogranicze, zostaje w Lochu Małp, dopóki ma miejsce na medal, zbiera zapas 200 medali i podnosi tylko medale, rzeczy do dalszej przeróbki, księgi i to, co dołoży do posiadanego stosu. Dropka-łuczniczka nosi zapas 1000 strzał i dokupuje je u kupca, bo wychodziła z lochu z pustym kołczanem i setkami mikstur. Żaden bot nie wychodzi już z Lochu Małp obsługiwać sklepu offline.
Każdy bot w drodze po medal do konia nie jest już zawracany przez spacer na targ w Joan ani przez plecak zapełniony w 45%.
Unikaty
Rzeczy do dalszej przeróbki
Korzeń Gango i Grzyb Tue od zielarza, Kryształowe Kolczyki, Zbroja Twarzy Ducha, broń na 65 poziom, Fasolka Zen i Pigułka Krwi: boty zawsze je podnoszą, nie sprzedają ich kupcowi (chyba że plecak jest pełny, a sklepu otworzyć nie mogą) i wystawiają je na ladach obok ulepszaczy.
Pojedynki
Bot w pojedynku zakłada buffy (np. Aurę Miecza), bije z bliska i regularnie używa umiejętności. Szaman i sura czarnej magii walczą z dystansu, a wojownik doskakuje do przeciwnika Szarżą albo Uderzeniem Miecza. Na czas pojedynku bot wyłącza Eliksir Słońca i Eliksir Księżyca, którymi wcześniej leczył się mimo zakazu mikstur, i włącza je z powrotem po walce.
Świątynia Hwang bez klątwy i bez Maski Sabaha
Targi w Shinsoo i Jinno przy strażnikach
W Yongan, Jayang, Pyongmoo i Bakra targ stoi teraz wokół strażnika na okrągłym placu, tak jak w Chunjo. Wcześniej stał przy handlarzach, a w Pyongmoo w połowie poza strefą bezpieczną. Sklepy offline botów z dawnego targu przenoszą się na nowe miejsce raz, przy pierwszym starcie po aktualizacji, z zachowaniem układu. Sklepy graczy zostają tam, gdzie je postawili.
Handel zamiast rozdawania
Boty nie oddają już za darmo ekwipunku słabszym botom ani nie przekazują drużynie ksiąg i materiałów. To, co zdejmą, zostaje w plecaku, idzie na ladę albo do kupca.
Kamienie Duchowe, Fasolka Zen i ranga
- Boty czytają Kamienie Duchowe (trening Wielkiego Mistrza) zamiast sprzedawać je kupcowi. Czytają tylko wtedy, gdy ranga po zapłaceniu pełnej ceny zostaje nieujemna, a kamieni nie wystawiają na ladę.
- Bot z ujemną rangą zjada Fasolkę Zen, a pierwsze fasolki zostawia sobie w plecaku zamiast je wystawiać.
- Bot z ujemną rangą nie wychodzi ze strefy bezpiecznej, dopóki fasolka jej nie podniesie: na mapie wioski idzie na targ, z innej mapy wraca do swojej pierwszej wioski. Po fasolkę idzie na targ, także dropka.
Szansa na otrucie
Od 50 poziomu boty cenią szansę na otrucie dwa razy wyżej przy przerzucaniu bonusów i przy wyborze ekwipunku: jedno otrucie zabiera bossowi ćwierć życia.
Broń na 30 poziom u kowala
Broń na 30 poziom ze średnimi obrażeniami poniżej 30% bot ulepsza do +4 u kowala, a zwoje zużywa na nią dopiero od kroku na +5. Wcześniej jeden bot zużył 10 z 12 zwojów na +3 i +4 broni z 1% średnich.
Panel
Ranking Biologa i karta bota pokazują, ile zadań bot ukończył i nad czym pracuje teraz, np. „6/9 ukończone • teraz: Ząb Orka 1/10”. Karta pokazuje też, ile zadań pominął jako za niskie. Wcześniej obok liczby stała nazwa zadania o tym numerze w tabeli, co nic nie mówiło o postępie.
Konfiguracja
Wersja 2.0.51 (15.09.2026)
Serwer (AI botów, rdzeń gry, panel) i klient 2.0.7.
Dymki nad głowami botów bez czatu
Status bota (dokąd idzie, z kim walczy, co robi w mieście) widać już tylko w dymku nad jego głową. Wcześniej każdy status był też zwykłą wypowiedzią, więc trafiał do historii czatu, a miasto pełne botów zapychało okno czatu. Wymaga klienta 2.0.7: stary klient nie pokaże dymków statusu, ale też niczego nie wpisze na czat. Ogłoszenia udanych ulepszeń +7/+8/+9 (najwyżej jedno na trzy minuty na cały świat) i okrzyki handlowe zostają na czacie.
Broń w ręce nie spala się bez zapasu
Bot nie ulepsza u zwykłego kowala broni, którą trzyma w ręce, gdy krok może ją spalić, a nie ma zwoju, zapasowej broni ani kupca sprzedającego broń na jej poziom. Kupuje wtedy zwoje z lad. Trzyma jedną zapasową broń (co najmniej o połowie siły tej w ręce) i nie oddaje jej, nie sprzedaje ani nie wystawia. Ze swojego sklepu offline odbiera przedmiot lepszy od noszonego co najmniej o 10%. Wojownik mentalny woli broń dwuręczną o 20% jej siły, a nie o stałą premię, więc Gilotynowe Ostrze nie wygrywa już na 75 poziomie z mieczem na 55.
Atlas broni
Boty znają każdą broń świata: klasę, poziom i źródło (kupiec, wspólny drop, potwór, skrzynia). Bot z bronią wyraźnie słabszą od najlepszej osiągalnej na jego poziom idzie na rynek, a broń silniejszą o 25% może kupić z oszczędności. Wędka i kilof w ręce nie są liczone jako broń.
Ceny broni według średnich
Średnie obrażenia i obrażenia umiejętności są wyceniane płynnie między progami cennika Iwakury, więc 19% średnich kosztuje wyraźnie więcej niż 1%. Sklepy przeceniają się same.
Klucze, nadmiar towaru i marmury
- Klucze bez pasującej skrzyni (ponad dwa jednego rodzaju) trafiają na ladę, a przy pełnym plecaku do magazynu. Bot ze skrzynią kupuje do niej klucz.
- Chomikowane ulepszacze (ponad 50 sztuk ponad własne potrzeby) idą na ladę paczkami po 10, najwyżej trzy linie jednego rodzaju.
- Marmury polimorfii, klucze i nadmiar towaru są powodem do otwarcia sklepu.
- Sortowanie plecaka zamienia przedmioty miejscami: najpierw mikstury, potem skrzynie i klucze.
- Hełmy i tarcze bot podnosi zawsze.
- Materiał, na który jest popyt, bot wyjmuje z magazynu tylko wtedy, gdy plecak się przez to nie zapełni.
Zwoje i szkatułki na rynku
Zwój Błogosławieństwa nie jest już wyceniany jak ulepszacz. Bot zostawia sobie 3 zwoje (handlarz zasobów 1), a resztę wystawia. Zwoje nie trafiają do magazynu, a te, które już tam są, wracają do plecaka. Handlarz zasobów nie otwiera Szkatułek Blasku Księżyca, tylko je sprzedaje (trzyma do 20 sztuk).
Historia ekwipunku w panelu
Przy ulepszeniu w nawiasie widać, czym je zrobiono: (Kowal), (Kowal w Wieży Demonów) albo nazwa zwoju, np. (Zwój Błogosławieństwa). Wpisy sprzed aktualizacji pokazują (Kowal) albo (zwój). Nieudany zwój, który obniżył przedmiot o poziom, nie jest już pokazywany jako „Spalone przy ulepszaniu”.
Stabilność
Broń awaryjna kupiona przy pełnym plecaku lądowała na ziemi, a bot zakładał ją z ziemi. Kończyło się to zniszczonym przedmiotem w slocie broni i wyrzuceniem bota z gry. Bot kupuje teraz tylko z miejscem w plecaku i nie rusza slotu, którego silnik naprawdę nie nosi. Wędkę i kilof zdejmuje tylko przy wolnym miejscu w plecaku.
Aktualizacja na Linuksie
m2-updater i instalator linii 1.x odmawiają pracy na serwerze 2.x i wskazują
linux-port/tools/update.sh. Wcześniej docker compose exec updater
m2-updater potrafił wgrać na serwer 2.x plik compose z MariaDB 10.11.
Wersja 2.0.50 (15.09.2026)
Serwer (AI botów i rdzeń gry). Klient zostaje w wersji 2.0.6.
Crash rdzenia przy wsiadaniu na konia
Rdzeń gry potrafił paść, gdy bot wsiadał na konia (dwa razy w sześć godzin przy 2000 botów). Koń zniszczony inaczej niż przez zsiadanie jeźdźca — najpewniej przez czyjąś umiejętność obszarową — zostawiał jeźdźcowi wskaźnik na siebie, a najbliższe wsiadanie sięgało do pamięci po nim. Teraz zniszczony koń zawsze odpina się od jeźdźca, a przywołanego konia nie da się zranić. Ten sam crash groził też graczom, tylko rzadziej.
Lochy Małp w Shinsoo i Jinno
Boty czerwonego i niebieskiego królestwa biły małpy tylko w pierwszej sali swojego lochu, a boty Chunjo chodziły po wszystkich. AI znało układ sal i drzwi tylko w lochu Chunjo i w dwóch trudniejszych. Teraz boty wszystkich królestw chodzą po wszystkich jedenastu salach.
Bonusy tylko z własnych kamieni
Boty dodawały i zmieniały bonusy bez Zaczarowania i Wzmocnienia Przedmiotu: brakujący kamień powstawał z niczego za 25 000 yang i od razu był zużyty, a historia ekwipunku pokazywała tylko jego zużycie. Teraz bot używa wyłącznie kamieni, które ma w ekwipunku (z dropu i skrzyń). Bez kamienia nie bonusuje, tak jak gracz.
Panel F9/F10 u zwykłych graczy
Postać bez rangi GM dostawała „Ta komenda nie istnieje.” po każdym teleporcie i zalogowaniu, a także po wciśnięciu F9 albo F10. Klient pyta wtedy serwer, czy postać jest GM-em. Teraz serwer zwykłemu graczowi po prostu nie odpowiada.
/transfer na bota
/transfer <nick bota> przenosi bota do GM-a. Wcześniej bot znikał i wracał
w punkcie startowym swojej mapy. Bot z innego rdzenia (układ split) nie
może przejść na mapę rdzenia GM-a, więc GM dostaje o tym wiadomość zamiast
„Transfer requested.”.
Boty w grupie gracza
Bot w grupie gracza nie odchodzi od niego do Biologa, handlarza, kowala ani stajennego. Swoje sprawy wznawia po wyjściu z grupy. Walczy jak dotąd, a szaman buffuje gracza także wtedy, gdy miał rozpoczęte zakupy. Poprawka Pabloo.
Dropki
Bot, który przerósł poziom swojego zajęcia o więcej niż dwa poziomy (np. dropek na 45 poziomie przy metinach 35 poziomu w M2), nie dostaje już osobowości dropka. Po restarcie serwera gra jak zwykły bot i znów zdobywa doświadczenie.
Górnictwo
Bot bity przy kopaniu rudy przestaje kopać i się broni. Wcześniej kopał do śmierci, a po odrodzeniu porzucał rudę na 15–45 minut. Teraz po walce albo po odrodzeniu wraca do żyły po około 45 sekundach.
Panel i aktualizator
- Klasyczny panel: w teleportach postaci są też Jayang (M2 Shinsoo) i Bakra (M2 Jinno).
- Aktualizator na Linuksie: pobieranie manifestu przez curl ma limit czasu, więc nie wisi bez końca na „[1/4] reading what is published”.
Wersja 2.0.49 (15.09.2026)
Serwer (AI botów) i panel Sebana 1.48.0. Klient zostaje w wersji 2.0.6.
Boty znają obrażenia swojej broni
Boty liczą cios bronią tak, jak liczy go gra: szansę trafienia z Zręczności i poziomu, obronę potwora, średnie obrażenia i obrażenia umiejętności. Doliczają też ukryty bonus z poziomu broni, którego nie widać w opisie przedmiotu. Na tym silniku bronie od 32 do 65 poziomu biją potwory mocniej o 6–16% (Krwawy Miecz o 10%), a bronie na 70 i 75 poziom o 10%. Bronie na 30 poziom tego bonusu nie mają. Szamani i sury czarnej magii wreszcie cenią na broni bonus obrażeń umiejętności, który wcześniej nic dla nich nie znaczył.
Bronie na 30 poziom
- Bot liczy, jak mocno dana broń na 30 będzie bić na +7. Jeśli wyjdzie wyraźnie lepiej (o co najmniej 10%) niż wszystko, co ma, kupuje ją ze sklepu i ulepsza aż do +9. Dla wojownika na 45 poziomie Miecz Pełni Księżyca +7 z 25% średnich bije zwykłym ciosem o około 8% mocniej niż Krwawy Miecz +6, mimo ukrytego bonusu tego drugiego; żeby bot go kupił, miecz potrzebuje około 33% średnich.
- Nie kupuje drugiej takiej broni, gdy jedną już ulepsza albo nosi gotową (+7 lub więcej). Broni, którą ulepsza, nie wystawia na straganie.
- Broń z co najmniej 37% średnich obrażeń (albo 15% obrażeń umiejętności) ulepsza tylko zwojami, nigdy u kowala. Bez zwoju czeka i sama dokupuje zwoje na rynku.
- Słabsze bronie na 30 ulepsza u kowala do +9, a na ryzykownych krokach używa zwoju, jeśli go ma.
- Bronie na 30, medale konne i zwoje ulepszeń bot może kupić nawet za 80% wolnego złota. Przy wysokim kursie yang takie bronie kosztują miliony, a dotychczasowy limit (część średniego portfela botów) nie przepuszczał żadnej: w sklepach serwera testowego stało 2315 broni na 30, prawie wszystkie +0 do +3.
- Boty rozpoznają zwoje po tym, jak działają, a nie po numerze: Zwój Wojny (pewne ulepszenie do +4), Podręcznik Kowala i Zwój Boga Smoków (większa szansa), Magiczny Kamień (bez utraty poziomu, oszczędzany na najtrudniejsze kroki). Wcześniej używały tylko Zwoju Błogosławieństwa i jednego Zwoju Boga Smoków. Gwarancji, która niszczy przedmiot przy porażce, nie używają.
Najpierw biolog
- Boty w każdym wieku oddają biologowi Zęby Orka, Księgi Klątw i Pamiątki po Demonie, które noszą, zanim wystawią je na sprzedaż albo zużyją u kowala. Dotąd bot starszy o ponad 10 poziomów od zadania trzymał je w torbie: na serwerze testowym 358 botów nosiło 1484 zęby, a zadania z zębami nie skończył żaden.
- Kowal zostawia w torbie tyle okazów, ile biolog jeszcze potrzebuje, razem z zapasem na odrzucone sztuki.
- Gdy biolog czeka już tylko na kamień duszy, nadmiarowe okazy idą na sprzedaż.
Konie
Boty bez konia bojowego chodzą po medale do lochów małp dwa razy częściej, także do średniego i trudnego. Na serwerze testowym w lochach było 17 botów na 999, a przez godzinę oddano jeden medal. Boty powyżej 64 poziomu nie chodzą już do lochu, bo przy takiej różnicy poziomów medale prawie nie wypadają. Kupują je w sklepach.
Pojedynki bez wędki
Bot z wędką albo kilofem w ręku nie przyjmuje już pojedynku i sam nikogo nie wyzywa, a inne boty go nie zaczepiają. Pojedynek, który już trwał, gdy bot wyjął wędkę, kończy się, zamiast toczyć się na wędki. Gracz, który wyzwie łowiącego bota, dostanie odpowiedź, że bot łowi ryby.
Stali dropiacy medali (do włączenia)
Ceny po zmianie kursu yang
Ceny w sklepach botów liczą się od kursu yang ustawionego w panelu. Po zmianie kursu boty pamiętały jednak stare ceny i wystawiały przedmioty z zerem za dużo albo za mało, a sklep przeceniał jeden przedmiot na godzinę. Teraz zmiana kursu czyści pamięć cen, a każdy sklep przecenia cały towar przy kolejnych wizytach właściciela.
Panel Sebana 1.48.0
- Po restarcie i aktualizacji panel nie pokazuje przez kilka minut „Internal Server Error”.
- Profil gracza: sklep offline z przyciskiem teleportu do straganu, historia ekwipunku, logi na żywo, magazyn ze stronami i ikony umiejętności.
- Nowy ranking skuteczności ulepszeń, a karuzela rankingów na stronie głównej przewija się sama.
- Tooltipy przedmiotów liczą atak i obronę z ulepszeniem i mają poprawione nazwy bonusów.
- Poprawne granice map Las, Czerwony Las i Wieża Demonów.
Kontrolki liczby botów, respawnu na mapach i skrzyni startowej działają tylko
ze skryptami Sebana, więc zostają ukryte. Włącza je teraz zmienna
M2_PANEL_CUSTOM_PATCHES=1 zamiast SEBAN_GAME_INTEGRATION=1.
Wersja 2.0.48 (14.09.2026)
Serwer (AI botów, silnik gry, questy, baza logów i panel zaawansowany), launcher i klient 2.0.6 z nowym ekranem logowania.
Nowy klient 2.0.6
Nowy ekran logowania od ĹŌŞƬĒĶ: animowane tło, nowe logo i przycisk
Discorda. Klient pokazuje też status gry na Discordzie (Discord Rich
Presence). Launcher zaproponuje aktualizację klienta przy starcie. Paczka
podmienia w folderze klienta pack/root, pack/locale i metin2client.exe,
więc przed aktualizacją zamknij grę.
Mniej taniego sprzętu na straganach
Boty zasypywały sklepy sprzętem +4 i +5 z niskich poziomów (9, 18, 26). Na serwerze testowym było tego ponad 2400 linii, a jedna zbroja leżała naraz w 348 sklepach. Teraz sprzęt poniżej 30 poziomu trafia na stragan dopiero od +6, i najwyżej dwie takie rzeczy w jednym sklepie. Słabszy sprzęt z tych poziomów, którego bot już nie potrzebuje, idzie do handlarza.
Sklepy, które już stoją, pozbywają się takich przedmiotów same: przy każdej wizycie bot zdejmuje z lady jedną niepasującą rzecz.
Nazwy sklepów od Iwakury
Boty nazywają sklepy tylko nazwami z listy Iwakury i dobierają je do towaru: sklep z zębami orka nazywa się inaczej niż sklep z księgami klątw, a rybny ma nazwę rybną. Sklep z przedmiotem +7, +8 lub +9 nosi nazwę tego przedmiotu z plusem, najlepszym bonusem, dopiskiem „KD” i „TANIO” albo „OKAZJA”. Kamienie duszy dają nazwę najcenniejszego kamienia, a sprzęt +0 do +3 – nazwę z kategorii „do spalenia”. Co trzeci sklep dostaje losową nazwę neutralną, bez względu na towar.
Znikają dawne przedrostki („Tanio:”, „Okazja:”, „Sprzedam”, „Wyprzedaz:”) i napisy „Bron 30:”. Stojące sklepy dostają nową nazwę przy odnowieniu.
Dziewięć nazw z listy gra by odrzuciła: osiem jest dłuższych niż 32 znaki, a „Nauka czytania dla opornych” zawiera zakazane słowo („porn” w środku). Na razie ich nie ma; wystarczy je skrócić na liście.
GM gra jak zwykły gracz
Postać GM kupuje w sklepach botów i graczy, otwiera własny sklep bez nabijania 800 potworów, a jej poziom widać obok nicku. Nie dostaje już wymuszonej ochrony PvP – obowiązują zwykłe zasady, z ochroną niskich poziomów. Znaczek GM zostaje.
Kostiumów nie da się założyć
Kostium założony na postać nie dawał się zdjąć, a postać było widać jako samą broń. Teraz gra nie pozwala założyć kostiumu i odpowiada na czacie „Kostiumy sa na tym serwerze wylaczone.”. Kostium, który ktoś ma już na sobie, zostaje na postaci; żaden przedmiot nie jest usuwany.
Pierścień Teleportacji działa
Użycie Pierścienia Teleportacji otwiera tę samą listę co Teleporter: w mieście mapy wyjazdowe, poza miastem powrót do wiosek. Opłata jak u Teleportera. Wcześniej pierścień nic nie robił, bo w paczce nie było questa, który obsługuje jego użycie.
Boty w Twojej grupie zostają przy Tobie
Bot w grupie gracza nie rusza już we własne podróże (Hwang, Sohan, pustynia, targ w Joan, wizyta przy własnym sklepie). Wcześniej odlatywał, po sekundzie wracał do gracza teleportem i po chwili odlatywał znowu, więc szaman prawie nie miał kiedy rzucić wzmocnień.
Hełmy i zbroje botów
Boty kupowały u handlarza hełmy innej klasy: sura dostawał hełm wojownika, nie mógł go założyć i chodził bez hełmu. Na serwerze testowym 120 z 198 botów bez hełmu miało w torbie cudzy. Teraz kupują hełm swojej klasy. Bot na wysokim poziomie wybiera też zbroję z wyższego progu, zamiast nosić starą +6 z pierwszego poziomu.
Karta Wędkarska nie wyrzuca bota z gry
Kowal nie zdejmuje przedmiotu, którego nie ulepszy
Bot u kowala zdejmował założony przedmiot do ulepszenia, zanim sprawdził, czy ma na nie materiały i yang. Kowal odmawiał, bot zakładał przedmiot z powrotem, a po trzech sekundach znowu go zdejmował – i tak przez całą wizytę. Na serwerze testowym boty zakładały w ten sposób zbroję około 3000 razy na godzinę. Teraz bot zdejmuje przedmiot tylko wtedy, gdy ma wszystko, czego wymaga ulepszenie.
Panel zaawansowany zaraz po aktualizacji
Kolektor panelu Sebana ponawia połączenie z bazą po kilku sekundach, a nie po 5 minutach, więc strona główna i strona sklepów nie zwracają już błędu 500 zaraz po aktualizacji.
Launcher
Linia z wersją klienta nie jest ucinana, gdy launcher pokazuje informację o nowej wersji.
Ulepszanie u kowala
Wpis bota o ulepszeniu w logach pokazuje, jakich materiałów wymagała receptura i ile bot ich miał tuż przed próbą.
Dziennik podejrzanych zachowań
Tabela log.hack_log, do której serwer zapisuje wykryte podejrzane zachowania
(na przykład zbyt szybką zmianę ekwipunku), nie miała dwóch kolumn: loginu
i adresu IP. Każdy taki zapis kończył się błędem w syserr, a tabela zostawała
pusta. Aktualizacja dodaje brakujące kolumny przy starcie serwera i poszerza
kolumnę z nazwą postaci do 24 znaków. Istniejące dane zostają bez zmian.
Wersja 2.0.47 (14.09.2026)
Serwer (AI, silnik gry, questy i panel zaawansowany). Nowy cennik Iwakury dla botów, poprawione podnoszenie przedmiotów w grupie, naprawiony quest „Zbadaj przeklęte zwierzęta” i panel Sebana w wersji 1.41.0. Klient bez zmian (zostaje 2.0.5).
Cennik Iwakury v1.0
Boty wyceniają towar na straganach według nowego, pełnego cennika Iwakury. Doszły ceny bransolet, naszyjników, kolczyków, butów i tarcz, rud i przetopów, materiałów gildii oraz ulepszaczy z mt2009, a ceny ksiąg, ulepszaczy i opasek zostały zaktualizowane.
Wszystkie ceny rosną teraz z mnożnikiem dropu yang według jednej tabeli z cennika: 100% to x1, 200% to x2,2, 500% to x5 i tak dalej aż do 10000%, czyli x100. Wcześniej księgi i ulepszacze liczyły się każde po swojemu.
Bransolety, naszyjniki, kolczyki, buty i najprostsza tarcza na +0 do +3 idą do handlarza, a nie na stragan, tak jak w cenniku. Mnożniki bonusów obejmują teraz buty, bransolety, naszyjniki, kolczyki i tarcze. Poprawione są trzy bonusy, które wcześniej nie podnosiły ceny: szansa na kradzież PE, punkty doświadczenia i odbicie ciosu na zbroi.
Cena na straganie zmienia się stopniowo, o kilka procent co kilka minut. Po aktualizacji stragany dochodzą więc do nowych cen w ciągu kilku godzin.
Podnoszenie przedmiotów w grupie
Gdy bot z Twojej grupy podnosił przedmiot, który wypadł dla Ciebie, przedmiot trafiał do Ciebie, ale czat pisał, że otrzymuje go bot. Przedmiot nie łączył się też z takim samym przedmiotem w Twoim ekwipunku, tylko zajmował nowe pole. Teraz komunikat podaje Ciebie, a przedmiot najpierw dokłada się do stosu, który już masz. Na nowe pole trafia tylko to, co się w stosie nie zmieści. Błąd zgłosił mkls6649, a przyczynę i poprawkę przygotował Kenny.
Quest „Zbadaj przeklęte zwierzęta” (19 poziom)
Z czterech przeklętych niedźwiedzi quest liczył tylko dwa: Grizzly i Czarnego. Przeklęty Niedźwiedź i Przeklęty Brązowy Niedźwiedź nigdy nie dawały skóry. Teraz daje ją każdy z czterech, z tą samą szansą. Postać, która ma quest w toku, niczego nie traci. Przyczynę znalazł Pabloo po zgłoszeniu Dixdrosa.
Panel zaawansowany (Seban) 1.41.0
Nowa wersja panelu od Sebana. W sklepach offline jest podgląd sprzedaży na żywo, ranking najlepiej sprzedających się ksiąg i wykres tempa sprzedaży. Doszły mapy Las, Czerwony Las i Wieża Demonów. W profilu postaci są nowe akcje: VIP, Smocze Monety, zmiana nicku, powrót do stolicy i usunięcie postaci.
Trzy ustawienia z tej wersji, czyli docelowa liczba botów, respawny na mapach i wyłączanie skrzyni startowej, wymagają skryptów gry, których nasz serwer nie ma. Są więc ukryte, zamiast udawać, że działają. Poprawione są też granice map Las, Czerwony Las i Wieża Demonów oraz strona sklepów offline, która na świeżej instalacji kończyła się błędem.
Wersja 2.0.46 (14.09.2026)
Serwer (AI i launcher). Boty nie stoją już nad łupem, który nie mieści się w torbie, i nie szukają Kapitana Bestii z cudzej wioski. Godzina w panelu i w logach to teraz godzina Twojego komputera. Klient bez zmian (zostaje 2.0.5).
Łup, który nie mieści się w torbie
Bot szedł po każdy przedmiot na ziemi, jeśli miał w torbie choć jedno wolne pole. Miecz albo zbroja zajmują jednak dwa lub trzy pola w jednej kolumnie, więc silnik odmawiał podniesienia, a bot co kilka sekund wracał do tego samego przedmiotu i stał nad nim, dopóki serwer go nie zresetował. Na naszym świecie było to około 56 odmów na minutę. Teraz bot przed wyjściem sprawdza, czy przedmiot się zmieści, i odmów jest zero.
Potwór, do którego nie da się dojść
Gdy bot trzy razy nie znalazł drogi do potwora, odkładał go na pół minuty. Część AI, która sprawdza, kto go w tej chwili atakuje, od razu mu go jednak oddawała. Jeden z naszych botów stał tak 13 minut w Lochu Małp pod małpą strzelającą z półki skalnej. Teraz obie części pamiętają ten sam znacznik.
Wieża Demonów
Od 2.0.44 boty nie celują w kamień Wieży i nie trafiają go zamachem. Kamień mogła jeszcze trafić umiejętność obszarowa rzucona w potwora obok. Na mapie Wieży bot nie używa już takiej umiejętności, jeśli w jej zasięgu stoi kamień. Nie rozbije go więc przypadkiem i nie przeniesie wszystkich z mapy do nowej Wieży.
Kapitan Bestii z innej wioski
Boty od 35 poziomu w drugiej wiosce (Jayang, Bokjung, Bakra) idą na Kapitana
Bestii, kiedy ten się pojawi. Gdy wszystkie królestwa działają na jednym
rdzeniu (M2_PLAYERBOT_WORLD_LAYOUT=unified), serwer pamiętał tylko, że
Kapitan stoi, ale nie w której wiosce. Boty z Bokjung próbowały więc dojść
do Kapitana z Jayang albo z Bakry. Takiego punktu nie ma na ich mapie, więc
nie mogły wyznaczyć drogi i zamiast polować stały w miejscu, dopóki Kapitan
w innej wiosce nie padł. Teraz każda wioska ma własną odpowiedź. Bot nie idzie też do żadnego punktu spoza swojej mapy, a serwer
zapisuje taki przypadek w logu błędów.
Godzina w panelu i w logach
Strefy wpisanej wcześniej ręcznie nic nie nadpisuje. Kto chce zostać przy UTC,
może po aktualizacji wpisać M2_TZ=UTC, a launcher nie zmieni tego drugi raz.
Od tej chwili godziny w logach i w paczce ZBIERZ LOGI to czas lokalny.
Wersja 2.0.45 (14.09.2026)
Serwer (AI i launcher). Bot w grupie gracza idzie za nim przez teleport, a szaman z grupy buffuje gracza. Klient bez zmian (zostaje 2.0.5).
Bot idzie za graczem przez teleport
Bot zaproszony do grupy szedł za graczem tylko po tej samej mapie. Gdy gracz przechodził przez portal, korzystał z Teleportera albo z pierścienia, bot zostawał tam, gdzie był. Teraz, kiedy gracz stanie na nowej mapie, bot z jego grupy przenosi się w to samo miejsce. Nie wejdzie za graczem do lochu z osobną instancją, takiego jak Wieża Demonów, ani na mapę, na której boty tego serwera nie mogą stanąć. Do Lochu Pająków dochodzi jak zawsze, przez pustynię.
Szaman buffuje gracza
Szaman w grupie gracza rzuca swoje wzmocnienia najpierw na gracza, a dopiero potem na siebie, i leczy gracza, który ma mniej niż 60% życia. Jeśli stoi za daleko, podchodzi bliżej, a ze zwykłego konia zsiada, bo z niego nie da się rzucać umiejętności. Wzmocnień bojowych używa w walce, a szybkości i leczenia także poza nią.
Paczka logów
ZBIERZ LOGI zbiera teraz także przyjęcia zaproszeń do grupy, więc z paczki widać, kiedy bot do niej wszedł.
Na naszym świecie nie da się tego sprawdzić bez drugiego gracza — jeśli bot nie pójdzie za Tobą albo szaman Cię nie buffuje, wciśnij ZBIERZ LOGI i napisz, o której to było.
Wersja 2.0.44 (14.09.2026)
Serwer (AI). Automatyczne mikstury bez pętli, która obciążała serwer, boty, które nie przenoszą już graczy do Wieży Demonów, i boty, które zostają w grupie gracza, dopóki gracz jej nie rozwiąże. Klient bez zmian (zostaje 2.0.5).
Koniec pętli Eliksiru Księżyca
Boty brały Eliksir Słońca i Eliksir Księżyca — automatyczne mikstury HP i PE — za eliksir doświadczenia i próbowały go użyć przy każdym przebiegu. Prawie każdy bot nosi pusty Eliksir Księżyca ze skrzyni ucznia, więc silnik raz za razem odpowiadał, że mikstura jest pusta: na naszym świecie około 580 tysięcy wpisów w logu na godzinę i praca rdzenia na nic. Teraz bot włącza pełną automatyczną miksturę raz i zostawia ją włączoną, a pustą sprzedaje u handlarza. Sprawdzone: log rdzenia gry zmalał o 60%, a pustych eliksirów w torbach botów ubyło w kwadrans z 992 do 457.
Boty nie przenoszą już graczy do Wieży Demonów
Zniszczenie Metinu Twardości w Wieży Demonów uruchamia quest, który po sześciu sekundach przenosi do nowej Wieży wszystkie postacie z mapy, na której stoi wtedy ten, kto kamień zniszczył. Boty rozbijały ten kamień jak każdy inny Metin, a gdy bot zdążył w tych sześciu sekundach zmienić mapę, do Wieży trafiali wszyscy z mapy, na którą przeszedł. Tak sizowski, stojący pod Lochem Małp w Bokjung, znalazł się nagle na piętrze Wieży. Boty nie atakują już kamieni questowych Wieży (8015–8019) i nie ranią ich uderzeniem obszarowym. Na naszym świecie jedno zabicie tego kamienia przeniosło naraz 10 postaci; od poprawki nie było ani jednego takiego przeniesienia.
Bot zostaje w grupie gracza
Bot zaproszony przez gracza wypadał z grupy po chwili, a wyrzucały go z niej trzy rzeczy. Reset po półtorej minuty stania — a bot przy stojącym graczu stoi właśnie dlatego, że idzie za nim. Każde przeniesienie bota na inną mapę, także powrót na nogi po przeniesieniu do Wieży Demonów, stąd gracz zostawał sam w swojej grupie. I kilka sekund teleportu samego gracza, w których grupa nie widzi jego postaci, a bot brał ją wtedy za grupę botów: w logach sizowskiego bot jest w jego grupie o 15:42:40, o 15:42:54 postać gracza wchodzi do gry na nowo (tak wygląda każdy teleport), a o 15:42:56 bota w grupie już nie ma. Teraz o końcu grupy decyduje tylko gracz. Na naszym świecie nie da się tego sprawdzić bez drugiego gracza — jeśli bot nadal wyjdzie z Twojej grupy, wciśnij ZBIERZ LOGI i napisz, o której to było.
Wersja 2.0.43 (14.09.2026)
Serwer (AI, panel i launcher). Suwak zwojów w panelu, pojedynki kończące się tam, gdzie się rozstrzygnęły, grupy botów w obrębie królestwa, porządek w magazynach i boty, które nie rzucają się już na każdą miksturę. Klient bez zmian (zostaje 2.0.5).
Od jakiego plusa boty używają zwojów
W klasycznym panelu, w zachowaniu botów, jest nowy suwak „Zwoje Błogosławieństwa i Boga Smoków” od +1 do +9. Ustawia najniższe ulepszenie, na które bot użyje takiego zwoju. Przy +7 zwój idzie tylko na ulepszenia na +7, +8 i +9, a każde niższe bot robi u kowala bez zwoju, jak gracz, który zwojów nie ma — więc przedmiot może spłonąć. Przy +1 (domyślnie) nic się nie zmienia. Działa w pięć sekund, bez restartu, a panel zaawansowany zachowuje to ustawienie przy zapisie swoich suwaków.
Sprawdzone na naszym świecie z progiem +8: przez 23 minuty 24 ulepszenia pod zwojem na +8, 3 na +9 i ani jednego na +7 lub niżej. Przy okazji Zwój Boga Smoków od +7 działa teraz także przy ulepszaniu poza kowalem, tak jak u kowala.
Pojedynek kończy się tam, gdzie się rozstrzygnął
Bot, który padł w pojedynku, kończy go w tej samej chwili. Wcześniej wstawał i jeszcze kilkanaście sekund „walczył”, a przed 2.0.41 potrafił wtedy bić zwycięzcę, który nie mógł mu oddać (Drip). Pojedynek znika też z silnika: dotąd po wygranej z botem gracz przez dziesięć minut nie mógł go ani uderzyć, ani wyzwać ponownie. Bot na zwykłym koniu zsiada do pojedynku — silnik nie pozwala bić z takiego konia, więc taki bot w ogóle nie walczył.
Sprawdzone: 30 pojedynków, każdy zakończony razem z parą w silniku, każda przegrana w sekundzie śmierci bota, 5 zejść z konia i zero kar rangi.
Grupy tylko w obrębie królestwa
Boty zakładały grupy z botami innych królestw, czego gracz zrobić nie może (l0st3k). Teraz dobierają się tylko we własnym królestwie, tak jak wymaga silnik. Sprawdzone: 385 nowych grup, żadna mieszana.
Magazyn bez rozsypanych stosów
Magazyn w tym silniku nie łączy stosów, a bot odkładał każdy stos na nowe pole, więc magazyny zapełniały się osobnymi paczkami tych samych materiałów (jaksiezabic). Teraz bot dokłada do stosu, który już leży w magazynie, a przy każdej wizycie scala stosy rozsypane wcześniej. Na naszym świecie w 16 minut rozsypanych stosów ubyło z 357 do 234.
Tanie łupy zostają na ziemi
Bot od 40 poziomu, który ma co najmniej 500 tys. yang, nie biegnie już po mikstury, sprzęt co najmniej 10 poziomów poniżej swojego (do +3, bez cennych bonusów) ani zioła, jeśli są warte u handlarza mniej niż 40 tys. yang (sizowski, próg od Tieru). Materiały do ulepszeń, księgi, zwoje, szkatułki, kamienie, sprzęt, który mógłby założyć, i yang zbiera jak dotąd, a młode i biedne boty zbierają wszystko.
Paczka diagnostyczna
ZBIERZ LOGI zbiera teraz także linie pojedynków, łupów i teleportów z panelu GM (F9), a panel zapisuje w logu każde użycie „Teleportuj mnie” — żeby zgłoszenie „nagle mnie przeniosło” dało się sprawdzić w logach.
Wersja 2.0.42 (14.09.2026)
Serwer (panel). Klasyczny panel pokazuje wreszcie Las, Czerwony Las i Wieżę Demonów na mapie na żywo. Klient bez zmian (zostaje 2.0.5).
Trzy mapy, na których boty polują, a panel ich nie pokazywał
Od 2.0.39 boty expią w Lesie i w Czerwonym Lesie i polują w Wieży Demonów, a klasyczny panel znał tylko nazwy i granice tych map. Nie było ich w filtrze „Mapa” i nie miały tła, więc nie dało się ich wybrać ani zobaczyć botów, które tam są (Mkls na Discordzie, o lesie).
Teraz wszystkie trzy są w filtrze na stronie mapy, a tło każdej jest narysowane z tych samych plików terenu, po których chodzą boty. Wieża Demonów wygląda jak dziewięć okrągłych pięter, bo tak jest zbudowana. Sprawdzone na naszym świecie: 9 botów w Wieży Demonów i 1 w Lesie, każdy na swoim miejscu na tle.
Panel zaawansowany (Sebana) zostaje bez zmian: tam mapy dodaje autor tego panelu.
Wersja 2.0.41 (14.09.2026)
Serwer. Pojedynki botów przestały się liczyć jako morderstwa, więc ranga wraca do zera i już nie spada. Boty wchodzą w głąb lochów małp zamiast stać w pierwszym korytarzu, zwój błogosławieństwa chroni przedmiot, który bot ma na sobie, a zioła i Dłonie przestają zapychać plecaki. Po starcie serwera właściciele sklepów offline nie wychodzą już wszyscy naraz z lochów i z frontu. Klient bez zmian (zostaje 2.0.5).
Pojedynki: cios pada tylko tam, gdzie silnik na niego pozwala
Boty z siódmego czy dziewiątego poziomu chodziły jako „Agresywny” i „Złośliwy”, a pojedynki poniżej piętnastego poziomu i w mieście trwały bez końca, z samymi animacjami umiejętności (nerrvous_s, djariczek). Przyczyna była jedna i siedziała w naszym kodzie.
Zwykły cios bota zadawał obrażenia wprost, a silnik przy takim wywołaniu nie pyta o nic: ani o zgodę na pojedynek, ani o ochronę poniżej piętnastego poziomu, ani o strefę bezpieczną. Wyzywający uderzał więc, zanim drugi bot się zgodził, a zwycięzca bił dalej przeciwnika po jego odrodzeniu, choć silnik uznał już pojedynek za zakończony. Dla silnika każde takie zabójstwo było morderstwem we własnym królestwie: minus dwadzieścia tysięcy rangi, rozdzielone między członków drużyny zabijającego. Stąd ujemna ranga u botów, które same nikogo nie zabiły. Na naszym świecie takich botów było 105, najniższa ranga −149 547, a do południa silnik rozdzielił na drużyny 47 takich kar. Umiejętności szły drogą, która o zgodę pyta, dlatego tam, gdzie cios nie mógł paść, zostawały same animacje.
Teraz każdy cios i każda umiejętność w postać przechodzi przez tę samą kontrolę silnika. Pojedynek, w którym silnik odmawia ciosu przez piętnaście sekund, bot uznaje za skończony. Wcześniej żaden pojedynek się nie kończył, tylko wygasał po trzech minutach. Bot nie wyzywa i nie przyjmuje pojedynku poniżej piętnastego poziomu ani w strefie bezpiecznej, a gracz dostaje na czacie informację, dlaczego.
Ranga zepsuta przez ten błąd jest zerowana przy starcie serwera, zanim rdzeń wczyta boty. U nas: 105 botów, po migracji 0.
W pierwszych dziesięciu minutach po wdrożeniu: 9 wyzwań, 5 zgód, 4 odmowy w strefie bezpiecznej i 8 pojedynków zakończonych (6, bo silnik nie pozwalał już zadać ciosu, 2 w strefie bezpiecznej). Ani jednej kary rangi, a w bazie nadal zero botów z ujemną rangą.
Lochy małp: boty idą w głąb
„Boty biegają w jednym miejscu, a nie po całym lochu” (bierzyn, uxietoszef). Loch to jedenaście komór połączonych drzwiami, które przenoszą każdego, kto podejdzie na trzysta jednostek. Były tu dwa błędy i jeden brak.
Pierwszy: bot, który przeszedł przez drzwi, lądował obok drzwi prowadzących z powrotem i wracał nimi, bo stanął tam do walki albo trasa do starego celu prowadziła przez te same drzwi. Z 87 szybkich powrotów do komory wejściowej 52 zrobił silnik, a 35 nasza nawigacja. Teraz drzwi nie przenoszą bota przez 45 sekund od ostatniego przejścia, a nawigacja w tym czasie nie planuje trasy przez drzwi i zapomina cel z poprzedniej komory.
Brak: komora wejściowa ma 6–7% miejsc odrodzenia potworów, a gościła prawie wszystkich odwiedzających. Teraz bot przy wejściu losuje, zależnie od liczby potworów w komorach, czy zostaje, czy idzie do jednych z drzwi. Po drodze broni się przed tym, co go atakuje.
Drugi błąd wyszedł w pierwszym pomiarze: marsz miał czterdzieści sekund liczonych razem z walką, a korytarz wejściowy ma do drzwi 18–21 tysięcy jednostek i jest pełen agresywnych małp. Doszły dwa marsze z sześciu. Teraz liczy się sam marsz, do minuty, z górnym limitem trzech minut. Zmierzone po poprawce: 9 z 9 dokończonych marszów przeszło do innej komory, żaden się nie poddał, a stary limit zawróciłby 7 z tych 9.
Uczciwie: na mapie 108 boty często znajdują medal i wychodzą z lochu, zanim dojdą do drzwi. Idą wtedy korytarzem, a nie stoją przy wejściu, ale do innej komory nie docierają.
Zwój błogosławieństwa chroni założony przedmiot
„Boty biegają do kowala, palą swój główny przedmiot, kupują nowy i robią to samo, zamiast ulepszać zwojem” (uxietoszef). Zwój w plecaku podnosił cel ulepszania do +9, ale sam zwój był używany dopiero od +6. Kroki z +4 i z +5, czyli 80 i 60 procent szansy, szły do zwykłego kowala, który przy porażce niszczy przedmiot. Teraz przedmiot, który bot ma na sobie, idzie pod zwój przy każdym kroku o szansie 80% lub mniejszej, jeśli bot ma zwój. Zapasowe przedmioty z plecaka zostają przy starej zasadzie od +6, żeby nie przepalać zwojów, których na rynku brakuje.
Uczciwie: na naszym świecie zwojów jest mało (98 sztuk w 20 plecakach), więc w dziesięć minut widać tu ledwie pojedyncze kroki poniżej +6 pod zwojem. Efekt pokażą światy, na których zwojów jest dużo.
Zioła i Dłonie nie zapychają plecaków
Zioła (Pokrzywa, Kwiat Brzoskwini, Korzeń Gango, Kwiat Kaki i reszta do Jaskiniowego Grzyba) oraz dwa wywary służą w tym świecie wyłącznie do ulepszania Nożyka Zielarza. Żaden przepis na broń ani zbroję ich nie potrzebuje. Boty trzymały je jako materiały, na naszym świecie w 850 plecakach i 400 magazynach. Teraz sprzedają je handlarzowi, a te leżące w magazynie wyjmują przy wizycie u magazyniera: 413 wyjęć w pierwszych dziesięciu minutach. Lista nie jest wpisana na sztywno: bot odczytuje ją z tabel przedmiotów i przepisów, więc świat z innymi przepisami dostanie własną odpowiedź. Rudy do Kilofa i ryby do Wędki, które też nie idą na broń ani zbroję, zostają przy swoich zasadach z górnictwa i wędkowania.
Dłoni Krytyka i Przebicia nie da się ani sprzedać, ani wystawić na straganie, a przy wysokich szansach na szkatułki zajmowały po trzy pełne stosy (uxietoszef). Bot zatrzymuje teraz sto sztuk każdej, a resztę wyrzuca przy wizycie u handlarza.
Po starcie serwera sklepy nie wyciągają wszystkich naraz
Pierwsza wizyta właściciela w sklepie offline miała być rozłożona na minutę, ale wszystkie numery postaci są na tyle małe, że rozrzut wynosił dwie i pół sekundy. Po restarcie 560 botów poszło do sklepów w medianie 33 sekund, 451 zmian mapy w dwie minuty. Każdy właściciel sklepu, który wystartował w lochu albo na froncie, był z niego wyciągany po pół minucie, a fala wracała co 10–15 minut. Teraz pierwsza wizyta wypada między pół minuty a dziesięć i pół minuty: zmierzone od 90 do 585 sekund (10.–90. percentyl), najwyżej 67 wizyt na minutę zamiast 230.
Już działało, zgłoszone ponownie
- Omdlenie działa na boty od 2.0.39. Zgłoszenie (cyfrowy_mat) przyszło kilka godzin przed tym wydaniem.
- Boty wyjmują rzeczy z magazynu od 2.0.39 (akhigubernator): książki, do których dorosły, i materiały, na które jest popyt.
Drobne
Log used attack skill podawał dla każdego bota ten sam target_vid
(4294758416), bo w miejsce numeru trafiał adres. Teraz podaje prawdziwy
numer celu. Marsz w lochu zapisuje odległość do drzwi, czas marszu i czas
od przydziału.
Wersja 2.0.40 (14.09.2026)
Serwer. Boty biją się wreszcie w pojedynkach, na które się zgodziły, nie marnują umiejętności pod marmurem polimorfii, a łucznik wabi już przy trzech osobach w drużynie zamiast pięciu. Do tego wydanie pilnuje teraz własnego manifestu — bo 2.0.38 nie dotarło do nikogo i nikt się o tym nie dowiedział. Klient bez zmian (zostaje 2.0.5).
Pojedynek, w którym padają ciosy
Bot przyjmował wyzwanie i wracał do swoich potworów. Przyczyny były dwie i obie po naszej stronie.
Pierwsza: wybór przeciwnika siedział w sekcji celu, a nad nią kilkanaście przebiegów kończy turę bota — zakupy, kowal, wizyta w mieście. Bot, który właśnie zgodził się na pojedynek, prawie zawsze jest w środku któregoś z nich i do wyboru przeciwnika nigdy nie docierał. Zmierzone sześć sekund po zgodzie, na tej samej mapie, siedemdziesiąt jednostek od siebie: jeden szedł do handlarza bronią, drugi szukał potwora, obaj na pełnym życiu.
Druga wyszła dopiero po naprawieniu pierwszej. Funkcja, która zamienia zamach w obrażenia, zaczynała od odrzucenia wszystkiego, co nie jest potworem ani metinem. Boty schodziły się więc na dwadzieścia trzy jednostki, odgrywały całe kombo — bo wysyłanie animacji to osobna rzecz — i nie zadawały sobie nic. Jedenastu pojedynkujących się, ani jednego zadrapania.
Po poprawce, na ustabilizowanym świecie: 4440 punktów życia wymienionych
między pięcioma z dwudziestu trzech walczących, wobec zera zawsze i bez
wyjątku wcześniej. Pojedynek ma teraz własną linię w logu
(PLAYERBOT_PVP: fighting the duel), bo bez niej nie dało się tego sprawdzić —
sąsiednia linia o wyborze celu jest poziomu, którego ten rdzeń nie zapisuje.
Bot w pojedynku nadal nie pije mikstur życia; to działało już wcześniej.
Pod marmurem nie rzuca się umiejętności
Silnik odmawia rzucenia czegokolwiek postaci pod marmurem polimorfii — w pięciu osobnych miejscach. Bot o tym nie wiedział i przepalał całą rotację na odmowach, zamiast bić, a marmur zakłada się właśnie po to, żeby zwykły atak bolał bardziej.
Wabienie: próg trzech osób i dalsza paczka
Łucznik wymagał pięcioosobowej drużyny. Zmierzone na własnym świecie: drużyny chodzą po jednej–dwóch osobach (18 botów w 15 drużynach), pięcioosobowe nie powstają praktycznie nigdy, a ostatni kurs w logach miał dwa dni. Próg to teraz trzy — tyle, ile wynosi sens pociągnięcia paczki na czekających.
Po obniżeniu progu kursy ruszyły i od razu pokazały następną przeszkodę: ze 120
widzianych potworów 114 odrzucano „po zasięgu". Licznik nie rozróżniał jednak
„za blisko" od „za daleko", a to dwie przeciwne poprawki, więc najpierw został
rozbity na pół. Odpowiedź okazała się jednostronna — za blisko=0,
za daleko=33 i za daleko=62 — czyli sufit trzech tysięcy jednostek był tym,
co wyłączało rolę. Okno sięga teraz czterech tysięcy, z zapasem na drogę
powrotną wewnątrz budżetu kursu.
Uczciwie: samo poszerzenie okna nie zdążyło jeszcze doczekać się kursu na żywym świecie. Rozbity licznik jest w logu i następny kurs to rozstrzygnie.
Zaproszenie do drużyny: log powie, co odrzuciło
Bot nadal nie dołącza do drużyny gracza i nie umiem powiedzieć dlaczego — w stu dwóch plikach logów nie ma ani jednego przyjęcia, odkąd ta funkcja istnieje. Żadna z czterech bramek silnika tego nie tłumaczy: królestwo się zgadza, różnica poziomów dopuszcza 2153 z 2500 botów, a we własnych drużynach siedzi ledwie czternaście procent.
Każda odmowa kończy się komunikatem na czacie zapraszającego i cichym powrotem, więc log milczał. Teraz nazwie przyczynę numerem. Jedno zaproszenie wystarczy, żeby zamknąć temat w następnym wydaniu.
Dlaczego 2.0.38 nie dotarło do nikogo
Wydanie 2.0.38 wyszło na GitHuba i nie zainstalował go ani jeden gracz. Manifest — jedyny plik, z którego launcher czyta, co pobrać — został zmieniony lokalnie i nigdy wysłany, a następne wydanie go nadpisało. Historia idzie więc 2.0.37 → 2.0.39, bez niczego pomiędzy.
Awaria była cicha po obu stronach: u nas wydanie wyglądało na opublikowane, a u gracza launcher uczciwie porównywał 2.0.37 z 2.0.37 i odpowiadał „masz najnowszą wersję". W logu zgłaszającego stoi to siedem razy z rzędu, bez jednego pobrania i bez jednego błędu.
Od tego wydania osobna bramka odmawia publikacji, gdy manifest wciąż wskazuje poprzednią wersję. Sprawdzona na prawdziwym przypadku: przepuszcza 2.0.39 i odrzuca 2.0.38.
Drobne
Pakiet diagnostyczny niesie teraz konfigurację launchera (przepuszczoną przez ten sam filtr co logi). Bez niej nie da się odczytać, z którego manifestu czyta launcher gracza, a linie 1.x i mt2009 mają osobne — przez co dwie zupełnie różne przyczyny wyglądają w logu identycznie.
Domyślny numer wersji w panelu zaawansowanym stał na 2.0.23 i szedł własnym kanałem, którego nikt nie podbijał. Idzie teraz za wersją wydania.
Wersja 2.0.39 (14.09.2026)
Serwer. Pojedynki, dwie nowe mapy do polowania, Wieża Demonów, koń militarny, ostatni etap Biologa, górnictwo z wytapianiem ebonitu oraz wrogość między królestwami do włączenia. Klient bez zmian (zostaje 2.0.5).
Pojedynki
Gracz może wyzwać bota i bot zawsze się zgodzi — po trzech sekundach, tak
jak prosiłeś. Dotąd wyzwanie bota nie robiło nic: CPVPManager::Insert to zgoda
obustronna, a bot nie miał klienta, który odpisze tym samym. Teraz silnik
zapisuje wyzwanie, a tick bota odpowiada tą samą drogą, którą poszedłby klient.
Boty wyzywają też siebie nawzajem — rzadko i tylko sensownie: sześć na tysiąc przy jednym losowaniu na minutę, wyłącznie blisko siebie, w promieniu pięciu poziomów i przy pełnym życiu obu stron.
W pojedynku nie piją potek. Silnikowego IsFighting nie dało się do tego
użyć, bo na jednej linii siedzi pod ENABLE_NEWSTUFF, a na drugiej nie istnieje
w ogóle — więc bot pamięta swój pojedynek sam.
Czego to jeszcze nie robi, i mówię wprost: bot przyjmuje wyzwanie i na tym koniec — nie atakuje przeciwnika. Cała ścieżka wybierania celu była pisana o potworach i metinach i odrzuca postacie graczy, więc pojedynek kończy się uściskiem dłoni. Zmierzone na żywym świecie: dwadzieścia zgód na pojedynek, zero walk. Walka w pojedynkach to osobna robota i wchodzi w następnym wydaniu — dotyczy to także wrogości między królestwami niżej.
I jedna rzecz, która nie jest naszym błędem, a wygląda jak nasz: jadąc na
koniu nie zadaje się obrażeń w PvP. Silnikowe CanAttack odrzuca atak
jeźdźca, którego koń ma grade poniżej 2, a grade to (poziom konia − 1) / 10 + 1
— czyli każdy koń do dziesiątego poziomu włącznie. Dotyczy gracza tak samo jak
bota, więc jeśli obaj jesteście na koniach, nie trafi żaden z was. Zsiądź.
Magazyn u Dozorcy działa w obie strony
Magazyn był składem bez drzwi — istniało wyłącznie wkładanie, a komentarz w kodzie mówił to wprost: „rzeczy włożone nigdy nie są wyjmowane". Zgłosił to akhigubernator na Discordzie i miał rację: strona w końcu zapełni się do końca i nigdy nie zostanie zwolniona, rzecz bezużyteczna godzinę temu może mieć popyt teraz, a bot potrafi siedzieć na księgach, w które sam już dorósł.
Bot wyjmuje teraz dokładnie to, czego trzy reguły wkładania przestały uznawać za nadwyżkę: księgę, która nie jest już zbędna (umiejętność doszła do Mistrza albo bot wreszcie ma grupę umiejętności), oraz materiał, którego sam potrzebuje przy kowadle lub na który jest popyt i bot może go wystawić. Wyjmowanie biegnie po wkładaniu, na tej samej otwartej skrzyni — najpierw zwalniają się komórki plecaka, dopiero potem bot zabiera to, po co przyszedł. Ograniczone na wizytę i wielkością plecaka, bo wyjęcie pełnego plecaka skończyłoby się odwiezieniem wszystkiego z powrotem następnym razem.
I druga rzecz, znaleziona przy okazji: opłacona strona nigdy się nie
zapisywała. SetSafeboxSize przyjmuje liczbę stron i odrzuca wszystko od
trzech wzwyż, a my podawaliśmy SAFEBOX_PAGE_SIZE — czyli 45 komórek. Funkcja
wychodziła bez zrobienia czegokolwiek, za każdym razem. To jest prawdziwa
przyczyna gałęzi „strona magazynu jeszcze nie gotowa", a nie wolna odpowiedź
bazy. Teraz i pakiet do bazy, i rozmiar w pamięci mówią dwie strony — tyle,
ile pokazuje okno Dozorcy.
Kilof, żyły rud i wytapianie ebonitu
Kopanie siedzi w silniku od zawsze — mining.cpp ma tabelę rud, szanse i event
uderzenia — ale ten świat nie stawiał ani jednej żyły. Sprawdziłem wszystkie
109 map: zero żył rudy (20047–20059) i zero alchemików w jakimkolwiek pliku
odrodzeń. Brakowało więc nie AI, tylko świata.
Dwadzieścia żył stoi teraz na trzech mapach frontieru — Dolina Orków, pustynia i Góra Sohan — a każda na rzeczywistym punkcie odrodzenia danej mapy, nie na zgadniętej współrzędnej. Żyła kasuje się sama po 7–15 minutach (tak działa silnik i tak ma być), więc rdzeń dostawia brakujące raz na minutę.
Bot od 30 poziomu kupuje kilof za 80 000, zakłada go w slot broni, dochodzi do
żyły i tłucze. Sklep pick_shop stoi na trzech mapach, na które żaden bot nie
chodzi, więc kilof powstaje za cenę sklepową — tak samo jak karta wędkarska.
Ruda spada na ziemię i jest podnoszona zwykłą drogą. Sto sztuk rudy to jedno
wytopienie: Ruda Ebonitu → Ebonit, i analogicznie dla wszystkich trzynastu
rud. Alchemika w tym świecie nie ma nigdzie, więc wytapianie liczy się tam,
gdzie bot stoi.
Ruda surowa i wytopiona nigdy nie idą do handlarza — trafiają na stragany, bo o handel rudą prosiłeś.
Wrogość między królestwami (domyślnie wyłączona)
Nowy suwak w panelu: Wrogość między królestwami, na starcie 0% — czyli świat zachowuje się dokładnie tak jak dotąd, dopóki sam go nie podniesiesz.
Powyżej zera podany procent botów wyzywa boty innych królestw spotkane na wspólnym terenie: w Dolinie, na pustyni, na Sohanie, w lochach. To, które boty są agresywne, jest przypisane na stałe do postaci, a nie losowane co chwilę — więc zaczepiają wciąż te same, a reszta spokojnie poluje. Nigdy w wiosce, nigdy na graczu i nigdy na bocie rannym albo już walczącym.
Oparłem to na pojedynku, a nie na wpuszczeniu postaci graczy do kolektora celów. Pojedynek kończy się sam, gdy ktoś padnie, nie da się nim przeciągnąć bota przez pół mapy, a reguła „w pojedynku nie piją potek" już działa — to odpowiedź na „bez pętli" i „ten, który ginie, odpuszcza i bierze inny spot".
Łowienie od 30 poziomu — domknięte
W tym samym wydaniu zjechały wcześniej dwie bramki z pięćdziesiątki na
trzydziestkę: silnikowa CHARACTER::fishing() i bramka AI. Trzeciej nie było
widać — sama wędka ma limit poziomu 50, więc bot na trzydziestce i tak nie
mógł jej założyć ani zostać wędkarzem. Limit zszedł na 30 dla wszystkich
dwudziestu wędek. Poprawka siedzi w bootstrapie bazy, więc obejmuje i ten świat,
i świeże instalacje.
Gdy ryby wreszcie zaczęły brać, wyszła druga rzecz, która spała od zawsze:
każdy połów szedł do kosza. Tabela log.fish_log miała osiem kolumn wzięte z
drugiego silnika, a ten wpisuje sześć — więc każda złowiona ryba kończyła się
błędem „Column count doesn't match value count" w syserr (364 linie w pierwszych
dziesięciu minutach) i nie zapisywała się nigdzie. Nikt tego nie widział, bo na
tej linii nikt nigdy nie łowił. Tabela ma teraz kształt, który ten silnik
faktycznie zapisuje; stara jest przebudowywana przy starcie, ale tylko wtedy, gdy
ma ten zły kształt — historii, jeśli kiedyś powstanie, nic nie rusza.
Ulepszanie wędki u Rybaka
Silnik ma ten mechanizm w dwóch połowach, a boty robiły tylko jedną. Przy każdym połowie wędka losuje punkt do socketu (dla +0 jeden na pięć), aż do swojego pułapu — i dopiero wtedy wolno ją ulepszyć. Nikt o to nigdy nie prosił, bo ulepszenie wywołuje wyłącznie komenda GM i dialog questa, którego bot nie otworzy. Zmierzone przed poprawką: 62 z 64 wędek w świecie stały na równo dziesięciu punktach — pełne, na zawsze.
Liczby są wędki, nie moje: +0 → +1 to 100% i porażka nie istnieje, dalej robi się ryzykownie (88%, 77%, 66%, 55%), a nieudane ulepszenie zabiera stopień. Po godzinie działania: 62 wędki na +1.
Ognisko i pieczone ryby
Ognisko miało dwa błędy. Drewno kupowane jest u Rybaka po drodze nad wodę, a warunek zakupu wymagał pięciu martwych ryb — które pojawiają się dopiero w trakcie sesji. Pętla nie do domknięcia: 27 sesji skończyło się ścieżką rozpalającą, dwa boty w całym świecie miały kiedykolwiek drewno, ogień nie zapłonął ani razu.
Drugi błąd siedział w silniku i trzeba go było przeczytać, bo w logu nie było po
nim śladu: ITEM_CAMPFIRE sprawdza kafelek sto jednostek przed postacią i
odrzuca wodę. A wędkarz stoi obrócony twarzą do rzeki. Każde drewno leciało do
wody, a silnik tłumaczył się klientowi, którego bot nie ma. Teraz bot odwraca się
tyłem do wody przed zapaleniem.
Przy okazji: zakres pieczonych ryb kończył się na 27876, a rodzina sięga 27883 — więc siedem najlepszych szło do handlarza za grosze, w tym karp dający +20 prędkości ruchu na 600 sekund i złoty karaś z bonusem na 1800 sekund.
Stajenny w drugiej wiosce Jinno
Noga marszu do Stajennego używała zwykłego marszu, a nie marszu miejskiego — czyli nigdy nie pytała o osiągalność i nie przesuwała celu na grunt połączony z botem. Stajenny w Bakrze stoi na kawałku terenu odciętym od placu: 600 odmów trasy, wszystkie na mapie 43, podczas gdy stajnie pozostałych królestw obsłużyły 193 wizyty i przyjęły 82 medale. Po poprawce: zero.
Omdlenie działa na boty
Zgłosił cyfrowy_mat: „omdlenie szarżą nie działa na botach z innego królestwa, bot po sekundzie już biegnie dalej". Miał rację i to był nasz błąd, nie silnika — silnik nakłada omdlenie botowi dokładnie tak jak graczowi, przez tę samą odporność, i nigdzie nie pyta, czy to bot. To nasza pętla nigdy nie sprawdzała, czy bot jest ogłuszony: szedł dalej, bił dalej i planował dalej. Jedyne takie sprawdzenie w całym kodzie botów pilnowało otwierania sklepu offline.
Teraz brama stoi na samej górze pętli, obok sprawdzenia śmierci, więc obejmuje ruch, walkę i wszystkie podsystemy naraz.
Wabienie tam, gdzie są watahy
Łucznik z drużyny planował wabienie gdziekolwiek poza strefą bezpieczną — nie było żadnej reguły mapy. Zmierzone w Yongan: drużyna sześciu, pięciu odbiorców gotowych i „brak watahy" sekundę później, bo w pierwszej wiosce nie ma czego przyciągać. Teraz tylko mapy frontieru, a maksimum grup zeszło z czterech na trzy, zgodnie z regułą „aggro 1–3 boty z drużyny".
Las, Czerwony Las i Wieża Demonów
Trzy mapy, które istniały w plikach, ale hostował je rdzeń bez botów — czyli żaden bot nie mógł na nie wejść. Przeniesione tam, gdzie boty żyją:
- Las (67): Duchy Drzewa, Pniaka, Driady i Złe Drzewa, poziomy 65–71, 527 punktów odrodzenia, osiem hubów.
- Czerwony Las (68): ich czerwone odpowiedniki, 74–82, 693 punkty, osiem hubów.
- Wieża Demonów (66): Demony 57–60.
Huby nie są zgadnięte: każdy stoi na rzeczywistym punkcie odrodzenia z regenu mapy, w najgęstszej komórce, a pasmo poziomów to mediana potworów tej komórki. W Wieży Demonów boty nie łamią metinów — tak jak prosiłeś, dungeon zostaje na później.
Ostatni etap Biologa
Pamiątka Po Demonie była w tabeli od 2.0.37, ale celowo pomijana: jej potwory stoją wyłącznie w Wieży Demonów. Przenosiny mapy odblokowały ją same z siebie i panel liczy znów dziewięć etapów.
Koń militarny
Medale prowadzą konia do dwudziestego poziomu i tam się zatrzymują. Dwudziesty pierwszy pochodzi z próby w Wieży Demonów — pięćdziesiąt zabitych demonów, bez limitu czasowego — dokładnie tak, jak koń bojowy jest próbą na pustyni. Bot na próbie poluje tam, gdzie próba, cokolwiek mówiłby jego poziom.
Drobne
Eliksiry Słońca (39037–39039) dołączyły do eliksirów doświadczenia. Wcześniej bot traktował je jak zwykły łup, choć Eliksiry Księżyca znał od dawna.
Wersja 2.0.38 (14.09.2026)
Serwer. Boty przyjmują zaproszenie do drużyny i biegną z graczem, łowią od 30 poziomu, zakładają marmury polimorfii na bossów, a dropperzy przestają zbierać doświadczenie na poziomie swojego łowiska. Klient bez zmian (zostaje 2.0.5).
Zaproszenie do drużyny wreszcie dociera do bota
Do tej pory zaproszenie gracza do bota nie robiło dosłownie nic i nie
zostawiało po sobie śladu w żadnym logu. Przyczyna: CHARACTER::PartyInvite
kończy się wysłaniem pakietu na deskryptor zapraszanego. Bot ma deskryptor, ale
nie ma za nim klienta — pakiet szedł w próżnię, nikt nie klikał „Akceptuj", a po
dziesięciu sekundach zaproszenie cicho wygasało.
Teraz silnik odkłada takie zaproszenie w osobnym dzienniku, a tick bota odpowiada na nie tą samą metodą, którą wywołałby klient. Bot nigdy nie odmawia — wszystkie warunki, które mogą odrzucić, są silnikowe i o nich warto wiedzieć: to samo królestwo, różnica do trzydziestu poziomów i wolne miejsce w drużynie ośmioosobowej.
Do tego dwie rzeczy, bez których to nie miałoby sensu. Drużyna prowadzona przez gracza jest wyjęta ze wszystkich reguł rotacji botów — kohorty, wygasania po 5–15 minutach i promienia maruderów — bo inaczej bot dołączyłby i wyszedł w ciągu minuty. I biegnie za graczem: gdy oddali się o ponad 1500 jednostek, rusza za nim, z koniem, zanim pas wędrowania zdąży go wysłać na własne łowisko.
Czego jeszcze nie ma: bot-lider nie zaprasza kolejnych botów. Każdego zapraszasz sam.
Łowienie od 30 poziomu
Wymóg pięćdziesiątki siedział w trzech miejscach naraz — w samym silniku
(CHARACTER::fishing()) i w dwóch bramkach botów, żeby nikt nie szedł nad wodę,
która i tak by go odprawiła. Wszystkie trzy mówią teraz trzydzieści. Reszta
warunków bez zmian: mapa pierwszej wioski, przepustka i przynęta.
Marmury polimorfii na bossów
Dotąd żaden bot nigdy nie użył marmuru — były wyłącznie towarem na stragan. Teraz bot zakłada marmur, gdy bije bossa, który ma jeszcze co najmniej 90% życia. Nie robi tego w siodle ani pod inną przemianą, bo silnik i tak by odmówił. Zakaz używania umiejętności pod marmurem jest silnikowy i nic nie trzeba było dodawać — dlatego marmur idzie tylko na bossa, gdzie rotacja i tak nie decyduje o walce.
Dropperzy zatrzymują poziom
Każdy drop w tym silniku blednie wraz z różnicą poziomów, więc farmer, który się dalej rozwija, wychodzi z własnej tabeli: medal to grupa „kill", a przy piętnastu poziomach nad potworem jest wart tyle co nic. Dropper dochodzi teraz do poziomu swojego łowiska i zatrzymuje doświadczenie na stałe — medale 33, M2 36, M3 30, metiny 40 — po czym robi w kółko to, po co jest: dropi i sprzedaje.
Launcher mówi po angielsku, że mówi po angielsku
Przełącznik języka był, ale napis „JEZYK: POLSKI" nie mówi anglojęzycznemu, w co kliknąć. Przycisk pokazuje teraz oba języki naraz.
Wersja 2.0.37 (13.09.2026)
Serwer i panel. Łańcuch Biologa nie kończy się już na Zębie Orka — dochodzi etap 40 z nagrodami jeden do jednego z tym, co dostaje gracz. Do tego launcher mruga na czerwono, kiedy jest nowa wersja.
Biolog idzie dalej: Księga Klątw
Quest collect_quest_lv30 w swoim ostatnim stanie sam uruchamia lv40, a ten
uruchamia lv50 — u gracza łańcuch leci dalej, a boty kończyły na siódmym
etapie i stały na „7/7" do końca świata.
Dochodzi Księga Klątw: piętnaście okazów po 60% przyjęcia, potem druga połowa — Świątynny Kamień Duszy, jeden na pięćset zabić — a na koniec nagroda questa: +5 szybkości ataku na stałe i szkatuła.
Gdzie to jest, zmierzone na plikach tego świata, nie z wiki: Księgę noszą Dręczyciele (706 i 756, poziom 49) z centralnej wyspy Doliny Orków, po 68 punktów odrodzenia każdy, a klucz leci z tego samego hooka na 701–707 w Dolinie i 731–737 w Świątyni. Bot poziomu 40 sięga potwora 49 — limit to piętnaście poziomów — więc etap jest wykonalny od pierwszej chwili, w której się otwiera.
Nagroda, która kasowała poprzednią nagrodę
Nagrody miały być jeden do jednego z graczem i przy okazji wyszło, że dotąd nie
były. Silnikowe affect.add_collect robi trzy rzeczy: znajduje istniejący efekt
tego samego typu punktu, dodaje do niego nową wartość i zapisuje z flagą
IsCube. Boty wołały AddAffect wprost, bez sumowania i bez tej flagi.
To nie jest drobiazg, bo przy IsCube = false silnik szuka efektu po samym
typie, ignorując punkt. Nagroda za Księgę Klątw nadpisałaby wtedy prędkość
ruchu z Zęba Orka zamiast stanąć obok niej. Teraz wypłata idzie dokładnie tą
samą drogą co u gracza.
Etap, którego na tym świecie nie da się skończyć
Kolejny etap łańcucha — Pamiątka Po Demonie — jest w tabeli, ale boty go nie
wezmą, i to jest celowe. Zarówno okaz, jak i klucz pochodzą wyłącznie od
potworów 1001–1004, a te stoją na jednej mapie w całym tym świecie: w Wieży
Demona (indeks 66), którą hostuje rdzeń game2, podczas gdy wszystkie boty żyją
na game1. Mapy, której rdzeń nie hostuje, bot nie osiągnie nigdy.
Gdyby etap po prostu dopisać, każdy bot po pięćdziesiątce utknąłby na „Pamiątka Po Demonie 0/15" — dokładnie tak, jak kiedyś cały świat tkwił na „Korzeń Gango 0/5". Dlatego etap, którego potwór nie stoi na żadnej hostowanej mapie, jest pomijany przez wszystkie reguły wyboru, a panel liczy osiem etapów zamiast dziewięciu, żeby nikt nie oglądał wiecznego „8/9". Wiersz zacznie działać sam, jeśli ta mapa kiedyś trafi na rdzeń z botami.
Launcher mruga, kiedy jest nowa wersja
Stopka z wersjami zapala się na czerwono i mruga, kiedy serwer albo klient mają nowsze wydanie, z napisem wprost mówiącym, czego dotyczy i że trzeba kliknąć ZAINSTALUJ AKTUALIZACJE.
Wersja 2.0.36 (13.09.2026)
Serwer. Rynek przestaje zgadywać ceny — dostaje cenniki Iwakury. Do tego poprawka aktualizatora na Linuksie i VPS, przez którą serwer po aktualizacji podawał starą wersję i instalował to samo wydanie w kółko.
Aktualizacja mówiła, że nic się nie zmieniło — i miała rację
„Drugi raz robię aktualizację z 2.0.34 do 2.0.35 i drugi raz komunikat: the server is now running version 2.0.34" (Mkls).
Paczka aktualizacji nie zawierała pliku VERSION w korzeniu instalacji.
Zawierała go — ale pod linux-port/VERSION, czyli tam, gdzie nikt go nie
czyta. Wzięło się to z mapowania ścieżek: drzewo 2.x wdraża się pod nazwą
linux-port, a reguła przenosiła cały katalog razem z plikiem wersji.
To nie był tylko mylący komunikat. tools/update.sh czyta <korzeń>/VERSION
dwa razy: żeby powiedzieć, co jest zainstalowane, i żeby zdecydować, czy w
ogóle jest co instalować. Skoro numer nigdy się nie zmieniał, porównanie
z manifestem nigdy nie trafiało — więc każde uruchomienie pobierało i
rozpakowywało to samo wydanie od nowa.
Naprawione w trzech miejscach naraz: plik wersji trafia do korzenia,
dokumentacja wydania nosi pełne mapowanie (brakowało w niej dwóch wierszy,
choć narzędzie New-M2DeployTree.ps1 miało je od zawsze), a pakowarka
odmawia zbudowania paczki serwera bez VERSION w korzeniu. Przy okazji
wraca do paczek PACZKA_INFO.txt, który ginął z tego samego powodu.
Po zainstalowaniu 2.0.36 numer w korzeniu wreszcie się przesunie i kółko się zatrzyma.
Bronie i zbroje: 147 rodzin, cena za każdy plus
Do tej pory broń i zbroja powyżej +6 miały trzy wymyślone ceny: 150 000 za +7, 400 000 za +8, 900 000 za +9. Wymyślone, bo tabele gry nie zawierają ceny ulepszonego przedmiotu i trzeba ją było kiedyś zgadnąć. Skutek: Zatruty Miecz +9 i zwykły Miecz +9 stały na straganie za te same 900 000.
Teraz każda rodzina ma własną cenę na każdym poziomie ulepszenia, wprost z jego arkusza: Miecz +9 to 120 000, Zatruty Miecz +9 to 13 000 000. Rodzin jest 147 — miecze, sztylety, łuki, bronie dwuręczne, dzwony, wachlarze i zbroje wszystkich czterech klas.
Kamienie duszy w sockecie podnoszą cenę przedmiotu
Też z jego arkusza, w dwóch krokach: najpierw ile kamieni siedzi w przedmiocie (jeden ×1.2, dwa ×1.3, trzy ×1.5), potem które konkretnie — Kamień Duszy Potwora +4 mnoży przez 1.8, Śmierci +4 przez 1.7, i tak dalej. Pęknięty kamień nie liczy się wcale, dokładnie jak u niego.
Marmury, opaski, zioła, kamienie duszy, skrzynki
- Marmury polimorfii wyceniane po potworze siedzącym w sockecie: trzynaście nazwanych wyjątków (od 40 000 za Wojownika z Toporem po 75 000 za Małego Trującego Pająka), reszta z pasma 15 000–35 000, losowana raz na marmur.
- Opaski Zapomnienia po umiejętności — 44 pozycje. Siedem z nich Iwakura oznaczył „do sprzedaży u handlarki": te nie zajmują już miejsca na straganie.
- Kamienie duszy po rodzaju i stopniu: osiemnaście wyjątków (Potwora +4 za 350 000, Śmierci +4 za 250 000), reszta po cenie swojego stopnia.
- Zioła (osiem), Szkatuła Blasku Księżyca 35 000 i Medal Konny 250 000.
Jak to zrobione
Ceny nie są przepisane ręcznie. Generator czyta jego pliki i wiąże każdą
nazwę z vnumem tego świata, pytając item_proto i mob_proto; jeśli choć
jednej nazwy nie da się dopasować, odmawia zapisania tabeli. Dzięki temu
nowa pozycja w arkuszu zatrzyma budowę zamiast po cichu zostawić starą cenę.
Dziesięć nazw, które gra skraca („Zbr. Płyt." wobec jego „Zbroja Płytowa"),
ma jawną tabelę aliasów — każdy sprawdzony jako jedyny kandydat.
Wszystko skaluje się mnożnikiem dropu yang tak, jak napisał na górze obu arkuszy: cena bazowa razy stawka przez sto. Na serwerze ze stawką 100% obowiązuje cena z tabeli, przy 500% jest pięć razy wyższa.
Numer wersji cennika idzie na 2, więc stragany stojące na starych cenach przeceniają się na najbliższej wizycie serwisowej, zamiast trzymać je przez całe osiem godzin stoiska.
Wersja 2.0.35 (13.09.2026)
Serwer. Pięć zgłoszeń z Discorda z jednego wieczoru, każde z inną przyczyną — i dwa z nich okazały się tym samym: bot z Shinsoo albo Jinno żył w świecie opisanym współrzędnymi Chunjo.
Konie w Shinsoo i Jinno — każde królestwo ma własny Loch Małp
„Tylko boty z chunjo levelują konia" (RetroGracz38), „bo z innych nie wchodzą do lochu dlatego" (NerrVoVy), „jest problem z robieniem konia w shinsoo i jinno, przez to jak ktoś pisał, że nie mają ustawionych kordów do lochu w swoim m2" (Kiciamol). Sprawdzone na naszym własnym świecie przed poprawką: Shinsoo 500 postaci i ani jednego konia, Jinno 500 i ani jednego, Chunjo jedyne z koniem.
Każde królestwo ma swój własny łatwy Loch Małp — to trzy osobne mapy (5, 25 i 45), o tej samej geometrii, w trzech różnych miejscach świata. Nakładka znała tylko mapę Chunjo. Bot z Shinsoo przechodził własną bramą i lądował na mapie, której kod nie rozpoznawał jako lochu: bez komór, bez punktów polowania, bez medalu. Bot po 33. poziomie był z kolei wysyłany do trudnego lochu, którego jego rdzeń w ogóle nie hostuje, więc warp był odrzucany za każdym razem.
Poziom nie wskazuje już mapy, tylko pasmo; mapę dobiera się do bota — jego królestwo i to, co ten rdzeń faktycznie hostuje. Królestwo bez dostępu do trudniejszych lochów pracuje we własnym, dopóki to się jeszcze opłaca (medal to losowanie z grupy zabójstw, a mnożnik za różnicę poziomów wygasa piętnaście poziomów nad potworem).
Każde królestwo wchodzi na mapy wspólne własnym wejściem
„Wszystkie boty po wejściu do doliny, niezależnie od królestwa z którego są, wchodzą w miejscu wejścia żółtych. To samo się dzieje z pustynią" (SIZOWSKI, potwierdzone przez NerrVoVy).
Dolina Orków, Pustynia Yongbi i Góra Sohan mają po trzy wejścia i po trzy bramy — po jednym na królestwo. Tabela z tymi punktami istniała w kodzie od dawna i była poprawna; podróż po prostu jej nie pytała i brała stałą Chunjo. Teraz pyta. Bramy powrotne dobrano tak samo: bot wychodzi przez NPC-a stojącego obok własnego wejścia, a nie przez bramę żółtych na drugim końcu mapy.
Punkty pochodzą z plików samej mapy (Town.txt — ogólny punkt i po jednej parze
na królestwo, oraz npc.txt dla bram) i wszystkie osiemnaście sprawdzono na
server_attr: każdy stoi na gruncie, po którym da się chodzić. Wiersze Chunjo
odtwarzają co do jednostki stałe używane do tej pory, co jest dowodem, że
pozostałe sześć jest odczytane tak samo. Test jednostkowy tego pilnuje.
Stragany offline: wracają trzy mechanizmy (mt2009)
AkhiGubernator przeczytał binarkę i pokazał, że cała klasyczna obsługa straganu
w ManagePlayerBotShopLifetime jest na tej linii silnika nieosiągalna
z konstrukcji (dwa wyczerpujące wczesne return), więc kompilator usuwa ją od
-O1 wzwyż. Diagnoza była w punkt. Padły przez to trzy rzeczy:
- „Wysoki popyt" (Iwakura, 2.0.33) — pamięć szybkiej sprzedaży nigdy nie dostawała ani jednego wpisu, więc narzut za popyt zawsze wynosił zero.
PLAYERBOT_STALL_SOLDw historii sprzętu — wpisu nie było wcale.- Ponowna ocena stojącego straganu po ruszeniu suwaka TRADE.
Na tej linii towar na ladzie należy do encji sklepu, a nie do plecaka bota, więc „jedno przejście po własnym plecaku" nie może niczego zauważyć. Sprzedaż zapisuje teraz natywny menedżer w chwili, w której ona następuje — jest jedyną stroną, która o niej wie — a bot odbiera ten zapis na swoim własnym ticku. Stragan, który wygasł, nie jest już odnawiany pod wagą, która go nie chce.
Panel: „Szybkość biegu" i stempel zajęcia wiersza
„Bez względu na to czy postać jest zalogowana czy nie wywala błąd przy próbie nadania szybkości" (Sammy Suricate) — komunikat brzmiał „Coś poszło nie tak (w1x257t780)".
Przyczyny były dwie, jedna pod drugą, i obie są naprawione.
w1x257t780 to nie status, tylko stempel, którym quest w grze zajmuje
wiersz kolejki, zanim zacznie pracę. Panel brał każdą wartość inną niż pending
za odpowiedź końcową i meldował ten stempel operatorowi jako błąd. Czeka teraz
na słowo z listy questa; wszystko inne znaczy „jeszcze pracuje". Dotyczy to
wszystkich komend panelu, nie tylko tej jednej.
Ale sam stempel nie zniknąłby stamtąd nigdy, i to jest druga połowa. Quest
zdejmuje własne efekty szybkości, zanim doda nowy — po nazwie, a nie hurtem,
żeby nie zabrać graczowi mikstur i błogosławieństw — i woła do tego
affect.remove_collect. Tego wiązania na tej linii silnika nie ma: jest
remove_all_collect i nic poza tym. Quest wywracał się więc na wywołaniu
nieistniejącej funkcji, nigdy nie dochodził do zapisu wyniku i zostawiał wiersz
ze swoim stemplem na zawsze. Widać to było w syserr:
LUA_ERROR: attempt to call field 'remove_collect' (a nil value).
Brakujące wiązanie jest dopisane do silnika (tą samą drogą, którą dokładane są inne). Implementacja różni się od r40250 celowo: tam każde wywołanie tworzy własny efekt i usuwa się go po wartości, tutaj silnik sumuje efekty w jeden na typ punktu, więc dopasowanie po wartości nigdy by nie trafiło.
Bez tej drugiej połowy sama poprawka panelu zamieniłaby tylko dziwny komunikat na uczciwe „przekroczono czas oczekiwania" — i nic więcej.
Dlaczego broń na 30 poziom nie jest ulepszana — najpierw pomiar
„Na 341 broni na serwerze praktycznie wszystkie są +0 (max +2)" (Iwakura). Broń
w plecaku może zostać pominięta przez cztery różne reguły, a z zewnątrz wyglądają
identycznie — dlatego tego zgłoszenia nie dało się ani potwierdzić, ani wyjaśnić
z żadnego logu. Zamiast zgadywać, rdzeń mówi teraz która reguła ją pominęła
(PLAYERBOT_AI: level-30 weapon not refined ... reason=), raz na minutę dla całej
populacji. Poprawka pójdzie po tym, co pokaże pierwszy log — nasz własny świat
nie ma ani jednej takiej broni, więc nie ma tu czego odtworzyć.
Wersja 2.0.34 (13.09.2026)
Serwer i klient — pierwsza zmiana klienta od 2.0.3. Panel GM na F9 od OskarPWA wchodzi na tę linię silnika, razem z osobnym oknem administracji botami na F10.
Panel GM (F9) — OskarPWA
Trzydzieści jeden komend serwera pod jednym oknem: wyszukiwanie gracza, teleportacja po mapach i zapisane miejsca, tworzenie przedmiotów (także prosto do skrytki i do sklepu z monetami), podgląd ekwipunku i zmiana statystyk, umiejętności, yang i monet, spawn potworów, metinów i botów, nadawanie rang GM, stawki serwera oraz suwaki AI botów.
Każde kliknięcie to zwykła komenda czatu, a serwer sprawdza poziom GM osobno
przy każdej z nich (tabela cmd_info[]) — samo okno niczego nie odblokowuje.
Stawki działają również na tej linii silnika: przycisk restartu zapisuje je do
tego samego kanału, który obsługuje m2-rates.
Okno administracji botami (F10)
Ile botów żyje, ile jest w drużynie, ile stoi na straganie; lista botów z poziomem, królestwem i pozycją; ostatnie akcje wybranego bota; nadanie mu przedmiotu; tablica osiągnięć. Trzy rzeczy, których nasz rdzeń nie potrafił, zostały dopisane:
- Ostatnie akcje — nic nie zapisywało historii pojedynczego bota, bo log rdzenia celowo skleja linię napisaną przez trzysta botów w jedną. Teraz migawka statusu, która i tak co dwie sekundy układa jedno zdanie na bota, odkłada je wtedy, gdy się zmieni. Bot stojący dwadzieścia minut przy straganie nie zapcha sobie historii jednym powtórzonym zdaniem.
- Osiągnięcia — „Pierwszy 30/60/90 poziom”. Jedyny uczciwy sposób, żeby wiedzieć, kto był pierwszy, to zobaczyć, jak ktoś przekracza próg: pierwsze spojrzenie na bota tylko zapisuje, gdzie on już jest, a nagroda przypada dopiero temu, kogo rdzeń widział niżej, a potem wyżej. Na świecie, którego boty są już po trzydziestce, tablica zostaje pusta, dopóki ktoś naprawdę nie awansuje — i tak ma być. Zwycięzcy przeżywają restart serwera.
- Liczby na zakładce ogólnej — liczone po żywych botach tego rdzenia. „Prowadzą stragan” pyta natywny rejestr sklepów offline o każdego bota z osobna, a nie o jego akcję: na tej linii silnika bot otwiera stoisko i wraca na łowy, bo stoiskiem opiekuje się encja — liczone po akcji pokazywałoby zero przy trzydziestu ośmiu stojących straganach. Rejestr trzyma też sklep gracza, więc pytanie idzie po właścicielu, nie hurtem.
Panel nie zatrzyma już wczytywania klienta
Wersja autora budowała swoje okna bezwarunkowo. To dokładnie ten mechanizm,
przez który przed 1.33.3 pięciu graczom klient stawał na 100% z pustym ekranem —
wystarczył jeden wyjątek w oknie panelu, żeby przerwać budowę całego interfejsu.
Wszystkie trzy okna powstają teraz w osłonie: gdy któreś się nie zbuduje, powód
trafia do syserr.txt, gra wstaje bez niego, a próba otwarcia mówi o tym na
czacie zamiast wywalać błąd.
Stragany przeceniają się po zmianie cennika (Iwakura)
„Pełno w m1 sklepów, gdzie Zwoje Błogosławieństwa nadal są po 9000”. Cena w kodzie była już poprawna (150 000 od 2.0.32) — to wystawki były stare. Otwarty stragan przeceniał jeden przedmiot na godzinę, więc stoisko z kilkunastoma liniami schodziło do nowych cen kilkanaście godzin.
Cennik ma teraz numer wersji. Stragan, który został wyceniony według starszego, przecenia się na każdej wizycie serwisowej (co 10–15 minut) zamiast raz na godzinę, aż obejdzie cały swój blat — dopiero wtedy dostaje nową pieczątkę. Tempo wraca do godziny, gdy nie ma czego nadrabiać. Żadnej masowej przeceny na raz: to ta sama ścieżka żądań, co zwykle, tylko częściej pytana.
Naprawy przy okazji
- Aktualizacja z paczki na Linuksie i VPS działa ponownie. Skrypt portujący silnik zatrzymywał się przy drugim przebiegu: jedna z edycji rozpoznawała swoją pracę po własnym wstawionym tekście, a późniejsza edycja ten tekst rozbijała — więc pierwsza dokładała nagłówek drugi raz, a druga traciła kotwicę i cały skrypt padał. Instalacje windowsowe tego nie widziały, bo dostają gotowe pliki.
- Dwie nasze wcześniejsze wstawki w plikach silnika miały zakończenia linii niezgodne z resztą pliku, przez co ten sam skrypt ich nie rozpoznawał.
Wersja 2.0.33 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Domknięcie systemu cen Iwakury: rynek reaguje teraz na to, co się sprzedaje, a co zalega.
Znika „Polowanie” tam, gdzie polowania nie ma (Tieru)
Misja polowania (levelup.quest) leży na tej linii silnika w quest/_unused —
żaden hook zabicia nie strzela, więc licznik stoi na zerze dla każdego bota.
Rdzeń dawno to ignoruje, ale panele nadal o tym mówiły:
- W karcie postaci na mapie świata wiersz „Polowanie: Brak danych” pokazywał się przy każdym bocie. Wiersz, który potrafi powiedzieć wyłącznie „brak danych”, nie jest wierszem — pojawia się teraz tylko wtedy, gdy naprawdę jest co pokazać.
- Zakładka „Polowanie” w rankingach botów znika z obu paneli. W panelu zaawansowanym dawała sto pozycji z „Ukończone do Lv 0”.
Na silniku r40250, gdzie ta misja działa, jedno i drugie zostaje bez zmian.
Podaż i popyt na straganach (Iwakura)
Ostatnia część jego dokumentów cenowych, opisana tam jako „mechanizmy rynkowe”. Do tej pory bot miał tylko połowę: przecenę za zaleganie (sztywne −10% za każde stoisko) i uśrednianie po cenach, za które faktycznie kupowano. Brakowało reakcji na popyt — rzecz, która schodziła natychmiast, następnym razem trafiała na stragan za tę samą kwotę.
- Wysoki popyt: jeśli przedmiot zniknie ze straganu w ciągu pięciu minut od wystawienia, rynek to zapamiętuje i kolejne sztuki idą drożej o 10–25%. Z każdą kolejną szybką sprzedażą cena rośnie dalej, do czterech kroków. Godzina bez szybkiej sprzedaży i zwyżka wygasa.
- Niski popyt: przecena za każde stoisko, z którego nic nie zeszło, to teraz 10–25% (losowane przy wystawieniu) zamiast sztywnych 10%.
Jedno ograniczenie jest moje, nie jego: przecena za zaleganie ma sufit 50%. Iwakura nie podał granicy, a cztery stoiska po 25% zabrałyby całą cenę — rabat ma schodzić z marży, nie z przedmiotu.
Obie zmiany działają na cenie tego konkretnego straganu, już po ustaleniu ceny
rynkowej. To celowe: ogranicznik tempa zmian pozwala kotwicy rynku dryfować
o 5% na dziesięć minut i gdyby sygnał popytu szedł przez niego, albo zostałby
połknięty, albo pociągnąłby za sobą wszystkie inne stragany. Szybka sprzedaż
zapisywana jest per przedmiot, a dla ksiąg per umiejętność — Aura Miecza ma
własny popyt, nie wspólny ze wszystkimi księgami. W logu widać to jako
PLAYERBOT_MARKET: fast sale.
Wersja 2.0.32 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Naprawa błędu z 2.0.31, który potrafił zablokować start serwera — jeśli masz 2.0.31, zaktualizuj się. Poza tym: przywracanie kopii świata znów działa, ceny ksiąg i ulepszaczy idą według nowych tabel Iwakury, a launcher pokazuje, czy długa operacja faktycznie postępuje.
Serwer odmawiał startu: „port 13001 zajmuje com.docker.backend” (sizowski)
Błąd wprowadzony przeze mnie w 2.0.31 razem ze sprawdzaniem portów. Docker
publikuje zakres portów jako jeden wpis — 127.0.0.1:13000-13002->13000-13002/tcp
— a launcher szukał w nim dosłownie 13001->. Nie znajdował więc żadnego
z trzech kanałów gry, uznawał własny, działający serwer gracza za obcy program
i odmawiał startu, radząc „zamknij com.docker.backend”, czego nie da się zrobić.
Launcher rozumie teraz zakresy portów tak samo jak pojedyncze wpisy i adresy IPv6. Dołożona jest też druga warstwa zabezpieczenia: jeśli port trzyma sam Docker, a launcher nie rozpozna którego kontenera to sprawa, zgłasza ostrzeżenie i pozwala wystartować, zamiast blokować. Nierozpoznany kontener to luka w sprawdzeniu, nigdy powód, żeby nie uruchomić serwera. Przypadek z zakresem portów ma teraz własny test.
Launcher mówi, czy długa operacja jeszcze idzie
Podczas aktualizacji pasek postępu potrafił przez wiele minut pokazywać to samo („m2zip-db: Healthy”) bez żadnej wskazówki, czy to praca, czy zastój — a stało za tym czekanie na bazę. Teraz obok nazwy etapu widać jak długo ten etap trwa, a po czterech minutach bez zmian dochodzi ostrzeżenie „bez zmian — sprawdź DIAGNOSTYKA” wraz z wpisem w logu. Launcher czyta też komunikaty migracji bazy i pokazuje je wprost („migracja bazy: baza nie odpowiada”), zamiast wyświetlać sprzed minuty nazwę ostatniego kontenera.
Polskie znaki w panelu i na czacie (seban latino)
Poprawka od latino. Kolumna hint w log.log jest zadeklarowana jako big5,
podczas gdy silnik zapisuje do niej CP1250, więc sterownik bazy zwracał krzaki
dla wszystkiego poza ASCII („Skórzane” jako „SkĂłrzane”). Panel pobiera teraz tę
kolumnę przez HEX() i dekoduje bajty samodzielnie — tą samą metodą, którą już
stosował dla nazw przedmiotów.
Przywracanie kopii świata kończyło się błędem (NieBijOddam)
„Błąd występujący podczas przywracania kopii serwera”, a w logu:
Cannot convert value "Singleplayer\Serwer\backups\db-backup-….zip" to type
"System.Int32". To był błąd po naszej stronie i trafiał w każdego, kto ma
serwer w folderze ze spacją w nazwie — czyli w domyślnej instalacji „Metin2
Singleplayer” w praktyce we wszystkich.
Launcher graficzny uruchamia część konsolową przez Start-Process, która skleja
argumenty spacjami i niczego nie cytuje. Ścieżka do kopii rozpadała się więc
na dwa argumenty: C:\…\Metin2 szło do -RestoreSource, a ogon
Singleplayer\Serwer\backups\…zip lądował pozycyjnie na następnym parametrze,
którym jest -BotCount typu int — stąd dosłownie „nie można przekonwertować na
System.Int32”. Teraz każda wartość przekazywana do części konsolowej jest
cytowana; nazwy parametrów przechodzą bez zmian. Dotyczyło to tak samo importu
bazy z innej instalacji, jeśli jej ścieżka miała spację.
Ceny ksiąg umiejętności według nowej tabeli (Iwakura)
Nowa wycena wszystkich 44 ksiąg — Aura Miecza 123 500, Czarowane Ostrze 65 000, Berserk 58 500, Strach 52 000 i tak dalej; kolejność umiejętności w każdej klasie jest ta sama co w poprzedniej tabeli, więc zmieniły się wyłącznie kwoty.
Zmienił się też przelicznik od dropu yang. Tabela Iwakury zaczyna się od ×1,1 przy dropie 100% i rośnie proporcjonalnie (200% → ×2,2, 500% → ×5,5, 900% → ×9,9, 1500% → ×16,5). Dotąd bot skalował ceny samym mnożnikiem serwera (100% → ×1,0), czyli o jedną dziesiątą za nisko względem tabeli, którą miał realizować. Dwa zaokrąglone wpisy z jego rozpiski (1000% → ×11,1 i 10000% → ×111,0) leżą jakieś pół procenta nad tą prostą i potraktowałem je jako jego własne zaokrąglenie, bo załamanie krzywej w tych dwóch punktach kłóciłoby się z pięcioma pozostałymi.
Losowy rozrzut (od −20% do +25% na wystawienie) i pamięć sprzedaży działają jak dotąd.
Ceny ulepszaczy według tabeli Iwakury
Wszystkie 78 materiałów do ulepszania ma teraz cenę wpisaną ręcznie — od Futra Wilka za 2 000 po Białą Perłę za 1 100 000 — zamiast wyliczanej z ceny handlarza. Skalowanie jest liniowe od mnożnika dropu yang (100% → ×1,0, 200% → ×2,0, i tak dalej), czyli inne niż przy księgach; taka jest jego reguła dla tej tabeli. Rozrzut −20%/+25% na wystawienie działa tu tak samo jak przy księgach, więc dwa stragany nie proszą równo za ten sam Ząb Orka.
Trzy pozycje z jego listy zmieniają to, co plik zakładał do tej pory: perły idą w drugą stronę (Biała 1 100 000, Niebieska 820 000, Krwawa 650 000, wcześniej odpowiednio 2 mln, 3 mln i 6 mln rosnąco), a Małż spada ze 100 000 na 93 000. Dwie nazwy występują w grze pod dwoma numerami przedmiotu (Nieznany Talizman+ i Żabie Udka) — obydwa dostają tę samą cenę, bo bot wycenia przedmiot, a nie nazwę.
Ceny wyglądają jak wystawione przez człowieka (Iwakura)
„1 591 511” czyta się jak maszyna. Kwoty na straganach są teraz zaokrąglane w górę do kroku wynikającego z ich własnego rzędu wielkości: 12 555 → 12 600, 401 501 → 402 000, 1 241 412 → 1 245 000, 11 512 125 → 11 550 000, 121 314 515 → 121 500 000. Każdy z tych wyników mieści się w przedziale, który Iwakura podał dla swojego poziomu. Ceny poniżej 10 000 yang zostają nietknięte — materiał za 300 yang nie staje się ładniejszy przez to, że kosztuje 400.
Zaokrąglanie objęło wszystkie wyjścia wyceny, łącznie z płaskimi cenami +7/+8/+9 — czyli dokładnie tymi, na które gracze patrzą najczęściej.
Wersja 2.0.31 (13.09.2026)
Misja na konia bojowego stała na 0/100 (sosen)
„Boty się bugują i nie wykonują misji na konia bojowego — cały czas 0/100 i błądzenie po mapie”. Tak było i nie mogło być inaczej: próba liczyła zabójstwa potworów o numerach 401–404 (Czarny Wiatr), a tych na pustyni nie ma ani jednego — mieszkają na drugich wioskach (mapy a3/b3/c3). Bot stał więc na właściwej mapie i zabijał właściwe potwory, tylko żadne z nich nie było tym, czego licznik szukał.
Skąd ten błąd: w regen.txt pustyni prawie każda linia jest typu r, a jej
ostatnie pole to numer grupy grup, nie numer potwora — i akurat te numery to
401–404. Ktoś (my) odczytał je jako vnumy potworów i wpisał do kodu, dopisując
przy tym nieprawdę, że potwory z oryginalnej misji „nie są nigdzie
zespawnowane”.
Po rozwinięciu grup przez globalne group_group.txt i group.txt pustynia
niesie dokładnie to, co mówi wiki: Skorpion Łucznik (2105, 47 lvl) —
998 punktów spawnu — i Wężowy Łucznik (2107, 51 lvl) — 760 punktów. Próba
liczy teraz je, tak jak misja u Stajennego. Limitu 30 minut, który ma wersja dla
graczy, nadal celowo nie ma: bot kuje aż skończy.
Szkatułki blasku i zwoje błogosławieństwa trafiają na stragany (sizowski, Iwakura)
„Żaden bot nie sprzedaje szkat blasku i zwojów błogosławieństwa”. Bo każdy bot zużywał wszystko na siebie: szkatułka szła na stragan dopiero od stosu pięciu, a zwoje zostawały w plecaku, dopóki cokolwiek noszonego było poniżej +9 — czyli u bota, który wciąż się przezbraja, praktycznie zawsze.
Zgodnie z propozycją sizowskiego („4 używają do rozwijania postaci, 1 sprzedaje — jak prawdziwy gracz”) co piąty bot jest teraz handlarzem zasobów: wystawia szkatułki już od stosu dwóch i zostawia sobie jeden zwój zamiast trzech. Rola jest stała (losowana z PID), więc nie miga między restartami, i jest rozdzielona od roli „skupuje złom”. Pozostałe cztery piąte populacji zachowuje się jak dotąd — nadal otwierają i nadal ulepszają.
Przełącznika układu świata nie było w .env (NerrVoVy)
Okno ulepszania może zostawać otwarte (Paweł „Pabloo”)
Kod przygotowany, przeniesiony na naszą wersję i przetestowany w grze przez Pabloo. Dwie rzeczy po stronie serwera:
m_iRefineAdditionalCellnie był inicjowany przy tworzeniu postaci, więc pierwsza sesja ulepszania czytała komórkę zwoju ze śmieci. Samodzielna poprawka bezpieczeństwa, niezależna od reszty.- „Nie zamykaj okna”: po próbie serwer sam otwiera okno ulepszania jeszcze
raz, zamiast zostawiać zamknięte. Włącza się komendą
/refine_keep_open 1, wybór przeżywa relog. Przy zwoju sprawdzane jest dodatkowo, czy w zapamiętanej komórce nadal leży poprawny zwój — to naprawia przypadek zużycia ostatniego Zwoju Błogosławieństwa.
Żadnego auto-refine: każda próba nadal wymaga świadomego kliknięcia, a cała logika ulepszania zostaje po stronie serwera. Zabezpieczenie jednej sekundy zostaje — przeniesione za podstawowe walidacje, bo wcześniej przy otwartym oknie psuło sesję ulepszania. Sprawdzenia NPC i dystansu z 2.0.29 nietknięte, Wieża Demona celowo bez tej opcji.
Dwa checkboxy w oknie („Nie zamykaj okna”, „Potwierdzaj Enterem”) to zmiana po stronie klienta i nie ma jej w tej paczce — wymaga osobnego wydania klienta.
Launcher: koniec z „port jest już zajęty” (Tieru)
Przy każdej próbie aktualizacji launcher przerywał budowanie komunikatem o zajętym porcie, a wyłączanie Dockera nie pomagało. Trzy przyczyny naraz:
- na jednej maszynie potrafi być kilka instalacji tego samego serwera, każda jako osobny projekt Dockera, i wszystkie publikują te same porty;
- każdy kontener ma politykę
restart: unless-stopped, czyli Docker wskrzesza starą instalację przy każdym uruchomieniu silnika — a ta polityka czeka dokładnie na to, co robił operator, czyli na wyłączenie Dockera; - sprawdzenie przed startem patrzyło wyłącznie na port 7788, a kolizja była na 7790 (panel zaawansowany), więc launcher meldował „porty wolne” i dopiero Docker przerywał budowanie po kilkunastu minutach.
Teraz launcher sprawdza wszystkie publikowane porty (7788, 7790, 7791, 11000, 13000–13002, 3306), a gdy któryś jest zajęty, mówi wprost, który kontener go trzyma, z jakiej instalacji i z którego folderu. GRAJ i ZAINSTALUJ AKTUALIZACJE zwalniają takie porty same; w wersji konsolowej jest to opcja 21 („Zwolnij porty”). Zatrzymywana jest tylko obca instalacja — bez dotykania bazy, wolumenów i postępu botów.
Wersja 2.0.30 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Shinsoo i Jinno mogą wyjść z M2, ceny na straganach różnią się między botami, liczba botów domyślnie 1500.
Shinsoo i Jinno wychodzą z M2 — tryb jednego świata (thespartanin, sizowski)
„Czerwoni i niebiescy nie mogą wyjść z M2”. Cały front (Dolina Orków, Pustynia, Sohan, Lochy Pająków, Hwang) hostuje wyłącznie rdzeń Chunjo (game1), a bot nie ma klienta, więc nie przechodzi między rdzeniami — Shinsoo (rdzeń first) i Jinno (rdzeń game2) nie miały dokąd pójść po M2 i kapowały na ~36 lvl. To nie był błąd kodu, tylko podział świata na trzy rdzenie.
Sprawdzone na żywo (stos testowy, 1500 botów, unified): po 500 botów każdego
królestwa wystartowało na game1, boty Shinsoo/Jinno podbite do 40 lvl ruszają na
front tak jak Chunjo. Koszt: cały świat tyka na jednym rdzeniu — zmierzony tick
game1 przy 1500 botach to 9,4 s z każdych 60 (pojedynczy tick maks. 48 ms),
w pełni grywalny. To tryb dla jednej maszyny z jednym światem; przy bardzo dużej
populacji zostaw split. Boty widmowe z poprzedniego układu są czyszczone przy
starcie (rdzeń bez botów nie zostawia już nieaktualnego playerbot_status.tsv).
Ceny +7/+8/+9 różnią się między straganami (Iwakura)
Iwakura zauważył, że itemy +7 bez bonusów wszędzie kosztowały równo 150 000 — brak konkurencji cenowej. Każdy bot ma teraz stały (per bot i per przedmiot) rozrzut do ±20% na cenach +7/+8/+9, więc rynek pokazuje widełki, jeden bot podbija drugiego. Rozrzut jest stały (nie miga między stoiskami) i nie psuje pamięci sprzedaży. Sprawdzone: ceny +7 rozjechały się na 139 500–168 000 zamiast jednej 150 000.
Liczba botów 1500
Domyślny sufit populacji na serwerze testowym i głównym ustawiony na 1500 — tyle
w zupełności wystarcza, a przy trybie unified trzyma tick w rozsądnych
granicach.
Wersja 2.0.29 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Zbanowany bot znika i nie wraca.
Zbanowany bot loguje się z powrotem (mateuszp211)
„Po zbanowaniu bota i kicku bot loguje się z powrotem”. Kick usuwał postać, a
pas dopełniania kohorty (TopUpMissingBots) minutę później widział brak i
wstawiał bota z powrotem — bo nikt nie sprawdzał bana. Oczywista blokada, czyli
account.status='BLOCK', tu nie działa: każde konto bota jest z założenia
BLOCK (żeby nikt się na nie nie zalogował), więc ta kolumna nie odróżnia
zbanowanego bota od zwykłego. Rejestrem, który ban faktycznie zapisuje
(/block_player → account.account_block), jest osobna tabela — pusta, dopóki
ktoś nie zbanuje. Rdzeń czyta ją co minutę: bota z wpisem w account_block
usuwa ze świata i nie wstawia z powrotem, a zdjęcie bana (usunięcie wpisu)
pozwala mu wrócić przy najbliższym dopełnieniu. Sprawdzone na żywo: ban jednego
bota usuwa dokładnie tego jednego, reszta kohorty stoi nietknięta.
Dla darkroom22: „segmentation fault” na 2.0.14
To ta sama wywałka, którą zdiagnozował kimakatsu: linia logu odmowy Teleportera
miała %d dla 64-bitowego yang przed %s, więc rdzeń czytał numer mapy jako
wskaźnik i padał (ślad stosu w Twojej paczce prowadzi przez CPlayerBotManager::Update
do funkcji formatującej tekst — co do joty ta sama sygnatura). Naprawione w
2.0.27; aktualizacja rozwiązuje Twój crash.
Wersja 2.0.28 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Poprawia bieganie botów „tam i z powrotem” po 2.0.26, daje botom matematyczny wybór broni, naprawia wyzerowanie świata w launcherze i uzupełnia pakiet wsparcia o logi sklepów offline.
Boty biegają tam i z powrotem przy pierścieniu straganów (FanFar)
„Boty po aktualizacji sklepów offline biegają w jedną i drugą stronę bez celu”.
Z pakietu wsparcia: na jednym rdzeniu ~430 z 500 botów co ~5 s rozdzielało te
same stosy „na ladę” (8250 linii split w 13 minut) — a sklepy offline
powstawały normalnie (284 na świecie po pięciu minutach). Mechanizm: dwa wyjścia
na końcu przejścia otwierającego stragan — trwałe zawiniątko sklepu i brak yang
na zawiniątko — odmawiały bez ustawienia zegara, już po rozdzieleniu stosów;
pas scalania stosów (po wyczerpaniu budżetu wraca po 5 s) zlewał pojedyncze
sztuki z powrotem, pas wędrówki robił krok w bok, a następny tick znów
rozdzielał, szedł na stanowisko i odmawiał. Teraz każde takie wyjście odczekuje
(2–4 min, a z trwałym zawiniątkiem 10–15 min), a tanie sprawdzenia — czy bot ma
na zawiniątko, opłatę sklepu offline i rezerwę na Teleporter, i czy minęły dwie
minuty od spawnu — stoją przed skanem, rozdzielaniem i marszem. Odmowa
jest logowana (PLAYERBOT_SHOP: refused ... reason=cannot_pay).
Bot liczy obrażenia na cios i tak wybiera broń (Tieru)
„Wprowadź matematyczny algorytm dla bota, który przelicza atak per hit z danej
broni uwzględniając bonusy i średnie broni”. Wynik broni w wyborze ekwipunku to
teraz jeden zwykły cios, tak jak liczy go battle.cpp: rzut broni (wartości
3–4 podwojone przez silnik; sztylet i łuk jak dotąd), klasa ataku (poziom, SIŁA,
linie klasy ataku), linie procentowe ataku, linia rasy ważona udziałem tej rasy
na mapie, średnie obrażenia, trafienie krytyczne (drugi cios na każdy procent) i
przebicie (połowa). To, co kandydat zmieniłby na postaci (SIŁA, klasa ataku,
procenty, kryty), jest liczone względem postaci bez noszonej broni — więc
broń w ręku i dwie w plecaku są czytane na tym samym ciele. Obrażenia
umiejętności nie wchodzą w cios (linia PvP, której świat jeszcze nie używa);
szybkość ataku to ciosy na sekundę, nie obrażenia na cios. Żadna sztuczna
„premia” nie jest już potrzebna, żeby Riba 48% śr. wygrała z niższą bronią +9 —
robią to liczby.
Wyzeruj świat i zacznij od nowa — działa (NieBijOddam)
„Brak możliwości wyzerowania serwera”: cztery próby z rzędu kończyły się „Nie
udało się usunąć wolumenu … czy serwer na pewno jest zatrzymany?”. Był
zatrzymany — ale launcher zatrzymuje stos przez compose stop, które zostawia
kontenery, a zatrzymany kontener wciąż trzyma swój wolumen. Reset usuwa najpierw
każdy kontener, który się do wolumenu odwołuje, potem wolumen; następny start
odtwarza kontenery jak po aktualizacji. Opcja nazywa się teraz „Wyzeruj świat i
zacznij od nowa” (przycisk KOPIA / NOWY SWIAT, w menu tekstowym pozycja 17):
po wyzerowaniu serwer uruchamia się sam na nowym świecie, bez klikania GRAJ.
Kopia starego świata jak dotąd trafia do backups.
Pakiet wsparcia niesie logi sklepów offline
Pakiet FanFara nie miał ani jednej linii o sklepach offline, bo lista
wzorców grep w launcherze nie znała PLAYERBOT_OFFLINE; „czy sklepy w ogóle
powstały” trzeba było wnioskować ze spisu straganów. Dochodzą PLAYERBOT_OFFLINE,
PLAYERBOT_MARKET i PLAYERBOT_BAG (scalanie i sortowanie plecaka — to ono
zdradza pętlę wyżej).
Sprostowanie do 2.0.27
Opis 2.0.27 twierdził, że odmowa Teleportera była sprawdzona na żywo. Nie była: poprawka jest sprawdzona kompilacją na obu silnikach, a na świecie testowym nie dało się wymusić samej odmowy (boty z niedoborem yang nie są tam wysyłane pod Teleporter). Potwierdzenie przyjdzie z logów graczy; wpis w wątku kimakatsu poprawiony.
Dla sizowskiego: „boty nie wystawiają sklepów”
Pakiet z 11:57 był jeszcze z 2.0.25: spis pokazywał 1–21 klasycznych straganów
na rdzeń, bo po serii stoisk straganiarz odpoczywa 30–90 min, a 2.0.24 zabrało
straganom materiały (idą do magazynu) i podniosło próg zapasowej broni do +7.
Od 2.0.26 straganu klasycznego nie ma — bot stawia sklep offline na 8 h i idzie
grać, a po 8 h opłaca go na nowo, jeśli został towar. Jeśli po 2.0.28 sklepów
offline dalej nie widać, nowy pakiet wsparcia pokaże PLAYERBOT_OFFLINE: create
albo powód odmowy.
Wersja 2.0.27 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Pilna poprawka: wywałka rdzenia — aktualizuj od razu.
Wywałka rdzenia, gdy Teleporter odmawia botowi (kimakatsu)
kimakatsu zdiagnozował to co do joty: linia logu, którą bot pisze, gdy Teleporter odmawia mu przejazdu (za niski poziom albo za mało yang), miała dla yang miejsce 32-bitowe, a rdzeń tej linii trzyma yang 64-bitowo. Pozostałe wartości przesuwały się o jedno miejsce, numer mapy trafiał tam, gdzie miał być tekst powodu, rdzeń próbował go czytać jako tekst — i padał. Każda odmowa zabijała rdzeń, więc ta linia nigdy nie trafiła do żadnego logu. Poprawione tu i w dwunastu innych miejscach, gdzie yang szedł do logu tym samym błędnym wzorcem (te tylko pokazywały złe liczby). Poprawka sprawdzona kompilacją na obu silnikach; samej odmowy nie udało się wymusić na świecie testowym (boty z niedoborem yang nie są tam w ogóle wysyłane pod Teleporter), więc potwierdzenie na żywo przyjdzie z logów graczy.
Boty używają wspomagaczy, kamieni bonusów i eliksirów zamiast je sprzedawać (Pasywny)
„Bot zamiast użyć i dodać bony to posprzedawał handlarzowi”. Bot rozpoznawał wspomagacze i kamienie bonusów po numerach (vnum), a na tych plikach każda z tych rzeczy ma po kilka numerów — Mikstura Ataku +10 ma trzy, Zielona Siła/Zielony Czar (dodanie/zmiana bonusu) po trzy; kopie z ItemShopu (76xxx) nie mają do tego blokady sprzedaży, więc dostane z panelu szły do handlarza za grosze. Teraz bot rozpoznaje je po tym, co robi z nimi gra, nie po numerze: każdy czasowy wspomagacz (atak, obrona, szybkość, krytyk, przebicie, zestaw Boga Smoków, pierścień doświadczenia, zielone/fioletowe mikstury, soki, sushi) jest wypijany na początku walki — jednego rodzaju naraz, a gra sama odmawia drugiej tej samej mikstury, póki pierwsza działa; każdy kamień dodania/zmiany bonusu i marmur idą na ekwipunek (bot najpierw sięga po ten, który ma w plecaku, dopiero potem kupuje); Eliksir Księżyca (doświadczenie) jest wypijany od razu, gdy bot go ma; a Wykrywacz Kamieni Metin — botowi na nic (rysuje po kliencie), graczom potrzebny — trafia na ladę jako towar. Żadna z tych rzeczy nie jest już złomem dla handlarza. Łuk +0 bez bonusów u handlarza zostaje, jak było.
Wersja 2.0.26 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty prowadzą prawdziwe sklepy offline i idą grać dalej
Dotąd bot wystawiał klasyczny stragan: stał przy nim jako tobołek i czekał, aż
sprzeda wszystko albo minie czas. Teraz otwiera prawdziwy sklep offline —
ten sam, który mają gracze na tych plikach (ikashop): niezależny byt na
pierścieniu straganów, opłacony na 8 godzin (6000 yang), z szyldem, ceną i
towarem wybranym po staremu — a sam bot od razu wraca do gry: poluje,
expi, robi Biologa, jeździ do kowala. Co 10–15 minut wraca do sklepu na krótką
wizytę serwisową: odbiera utarg ze skrytki sklepu, dokłada jeden przedmiot,
raz na godzinę przelicza jedną cenę wg rynku, a wygasły sklep z towarem opłaca
na nowo. Boty kupują też u siebie nawzajem w sklepach offline (te same reguły
„czy chcę to kupić” co przy straganach). Każde żądanie do bazy (założenie,
dołożenie, zmiana ceny, odbiór, zakup) jest zapisane w dzienniku i nigdy nie
jest ponawiane po przekroczeniu czasu — silnik nie ma klucza idempotentności,
więc powtórka mogłaby zdublować przedmiot lub yang; nierozwiązane żądanie
tylko wstrzymuje handel tego bota, gra idzie dalej. Zmiana bazuje na pracy
Codexa (handoff 2026-09-13): dziennik żądań z testem jednostkowym, serwis
sklepu, zakupy, hooki Sent/Complete w silniku przez playerbotify.py, oraz
poprawka rdzenia db, która odsyła kupującemu odmowę blokady (dwóch kupujących,
jeden przedmiot). Sprawdzone na żywo: 47 sklepów założonych i potwierdzonych
przez rdzeń db, 24 zakupy bot→bot, właściciele w statusie „Walczy / Podróżuje /
Robi Biologa”, a nie „Prowadzi stragan”. Na www ranking „Stragany” czyta
teraz tabelę sklepów offline (player.ikashop_offlineshop), a „mapa” to
miejsce sklepu, nie miejsce, gdzie akurat poluje właściciel. Klasyczny stragan
zostaje na linii r40250; na tej linii otwarty jeszcze stragan klasyczny jest
zamykany raz przy pierwszym ticku („migrate_offline”), bez utraty przedmiotów.
Poziom startowy botów: zawsze 1
Sprawdzone od podszewki po zgłoszeniu „postacie 56 lvl mają itemy z M2”: seed
w każdej wersji w historii wstawia level = 1, oba wyrenderowane SQL-e też, a
w bazie serwera z tym zgłoszeniem 1500 botów miało 1–5 lvl. Jedyna droga do
skoku poziomu bez expa to karta „⭐ Ustaw poziom” w panelu, klikana ręcznie na
konkretnej postaci — taki bot zostaje ze starym ekwipunkiem, aż przebierze go
zakup zbroi (2.0.22) i premia broni (2.0.24/25). Poprawiono też mylną notatkę w
dokumentacji o „kohorcie 50 lvl z seeda” — nigdy jej nie było.
Wersja 2.0.25 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian. Poprawki do 2.0.24 wg uwag Tieru.
Broń: w PvE liczą się średnie obrażenia, umiejętności zostają do PvP
Premia „którą broń założyć” liczy się teraz ze średnich obrażeń dla każdej klasy — także dla sury i maga. W PvE (rozbijanie metinów i potworów zwykłym atakiem) liczą się średnie obrażenia, a nie umiejętności; linia umiejętności to bonus do PvP, którego jeszcze nie wdrożyliśmy. Dzięki temu bot zakłada Ribę 48% czy Antyka 40% średnich i już nie zostaje w wachlarzu +9 obok Antyka ze średnimi. Osobno: broń ze średnimi umiejętności powyżej 21% nie jest już mieszana Zmianą Bonusów u żadnej klasy — zostaje jako ładny bonus do PvP albo idzie na stragan offline, zamiast zostać zniszczona.
Łucznicy-ninja: sztylet +4 u kowala, albo nie zaczepiają metina sami
Sztylet do metinów jest ulepszany u kowala do co najmniej +4 (poprzednio napisałem mylnie „w plecaku” — ulepszanie idzie przez kowala, tak jak dla noszonej broni). Dopóki łucznik nie ma sztyletu co najmniej +4, nie zaczepia metina w pojedynkę — samym łukiem i tak sobie nie poradzi. Może za to dobić metina z łuku, jeśli ktoś inny (bot albo gracz) już go bije.
Wersja 2.0.24 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty zakładają broń 30 lvl ze średnimi zamiast gorszej ulepszonej
„Boty mają w dupie bronie 30 lvl ze średnimi — bot ma Ribę 48 średnie w EQ, a biega w Kosie Bojowej +6” (sosen94). Nieulepszona broń-nagroda ze średnią 48% przegrywała w ocenie z bronią +6/+9 niższego poziomu, bo mnożnik działał na jej niską bazę. Teraz broń z linią średnich (albo, u maga, umiejętności) na poziomie progu (25%) dostaje premię proporcjonalną do tej linii, więc bot ją zakłada i dopiero ulepsza — a przy tym gorsza, ale bardziej ulepszona broń już nie wygrywa.
Łucznicy-ninja ulepszają sztylet do metinów (co najmniej +4)
„Powinni używać ulepszonych sztyletów na co najmniej +4, nie niżej, bo nic z tego nie będzie” (Tieru). Łucznik rozbija metiny sztyletem, ale sztylet leży w plecaku (gdy trzyma łuk), więc nigdy nie liczył się ani jako ulepszenie do założenia, ani jako lepszy zapas — i zostawał na +0, którym metina się nie rozbije. Teraz wybrany sztylet do metinów jest ulepszany w plecaku jak noszona broń, z celem +4: kroki +1..+4 to na tych plikach po 90%, więc dojście jest tanie i prawie bez spalenia, a zwój w plecaku dalej niesie go wyżej.
Stragany na duplikaty nie zalewają miasta
„759 botów »Prowadzę stragan (zbędny duplikat)«” (AkhiGubernator) — poprawka z 2.0.22 otwierała stragan na każdy duplikat od +4, więc niemal każdy bot z drugą bronią czy zbroją w plecaku wystawiał się, ignorując suwak handlu. Teraz stragan na zbędny duplikat otwiera się dopiero od +7 (naprawdę wartościowy, jak FMS +9 z pierwotnego zgłoszenia), więc miasto nie jest zalewane.
Materiały pod presją plecaka trafiają do magazynu, nie do handlarza
Na prośbę Tieru: gdy w plecaku brakuje miejsca, ulepszacze (materiały) idą teraz do magazynu u Dozorcy (M1/M2), a nie do handlarza za grosze. Materiał, którego ktoś potrzebuje, dalej trafia na stragan; do magazynu idzie tylko to, czego bot nie sprzeda na ladzie.
Handlarz tylko dla przypartego do ściany
„Jeśli wystawiają stragan bo mają extra, a nie że potrzebują yang, to mogą stać ile trzeba” (AkhiGubernator). Przymusowa sprzedaż niesprzedanego towaru handlarzowi po sześciu wystawieniach działa teraz tylko pod presją plecaka. Bot, który po prostu ma nadwyżkę, może wystawiać ją dowolnie długo.
Koniec drżenia konia przy podróży (wsiada/zsiada co sekundę)
Bot z koniem transportowym w drodze przez zatłoczoną mapę (np. pustynię) łapał mijanego potwora, zsiadał do walki pieszej, a pas podróży zaraz znów go wsadzał na konia — i tak w kółko, po parę razy na sekundę, nie robiąc ani kroku (sizowski: KimJestes2 wsiadał i zsiadał co sekundę przez minuty). Teraz koń transportowy nie wsiada na etap podróży, dopóki bot ma żywy cel do walki pieszej — walkę oddaje pasowi walki, a po jej końcu jedzie dalej. Samoobrona działa jak dawniej.
Panel: martwy suwak i tłok w mieście
Suwak „Polowanie” (HUNTING) sterował misjami polowań, które na tej linii są
wyłączone (quest w _unused), więc nic nie robił — ukryty na wersji mt2009;
leveling steruje suwak „Poziom”. Tłum botów „Oglądam stragany” w mieście to
odpoczynek (suwak „Odpoczynek”): to celowe i sterowane suwakiem, nie błąd.
Wersja 2.0.23 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty wracają Pierścieniem Teleportacji, gdy skończą się mikstury
Bot na mapie frontu (Dolina Orków, Pustynia, Góra Sohan, Loch Pająków), któremu skończyły się mikstury albo broń, i który ma w plecaku Pierścień Teleportacji (poziom 30+), wraca teraz do miasta od razu, zamiast iść pieszo do portalu przez całą mapę. Pierścień nie znika — działa raz na 30 minut, jak jego własny czas odnowienia.
Boty sortują ekwipunek
Co jakiś czas bot porządkuje plecak: mikstury na pierwszych liniach, potem
wspomagacze i mikstury szybkości, potem skrzynie i klucze. Przenoszone są tylko
pojedyncze przedmioty i wyłącznie na puste, wcześniejsze pola — silnikowym
MoveItem, który nigdy nie usuwa ani nie nadpisuje, więc nic nie może zginąć ani
się zbugować. Ekwipunek (zbroje, bronie) zostaje na miejscu.
Kupony Smoczych Monet z metinów i bossów
ItemShop używa Smoczych Monet, a w grze nie było jak ich zdobyć. Teraz z rozbicia
Metina i z zabicia bossa jest niewielka szansa na Kupon SM (użyty dolicza monety
na konto). Domyślnie ostrożnie: 3‰ z metina, 50‰ z bossa — do wyważenia przez
M2_DRAGON_COIN_STONE_PERMILLE i M2_DRAGON_COIN_BOSS_PERMILLE.
Wersja 2.0.22 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty noszą zbroję — kupują u handlarza, gdy nie ma dokładnego poziomu
„Czemu większość botów nie nosi zbroi?” Handlarz zbroi (9002) sprzedaje pancerz tylko na poziomy 0/18/26 danej klasy, a drabinka progresji celuje w poziomy 9, 34, 42 i wyżej — więc bot między dwoma sprzedawanymi poziomami albo powyżej najwyższego nigdy nie mógł kupić i chodził z pustym slotem (ćwierć populacji nie miała zbroi na tułowiu). Teraz, gdy handlarz nie ma dokładnego poziomu, bot kupuje najlepszy pancerz/tarczę/hełm, jaki handlarz ma i na jaki pozwala jego poziom, zakłada go i ulepsza u kowala (co najmniej +6). Nie kupuje drugiej kopii tego, czego handlarz nie przebije, ani gorszego.
Boty sprzedają zbędny duplikat (np. drugi FMS +9)
„Boty nie sprzedają FMS +9, gdy mają dwa w ekwipunku” (Ciapek). Straganiarz już wystawiał taki zapas, ale nic nie otwierało straganu, gdy plecak był poza tym pusty. Teraz zbędny duplikat broni lub zbroi (slot już zajęty lepszym lub równym, a duplikat jest od +4) jest powodem, by otworzyć stragan — niezależnie od losu i zapełnienia plecaka.
Bonusy: broń 30/75 z wysoką średnią nie jest mieszana, zmiana tylko od +5
„Dałem botowi FMS z bonusami po 1000, a on zmienił bonusy” (Ciapek). Broń na poziom 30 lub 75, która ma linię średnich obrażeń lub średnich obrażeń umiejętności ≥ 25%, jest teraz „skończona” — Zmiana Bonusów jej nie rusza. Kamień Zmiany nie jest już używany na przedmiotach od +0 do +4; dopiero od +5.
Magazyn na księgi: pierwsza wizyta nie gubiła depozytu
Strona magazynu, którą opłata dopiero co utworzyła, powstaje w rdzeniu db o jedno odbicie później, więc przy pierwszej płatnej wizycie skrytka ładowała się bez ważnego miejsca i depozyt lądował donikąd (deposited=0, 74 księgi w plecaku na stałe — u uxietoszefa). Teraz bot rozpoznaje „strona jeszcze niegotowa”, nie zgłasza fikcyjnego depozytu i wraca przy następnej wizycie (bez ponownej opłaty).
Misje polowania wyłączone na tych plikach
Quest levelup.quest (misje „Polowanie: Lv X • Potwór: 0/N”) leży w
quest/_unused — żaden hook zabójstwa nie działa, więc licznik nigdy nie schodził
z „0/40”, a misja wysyłała niedozbrojone boty pod swojego potwora (np. na Górę
Sohan). Wyłączona w kodzie i ukryta w panelu; boty polują teraz według doboru map
frontu i pasm poziomów w hubach.
Nazwy ksiąg umiejętności w ekwipunku na www
„W ekwipunku księgi umiejętności — nie wiadomo jakie”. Klasyczny panel pokazuje teraz nazwę umiejętności z gniazda księgi, np. „Księga Umiejętności: Aura Miecza”.
Historia ekwipunku: na jaki przedmiot nałożono bonus
Obok zużytego kamienia historia zapisuje teraz przedmiot, na którym użyto Wzmocnienia, Zmiany lub Marmuru — „Zmieniono bonusy” przy danej broni czy zbroi.
Panel bez hasła administratora
Projekt jest singleplayer, więc panele (klasyczny i zaawansowany) dają od razu pełny dostęp bez pytania o hasło. Serwer nasłuchuje tylko lokalnie; operator, który wystawi panel publicznie, włącza hasło (M2_PANEL_LOCAL_ONLY=0 albo tryb za nginx).
Wersja 2.0.21 (13.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Bot kupował wędkę za wędką
„Bot nie ogarnął, że jedna wędka wystarczy” (sizowski: osiem Wędek+0 w
osiem sekund, potem plecak z piętnastoma). Wędka zajmuje trzy pola, a
kontrola miejsca przed zakupem pytała o jedno: plecak z pojedynczymi
dziurami i bez wolnej kolumny przechodził test, bot płacił, silnik kładł
wędkę na ziemi (AutoGiveItem nie odmawia — zrzuca), licznik wędek dalej
mówił zero i w następnym ticku bot kupował znowu; potem zbierał je z
ziemi. Zakup pyta o miejsce wielkości przedmiotu i sprawdza, że kupiona
rzecz trafiła do plecaka, a nie na trawę.
Cztery bonusy przez Wzmocnienie, piąty tylko Marmurem
„Boty dodają sobie do przedmiotów 5 bonusów, gdzie wzmocnienie dodaje
maksymalnie 4”. Bot wołał AddAttribute() wprost, bez szansy i do pięciu
linii. Teraz jak gracz: Wzmocnienie Przedmiotu dodaje linię tylko poniżej
czterech, z szansą silnika (100/80/60/50%), a piątą dodaje wyłącznie Marmur
Błogosławieństwa z plecaka, na przedmiocie z dokładnie czterema, z szansą
30%; kamień i marmur schodzą przy każdej próbie, także nieudanej. Marmuru
nikt nie sprzedaje, więc bot bez niego kończy na czterech.
Biolog: po dziesięciu zębach bot oddawał kolejne
„Bot skończył misję, a mimo to dalej chodzi i oddaje zęby orka” (martynka19cm:
22 zęby). Indeks stanu skompilowanego questu to hash nazwy i bywa ujemny —
key_item questu Zęba Orka to −1726153001 — a kod traktował ujemny indeks
jako „nieznany”. Po dziesiątym zaakceptowanym zębie stan nigdy nie
przechodził do key_item, licznik zostawał na dziesięciu i każda wizyta z
zębem w plecaku była kolejnym oddaniem. „Nieznany” ma teraz własną wartość,
więc po dziesięciu zębach bot idzie po Kamień Duszy z Elitarnych Orków, a z
nim po nagrodę. Bot, który utknął z dziesięcioma zaliczonymi, przejdzie
dalej przy najbliższym zaakceptowanym zębie.
Boty sprzedawały handlarzowi ulepszacze, marmury i materiały
„Boty sprzedają ulepszacze oraz marmury polimorfii handlarzowi” (sizowski: Kawałek Lodu, Stalowy Grot, Futro Yeti, Zwój Kamienia Duszy, Marmur — wszystko za grosze u handlarza). Trzy reguły naraz:
- Marmur Polimorfii (typ 19) był złomem — nic go nie wyłączało z domyślnej odpowiedzi „sprzedaj”. Teraz to towar na stragan; handlarz bierze go tylko pod presją plecaka, gdy bot nie ma gdzie otworzyć lady.
- Materiał, którego nikt nie potrzebował (ledger: popyt 0), szedł do handlarza z plecaka z zapasem miejsca. Teraz każdy materiał trafia do handlarza wyłącznie pod presją plecaka, a przy popycie tylko wtedy, gdy bot nie może prowadzić straganu.
- Kup, a potem sprzedaj po tej samej cenie (Żółć Niedźwiedzia x2 za 47 006): bot brakujący jednej sztuki kupował paczkę dwóch, przestawał „brakować” i wystawiał obie na własnej ladzie. Lada wystawia tylko nadwyżkę ponad rezerwę — dwukrotność największej liczby z przepisu, tę samą miarą, którą liczy „brak” — a podział na paczki zostawia rezerwę w stosie bazowym.
Plik polityki przedmiotów: playerbot_item_policy.tsv
Na prośbę „stwórz mi jakiś prosty plik, gdzie oznaczę wartość przedmiotów”.
W spoolu (/opt/m2spool/playerbot_item_policy.tsv, obok wag) jedna linia na
przedmiot: numer (vnum) albo cały typ (type:19), tabulator lub spacja i
słowo: keep/zostaw (nigdy nie opuszcza plecaka), stall/stragan (towar
na ladę, przed wszystkim innym), merchant/handlarz (do handlarza NPC przy
najbliższej wizycie), drop/wyrzuc (wyrzucony przy wizycie u handlarza, bez
sprzedaży). # zaczyna komentarz. Rdzeń czyta plik jak wagi — co pięć sekund
sprawdza, czy się zmienił — i loguje PLAYERBOT_CONFIG: item policy read.
Czego w pliku nie ma, podlega regułom botów. Panel klasyczny ma stronę
Zachowanie botów → Co boty mogą sprzedawać (/ai/items): pole tekstowe,
kontrola każdej linii, zapis. Przykład:
30048 stall # Kawalek Lodu
type:19 stall # marmury polimorfii
50703 drop # Kwiat Kaki po zaliczonym biologu
Okazy biologa nie idą na stragan
„Boty wystawiają przedmioty do badań — niech ich nie wystawiają, jak mają
quest zrobiony, to niech sprzedają u handlarza albo wyrzucają”. Kwiat
Brzoskwini, Pokrzywa, Kwiat Kaki, Korzeń Gango, Bez i Grzyb Tue z zaliczonego
etapu były towarem na ladę (350 punktów). Teraz to złom dla handlarza —
sprzedawany przy najbliższej wizycie w mieście, a drop w pliku polityki
każe je wyrzucić. Ząb Orka zostaje materiałem (ledger), Kamień Duszy nigdy nie
jest nadwyżką.
Straganiarz krążący do niedostępnego stanowiska
Z badania AkhiGubernatora: bot PoMieLoNy (map 3) przez noc powtarzał marsz na
własne stanowisko. Losowe przesunięcie w pierścieniu targu trafiło na ziemię,
której teren bota nie łączy; marsz do miasta przenosił cel na własny grunt,
bot dochodził, test dojścia (liczony do stanowiska) nie przechodził i ten sam
odcinek planował się od nowa (goal moved onto reachable ground 3691/min na
mapie 41). Przed marszem stanowisko jest sprawdzane (CanReach), próbowane są
cztery alternatywne przesunięcia (PLAYERBOT_SHOP_PITCH_TRIES), a gdy żadne
nie łączy, stragan odkłada się na 5–10 minut z linią PLAYERBOT_SHOP: pitch
unreachable. Pierścień, w którym rescue szuka własnego gruntu, mieści się
teraz w promieniu dojścia łącznie z narożnikami (arrivalDistance / 71
komórek) — wcześniej narożnik za promieniem był celem, do którego bot
dochodził i „nie dochodził”.
Panel seban: „Możliwie zawieszony” dla każdego straganiarza
Flaga liczyła się z tekstu statusu (tylko „łowi”/„ryb”), a lista akcji kończyła
się na 12 — stragan (13), wędka (14), przegląd straganów (15), wabienie (16) i
odpoczynek (17) wyświetlały się jako #13…#17 i każdy bot za ladą był
„zawieszony”. Flaga pyta akcji rdzenia (trener, handlarz, kowal, stragan,
wędka, targ, odpoczynek stoją w miejscu z własnej woli), a nazwy akcji sięgają
do 17.
Polskie znaki w nazwach NPC i na czacie: rdzeń db łączy się w cp1250
Baza jest w CP1250 (2.0.20), ale rdzeń db (Main.cpp) domyślnie ustawia
LOCALE = latin2 i tak nazywa swoje połączenia SQL — nazwy NPC i przedmiotów
przechodziły przez latin2 i traciły ł/ś/ź. m2-render-config wpisuje
LOCALE = "cp1250" do db/conf.txt; w logu rdzenia db pojawia się
mysql_set_character_set(cp1250). Diagnoza: audyt Codex
polskie-znaki-mt2009-20260912.
„250 niewidzialnych botów na 1 lvl z 2500 yang” (Matthaeus)
To nie boty, tylko tożsamości z seedu, których rdzeń nie wystartował: paczka
wsparcia jest z 2.0.8 (log z 11 września), autospawn requested=117
started=117, rejestr 2499 użytecznych. Reszta to postacie w bazie, widoczne w
rankingach panelu, nieobecne w świecie. Po aktualizacji i podniesieniu suwaka
liczby botów wstają — nie ma czego naprawiać w rdzeniu.
Wersja 2.0.20 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Stragany znikały: pętla dzielenia i scalania stosów przy pełnym plecaku
„Stan Chunjo M1: 2 sklepy” (sizowski, z paczką: cenzus 50 → 15 → 2 stragany
w dwadzieścia minut, 6 066 „split for the counter” i 4 054 „merged” w
kwadrans na jednym rdzeniu). Licznik wolnych pól plecaka patrzył na
wskaźniki przedmiotów, a silnik trzyma wskaźnik tylko w górnej komórce i
znaczy resztę w siatce zajętości — broń o trzech polach wyglądała jak jedno
zajęte i dwa wolne. Straganiarz dzielił stosy na sztuki „zostawiając trzy
wolne pola”, które były dołami mieczy, pakiet sklepu nie miał pola,
scalanie zwalniało jedno, dzielenie brało je z powrotem — co trzy sekundy,
bez końca, i stragan nigdy nie stawał. Wolne pole to teraz to, co mówi
siatka silnika (IsEmptyItemGrid); ta sama miara stoi pod progiem pełnego
plecaka, ciśnieniem w plecaku i rezerwą na zestaw ze skrzyni, więc wszystkie
trzy były dotąd zawyżone o wysokość sprzętu w torbie.
Ceny wg Iwakury: księgi umiejętności i mnożniki bonusów
Księga Umiejętności ma cenę bazową na umiejętność (44 pozycje z jego listy,
od Aury Miecza 75 000 do Bezszelestnego Chodu 5 000), skalowaną mnożnikiem
yang serwera (mob_gold: przy 200% ceny podwajają się), z losowym
rozrzutem 0,8–1,25 na każde wystawienie; pamięć sprzedaży działa jak dotąd.
Portfele botów nie podbijają już cen ksiąg. Bonusy na sprzęcie mnożą cenę
wg jego tabeli: dla każdego slotu i bonusu jeden mnożnik za wartość
maksymalną (odczytaną z własnej tabeli silnika item_attr) i jeden za każdą
inną, rasy z podziałem na poziom 33; średnie obrażenia i obrażenia
umiejętności na broni progami (średnie 40–45 to ×6, 60 to ×70; umiejętności
25–29 to ×14, 30 to ×40). Mnożniki się składają, z sufitem stukrotności.
Bonusy spoza tabeli (regeneracja staminy, czas trwania umiejętności, odbicie
pocisku) nie zmieniają ceny. „Mnożnik bywa agresywny” — do delikatnej
korekty, gdy ceny w praniu wyjdą nieodpowiednie.
Wersja 2.0.19 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Ulepszony przedmiot nie schodzi na straganie poniżej tego, co kosztował u kowala
„Miecz+4 za 90 yang, Sejmitar+4 za 582, sztylet +5 za 117 — niech cena
minimalna będzie tym, co poszło na ulepszenie” (djariczek). Cena wywoławcza
skalowała cenę handlarza za przedmiot bazowy medianą portfeli, a na świeżym
świecie jedno i drugie to grosze. Teraz podłogą jest suma opłat kowala za
każdy krok od przedmiotu bazowego do tego plusa, odczytana z własnych tabel
silnika (refine_proto), każdy krok liczony po tym, ile średnio kosztuje
jego przejście: koszt razy 100 przez szansę — bo krok, który przy +7 nie
wychodzi sześć razy na dziesięć, płaci się więcej niż raz, a ostatnia
porażka zabiera przedmiot. To jest ten procent za ryzyko: 11% przy +1, 100%
przy +6, ponad 200% przy +9. Miecz+4 nie schodzi poniżej 6 778 yang (opłaty
400 + 800 + 1 600 + 3 300), Mnisia Zbroja Płytowa+4 poniżej 8 400. Podłoga
trzyma pod każdym wyjściem wyceny — pod cenami stałymi +7/+8/+9, pod ceną
złomu, pod pamięcią sprzedaży i limiterem kroku — oraz pod rabatami za
niesprzedane stoiska i „Wyprzedaż” biednego straganiarza: rabat schodzi z
marży, nie z opłat. Materiały do ulepszeń nie są wliczane; mają własny
rynek. Przedmiot, który nie stoi na zwykłej drabinie plusów (wędrówka po
refined_vnum nie wraca do jego numeru), podłogi nie dostaje.
Zwój w plecaku to drabina do +9
„Mnóstwo zwojów na serwerze, a boty chyba ich nie używają”. Używały, ale rzadko: cel ulepszeń bota wyznaczała jego osobowość — sześć botów na dziesięć kończyło na +6 i tam stawało, choćby miało w plecaku Zwój Błogosławieństwa, a zwoje szły na stragan. Na stosie testowym leżało 660 zwojów u 482 botów, a na 45 ulepszeń do +7 tylko 9 poszło pod zwojem. Tymczasem pod Zwojem Błogosławieństwa albo Boga Smoków silnik nigdy nie niszczy przedmiotu (porażka to poziom w dół albo nic), więc powód, dla którego bot bał się +7, znika. Teraz zwój w plecaku podnosi cel do +9 — u kowala i w polu, bo zwój nie potrzebuje kowala — dla noszonych przedmiotów i broni z 30 poziomu, od +6 w górę, Boga Smoków od +7, gdy bot go ma; bez zwoju wraca dawna ambicja. Stragan zostawia botowi trzy pierwsze zwoje, dopóki jakiś noszony przedmiot ma je do czego użyć; reszta jest towarem, bo inne boty też ich potrzebują. Opłata i materiały z tabeli obowiązują jak dotąd.
Lagi klienta co kilkanaście sekund: jedno planowanie trasy trwało pięć sekund
„Klient laguje, stałe lagi co około 10–20 s” (sizowski, z paczką wsparcia).
W paczce: rdzeń game1 (1127 botów, mapy wspólne) spędzał w ticku botów
20–32 s z każdych 60, a pojedynczy tick sięgał 5,1 s — na ten czas rdzeń
nie obsługuje nikogo, więc każdy gracz na jego mapach zamiera. W środku
siedziały pojedyncze dalekie planowania trasy w Dolinie Orków po 1–5 s
(PLAYERBOT_NAV: far plan map=64 … cost_ms=5066), a nawet średnie plany
były 16–90 razy droższe niż na naszym stosie testowym przy tej samej
liczbie botów. Przyczyna: wyszukiwanie korytarzowe (A* z ważoną
heurystyką) nigdy nie zamykało komórki — komórka osiągnięta później
taniej wracała na stertę i była rozwijana ponownie, a przy karach za wodę
w dolinie dróg prawie równych jest bez liku, więc te same komórki
rozwijały się w kółko. Komórka zdjęta ze sterty jest teraz zamknięta na
stałe (trasa najwyżej odrobinę dłuższa), a za tym stoi twardy limit
60 000 rozwinięć: po nim wyszukiwanie oddaje najlepszą trasę częściową —
do komórki najbliższej celu — a bot planuje resztę stamtąd, zamiast
zgłaszać dotarcie. Każdy plan ponad 250 ms (i każdy daleki) zapisuje w
logu, co kosztował: abstract_ms, regions, fine_ms, expanded,
partial — następna wolna maszyna będzie do odczytania, nie do
zgadywania.
syserr: 2 773 linii o „Miksturze Ataku +15” w dwanaście minut
Z tej samej paczki: GetRefineLevel silnika porównuje plus z nazwy
bazowej z plusem z nazwy polskiej i przy różnicy pisze do syserr — a
„Mikstura Ataku +15” (71034/76018) to mikstura, której koreańska nazwa
kończy się gołym „+”. Każde spojrzenie bota do plecaka z taką miksturą to
była linia na dysku. Sprawdzenie dotyczy teraz tylko broni i zbroi.
Rdzeń db: brakująca tabela log.ikarusshop_log
Każde otwarcie sklepu offline i każda sprzedaż w nim kończyły się w syserr
rdzenia db linią „Table 'log.ikarusshop_log' doesn't exist” — żaden zrzut
w pakiecie nie definiuje tabeli, do której rdzeń pisze. Jest w schemacie
logów (logschemify.py), dokładany przy każdym starcie.
Crashe rdzeni z 2.0.11 i 2.0.12 — ślady zebrane
Ta sama paczka przyniosła pierwsze pliki crash-*.txt: sześć segfaultów
między 11:08 a 13:30, wszystkie na 2.0.11/2.0.12, żadnego od 2.0.13 przez
pięć i pół godziny. Trzy ślady kończą się w
CHARACTER::GetMoveMotionSpeed wołanym z Goto w ticku botów — to
wygląda na wiszący wskaźnik założonej broni, co pasuje do poprawki liczby
komórek plecaka z 2.0.13 (do 2.0.12 boty iterowały po 135 komórkach
zamiast 90). Dwa pozostałe ślady (libc z ticku) czekają na zbudowanie
binarki 2.0.11 do symbolizacji; jeśli plik crash-*.txt pojawi się na
2.0.17 lub nowszej, proszę o paczkę wsparcia.
Wersja 2.0.18 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Suwak „Grupy (PT)” naprawdę steruje liczbą grup
„Czy ustawiony na minimum, czy maksimum, grup na serwerze jest zawsze tyle
samo” (jaksiezabic, z tabelą: 1000 botów, 37 w grupach przy 25 i przy 250).
Waga PARTY docierała tylko do plannera — do rangi celu „wyzwanie grupowe”
bota, który już jest w grupie — a o tym, kto w ogóle może być w grupie,
decydowała rola „wojownik grupowy” losowana raz przy logowaniu (7% botów,
30% łuczników) i, na mapach frontowych, poziom obozu. Suwak nie miał więc
czego zmienić. Teraz waga wyznacza udział populacji dopuszczony do grup:
20% przy 100 („jak w grze”), 5% przy 25, 50% przy 250; wojownicy grupowi
zajmują pierwsze miejsca losowania, więc są ostatnimi, których suwak
zabiera, i pierwszymi, których oddaje. Na froncie podstawą jest cała mapa,
jak dotąd — obozy Czarnych Orków i bossowie to praca grupy — więc przy
wadze 100 nic się tam nie zmienia. Losowanie jest stałe po pid: ten sam
suwak jutro daje te same grupy. Bot poza kohortą opuszcza grupę przy
najbliższym sprawdzeniu (kilkanaście sekund od przesunięcia suwaka), nowi
dołączają w ciągu paru minut. Do logu trafia co dziesięć minut
PLAYERBOT_PARTY: census (ilu dopuszczonych, ilu w grupie, ile grup, waga).
Zmierzone na stosie testowym (2478 botów): przed poprawką 7% botów w
grupach; przy 250 — 30% (755 botów, 247 grup) po trzynastu minutach; po
przestawieniu na 25 — 3% (78 botów) po pięciu minutach. Tick rdzenia z
największą mapą: 9,6 s na 60 przed, 10,2 s przy 250, 8,4 s przy 25.
Wersja 2.0.17 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Skrzynie Blasku Księżyca: boty je otwierają, a na mt2009 w ogóle wypadają
Wyszukiwarka: znacznik straganu bez niemieckiej reklamy
„Niemiecki komunikat nad każdym sklepem po wyszukaniu zbroi” (vasils.). Efekt użyty w 2.0.15 jako kolumna światła to w tym kliencie promocja „Noch 1 Level-Up! … siehe www.metin2.de” rysowana nad postacią. Znacznikiem jest teraz fajerwerk, i tak też mówi komunikat w czacie.
Wersja 2.0.16 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty łowią ryby na mt2009
„Boty nie łowią ryb, brakuje ulepszaczy” (sizowski). Na tych plikach łowienie wymaga poziomu 50, flagi ukończonego wprowadzenia u Rybaka, przynęty na wędce i karty wędkarskiej — przedmiotu unikalnego na dobę, którego nikt nie sprzedaje, bo pochodzi z questa. Bot flagę ustawiał sobie sam i minigrę rozgrywał po stronie serwera, ale reguła wyprawy odmawiała mu wędkowania bez karty, a karty nie miał skąd wziąć — więc na żadnym świecie mt2009 żaden bot nigdy nie łowił. Bot od 50 poziomu kupuje kartę tak, jak kupuje Zwój Zapomnienia: za 50 tys. yang tworzoną na miejscu i od razu zakładaną, a kolejną, gdy ta wygaśnie. Poniżej 50 poziomu bot nad wodę nie idzie, bo silnik i tak odmówi. Do tego stanowisko, przy którym silnik nie widzi wody (tabele brzegu mierzone są na mapie drugiego silnika, a mapa mt2009 różni się o komórkę tu i tam — stanowisko Joan (67175,158125) jest na mt2009 suche), jest porzucane na stałe i bot idzie na następne; dotąd stał przy nim do końca sesji jako „never_cast”.
Księga z metina tylko do piętnastu poziomów nad kamieniem
„Na 46 poziomie leci drop KU z metinów 5, 10, 15” (cyfrowy_mat, uxietoszef). Dopisywanie jednej księgi do każdego metina (od 1.29) nie patrzyło na różnicę poziomów, choć własne tabele silnika wygaszają drop z różnicą poziomów. Księga jest dopisywana tylko, gdy zabójca ma najwyżej piętnaście poziomów więcej niż kamień; własny los tabeli metina zostaje.
Wersja 2.0.15 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Kowal tylko dla tego, co bot założy
„Pomimo że nosi lepszą broń, uparcie przepala yang u kowala na ulepszanie broni na 1 poziom, które są nikomu niepotrzebne, i to jednocześnie różnych” (elgrandebgc, z historią ekwipunku: Miecz +1 → +2 → +3, Glaive, Drewniane Kolczyki, Miedziany Naszyjnik, jeden spalony, pod Gilotynowym Ostrzem +4 i z 14 tys. yang w sakwie). Reguła złomu zostawia w plecaku sporo rzeczy celowo — towar zbieracza, wszystko od +4 na ladę, przedmiot z dobrymi liniami — a przejście kowala brało do ulepszania wszystko, czego reguła złomu nie oddała handlarzowi. Ulepszany z plecaka jest teraz tylko przedmiot, który bot założy: ulepszenie czekające na przejście ekwipunku albo jedyna na slot część wyższej rangi, z której kowal może zrobić ulepszenie. Towar idzie na ladę taki, jaki jest. Pomiar na stosie testowym (2482 boty, świat młody, 11–16 lvl): ulepszeń przedmiotu słabszej rangi niż noszony w tym slocie było 175 na pół godziny przed zmianą i 70 po niej; ulepszeń noszonych części tyle samo co wcześniej.
Wyszukiwarka oznacza stragany botów kolumną światła
„Znaleziono sklepy, ale nie są ani podświetlane, ani zaznaczone na mapie” (sizowski, po 2.0.13). Klient tych plików podświetla i rysuje na mapie tylko byty sklepów offline — trzyma ich listę z własnego pakietu systemu ikarus — a stragan bota to zwykły sklep prywatny na postaci, więc numer z listy wyników niczego mu nie wskazywał. Nad każdym znalezionym straganem bota pojawia się teraz kolumna światła (efekt awansu, widoczny tylko dla szukającego), a czat mówi, ile straganów botów znaleziono. Na mapie klient nadal zaznacza tylko sklepy offline — to jest po jego stronie.
Kompilacja dopasowana do pamięci, nie do rdzeni
Wersja 2.0.14 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Panel klasyczny: polskie znaki w nazwach przedmiotów
W 2.0.13 panel czyta nazwy z item_proto tego świata, ale kolumna jest w
CP1250, a połączenie panelu z bazą w latin1 — serwer bazy konwertował
nazwy po drodze i każda litera, której latin1 nie ma („ł, ś, ż, ę, ń”),
przychodziła jako „?”: „Skrzyd?a Demona Chakr.”, „Zw?j B?ogos?awie?stwa”.
Panel prosi teraz o surowe bajty i dekoduje je sam. Sprawdzone na 6001
nazwach: ani jednego znaku zapytania.
Panel klasyczny: bazowe statystyki przedmiotu w dymku
Dymek przedmiotu pokazywał linie bonusów i sloty, a wartość ataku, obronę,
stałe bonusy przedmiotu i wymagany poziom brał ze statycznej tabeli linii
1.x — dla przedmiotu, który ma tam ten sam numer, były to liczby drugiego
silnika, dla reszty nic. Na mt2009 te pola też idą z item_proto tego
świata i dymek liczy je jak klient: Lwi Miecz +9 to „Wartość Ataku 226–251”,
„Wartość Magicznego Ataku 163–209”, „Szybkość Ataku +26%” i „Wymagany
Poziom 75”, dokładnie jak w grze.
Wersja 2.0.13 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Profil wyposażenia czterech GM na koncie admin
Konto admin ma cztery postacie GM — Admin (wojownik), AdminNinja,
AdminSura i postać operatora — i dotąd tylko generator gm_characters.sql
je wyposażał: raz, przy tworzeniu, bez umiejętności, bez konia w siodle i
bez eliksirów; postać założoną ręcznie przed dodaniem generatora (Tieru,
szamanka na poziomie 1 z wachlarzem +0) omijał w całości, a stosy 50 zwojów
i 50 medali w jednym rekordzie były stosami, których silnik nie utrzymuje
(proto: 20). Nowy quest gm_profile uruchamia się przy każdym logowaniu
postaci GM z konta admin i, gdy wersja profilu postaci jest starsza,
doprowadza ją do profilu przez własne ścieżki silnika: poziom 90, 500 mln
yang, grupa umiejętności 1 i umiejętności profesji na P (40), wspólne na
własnych sufitach (jazda 21, przywołanie konia 10, języki i konne 20),
koń 21, komplet +9 klasy z bonusami z audytu (docs/codex-audits/admin-gm-
mt2009-20260912) założony na postać, druga broń, 1000 strzał dla ninja,
plecak (księga wojskowego konia 50053, po 200 dużych eliksirów, zwoje po 20,
pierścień teleportacji, pełne automatyczne eliksiry 72726/72730 po dwie
sztuki), a kilka sekund po zalogowaniu włącza po jednym eliksirze każdego
rodzaju — przez tę samą ścieżkę użycia, którą idzie kliknięcie w kliencie,
bo tylko ona zakłada efekt regeneracji. Każdy krok pyta najpierw, co postać
już ma: przedmiot noszony lub leżący w plecaku nie jest dawany drugi raz,
stosy są dopełniane do minimum, a przy ponownym logowaniu i po restarcie
nic się nie dubluje (flaga wersji zapisywana na końcu). Starterowy złom —
broń +0 klasy i małe mikstury — schodzi dopiero, gdy broń profilu jest
założona; questy startowe dostają znacznik „wydano”, żeby nie nadały go
ponownie. Dobre przedmioty zostają. Do tego dwie poprawki silnika:
fabryka przedmiotów tworzyła każdy automatyczny eliksir jako zużyty (gniazdo
„zużyte” równe pojemności — świeży eliksir z NPC lub z panelu mówił
„pusty”), a questy dostały item.use() (przez UseItemEx, bo UseItem
odmawia wszystkiego, gdy działa skrypt questa). Silnik dopuszcza pięć
założeń na pół sekundy, a logowanie potrafi je zużyć, więc to, czego
logowanie nie założyło, ubiera timer kilka sekund później.
gm_characters.sql wpisuje stosy zgodne z proto i nie daje medali konnych.
Sprawdzone na stosie testowym na wszystkich czterech postaciach (w tym
Tieru z poziomu 1 i ninja z łukiem w ręku): komplet założony, eliksiry
włączone przez quest, po dwa–trzy logowania i restart rdzenia z tą samą
liczbą przedmiotów.
Gildie botów z nazwami od Iwakury
Boty zakładały gildie pod dwiema nazwami na królestwo — sześć gildii na
świat, a każdy kolejny założyciel zastawał obie nazwy zajęte. Pula to teraz
sto nazw z listy Iwakury (data/guild_names_iwakura.txt, „Shire”,
„UrzadPracy”, „TotalneBoty”…): założyciel zaczyna od miejsca wyliczonego z
własnego pid, bierze pierwszą nazwę, której żadna gildia na świecie nie
nosi, i pomija te dłuższe niż limit silnika (14 znaków na mt2009). Sam
system — założenie przez bota od 40 poziomu z 200 tys. yang, zaproszenia
dla botów tego samego królestwa w pobliżu, wspólne polowania na bossa przez
czat gildii — bez zmian; w tej wersji sprawdzony na żywo na stosie
testowym: stu botom Chunjo podniesiono poziom do 41, siedem gildii
powstało w trzy sekundy od startu (Biedronka, TotalneBoty, Vitality,
BlackWolfs, Zawodowcy, ZakonBigosu, Anarchia), 24 członków po trzech
minutach, tabele guild i guild_member wypełnione.
Linux: aktualizacja z paczki, nie z gita
Skrzynie nie wysypują się na ziemię
„Postać nadal źle sprawdza zajętość ekwipunku: otwierając skrzynię, wypada
to na ziemię” (sizowski, zrzut z Zieloną Siłą i Skrzynią Eksperta I na
trawie). Na mt2009 stała INVENTORY_MAX_NUM to 135 komórek: dwie strony
plecaka plus strona ekwipunku konia, do której silnik nie wkłada niczego,
dopóki postać jej nie odblokuje — bot nigdy tego nie robi. Każde liczenie
wolnych komórek w botach szło po 135, widziało 45 komórek‑duchów i skrzynia
„mieściła się” w plecaku, którego nie było; to samo przekłamanie siedziało
w regułach pełnego plecaka, nacisku na plecak i straganu. Boty liczą teraz
po INVENTORY_DEFAULT_MAX_NUM (90) — 84 miejsca w kodzie, jedna stała
PLAYERBOT_BAG_CELLS.
Wyszukiwarka przedmiotów widzi stragany botów
„Wyszukiwarka pokazuje 0 sklepów, mimo że przedmioty na pewno są na
straganach” (sizowski). Wyszukiwarka z tych plików przeszukiwała tylko
sklepy offline (system ikarus); stragan bota to zwykły sklep prywatny, więc
plac z trzystoma straganami odpowiadał „Znaleziono 0 sklepów”. Ten sam
przełącznik kategorii pyta teraz także lady każdego bota z otwartym
straganem na tej mapie w zasięgu wyszukiwarki i oznacza je na mapie jak
sklepy offline (ikarus_shop_manager.cpp, plik w paczce).
Panel klasyczny: nazwy, dane i rozmiary przedmiotów z tego świata
„Pomieszane nazwy angielskie/polskie, brak danych przedmiotu, miecz na dwa
sloty widoczny w jednym” (Tieru). Panel czytał nazwy i rozmiary z plików
linii 1.x (items.json, item_names_pl.txt) i tłumaczył resztę słowo po
słowie — stąd „Leather Buty”, „Azure Suit”, „Przedmiot #30347”. Na mt2009
panel czyta teraz player.item_proto tego świata (rdzeń db odświeża ją z
item_names.txt paczki przy każdym starcie): polskie nazwy, typ i rozmiar
w komórkach; siatka ekwipunku rysuje przedmiot na tyle komórek, ile ma.
Tabela ładuje się przy pierwszym użyciu i odświeża co godzinę.
Panel klasyczny bez hasła na serwerze tylko lokalnym
Teleport do bota z panelu klasycznego
„Nie działa teleportowanie do bota” (Tieru). Przycisk wybierał postać
gracza po najnowszym last_play, a ten zapis powstaje przy zapisie
postaci, minuty po zalogowaniu — wybierał więc postać, która grała
poprzednio, kolejkował teleport dla kogoś, kto nie jest w grze, odpowiadał
„timeout” i zostawiał wiersz w kolejce, żeby teleportować tamtą postać przy
jej następnym logowaniu. Odtworzone na stosie testowym: w grze Tieru, panel
kolejkował dla AdminSura. Panel pyta teraz wszystkie postacie graczy z
ostatniego tygodnia naraz, bierze pierwszą odpowiedź (tylko postać online
ją da) i wycofuje resztę. Sprawdzone: WarpSet Tieru … target map 1,
ponowne logowanie na rdzeniu docelowym w 3 sekundy, kolejka pusta.
Paczka logów zbiera też linie skrzyń i walk
PLAYERBOT_CHEST, PLAYERBOT_COMBAT i PLAYERBOT_STOCK w filtrze
sysloga — zgłoszenie o skrzyni na ziemi nie miało w paczce ani jednej
linii o skrzyniach.
Dwie tabele logów, których brakowało
„Unknown column 'hwid' in loginlog2” przy każdym logowaniu na świecie
założonym przed dodaniem tej kolumny (CREATE TABLE IF NOT EXISTS nigdy nie
dokłada kolumny) i „Table 'log.itemshop_dragon_scroll' doesn't exist” przy
zakupie w ItemShopie (quest paczki pisze do tabeli, której żaden zrzut nie
definiuje). Migrator dokłada kolumnę i tabelę przy każdym starcie;
sprawdzone dwukrotnym uruchomieniem na bazie testowej.
Wersja 2.0.12 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Logowanie nie wisi przy dużej liczbie botów
„Po aktualizacji 2.0.11 ciągle wisi na ekranie logowania”, „po zmniejszeniu
botów do 1500 działa” (sizowski). Odtworzone na stosie testowym z 2482
botami: rdzeń db odpowiadał na logowanie po 14–28 sekundach, klient dawał
sobie spokój wcześniej, a w logu rdzenia kanału zostawało
LoginSuccess - cannot find handle [admin]. Powód: tabele gry są na tej
linii InnoDB, a MariaDB domyślnie czeka na fsync przy każdym zapisie — na
dysku Docker Desktop to około 70 zapisów na sekundę, a 2482 boty zapisują
około stu (flagi statystyk, flagi questów, przedmioty). Kolejka zapytań
rdzenia db rosła do ~1900, a SELECT logowania stał na jej końcu.
innodb_flush_log_at_trx_commit = 2 w 99-metin2.cnf: log InnoDB jest
zrzucany co sekundę zamiast przy każdym zapisie. Przy awarii zasilania
przepada najwyżej sekunda zapisów; dla świata jednego gracza to właściwa
proporcja. Ustawienie wchodzi przy restarcie kontenera bazy (launcher robi
to przy aktualizacji). Zmierzone po zmianie, ten sam świat i 2482 boty:
kolejka rdzenia db 0, odpowiedź na logowanie po sekundzie, logowanie z
klienta przechodzi do wyboru postaci. To samo stało za „teleport na GM-ie
wywala mnie i nie mogę się zalogować ponownie” (marcol_): teleport między
rdzeniami to ponowne logowanie kluczem, które czekało w tej samej kolejce.
Boty na mt2009 wystawiają stragany
„2500 botów — 0 sklepów” (sizowski), „u mnie nie ma sklepów” (namiot_, pasywnezarabianie, mlodszygie). Dwie przyczyny, obie po stronie tego silnika:
- Siatka prywatnego sklepu ma tu dziesięć kolumn (
SHOP_PLAYER_WIDTH), a prawa połowa to sloty zablokowane albo premium. Boty układały linie na pięciu kolumnach jak na r40250 i każdą linię powyżej piątej wysyłały w zablokowaną połowę — silnik odrzucał cały stragan (w loguPLAYERBOT_SHOP: refused). Linia trafia teraz w ten sam wiersz i kolumnę siatki silnika. - Ten silnik daje prawo do sklepu od 15 poziomu i 800 zabitych potworów
(
CanOpenShop). Reguła dla ludzi; bot po każdym restarcie świata zaczynał liczyć od nowa, więc przez wiele godzin żaden nie handlował. Bot jest z niej zwolniony (zmiana wchar_shop.cpp, plik w paczce).
Zmierzone na stosie testowym z 2482 botami: przed zmianą 0 straganów w godzinę, po zmianie 113 otwartych w pięć minut od startu (13 Yongan, 66 Joan, 34 Pyongmoo), dwie odmowy silnika na 116 prób.
Księgi i medale bez czekania
„Księgi co 24 h” (namiot_), prośba operatora: bez limitu czasu na kolejną
Księgę Umiejętności i na kolejny medal konia. SKILLBOOK_LEARN_DELAY (21 h
w paczce mt2009) jest zerem — dla gracza i dla bota. Stajenny nie każe już
czekać 18 godzin na kolejny medal: pony_levelup.quest z paczki jedzie w
naszym katalogu questów z wyłączoną bramką next_time i jest kompilowany
przy budowie obrazu na miejsce oryginału.
M2_PLAYERBOT_KINGDOMS=0 wyłącza Shinsoo i Jinno także po zasiewie
„Ustawiłem KINGDOMS=0, a boty i tak pojawiają się w Jinno i Shinsoo”
(adijhos). Przełącznik działał tylko na zasiew: świat, który raz ruszył z 1,
miał tożsamości obu królestw w bazie i każdy rdzeń je startował. Rdzeń czyta
teraz ten sam przełącznik ze środowiska usługi game (linia w logu
PLAYERBOT: M2_PLAYERBOT_KINGDOMS=0 …) i przy 0 nie daje Shinsoo ani Jinno
żadnego przydziału. Boty zostają w bazie; 1 uruchamia je z powrotem.
Panel klasyczny sprawdza wersję swojej linii
„Sprawdź najnowszą wersję” mówiło 2.0.5, że jest najnowsza (archded,
l0st3k). Panel czytał VERSION z korzenia repozytorium, czyli wersję linii
1.x (1.33.3), i porównywał ją ze swoją 2.x. Panel mt2009 czyta
linux-port-mt2009/VERSION; panel 1.x dostaje dodatkowo zdanie, że istnieje
linia 2.x i że to osobna paczka z Discorda, nie aktualizacja.
Paczka logów: naprawiony grep, logowanie i rdzeń auth
game-supervise.txt w 2.0.11 zawierał tylko błąd PowerShella (brak grep
w Windows). Filtr robi teraz PowerShell. Do paczki wchodzą też linie
logowania z każdego rdzenia kanału (login-<rdzeń>.txt), rdzenia auth
(login-auth.txt, syserr-auth.txt) i rdzenia db (login-db.txt) — bez
nich zgłoszenie „wisi na logowaniu” nie miało w paczce ani jednego wiersza.
Bot w wiosce poluje na potwory swojego poziomu
„Biegają z 16 levelami po 11 h” (l0st3k), „boty biją na 9/10 lvlach nadal psy”. Zmierzone na stosie testowym (350 botów, mnożnik expa 100%): jedna trzecia walk w pierwszych wioskach toczyła się z potworem o sześć i więcej poziomów niższym od bota, poziom w okolicach 8–9 zajmował 40 minut, a 13–15 około dwóch godzin. Winne było pasmo hubu: bot brał każdy hub, którego potwory są do siedmiu poziomów niżej od niego, więc bot na 9 poziomie szedł według pid równie chętnie do psów (Dziki Pies, 15 expa) co do wilków swojego poziomu (Nieb. Alfa Wilk, 111 expa). Tabela kar za różnicę poziomów w tym silniku tego nie ogranicza — sześć poziomów niżej to wciąż 90% — niska jest sama baza. Hub jest teraz brany od dwóch poziomów nad botem do trzech pod nim, a gdy w wiosce nie ma hubu w tym paśmie, bot bierze huby najbliższego pasma zamiast dowolnego (bot na 16 poziomie w Yongan szedł dotąd gdziekolwiek, także do tygrysów na 25, których nie pokona, i do psów). Obozy grup wybierane są tą samą regułą.
Samo pasmo podwoiło awanse i nie ruszyło nikogo z miejsca: zasięg szukania celu to 6000 jednostek, tyle co komórka hubu, więc bot stojący przy wilkach swojego poziomu dalej widział psy sześć kilometrów dalej, a wędrówka do hubu — która dostaje tick tylko wtedy, gdy nie ma czego bić — nigdy go nie dostawała: 96 ze 115 botów w Joan stało dalej niż 2500 jednostek od jakiegokolwiek hubu. Druga połowa zmiany: w pierwszej wiosce potwór o sześć i więcej poziomów niższy od bota i dalej niż 800 jednostek nie jest celem („outgrown_prey” w logu), więc bot idzie do swojego hubu, a po drodze bije to, co ma pod nogami. Obrona, zadanie, materiał i polowanie na broń mają pierwszeństwo, jak dotąd.
Zmierzone na tym samym świecie w oknach po 10 minut, awanse na królestwo (117 botów): Shinsoo 30 → 47, Chunjo 5 → 38, Jinno 37 → 57 — przy rosnących poziomach, więc każdy kolejny awans kosztuje więcej expa. Walki z potworem o sześć i więcej poziomów niżej: z 36–40% do 9–18% (reszta to obrona i to, co stało w zasięgu 800). Tick, liczba szukań celu i resety watchdoga bez zmian; odmów „outgrown_prey” 5–40 na minutę na rdzeń.
Wersja 2.0.11 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Boty Shinsoo i Jinno nie stoją już na 5 poziomie
„W królestwie czerwonym i niebieskim boty na 5 lv się bugują”, „stoją przy kowalu i handlarzach”, „2500 botów — 0 sklepów” (greess, martynka19cm, mrgixon, sizowski). Od 2.0.8 Yongan i Pyongmoo idą do NPC „wprost”, jak Bokjung — ale lista faz „wprost” była listą Bokjung, gdzie nie ma trenera ani Starszej Pani. Bot na 5 poziomie potrzebuje trenera (wybór grupy umiejętności), zaczynał więc wizytę z pustą listą, kończył ją w tym samym ticku i zaczynał od nowa w następnym: stał na placu z celem „wybór profesji”, resetowany przez watchdoga co 90 sekund, i nigdy nie wyszedł poza 5 poziom. W paczce logów sizowskiego: 500 takich botów na rdzeń. Lista „wprost” ma teraz trenera i Starszą Panią na początku, jak lista Joan, a wizyta, której lista nie ma czym obsłużyć, w ogóle się nie zaczyna (z linią w logu). Bokjung tego nie dotyczy — w drugiej wiosce potrzeba trenera nigdy nie jest ustawiana.
Jedna Księga Umiejętności z kamienia Metin, nie trzy
„Graczowi lvl 46 lecą 3 KU ze wszystkich metinów w M1” (cyfrowy_mat). Od 1.29 każdy kamień dawał trzy księgi, obojętnie od poziomu kamienia. Teraz kamień dopełnia do jednej: jeśli tabela dropu nic nie wylosowała, jedna księga i tak wypada, jeśli wylosowała, zostaje to, co wylosowała. Dotyczy obu silników (łatka 0006 i port mt2009).
Bot przemianowany ręcznie zachowuje nazwę
„Dałem botowi ADAM miecz +9, rano nie było już bota o tym nicku” (gregoszky): 2.0.10 przemianowało wszystkie boty na nową listę, także te, którym operator sam zmienił nazwę w bazie. Nazwa, która nie jest ani z puli, ani z zasiewu, jest czyimś wyborem: taki bot nie jest już przemianowywany (przez żadną kolejną wersję listy), a jego nazwa nie trafia do nikogo innego. Migrator liczy je osobno („N bot(s) renamed by hand keep their names”).
Paczka logów zbiera wszystkie trzy rdzenie i ślady padów
ZBIERZ / WYŚLIJ LOGI zbierało syslog i status tylko z rdzenia Chunjo
(game1); zgłoszenie o botach Shinsoo i Jinno nie miało ani jednej linii z
rdzeni, na których stały. Teraz paczka ma osobno syslog, syserr, status i
pliki crash-*.txt (ślad stosu po padzie, od 2.0.8) dla first, game1 i
game2, syserr rdzenia bazy oraz osobny, dłuższy log kontenera gry — wspólne
800 linii logów compose mieściło 50 sekund, bo zalewały je resety watchdoga i
komunikaty MariaDB o zerwanych połączeniach, a linia „CORE DIED” ze śladem
stosu wypadała z okna, zanim paczka powstała.
Wersja 2.0.10 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Bonusy przedmiotów w panelach mają nazwy, nie numery
„Zamiast nazwy bonusu jest numer #139” (djariczek): silnik mt2009 ma 31
linii bonusów, których stary silnik nie znał — od 138 do 168 w length.h
(regeneracja wytrzymałości, czas trwania umiejętności, silny przeciw
Metinom/bossom, pochłanianie obrażeń, przełamania odporności…) — i nie mają
one numeru APPLY, przez który oba panele nazywają linie. Panel klasyczny i
panel Sebana dostały etykiety dla wszystkich 31 (po polsku i po angielsku,
z właściwą jednostką); 139 to „Regeneracja wytrzymałości”, 147 „Czas
trwania umiejętności”. Sprawdzone: tabela etykiet parsuje się (118 wpisów),
oba panele kompilują się.
Nowa lista nicków Iwakury, po królestwach, bez duplikatów
Iwakura dopisała listę do 1500 nicków (po 500 na królestwo, w tym nicki
wspierających; „te generowane przez AI są okropne”, więc wszystko ręcznie)
i podała zasadę: nicki brane z listy w losowej kolejności, po równo na
królestwo, a dopiero gdy królestwo ma więcej botów niż nicków, do jego
nicków dopisywane „2”, „v2”, „3” lub „v3”. Do tej pory pula szła po kolei od
Chunjo, które brało pierwszy tysiąc nazw, a Shinsoo i Jinno dostawały kopie
z v2/v3. Teraz lista (1475 poprawnych nazw; odrzucone: same cyfry, „GM…”,
dwa wulgarne) jest tasowana raz, dzielona na trzy równe udziały po 491, i
tylko Chunjo — 1500 zasianych postaci — dostaje dalej swoje nazwy z „2”/„v2”,
potem „3”/„v3”. Każdy bot zostanie przemianowany przy pierwszym starcie po
aktualizacji (nowa wersja puli); M2_PLAYERBOT_HUMAN_NAMES=0 zostawia nazwy,
restore przywraca zasiane.
Przy okazji naprawiony błąd, który dotyczy każdego świata po 2.0.8: dosiane boty Shinsoo i Jinno dostały te same nicki co boty Chunjo. SQL numerował czekające boty od jedynki i dawał im nazwy od początku listy, nie patrząc, czy inny bot już je nosi — na świecie testowym 999 nazw było zdublowanych (np. 000Achtung000 na dwóch postaciach). Nazwa noszona przez bota, który nie czeka na nową, nie jest już wolna. Sprawdzone na tym świecie: 2499 botów przemianowanych, zero duplikatów, postać gracza na koncie admin nietknięta, drugi start nic nie zmienia, trzy boty pozbawione nicku dostają wolne nazwy bez kolizji.
Wersja 2.0.9 (12.09.2026)
Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Panel Sebana: zakładanie kont znów działa na 2.x
„Nie utworzono konta: Unknown column 'empire' in 'INSERT INTO'” na każdym
z trzech królestw (NieBijOddam). Tabela kont w plikach mt2009 nie ma kolumny
empire (królestwo konta trzyma player_index, a pierwsza postać gracza
dostaje je od gry), a formularz wstawiał ją zawsze. Na 2.x konto powstaje
bez tej kolumny; postać GM zakładana z panelu dostaje królestwo w
player_index jak dotąd. Do tego login ma na mt2009 najwyżej 16 znaków
(tyle mieści kolumna) — formularz mówi to od razu zamiast błędu „Data too
long” z bazy.
Suwak „Odpoczynek w mieście”, a poniżej 18 poziomu nikt nie odpoczywa
W obu panelach (Zachowanie botów) jest nowy suwak REST, 0–100%, domyślnie
100: udział botów, które po załatwieniu spraw w pierwszej wiosce zostają na
rynku około trzech minut i spacerują między straganami. Kto ustawi 0, ma boty
cały czas na expie — do miasta przychodzą tylko w sprawach (mikstury, kowal,
handlarz, stragan) i od razu wracają. Suwak działa na żywo: bot, który już
odpoczywa, kończy odpoczynek przy najbliższym ticku po zmianie na 0.
Niezależnie od suwaka dwie nowe reguły: bot poniżej 18 poziomu nie
odpoczywa nigdy (ma poziomy do zdobycia i nic do oglądania), a bez
wystawionego straganu na mapie nikt nie „ogląda straganów” — do tej pory
bot spacerował między pustymi stanowiskami pod napisem „Odpoczywam w
mieście”, co na młodym świecie wyglądało jak bezczynność (MayPlayerBotRestInTown
w playerbot_config.h jest całą regułą; licznik straganów pochodzi z księgi
rynku, odświeżanej co minutę). Sprawdzone na stosie testowym po przebudowie:
przy 353 botach poniżej 18 poziomu żaden nie odpoczywa, a rdzeń przy zmianie
suwaka pisze PLAYERBOT_CONFIG: town rest N%.
Cztery postacie GM także na koncie, na którym już ktoś gra
„Na moim koncie admin nie ma postaci GM, tylko moja Tieru” — skrypt z 2.0.4
tworzył Admin, AdminNinja, AdminSura i AdminSzaman tylko wtedy, gdy konto
admin nie miało żadnej postaci, więc kto założył sobie postać wcześniej,
nie dostawał ich nigdy. Teraz skrypt dosiewa brakujące klasy do wolnych
miejsc (konto ma cztery), pomija klasę, którą ktoś na koncie już gra, i nie
rusza tego, co na koncie jest; ekran wyboru postaci pokazuje stare postacie
na swoich miejscach, a nowe za nimi. Nowe postacie stoją w pierwszej wiosce
swojego królestwa (Joan, Yongan albo Pyongmoo), bo konto ma jedno królestwo.
Sprawdzone na świecie testowym z jedną szamanką na koncie: powstały Admin,
AdminNinja i AdminSura, drugi start nic już nie zmienia. Dzieje się przy
najbliższym starcie serwera po aktualizacji.
Launcher: trzy wiersze wersji na dole
Stopka launchera pokazuje osobno serwer, launcher i klienta — zainstalowaną
i najnowszą wersję każdego z nich (launcher jest częścią paczki serwera, więc
jego „najnowsza” to wersja serwera; po aktualizacji w tej samej sesji stopka
mówi, że na dysku jest nowsza i trzeba uruchomić launcher ponownie). Do tego
zabezpieczenie: gdy launcher nie wystartuje albo któryś przycisk wyrzuci
wyjątek, treść błędu trafia do launcher-logs i do okna z komunikatem — po
restarcie z 2.0.8 jeden z graczy zobaczył okno błędu, którego log nie
zawierał, bo urywał się na „Uruchamiam launcher ponownie”. Odtworzenie tej
ścieżki (prawdziwa aktualizacja serwera → Tak → restart) przeszło bez błędu;
następny raport będzie miał treść.
Sprawdzanie wersji bez pięciominutowego opóźnienia
Launcher czyta manifest aktualizacji najpierw przez API GitHuba (świeże w minutę), a dopiero potem z raw.githubusercontent.com, którego CDN trzyma stary plik przez pięć minut — stąd „Masz już najnowszą wersję (2.0.7)” w pięć minut po wydaniu 2.0.8.
Wersja 2.0.8 (11.09.2026)
Boty Shinsoo i Jinno wreszcie chodzą do kowala i handlarki różności
„Tylko boty z Chunjo ulepszają ekwipunek, do kowala nie podbiega żaden z
innych królestw” (nerrvous_s, potwierdzone na 2.0.6). Odtworzone na stosie
testowym z trzema królestwami: w osiem minut rdzeń Chunjo miał 131 wizyt u
kowala i 3918 ulepszeń, rdzenie Shinsoo i Jinno zero — przy wizytach u
handlarzy broni i zbroi u wszystkich. Przyczyna: wizyta w pierwszej wiosce
ma osobną nogę „brama” do wnętrza Joan (handlarka różności i kowal stoją za
murem), a jej współrzędne są Joan (60300, 169400) — na mapach 1 i 41 to
nigdzie, więc noga kończyła się „unreachable” i faz wnętrza nigdy nie było.
Zmierzone na server_attr mt2009: w Yongan i Pyongmoo kowal i handlarka
różności stoją w tym samym spójnym obszarze co handlarz broni, bez muru,
więc te wioski idą wprost do każdego NPC, jak druga wioska
(IsPlayerBotGatedVillage — brama zostaje tylko dla Joan). Zmierzone po poprawce na tym samym stosie, dziewięć minut od startu:
Shinsoo 308 wizyt u kowala i 4792 ulepszenia, Jinno 329 i 5475, Chunjo 134
i 3920 — a handlarka różności odpowiednio 297, 309 i 169 wizyt.
Trzy królestwa domyślnie u każdego, boty dzielone po równo
Padający rdzeń zapisuje własny backtrace
„Wywala co 2 minuty” (proceder): rdzeń ch1-game1 padał z sygnałem 11
83–86 s po każdym starcie, a w paczce logów było tylko „Segmentation fault
(core dumped)” — Docker Desktop kieruje zrzuty pamięci do WSL
(/wsl-capture-crash), a limit rdzenia w kontenerze to 0, więc nie ma
czego oglądać. Od teraz libthecore przechwytuje SIGSEGV/SIGBUS/SIGFPE/
SIGILL/SIGABRT, zapisuje ślad stosu (backtrace()) do crash.txt w katalogu
rdzenia i na stderr, po czym oddaje sygnał domyślnej obsłudze; rdzenie są
linkowane z -rdynamic, więc ramki niosą nazwy funkcji (zmanglowane —
c++filt). m2-supervise po „CORE DIED” drukuje ślad do logu kontenera
(trafia do paczki logów) i odkłada go jako crash-<data>.txt obok syserr.
Przyczyna padu u procedera nie jest jeszcze znana — następna paczka logów ją
pokaże.
Launcher: „The property 'Count' cannot be found on this object”
Start, URUCHOM DOCKER i paczka logów kończyły się tym błędem u co najmniej
dwóch graczy (sykesal420). Wszystkie trzy uruchamiają sprawdzenie Dockera,
które pyta Windows o zarezerwowane zakresy portów; funkcja zwracająca
dokładnie jeden zakres (albo żadnego) oddaje pojedynczy obiekt (albo nic)
zamiast tablicy, a moduł działa w trybie strict, w którym .Count na takim
obiekcie to ten właśnie błąd. Wynik jest teraz zawsze tablicą. Osobna sprawa
u drugiego gracza — „The Compose app is no longer running” — to uszkodzony
Docker Desktop, nie launcher.
Dane do Navicat i inne drobiazgi
Bez zmian w danych; patrz 2.0.7.
Wersja 2.0.7 (11.09.2026)
Risk mode naprawdę znika (2.0.6 tylko usunęło plik)
Sizowski po 2.0.6: „risk mode nadal jest”. Aktualizacja nigdy nie kasuje
plików, więc każde drzewo z 2.0.0–2.0.5 wciąż ma quest/high_risk.quest, a
pętla kompilacji w obrazie gry nadal miała high_risk na liście — 2.0.6
zdjęło plik z repozytorium i nic więcej, więc u graczy quest kompilował się
dalej. Bramką jest lista w Dockerfile, nie katalog: high_risk zniknęło z
listy, a plik zostawiony w drzewie gracza jest ignorowany. Po tej aktualizacji
nowe konto nie dostaje już wyboru High Risk / No Risk.
Launcher sam pyta o aktualizację przy starcie
Po otwarciu okna launcher czyta kanał aktualizacji (jak dotąd, raz na sesję)
i gdy serwer w kanale jest nowszy niż zainstalowany, pyta od razu: „Znaleziono
nowszą wersję serwera X — czy chcesz dokonać aktualizacji teraz? Tak / Nie”.
TAK uruchamia tę samą aktualizację, co przycisk AKTUALIZUJ; NIE odkłada
pytanie do następnej wersji (zapamiętane w .m2launcher-offers.json), a
przycisk działa zawsze. To samo dla klienta na linii 2.x: po aktualizacji
serwera (albo od razu, gdy serwer jest aktualny) pyta o nowszą wersję
klienta i podmienia packi przyciskiem AKTUALIZUJ KLIENTA. Świeża instalacja z
pełnej paczki wie, jaki klient dostała: plik CLIENT_VERSION obok VERSION
(dotąd launcher mówił „nieznana” i pytałby o klienta, który już jest);
instalacje z 2.0.0–2.0.6 nie mają tego pliku, więc pytanie o klienta 2.0.3
pojawi się u nich raz — TAK jest nieszkodliwe (podmienia te same packi),
NIE zapamiętuje.
Dane do Navicat sprawdzone i uzupełnione
Suwak „Stragany” ma jawną umowę i dosięga stojących straganów (audyt D11)
„Minimalny suwak, a 180 z 280 botów handluje”: stragan, który już stał, nigdy
nie był pytany ponownie, a cztery wyjątki od suwaka nie były nigdzie
opisane. Teraz stragan pamięta powód otwarcia — Handlarz, brak yang na
mikstury, pełny plecak, dropper pod presją plecaka (te cztery suwak omija,
bo lada to jedyny sposób opróżnienia plecaka), nadmiar ksiąg, los droppera,
„jeden na dziesięciu” (te trzy suwak rusza). Status bota mówi „Prowadze
stragan (los)” zamiast samego „Prowadze stragan”, log otwarcia niesie powód,
a co dziesięć minut rdzeń pisze spis PLAYERBOT_SHOP: census z liczbą
straganów według powodu i obowiązującą wagą. Po zmianie suwaka każdy
stojący stragan z losowanego powodu jest sądzony ponownie pod nową wagą
(los jest po PID, więc odpowiedź jest ta sama, jaką dostałby nowy stragan)
i ten, który przegrał, zwija się w ciągu pięciu minut, rozłożonych po PID,
zamiast wszystkie w jednej sekundzie. Opis suwaka w obu panelach mówi to
samo, co kod.
Martwy zapas ma koniec: magazyn, nie handlarz (audyt D14)
„Szaman trzyma stal wojownika +9, sura przedmioty innych klas”: ekwipunek
powyżej +4, którego handlarz nigdy nie bierze, po czterech stoiskach bez
kupca miał już pełny rabat i żadnej dalszej drogi — jechał w plecaku po
kamieniach do końca życia bota. Teraz każdy wiersz lady ma zapisany czas
pierwszego wystawienia (mapStockFirstListed), a przedmiot niesprzedany
przez osiem stoisk (PLAYERBOT_SHOP_UNSOLD_SAFEBOX_STANDS) idzie pod
presją plecaka do magazynu razem z nadwyżką ksiąg — zachowany, nigdy
złomowany, poza plecakiem; log PLAYERBOT_STOCK: to safebox mówi ile
stoisk i minut za sobą miał. Przedmiot, który bot powinien nosić, nigdy nie
trafia do magazynu. Linia otwarcia straganu mówi też, co się nie zmieściło
i dlaczego (left_behind no_line= no_slot= antiflag=), czyli rejestr
powodów niewystawienia z audytu. Skompilowane na obu silnikach; na
serwerach testowych z młodymi botami (poziom 2–4, brak straganów) nie
zaobserwowane w ruchu.
Masowe nadawanie nie zatrzymuje się na botach offline (audyt D02)
Zmierzone na 1500 zarejestrowanych botach, z których 349 było w świecie:
paczka dla wszystkich doszła do 350 nadanych w dwie minuty i stanęła na
queued=10 na stałe. Dziesięć miejsc kolejki gry (MAX_PENDING) zajmowały
postacie offline — każda czeka 30 s na sweep questa, 60 s na wycofanie przez
workera i wraca po dwóch minutach — więc dziesięć nieobecnych nazwisk
blokowało każdego obecnego za nimi. To „zatrzymanie po 333” z audytu: nie
stan końcowy, tylko kolejka z głową offline. Worker czyta pięciominutową
migawkę kolektora (kto jest w świecie), obecnych wysyła pierwszych, a sondy
dla nieobecnych zajmują najwyżej cztery z dziesięciu miejsc, po dwie na tick.
Zmierzone po zmianie: 40 obecnych botów nadanych w 15 s przy 1146
nieobecnych w ogonie, pending w kolejce gry nie przekracza czterech.
Strona nadawania pokazuje stan workera: bicie serca co tick (kontener
seban-item-grants stoi → wprost, z poleceniem uruchomienia), ostatni błąd,
liczby i wiek najstarszego zlecenia w każdym stanie, oraz ostrzeżenie, gdy
zlecenie w kolejce gry leży ponad 45 s bez odbioru (pomocnik w grze budzi się
przy pierwszym logowaniu po starcie).
Wersja 2.0.6 (11.09.2026)
Panel klasyczny: przedmioty, teleport, szybkość, poziom znów działają na 2.x
Każde polecenie z panelu klasycznego (nadanie przedmiotu, yang, poziom,
teleport, szybkość biegu) kończyło się na 2.0.x komunikatem „Nic w grze nie
odpowiedziało” (czerwcuu, u4nt). Quest web_admin czyta kolejkę panelu przez
mysql_direct_query(), a ta funkcja nie jest jedna na obu silnikach: na
r40250 (nasza łatka) zwraca wiersze jako tabelę, na mt2009 zwraca NAJPIERW
liczbę zmienionych wierszy, a wiersze jako drugą wartość. Quest brał pierwszą
wartość za tabelę i nigdy nie widział polecenia. Wspólna owijka bierze tę z
dwóch wartości, która jest tabelą. To samo naprawia masowe nadawanie z panelu
zaawansowanego, bo idzie tą samą kolejką.
Mnożniki EXP, dropu i yang naprawdę działają na 2.x
Strona mnożników obu paneli mówiła na zielono „Zapisano! Serwer właśnie się
restartuje”, a na serwerze nic się nie zmieniało (wątek z 11 września: „panel
www niby na zielono informuje o zmianie różnych parametrów, a one się nie
zmieniają”). Na r40250 mnożnik to przepisanie mob_proto.txt i tabel dropu
przez m2-rates w kontenerze gry — obraz mt2009 nie miał tego programu, więc
zlecenie panelu leżało w kolejce i nikt go nie czytał. Silnik mt2009 ma
mnożniki własne: flagi zdarzeń mob_exp, mob_item, mob_gold (i bliźniacze
_buyer dla kont premium), przez które CHARACTER_MANAGER mnoży
doświadczenie, szansę dropu i ilość yang. Flaga to wiersz player.quest z
dwPID = 0, wczytywany przez rdzeń bazy przy starcie i rozsyłany do rdzeni
gry. Panel klasyczny zapisuje sześć wierszy, a potem prosi pomocnika w grze
(web_admin, polecenie RATES na timerze serwera, game.set_event_flag) o
ustawienie ich na żywo — zmierzone 2–3 s, bez restartu, we wszystkich trzech
rdzeniach naraz. Gdy nikt nie jest zalogowany i pomocnik nie odpowie, panel
zleca restart jak dotąd, a obraz mt2009 dostał własny m2-rates, który nic
nie przepisuje, tylko restartuje rdzenie i raportuje wynik (zmierzone 35 s od
zlecenia do „wszystkie rdzenie działają”, flagi wczytane z bazy). Panel
zaawansowany zapisuje te same wiersze i idzie ścieżką restartu; oba panele
pokazują te same liczby. Wartości 100% oznaczają grę bez zmian.
Nadanie rangi GM na 2.x mówi prawdę
Silnik mt2009 nie ma gniazda administracyjnego, więc m2-gm (przeładowanie
listy GM na żywo) nie istnieje w tym obrazie, a panel i tak pisał „Działa od
razu, w grze”. Listę odczytuje na nowo /reload a — polecenie, które pomocnik
w grze może wykonać tylko jako zalogowany IMPLEMENTOR. Panel próbuje tego
przez kolejkę (GM_RELOAD), a gdy żaden IMPLEMENTOR nie jest w grze, mówi:
uprawnienia wczytają się przy najbliższym restarcie albo po /reload a
wpisanym przez zalogowanego GM.
Tryb ryzyka (Risk mode) zdjęty z linii 2.x
Quest high_risk z plików 1.33 (wybór „High Risk / No Risk” przy logowaniu)
przyszedł do obrazu mt2009 razem z resztą i nie powinien tu być. Nie jest już
kompilowany; kto wybrał tryb wcześniej, ma go zwyczajnie wyłączonego.
Zamiar wyjazdu gaśnie po dotarciu (audyt D12)
lDepartureMap — „ten bot ma wyjechać na mapę X, gdy skończy sprawunki” —
był ustawiany raz i nigdy zerowany. Bot raz wstrzymany w Bokjung nosił go do
końca życia: po powrocie do miasta po zapasy odmawiał każdego polowania na
materiał i każdej wyprawy do Joan, a nad głową miał cel wyjazdu, na który
już dawno dotarł. Zamiar gaśnie po przejściu na docelową mapę (albo na
dowolne pogranicze, gdy pasmo poziomu przesunęło cel w międzyczasie), a
wstrzymany dłużej niż dziesięć minut jest raportowany raz na dziesięć minut
(PLAYERBOT_DEPARTURE: overdue) z tym, co go trzyma: broń, zbroja,
mikstury, strzały, miejsce w plecaku, wizyta w mieście, złoto.
Skrzynia otwiera się tylko wtedy, gdy zmieści się cała paczka (audyt D01)
Silnik wydaje nagrody ze skrzyni po jednej przez AutoGiveItem, a to, co się
nie mieści, kładzie na ziemi i zgłasza sukces. Bot pytał przed skrzynią o
pięć wolnych kratek i jedno miejsce na trzy pola — dla paczki z sześciu
przedmiotów to za mało („boty mając pełne EQ otwierają skrzynie ucznia i
wszystko wylatuje na glebę”). Teraz przed każdą skrzynią — ucznia, Moonlight,
skrzynką bossa i skrzynią na klucz — bot układa całą paczkę grupy na kopii
swojej siatki tak, jak robi to silnik: przedmiot potrzebuje swojej wysokości
w jednej kolumnie jednej strony, stos dokłada się do stosu tego samego vnumu,
każda nagroda zajmuje miejsce przed sprawdzeniem następnej. Dla grupy typu
Pct (skrzynie ucznia) liczą się wszystkie linie naraz, dla pozostałych jedna,
największa. Gdy się nie mieści, skrzynia czeka (raz na minutę
PLAYERBOT_GEAR: chest waits for room), a plecak opróżnia wizyta w mieście.
Na mt2009 typ grupy odsłania jednolinijkowy getter dodawany przez
playerbotify.py; na r40250 liczone są wszystkie linie.
Launcher mówi, ile trwała każda faza
Skarga „aktualizacja i start trwają bardzo długo” nie miała do tej pory
liczby, którą dałoby się sprawdzić: log launchera znał tylko początek i koniec
akcji. Launcher pisze teraz linie [faza] … (+N s od początku akcji) po
sprawdzeniu Dockera, po przygotowaniu kontekstu budowania, przy starcie i
końcu docker compose up --build, po pobraniu pakietu (rozmiar i czas) i po
podmianie plików; start-server.ps1 podaje czas samego docker compose up,
czyli od bazy przez migrator do zdrowej gry. Okno launchera pokazuje bieżącą
fazę w pasku stanu. Zmierzone na maszynie deweloperskiej dla 2.0.5: start
zatrzymanego serwera 52 s, aktualizacja z zbudowanymi obrazami około minuty,
pełna budowa obrazu gry od zera (bez cache kompilatora) 5 min 9 s, z czego
2 min to pakiety Ubuntu i biblioteki zewnętrzne, 94 s rdzeń gry, 31 s apt
obrazu docelowego. Na czterordzeniowym laptopie należy się spodziewać trzech,
czterech razy tyle; to czas pierwszego uruchomienia, aktualizacja kompiluje
tylko zmienione pliki botów przez ccache.
Wersja 2.0.5 (11.09.2026)
Postacie GM w zestawie, który klient umie pokazać
Zbroja 90 poziomu i broń 87 poziomu z 2.0.4 istnieją w item_proto serwera,
ale nie w kliencie: jego pc2/*.msm znają kształty zbroi 0–12, 14–22 i 24
(Pancerz Diabelskiego Rogu to 13, Zbroja z Niebieskiej Stali to 26), a
pakiet item ma modele broni tylko do zestawu 75 poziomu. Postać w takiej
zbroi była niewidzialna i nie mogła się ruszać (Iwakura). Czwórka GM nosi
teraz zbroję 66 poziomu +9 swojej klasy (Zbroja z Czarnej Stali, Ubranie
Czarnego Wiatru, Zbroja Płytowa Czarnej Magii, Czarna Szata) i broń 75
poziomu +9 (Zatruty Miecz, Skrzydła Demona Chakram, Lwi Miecz, Bambusowy
Dzwon; w plecaku Miecz Żalu, Stalowy Łuk Kruka, Wachlarz Ośmiu Trigramów),
a do tego Olejek Wygnania do zmiany królestwa. Świat, który dostał czwórkę w
2.0.4, ma podmieniane te same sloty przy najbliższym starcie — bonusy
zostają, zmienia się tylko vnum.
Panel: ikony przedmiotów u każdego, historia ekwipunku działa
Panel klasyczny pokazywał u każdego gracza przekreślony obrazek zamiast
ikony przedmiotu: 1572 ikony generował na 1.33 instalator na maszynie
operatora i nigdy nie były w repozytorium ani w paczce, a linia 2.x nie
generowała ich nigdzie. Ikony są teraz robione z pakietu icon klienta
mt2009 (port/iconify.py: 1557 ikon per-item z klienta plus 253 ze starego
zestawu dla przedmiotów, których klient trzyma tylko w atlasach — mikstury
startowe, księga umiejętności, skrzynie ucznia) i jadą w files/static/icons
(8,6 MB w każdej aktualizacji serwera). Przedmiot bez ikony (741 z 6001
vnumów świata, prawie żaden w obiegu) dostaje szare pole zamiast
przekreślonego obrazka.
„Historia ekwipunku” pokazywała startswith first arg must be bytes…: na
mt2009 kolumny how, hint i type w log.log są varbinary i przychodzą
jako bajty. Oba panele dekodują je teraz (CP1250) przed użyciem.
Pełny plecak: bot nie udaje, że podnosi, i robi miejsce
Bot z zerem wolnych kratek podchodził do każdego dropu, pokazywał „Podnosze
lup”, dostawał odmowę od silnika i próbował następnego — a między tym
polował dalej („bot dropi, itemki pod nim leżą, mówi że podnosi łup, ale nie
robi nic, bo nie ma miejsca” — JaroszV2). Zbieracz łupu pomija teraz
przedmioty, które nie zmieszczą się w plecaku (zostaje tylko to, co dołoży
się do istniejącego stosu), a raz na minutę pisze do logu
PLAYERBOT_LOOT: bag full pid= name= drops_in_reach= can_open_shop=.
Handlarz może dostać ekwipunek tylko do +4 — także z reguły „niesprzedane przez sześć straganów” (dotąd do +6). +5 i wyżej nigdy nie idzie do NPC: to towar na stragan, a co bot nosi sam, kowal podnosi dalej. Gdy plecak jest pod presją (8 wolnych kratek lub mniej) i bot nie może otworzyć straganu (na mt2009 przed 15 poziomem i 800 zabiciami), ekwipunek do +4, którego sam by nie założył, i nadwyżka materiałów idą do handlarza — wcześniej „towar na ladę” bez lady był plecakiem na zawsze.
Wersja 2.0.4 (11.09.2026)
Czwarta poprawka pierwszego dnia: cztery wyposażone postacie GM i skrzynia startowa dla gracza. Tylko serwer (ZAINSTALUJ AKTUALIZACJE); klient bez zmian.
Cztery postacie GM z pełnym wyposażeniem
Zamiast jednej postaci Admin konto admin ma cztery, po jednej na klasę:
Admin (wojownik), AdminNinja, AdminSura i AdminSzaman, każda
90 poziomu z uprawnieniami IMPLEMENTOR. Każda nosi najlepszy zestaw +9, jaki
ma ta paczka dla jej klasy (broń 87 poziomu, zbroja 90, hełm 80, Tarcza
Tytanów, granatowa biżuteria, buty 65) z mocnymi bonusami — w tym linią
średnich obrażeń 45% i obrażeń umiejętności 20% na broni — a w plecaku drugą
broń (dwuręczna, łuk ze strzałami, wachlarz), po 200 mikstur XL, zwoje
błogosławieństwa, Boga Smoków i teleportu, medale konne, 500 milionów yang,
konia 21 poziomu i Księgę Wojskowego Konia do jego przywołania. Postacie
powstają na świeżym świecie, a na istniejącym przy najbliższym starcie, o ile
konto admin nie ma jeszcze żadnej postaci; konto, na którym ktoś już gra,
zostaje jak było (jego pierwsza postać dostała GM w 2.0.2). PID-y 9001–9004,
poza zakresem seeda botów.
Nowa postać gracza dostaje Skrzynię Ucznia
Boty zaczynają ze Skrzynią Ucznia I w plecaku, gracz zaczynał z niczym
(„gracz jest gorszy niż bot” — sizowski). Quest starter_chest daje ją przy
pierwszym wejściu do gry postaci do 5 poziomu, według klasy (wojownik i sura
50187, ninja 50212, szaman 50213) — dalsze skrzynie łańcucha otwierają się jak
u botów, od 10 poziomu. Bot do 5 poziomu też dostanie jedną przy najbliższym
logowaniu; quest nie odróżnia bota od gracza, a to garść skrzyń więcej.
Wersja 2.0.3 (11.09.2026)
Trzecia poprawka pierwszego dnia: konto premium dla botów i tooltipy dla
GM-a. Serwer: ZAINSTALUJ AKTUALIZACJE; klient: AKTUALIZUJ KLIENTA (pakiet
root).
Każdy bot ma konto premium
Ten silnik ma abonament premium (50% więcej doświadczenia, podwójna szansa
na drop przedmiotów i yang, automatyczne podnoszenie yang, dodatkowa strona
magazynu, więcej miejsc w sklepie, lepsze wyławianie ryb). Bot nie loguje się
przez serwer auth, więc nigdy go nie miał. Od tej wersji każdy bot — obecny
i każdy nowy — dostaje abonament przy wejściu do gry, bez wpisów w bazie:
premium siedzi w tabeli konta deskryptora, z której silnik czyta je przy
ładowaniu postaci (SetPlayerProto), i stamtąd odpowiadają wszystkie
sprawdzenia GetPremiumRemainSeconds. Ważne pięć lat od każdego startu.
GM widzi tooltipy przedmiotów
Postać z uprawnieniami GM nie widziała nazwy ani statystyk żadnego
przedmiotu po najechaniu („Nie widać nazw itemów” — davids998; „tylko gdy
jesteś GM” — sizowski). Gałąź GM w tooltipie klienta iteruje po
auxiliaryDict.items(), a auxiliaryDict jest w tym roocie pustym napisem
(jego przypisanie jest wykomentowane), więc każdy tooltip umierał na
AttributeError, zanim został pokazany. Gałąź jest teraz strzeżona; GM
widzi zwykły tooltip plus linie VNUM/TYPE/SOCKET. Zmiana w kliencie:
AKTUALIZUJ KLIENTA.
Wersja 2.0.2 (11.09.2026)
Druga poprawka z pierwszego dnia: zgłoszenia z Discorda po południu, nowa
pula nicków i aktualizacja klienta (przycisk „AKTUALIZUJ KLIENTA” w
launcherze — dwa pliki pakietu root).
Konto admin ma postać GM
Paczka mt2009 przychodzi z pustą listą GM i bez żadnej postaci na koncie
admin, więc kto zalogował się na konto testowe, dostawał zwykłego gracza
(archded: „loguję się admin admin, a tam nie ma postaci GM”). Świeży świat
tworzy teraz na tym koncie postać Admin (wojownik 90 poziomu, stoi w
Joan) z uprawnieniami IMPLEMENTOR. Świat założony na 2.0.0 lub 2.0.1 dostaje
to przy najbliższym starcie: pierwsza postać konta admin zostaje GM (jeśli
na koncie nie ma jeszcze postaci — pierwsza, którą utworzysz, po kolejnym
starcie). Nadanie jest jednorazowe i tylko na pustej liście; świat, który
kiedykolwiek miał własnego GM, zostaje jak był.
„Doładuj SM!” prowadzi na buycoffee, nie na mt2009.pl
Przycisk „Doładuj SM!” w sklepie z przedmiotami i przycisk w oknie
abonamentu otwierały stronę publicznego serwera mt2009 (sizowski, matthaeu;
„powinno przenosić na buycoffee” — kuszaa). Oba prowadzą teraz na
https://buycoffee.to/metin2-playerbots, a „Wsparcie” w menu systemowym na nasz
Discord. To zmiana w kliencie: w launcherze kliknij „AKTUALIZUJ KLIENTA”.
Smoczych Monet na tym serwerze nikt nie sprzedaje — dopisujesz je sobie w
bazie (account.account.cash).
Boty nie oglądają straganów, których nie ma
Po załatwieniu spraw w mieście bot chwilę zostaje na placu, a nad głową miał „Ogladam stragany” — także na świecie, na którym żaden bot nie dorósł jeszcze do otwarcia sklepu („jakie stragany oglądają jak żadnego nie ma” — .christoff). Bez lady na mapie mówi teraz „Odpoczywam w miescie”. To samo z zakupami: wyprawa na targ („Szukam czegos na straganach”) rusza tylko wtedy, gdy na tej mapie albo w pierwszej wiosce królestwa stoi jakiś stragan; wcześniej bot szedł na pusty pitch i przeglądał powietrze.
Panel: ranking nie wisi na „Ładowanie…”
Nicki botów: lista Iwakury, w całości i tylko ona
Iwakura spisał 1000 nicków z polskich serwerów z lat 2010–2012 („tu jest
postaranie”). Ta lista jest teraz jedyną pulą: znika poprzednia (lista
jaksiezabica, pierwsza lista Iwakury i nicki składane z ich słów) i znika
dopasowanie do klasy i płci — nazwy idą po kolei według PID, jak zostały
napisane. Każdy bot, który nosił nick ze starej puli, dostaje nowy przy
najbliższym starcie serwera (pula ma wersję; historia w
common.playerbot_name_history pamięta nazwę z seeda, więc „restore” dalej
działa). Gdy botów jest więcej niż nazw, lista idzie drugi raz z „v2” na
końcu, potem „v3”; Iwakura dopisze kolejne nicki w tygodniu. Odrzucone: dwa
wulgarne, dwa udające GM i pięć złożonych z samych cyfr. Podkreślniki są
wycinane, bo klient ich nie przyjmuje.
Wersja 2.0.1 (11.09.2026)
Pierwsza poprawka linii 2.x, z pierwszego dnia instalacji u graczy.
Budowa nie stoi już na deps 7/7
Nazwy straganów od społeczności
Iwakura spisał nazwy sklepów z polskich serwerów z lat 2010–2012, z podziałem na kategorie. Stragan botów ma teraz szyld według tego, co przeważa na ladzie: ryby i małże („Sklep Rybny u Janusza ;]”, „Malze po 3000 sztuka!”), księgi umiejętności („Makulatura po dziadku”), ulepszacze („Zolc i skora niedzwiedzia”), ekwipunek („Zbroje na chude klaty”), medale konne, zwoje błogosławieństwa, kamienie duchów — a stragan mieszany bierze jedną z kilkudziesięciu uniwersalnych („TANIEJ NIZ OBOK >>>>>”, „ZBANUJCIE TE BOTY!!!”). Broń 30 poziomu i duży ulepszony przedmiot dalej idą na szyld pod własną nazwą. Szyld zmienia się z każdym kolejnym straganem tego samego bota.
Stragan dopiero od 15 poziomu i 800 zabitych potworów
Ten silnik pozwala otworzyć sklep dopiero od 15 poziomu i 800 zabić
(CanOpenShop); młodszy bot dostawał od silnika odmowę przy każdej próbie —
39 z rzędu w młodym świecie. Bot pyta o to przed wyjściem na pitch i wraca po
dziesięciu minutach.
Wersja 2.0.0 (11.09.2026)
Nowa linia serwera: pliki serwerowe mt2009 (Martysama r41023) zamiast r40250. To osobna, pełna paczka — klient i serwer razem — i osobny kanał aktualizacji. Instalacja 1.33.x niczego z tej wersji nie dostanie i nie powinna: stary launcher i stary klient nie pasują do nowych plików. Pełną paczkę pobierasz z Discorda (discord.gg/pt5tvnrN6), a od tej chwili aktualizacje serwera i klienta przychodzą już przez launcher, jak dotąd.
Podziękowania
To wydanie powstało dzięki ostatnim wpłatom. Bez nich nie byłoby czasu ani środków na to, co się tu wydarzyło: dziesiątki tysięcy linii kodu, zmiana architektury serwera i zbudowanie jej od nowa na innym silniku — przy zachowaniu wszystkiego, co boty i panele potrafiły do tej pory. Dziękuję. Wsparcie projektu: buycoffee.to/metin2-playerbots.
Serwer
- Silnik mt2009 przeniesiony na Linuksa i budowany w Dockerze tak jak
dotąd: cztery etapy obrazu, protosy w bazie (
PROTO_FROM_DB), sześć baz na MariaDB 11.8, te same porty, ten sam launcher. - Port jest zapisany jako skrypty, nie jako ręczne poprawki: każdy plik silnika, bazy, compose i share, który różni się od paczki, jest renderowany z oryginału r40250 albo z pakietu i da się odtworzyć jedną komendą.
- Świat startuje otwarty. Pakiet uruchamiał każdy serwer w „przerwie
technicznej” do czasu, aż GM wpisze
/maintenance 0; zwykłe konto widziało na ostatnim kroku logowania „Obecnie trwa przerwa techniczna”. - Schemat logów uzupełniony o 23 tabele, które silnik zapisuje, a których
pakiet nie miał;
account.social_idposzerzony do 18 znaków (identyfikatory botów były ucinane); kolumnymileage/jackpotdla ItemShopu. - Skrzynie startowe botów, skrzynia księżycowa i drop broni 30 poziomu na mapie gildii dopisane do plików pakietu; brakujący przedmiot w takiej grupie wywraca cały plik przy starcie, więc render sprawdza vnumy względem zrzutu świata.
Playerbots
- Cała logika botów bez zmian w zachowaniu. Różnice silnika są zamknięte w
jednym nagłówku (
playerbot_engine_compat.h): numeracja bonusów (POINT_*zamiastAPPLY_*), nazwy afektów, złoto (ChangeGoldzamiastPointChange, który tu jest odrzucany), zakładanie przedmiotów, flagi specjalne postaci, wędkowanie. - Zakładanie ekwipunku: mt2009 odpowiada na
CanEquipNowsześć razy na pół sekundy na postać, a przebieg ekwipunku pytał o każdy przedmiot w torbie — 63 tysiące odrzuconych ulepszeń na godzinę. Zegar jest zerowany przed każdym pytaniem; po poprawce 6940 założeń i 213 odmów w tym samym czasie. - Flagi specjalne postaci (statystyki
stat_*) ładują się dla botów: pakiet ładowania bota niesie id konta, bez którego rdzeń db odpowiadał flagami wszystkich botów naraz i gra je odrzucała. - Panele klasyczny, Sebana i ItemShop działają na obu silnikach z jednym
przełącznikiem (
M2PANEL_ENGINE/PLAYERBOTS_ENGINE); ranking broni liczy właściwe linie obrażeń.
Klient
- Klient w paczce jest gotowy do gry na tym komputerze (127.0.0.1); launcher
znajduje go sam w folderze
KlientobokSerweri nie pyta o plik EXE. - Własny regulamin w oknie logowania: co to za projekt, zasady, wsparcie na buycoffee, Discord, prywatność. Przyciski okna logowania prowadzą do GitHuba projektu, buycoffee i naszego Discorda.
- Narzędzie do packów klienta rozumie układ PackMakerLite: ten klient
sprawdza CRC32 każdego pliku typu 2 i root spakowany po staremu nie
uruchamiał gry (
RunMain Error).
Launcher i paczka
- Jeden zip na hosting (
Metin2-Singleplayer-2.0.0.zip):Klient\,Serwer\iCZYTAJ.txt. Bez haseł, tożsamości instalacji, logów i kopii — launcher tworzy je przy pierwszym starcie. - Launcher rozpoznaje silnik po pliku
linux-port\docker\ENGINE: własny kanał aktualizacji (update-manifest-mt2009.json), lista zrzutów, brak łatek r40250, lista modułów kontekstu budowania. - Adopcja istniejącej instalacji Dockera tylko tego samego silnika: kto przechodzi z r40250, ma na dysku jedną instalację — starą — i launcher podpiąłby nowy serwer pod jej bazę. Teraz stara instalacja zostaje obok, nietknięta, a nowa dostaje własną.
- Przycisk „PANEL GM F9” na tej linii to zwykłe „AKTUALIZUJ KLIENTA”.
Czego jeszcze nie ma
- Panel GM F9 (część serwerowa i kliencka) — celowo pominięty, żeby nie kolidować z klientem; wróci osobno.
- Misje poziomowe botów: ten pakiet nie ma questa
levelup, boty pomijają ten etap rozwoju. - Wędkowanie: silnik wymaga 50 poziomu i przepustki wędkarskiej; boty na razie nie łowią.